LINUX.ORG.RU
ФорумAdmin

Bird и ospf export filter

 ,


2

1

Я как-то задавал вопрос про фильтр в Bird: Bird 2.14 (комментарий). Ответ в обсуждении не родился, но недавно я на него наткнулся. В вопросе остутствовал неожиданно ключевой момент, секция interface в секции area:

filter export_OSPF {
   if net ~ 192.168.0.0/16 then reject;
}

protocol ospf v2 ospfv4 {
   ipv4 {
     export filter export_OSPF;
   }
   area 0 {
     interface "eth*" {
       type broadcast;
     }
   }
}

И вот в этой ситуации сети, поднятые на интерфейсах, попадающих под шаблон «eth*», банально игнорировались фильтром. Достаточно было указать interface "eth0", либо а-ля interface 10.0.0.0/30, где нейбор, и фильтр заработал. И вроде нигде не написано, что это важно.

В архивную тему добавиь не получилось, но так наверное тоже сойдёт, поиском искаться будет.

★★★★★

Последнее исправление: AS (всего исправлений: 1)
27 ноября 2025 г.

Извини за некропостинг, но могу объяснить почему так:

  1. Когда ты добавляешь интерфейс в OSPF, а ты добавляешь все eth зачем-то:
     interface "eth*" {
       type broadcast;
     }

Таким образом ты запускаешь процесс поиска соседей на интерфейсе и сети с этих интерфейсов попадают в OSPF как type Intra-area автоматически.

И BIRD тут не причем - это также работает на Cisco, RouterOS и т.д.

  1. Фильтр export же применяется уже после для маршрутов из других протоколов, т.е. static, connected и прочие BGP виде type EXT1 или EXT2.

Таким образом добавлять интерфейсы нужны только те, которые участвуют в OSPF-пиринге с соседями или lo-интерфейсы в виде passive (т.к. не участвующие в обмене) с RouterID. Остальные маршруты лучше экспортировать в OSPF как EXT1 или EXT2.

Turbid ★★★★★
()
Последнее исправление: Turbid (всего исправлений: 2)
Ответ на: комментарий от Turbid

Таким образом ты запускаешь процесс поиска соседей на интерфейсе и сети с этих интерфейсов попадают в OSPF как type Intra-area автоматически.

Да, что-то не подумал про это.

AS ★★★★★
() автор топика