В продолжении предыдущей статьи Juniper и Policy-based routing ( PBR ) появилась задача когда необходимо чтобы маршруты из таблицы inet.2 (mBGP) попадали не только в нее, но и в таблицу inet.0 (eBGP).
Расскажу и покажу как это сделали мы.
Дано
- MX80 (JUNOS 10.4R1.9)
- апстрим с двумя BGP сессиями eBGP и mBGP
Задача
Импортировать маршруты принимаемые в сессии mBGP (роутинг таблица inet.2) в таблицу сессии eBGP (таблица inet.0).
Реализация
Состояние ДО изменений:
Для примера возьмем маршрут до подсети 11.11.11.192/28.
Посмотрим текущий маршрут до этой подсети:
juniper-MX80> show route terse 11.11.11.192 inet.2: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A Destination P Prf Metric 1 Metric 2 Next hop AS path * 11.11.11.192/28 B 170 100 >20.20.20.209 65500 I
Видим что данный маршрут находится только в таблице inet.2, это то мы и будем «исправлять».
Приступим. Как и в случае с PBR нам поможет механизм rib-groups.
Создадим rib группы:
routing-options { rib-groups { bgp-multicast-rg { export-rib inet.2; import-rib [ inet.2 inet.0 ]; } bgp-unicast-rg { export-rib inet.0; import-rib inet.0; } } }
Мы создали две rib группы: одну для unicast, другую для multicast. В rib группе multicast в import-rib мы указали, что принимаемые маршруты нужно импортировать и в таблицу inet.0.
Теперь опишем эти rib группы в protocols bgp:
protocols { bgp { family inet { unicast { rib-group bgp-unicast-rg; } multicast { rib-group bgp-multicast-rg; } } } }
Ну и сами BGP пиры, один eBGP, другой mBGP:
protocols { bgp { log-updown; local-as 65000; group ebgp { type external; no-advertise-peer-as; neighbor 10.10.10.229 { description eBGP_peer; import bgp-import; family inet { unicast; } export bgp-export; peer-as 65500; } } group mbgp { type external; no-advertise-peer-as; neighbor 20.20.20.209 { description mBGP_peer; import bgp-mcast-import; family inet { multicast; } export bgp-mcast-export; peer-as 65500; } } } }
После commit`а смотрим появился ли маршрут в таблице inet.0:
juniper-MX80> show route terse 11.11.11.192 inet.0: 51 destinations, 51 routes (44 active, 0 holddown, 7 hidden) + = Active Route, - = Last Active, * = Both A Destination P Prf Metric 1 Metric 2 Next hop AS path * 11.11.11.192/28 B 170 100 >20.20.20.209 65500 I inet.2: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A Destination P Prf Metric 1 Metric 2 Next hop AS path * 11.11.11.192/28 B 170 100 >20.20.20.209 65500 I
А вот теперь мы видим что наш маршрут присутствует в двух таблицах, что нам и было надо.
Ссылки
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Уважайте чужой труд.
Автор: Николаев Дмитрий (virus (at) subnets.ru)
Похожие статьи:
- Не найдено
Добавить комментарий
Вам следует авторизоваться для размещения комментария.