Jump to content
Калькуляторы

Анонсирование injected-routes внутри AS

Появилась задача анонсировать соседнему роутеру префикс /32 по BGP внутри AS

Для решения решил применить injected route на основе route-map с префиксами

После некоторого времени плясок с бубном /32 в таблице BGP появился, но в adv routes не уходит (анонсирую префиксом).

Вопрос: как анонсировать ?

Share this post


Link to post
Share on other sites

network a.b.c.d/32

Естественно имеется.

Анонс , тем не менее, не уходит

Share this post


Link to post
Share on other sites

а каким образом попал префикс в bgp-таблицу? статик?

а покажите в принципе конфиг бгп и роутмапов

Share this post


Link to post
Share on other sites

network a.b.c.d/32

Естественно имеется.

Анонс , тем не менее, не уходит

sh ip rou a.b.c.d/32

sh ip bgp nei 1.1.1.1 adv

Share this post


Link to post
Share on other sites

а каким образом попал префикс в bgp-таблицу? статик?

а покажите в принципе конфиг бгп и роутмапов

 

В том то и дело, что нету там префикса ни статикой, ни на интерфейсе, т к при null0 или же активном интерфейсе пакет естественно уходит в них.

А в моем случае необходимо, чтобы роутер выступал прозрачно, по факту получая большой префикс /22 от одного, а далее с помощью inject из этого префикса вычлиняется /32, заносится в таблицу и уже этот /32 должен анонсироваться дальше. Подчеркну, именно префикс /32

Собственно конфиг:

 

bgp inject-map INJECT exist-map MATCH-THIS

network x.x.x.x mask 255.255.255.255

neighbor 172.20.20.1 activate

neighbor 172.20.20.1 prefix-list inner in

neighbor 172.20.20.1 prefix-list outer out

neighbor 172.30.30.2 activate

exit-address-family

 

 

ip prefix-list INJECT seq 5 permit x.x.x.x/32

!

ip prefix-list LEARNED seq 5 permit y.y.y.y/22

!

ip prefix-list ROUTE-SOURCE seq 5 permit z.z.z.z/32

 

route-map INJECT permit 10

set ip address prefix-list INJECT

 

route-map MATCH-THIS permit 10

match ip address prefix-list LEARNED

match ip route-source prefix-list ROUTE-SOURCE

 

 

 

show ip bgp

BGP table version is 6, local router ID is 172.20.20.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter

Origin codes: i - IGP, e - EGP, ? - incomplete

 

Network Next Hop Metric LocPrf Weight Path

*>io.o.o.o/23 172.20.20.1 0 100 0 i

* ix.x.x.x/22 z.z.z.z 0 100 0 a b c d i

* ix.x.x.x/32 z.z.z.z 0 ?

 

show ip bgp injected-paths

BGP table version is 6, local router ID is 172.20.20.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter

Origin codes: i - IGP, e - EGP, ? - incomplete

 

Network Next Hop Metric LocPrf Weight Path

* ix.x.x.x/32 z.z.z.z 0 ?

 

 

 

172.20.0.0/16 is variably subnetted, 2 subnets, 2 masks

C 172.20.20.0/29 is directly connected, FastEthernet0/0.70

L 172.20.20.2/32 is directly connected, FastEthernet0/0.70

172.30.0.0/16 is variably subnetted, 2 subnets, 2 masks

C 172.30.30.0/29 is directly connected, FastEthernet0/0.90

L 172.30.30.1/32 is directly connected, FastEthernet0/0.90

o.o.o.o/23 is subnetted, 1 subnets

B o.o.o.o [200/0] via 172.20.20.1, 00:16:33

 

 

PS: Просьба модераторам одобрить пару моих сообщений , чтобы можно было продолжать обсуждение, спасибо.

Edited by lirikoff

Share this post


Link to post
Share on other sites

А почему нельзя отдать другому роутеру /22 как есть?

Share this post


Link to post
Share on other sites

...

А в моем случае необходимо, чтобы роутер выступал прозрачно, по факту получая большой префикс /22 от одного, а далее с помощью inject из этого префикса вычлиняется /32, заносится в таблицу и уже этот /32 должен анонсироваться дальше. Подчеркну, именно префикс /32

...

 

Опасное колдунство. Как-то один из наших аплинков решил пошаманить таким образом с нашими префиксами (в целях некой оптимизации прохождения трафика), а наша ас-ка из нескольких регионов анонсировалась, без внутренней связности между бордерами, поэтому был прописан allow as-in. И когда нам прилетели наши же префиксы, побитые на более мелкие, было очень неприятно.

Share this post


Link to post
Share on other sites

Попросите "первичный" роутер помимо /22 анонсировать и нужный вам /32. За прочие шаманства надо руки топором отрубать.

Share this post


Link to post
Share on other sites

Попросите "первичный" роутер помимо /22 анонсировать и нужный вам /32. За прочие шаманства надо руки топором отрубать.

Собственно сама цель всех плясок с бубном основывается на требованиях роскомндадзора по фильтрации ресурсов.

Планируется ткнуть прозрачный роутер между ядром и пограничником, и используя анонсирование /32 в сторону ядра заруливать запросы на ресурсы реестра на данный роутер, внутри которого соответственно проходила бы необходимая обработка.

Тестово использую кошку, чтоб проработать схему. Статика совсем не интересна. И не думаю, что стоит сразу лишаться рук за подобное.

Если у вас есть наработки в плане подробного руления, или какие-либо другие решения, как отделить трафик из реестра от основного потока - буду только благодарен за инфо.

Share this post


Link to post
Share on other sites

Тестово использую кошку, чтоб проработать схему. Статика совсем не интересна. И не думаю, что стоит сразу лишаться рук за подобное.

Если у вас есть наработки в плане подробного руления, или какие-либо другие решения, как отделить трафик из реестра от основного потока - буду только благодарен за инфо.

может такая статика подойдёт?

на juniper, прмерно так:

set routing-options static route 8.8.8.8/32 discard

set routing-options static route 8.8.8.8/32 no-install

т.е. в RIB маршрут есть и нормально анонсируется по условию,

а в FIB он не инсталируется и пакеты бегают в соответствии с приходящими анонсами.

Share this post


Link to post
Share on other sites

Собственно сама цель всех плясок с бубном основывается на требованиях роскомндадзора по фильтрации ресурсов.

Очень оригинальное решение задачи, только вот эффективность слабоватая и подводных камней не мало. Почему не хотите пойти по протоптанной дорожке и поставить какой-нибудь dpi (например, sce)?

Share this post


Link to post
Share on other sites

Почему не хотите пойти по протоптанной дорожке и поставить какой-нибудь dpi (например, sce)?

Готовые решения никто, конечно не отменял, но , например, некоторые компании, предоставляющие свои системы фильтрации, используют в них как раз-таки инъектирование маршрутов, в случае , если реализация идет без зеркалирования всего трафика на железо. А любое готовое решение стоит денег, хотя каких-либо сверхсекретных механизмов в нем нет.

Отталкиваясь от этого, я считаю, весьма оправданным поиск альтернативных решений.

Тем более кто гарантирует, что в готовых решениях отсутствуют подводные камни.

Share this post


Link to post
Share on other sites

может такая статика подойдёт?

 

СТАТИКА НЕ НУЖНА, специально ж это отметил даже )

Статика совсем не интересна.

Share this post


Link to post
Share on other sites

sh ip bgp x.x.x.x/32 можно увидеть?

Share this post


Link to post
Share on other sites

sh ip bgp x.x.x.x/32 можно увидеть?

 

show ip bgp 208.91.60.94

BGP routing table entry for 208.91.60.94/32, version 4

Paths: (1 available, best #1, table default)

Not advertised to any peer

x y z o, (injected path from 208.91.60.0/22)

172.30.30.2 from 172.30.30.2 (x.x.x.x)

Origin IGP, metric 0, localpref 100, valid, internal, best

 

теперь думаю над тем как injected сделать видимым в sh ip route...

Share this post


Link to post
Share on other sites

он инжектитса, но не селектитса как best

 

попробуйте добавить:

bgp inject-map INJECT exist-map MATCH-THIS copy-attributes

Share this post


Link to post
Share on other sites

Опасное колдунство. Как-то один из наших аплинков решил пошаманить таким образом с нашими префиксами (в целях некой оптимизации прохождения трафика)

Озвучьте аплинка.

Share this post


Link to post
Share on other sites

bgp inject-map INJECT exist-map MATCH-THIS copy-attributes

 

copy-attributes уже добавлены, вывод show ip bgp уже с ними.

 

Ранее,на момент когда выкладывал конфиг, было без них

Edited by lirikoff

Share this post


Link to post
Share on other sites

Для чего нужно уточнение ?

видимо, чтоб знать, от кого можно ждать подлянки))

Share this post


Link to post
Share on other sites

лупбэк правильно (а не интерфейс нейбора) заматчен префикс листом?

Share this post


Link to post
Share on other sites

лупбэк правильно (а не интерфейс нейбора) заматчен префикс листом?

 

Интерфейс, апдейты по ним проставлены

Share this post


Link to post
Share on other sites

Попробовал добавить adv-map - анонс не идет, хотя статус активный

 

show ip bgp neighbors 172.20.20.1 | include Condition-map

Condition-map from-out, Advertise-map to-in, status: Advertise

 

конф

 

neighbor 172.20.20.1 advertise-map to-in exist-map from-out

 

ip prefix-list from-out seq 5 permit 208.91.60.0/22

 

ip prefix-list to in seq 5 208.91.60.94/32

 

route-map from-out permit 10

match ip address prefix-list from-out

 

route-map to-in permit 10

match ip address prefix-list to-in

Share this post


Link to post
Share on other sites

Апдейт: убрал adv-map за ненадобностью, т к сети анонсируются в обе стороны при использовании route-reflector client на прозрачном роутере в сторону обоих neighbor

Но появилась еще одна незадача, если на ядре посмотреть маршрут пакета то он почему-то уходит в ноль

 

show ip cef exact-route x.x.x.x 208.91.60.94

x.x.x.x -> 208.91.60.94 => Null0 ( откуда он берется, на всякий случай проверил проверил - маршрута нет)

Снова обращу внимание: на ядро от прозрачного прилетает 208.91.60.94/32 c next hop 172.30.30.2, применение next hop self результата не дает

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this