Страница 1 из 2

Routing Filter

Добавлено: 12 июл 2020, 22:28
MrFlix
Здравствуйте.
Не могу разобраться с параметром "Prefix Lenght" в разделе "Route Filters". Читал официальную wiki несколько раз, но не понял зачем он нужен. Если как указано в примерах указываю фильтр "172.16.8.16/28" action "discard", он не срабатывает. Если укажу Prefix Lenght 0-128, всё работает. Но зачем он нужен, если у меня есть маска подсети? Но при указании только маски без префикса ничего не раотает. Помогите разобраться. Wiki читал, но понимания это не дало.

Re: Routing Filter

Добавлено: 13 июл 2020, 03:38
xvo
В общем если просто prefix - то только точное соответствие.
То есть в вашем случае выкинет только маршруты до 172.16.8.16/28
Если добавить prefix-lenghth - то любые маршруты у которых префикс попадает внутрь указанного, и у которого длина в заданном диапазоне.
То есть например 172.16.8.16/30, 172.16.8.20/30, 172.16.8.24/29 тоже выкинет.

Re: Routing Filter

Добавлено: 13 июл 2020, 22:12
MrFlix
xvo писал(а): 13 июл 2020, 03:38 Если добавить prefix-lenghth - то любые маршруты у которых префикс попадает внутрь указанного, и у которого длина в заданном диапазоне.
Я не очень понимаю как прикладывать эту длину префикса. Она от 0 до 128 бит. В IPv4 всего 32 бита. Дайте, пожалуйста, несколько примеров.

Re: Routing Filter

Добавлено: 13 июл 2020, 23:55
xvo
Ну так до 128 это для ipv6.

Пример:
Допустим у меня есть маршруты до префиксов 192.168.100.0/24 и 192.168.200.0/22

В фильтре можно либо перечислять их каждый отдельно без указания prefix-length, либо можно указать например 192.168.0.0/16 и дальше:

если указать prefix-length=24 - сработает только первый.
если prefix-length=22 - то второй.
если prefix-length=22-24 - то оба.

Re: Routing Filter

Добавлено: 15 июл 2020, 16:23
MrFlix
xvo писал(а): 13 июл 2020, 23:55 Ну так до 128 это для ipv6.

Пример:
Допустим у меня есть маршруты до префиксов 192.168.100.0/24 и 192.168.200.0/22

В фильтре можно либо перечислять их каждый отдельно без указания prefix-length, либо можно указать например 192.168.0.0/16 и дальше:

если указать prefix-length=24 - сработает только первый.
если prefix-length=22 - то второй.
если prefix-length=22-24 - то оба.
Огроменое спасибо за разьяснения

Re: Routing Filter

Добавлено: 15 июл 2020, 18:00
MrFlix
Ещё вопрос есть по настройке фильтра исходящего.
На маршрутизаторе такой конфиг фильтра:
add action=accept chain=ospf-out prefix=172.16.8.16/28 prefix-length=28-32
add action=accept chain=ospf-out prefix=172.16.9.128/25 prefix-length=25-32
add action=discard chain=ospf-out
Делаю в OSPF сетку, чтобы проверить отрабатывает ли фильтр:
172.16.11.128/25
И этот маршрут роутер анонсирует по OSPF, несмотря на фильтр. Также он появляется как DAo на соседних маршрутизаторах.
В чем может быть ошибка?

Re: Routing Filter

Добавлено: 15 июл 2020, 18:23
xvo
Если я не ошибаюсь, фильтры вообще касаются только тех маршрутов, которые берутся из внешних источников.
Не отдавать что-то, что принадлежит самому ospf вроде как не получится.

Re: Routing Filter

Добавлено: 16 июл 2020, 10:20
MrFlix
Фильтр входящих работает корректно в плане того, что в вкладке OSPF routes маршрут есть, но из-за фильтра его нет в разделе Routes. А вот фильтр исходящих работает как то странно ничего не фильтруя...

Re: Routing Filter

Добавлено: 16 июл 2020, 11:52
xvo
Все как раз логично.
Фильтр ospf-in определяет какие из маршрутов пришедших по ospf использовать в таблице маршрутизации.
Фильтр ospf-out определяет какие конкретно маршруты из основной таблицы маршрутизации тех типов, что указаны в свойствах инстанса (redistribute connected, redistribute static и т.д.), разадать по ospf.
Но это все касается external для ospf-инстанса маршрутов.
Они даже так и помечаются на вкладке ospf/routes.
На те маршруты, которые берутся не из основной таблицы, а которые вы создаёте внутри самого ospf-инстанса добавляя сети на вкладке networks - на них этот фильтр не распространяется. Грубо говоря, OSPF же не может работать не передавая маршрутов о самом себе.

Re: Routing Filter

Добавлено: 16 июл 2020, 20:51
MrFlix
xvo писал(а): 16 июл 2020, 11:52 На те маршруты, которые берутся не из основной таблицы, а которые вы создаёте внутри самого ospf-инстанса добавляя сети на вкладке networks - на них этот фильтр не распространяется. Грубо говоря, OSPF же не может работать не передавая маршрутов о самом себе.
Я фильтр этот предусматриваю, на случай неправильной конфигурации одного из роутеров OSPF. Как можно отфильтровать, если на другом роутере OSPF area, случайно например анонсирую дефолтный маршрут? Может есть какой то другой путь?