Привет, ребята из Mikrotik! С большим удовольствием заметил, что в ROS v7.6 снова появилась возможность отображать рекламируемые маршруты — здорово! Благодаря этому я смог увидеть, с моей точки зрения, неожиданное поведение фильтра маршрутов.
Согласно документации по фильтрам маршрутов (BGP), оператор префикса IN — возвращает true, если префикс является подсетью указанной сети. Если оператор используется для сопоставления префиксов из списка адресов (например, «dst in list_name»), то он должен совпадать только с точным префиксом.
Я использую следующее правило:
chain=ipv4-ebgp-provider-out
rule=«if (afi ipv4 && dst in ipv4-subnets-own-remote) {set bgp-path-prepend 2; accept}»
И у меня есть такая запись в списке «ipv4-subnets-own-remote»:
list=ipv4-subnets-own-remote
address=123.87.184.0/24
Согласно моему пониманию документации, правило должно пропускать только точно «123.87.184.0/24», а не 123.87.184.0/25, не 123.87.184.123/32 или что-то ещё — только точное совпадение префикса.
Но, глядя на рекламируемые маршруты, я вижу:
peer=ipv4-ebgp-provider-1
dst=123.87.184.16
nexthop=99.115.135.123
origin=2
Когда я отключаю вышеуказанное правило, этот IP не рекламируется — значит, именно это правило его пропускает.
Может, я неправильно понимаю документацию («Если оператор используется для сопоставления префиксов из списка адресов (например, “dst in list_name”), то совпадение происходит только по точному префиксу»), или есть разница между реализацией и документацией?
Есть ли у вас советы, как сделать так, чтобы принимался только точный префикс адреса?
Спасибо и с уважением,
Стефан
Согласно документации по фильтрам маршрутов (BGP), оператор префикса IN — возвращает true, если префикс является подсетью указанной сети. Если оператор используется для сопоставления префиксов из списка адресов (например, «dst in list_name»), то он должен совпадать только с точным префиксом.
Я использую следующее правило:
chain=ipv4-ebgp-provider-out
rule=«if (afi ipv4 && dst in ipv4-subnets-own-remote) {set bgp-path-prepend 2; accept}»
И у меня есть такая запись в списке «ipv4-subnets-own-remote»:
list=ipv4-subnets-own-remote
address=123.87.184.0/24
Согласно моему пониманию документации, правило должно пропускать только точно «123.87.184.0/24», а не 123.87.184.0/25, не 123.87.184.123/32 или что-то ещё — только точное совпадение префикса.
Но, глядя на рекламируемые маршруты, я вижу:
peer=ipv4-ebgp-provider-1
dst=123.87.184.16
nexthop=99.115.135.123
origin=2
Когда я отключаю вышеуказанное правило, этот IP не рекламируется — значит, именно это правило его пропускает.
Может, я неправильно понимаю документацию («Если оператор используется для сопоставления префиксов из списка адресов (например, “dst in list_name”), то совпадение происходит только по точному префиксу»), или есть разница между реализацией и документацией?
Есть ли у вас советы, как сделать так, чтобы принимался только точный префикс адреса?
Спасибо и с уважением,
Стефан
