Здравствуйте.
Не могу разобраться с параметром "Prefix Lenght" в разделе "Route Filters". Читал официальную wiki несколько раз, но не понял зачем он нужен. Если как указано в примерах указываю фильтр "172.16.8.16/28" action "discard", он не срабатывает. Если укажу Prefix Lenght 0-128, всё работает. Но зачем он нужен, если у меня есть маска подсети? Но при указании только маски без префикса ничего не раотает. Помогите разобраться. Wiki читал, но понимания это не дало.
Routing Filter
-
- Сообщения: 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 тоже выкинет.
То есть в вашем случае выкинет только маршруты до 172.16.8.16/28
Если добавить prefix-lenghth - то любые маршруты у которых префикс попадает внутрь указанного, и у которого длина в заданном диапазоне.
То есть например 172.16.8.16/30, 172.16.8.20/30, 172.16.8.24/29 тоже выкинет.
Telegram: @thexvo
-
- Сообщения: 6
- Зарегистрирован: 12 июл 2020, 22:21
Я не очень понимаю как прикладывать эту длину префикса. Она от 0 до 128 бит. В IPv4 всего 32 бита. Дайте, пожалуйста, несколько примеров.
-
- Сообщения: 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 - то оба.
Пример:
Допустим у меня есть маршруты до префиксов 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
-
- Сообщения: 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 - то оба.
-
- Сообщения: 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 на соседних маршрутизаторах.
В чем может быть ошибка?
На маршрутизаторе такой конфиг фильтра:
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 на соседних маршрутизаторах.
В чем может быть ошибка?
-
- Сообщения: 4204
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
Если я не ошибаюсь, фильтры вообще касаются только тех маршрутов, которые берутся из внешних источников.
Не отдавать что-то, что принадлежит самому ospf вроде как не получится.
Не отдавать что-то, что принадлежит самому ospf вроде как не получится.
Telegram: @thexvo
-
- Сообщения: 6
- Зарегистрирован: 12 июл 2020, 22:21
Фильтр входящих работает корректно в плане того, что в вкладке OSPF routes маршрут есть, но из-за фильтра его нет в разделе Routes. А вот фильтр исходящих работает как то странно ничего не фильтруя...
-
- Сообщения: 4204
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
Все как раз логично.
Фильтр ospf-in определяет какие из маршрутов пришедших по ospf использовать в таблице маршрутизации.
Фильтр ospf-out определяет какие конкретно маршруты из основной таблицы маршрутизации тех типов, что указаны в свойствах инстанса (redistribute connected, redistribute static и т.д.), разадать по ospf.
Но это все касается external для ospf-инстанса маршрутов.
Они даже так и помечаются на вкладке ospf/routes.
На те маршруты, которые берутся не из основной таблицы, а которые вы создаёте внутри самого ospf-инстанса добавляя сети на вкладке networks - на них этот фильтр не распространяется. Грубо говоря, OSPF же не может работать не передавая маршрутов о самом себе.
Фильтр ospf-in определяет какие из маршрутов пришедших по ospf использовать в таблице маршрутизации.
Фильтр ospf-out определяет какие конкретно маршруты из основной таблицы маршрутизации тех типов, что указаны в свойствах инстанса (redistribute connected, redistribute static и т.д.), разадать по ospf.
Но это все касается external для ospf-инстанса маршрутов.
Они даже так и помечаются на вкладке ospf/routes.
На те маршруты, которые берутся не из основной таблицы, а которые вы создаёте внутри самого ospf-инстанса добавляя сети на вкладке networks - на них этот фильтр не распространяется. Грубо говоря, OSPF же не может работать не передавая маршрутов о самом себе.
Telegram: @thexvo
-
- Сообщения: 6
- Зарегистрирован: 12 июл 2020, 22:21
Я фильтр этот предусматриваю, на случай неправильной конфигурации одного из роутеров OSPF. Как можно отфильтровать, если на другом роутере OSPF area, случайно например анонсирую дефолтный маршрут? Может есть какой то другой путь?