Для перемещения по дереву справки используйте строки заголовка.

Справка по NSG Linux 2.1.5
Дерево команд: _common-nodes.ip.dynamic-routing.PROTOCOL.NUM.export

Что это такое?

Это ключевое слово, имя или описание фильтра экспорта.

Зачем это нужно?

Для передачи маршрутов из таблицы BIRD в протокол.

Как это настроить?

Описать фильтр маршрутов в одной из следующих форм:

all
Передавать все маршруты.
none
Не передавать никакие маршруты.
filter имя
Передавать и модифицировать маршруты с помощью фильтра с указанным именем. Собственно описание фильтра может быть задано, например, в глобальном поле dynamic-routing.extra.
filter { команды фильтра }
Явное описание фильтра. Синтаксис команд фильтра см. в оригинальной документации по BIRD.
where выражение
Фильтровать маршруты по заданному выражению. Синтаксис выражений см. в оригинальной документации по BIRD.

При редактировании поле автоматически преобразуется в текстовое окно и обратно. Отступы игнорируются, что позволяет форматировать текст аналогично файлу конфигурации 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–2024 Отдел документации