Routing Filter

Обсуждение ПО и его настройки
MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

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


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

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


Telegram: @thexvo
MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

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


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Ну так до 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 - то оба.


Telegram: @thexvo
MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

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 - то оба.
Огроменое спасибо за разьяснения


MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

Ещё вопрос есть по настройке фильтра исходящего.
На маршрутизаторе такой конфиг фильтра:
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 на соседних маршрутизаторах.
В чем может быть ошибка?


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

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


Telegram: @thexvo
MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

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


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

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


Telegram: @thexvo
MrFlix
Сообщения: 6
Зарегистрирован: 12 июл 2020, 22:21

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


Ответить