Это ключевое слово, имя или описание фильтра импорта.
Для передачи маршрутов из протокола в таблицу BIRD.
Описать фильтр маршрутов в одной из следующих форм:
allnonefilter имяdynamic-routing.extra.filter { команды фильтра }where выражениеПри редактировании поле автоматически преобразуется в текстовое окно и обратно. Отступы игнорируются, что позволяет форматировать текст аналогично файлу конфигурации BIRD.
Примеры фильтров
(источник: https://saidvandeklundert.net/2015-06-15-bird-basic-filter/)
filter rr_export {
# term 1 | Установить community 1:100
if (net = 192.168.1.0/24) then
{
bgp_community.add ((1,100));
accept;
}
# term 2 | Установить community 1:1000
if (net = 192.168.2.0/24) then
{
bgp_community.add ((1,1000));
accept;
}
# term 3 | Установить local preference 175
if (net = 192.168.3.0/24) then
{
bgp_local_pref=175;
accept;
}
# term 4 | Добавить AS в начало пути
if (net = 192.168.4.0/24) then
{
bgp_path.prepend(65000);
accept;
}
# term 5 | заменить next hop на произвольное значение
# необходимо убедиться, что маршрут до нового next hop известен
if (net = 192.168.5.0/24) then
{
bgp_next_hop = 34.0.1.1;
accept;
}
# term 6 | Установить MED
if (net = 192.168.6.0/24) then
{
bgp_med = 175;
accept;
}
# term 7 | Для маршрутов, относящихся к определённой подсети
# И определённому community,
# изменить два атрибута PATH attributes и удалить communities
if (net = 192.168.7.0/24 && (541,541) ~ bgp_community) then
{
bgp_community.empty;
bgp_med = 241;
bgp_local_pref=175;
accept;
}
# term 8 | выполнить действия для определённой подсети ИЛИ MED
if (net = 192.168.8.0/24 || bgp_med = 321) then
{
bgp_med = 8;
bgp_local_pref=8;
accept;
}
# term 9 | поиск в стиле prefix-list,
# данный фильтр действует на все префиксы с длиной маски от 20 до 24
if ( net ~ [ 0.0.0.0/0{20,24} ] ) then
{
bgp_med = 88;
bgp_local_pref=88;
accept;
}
# Пропустить все остальные маршруты без изменений
else accept;
}
| © Network Systems Group 2015–2025 | Отдел документации |