Настройка функционала Route Reflector для BGP на MES2300-xx/3300-xx/3500-xx/5312/53xxA/53xx-xx/54xx-xx/5500-32
Функционал Route reflectors (RR) позволяет избежать необходимости создания full mesh топологии между всеми iBGP-соседями, всем iBGP-соседям получить все iBGP-маршруты в AS, а также предотвратить образование петель
- Маршрут, полученный от RR-клиента перенаправляется всем остальным RR-клиентам и не-клиентам
- Маршрут, полученный от не-клиента перенаправляется всем RR-клиентам, но не перенаправляется другим не-клиентам
- Маршрут, полученный от eBGP-соседа перенаправляется всем RR-клиентам и не-клиентам
RR настраивается только на RR-сервере:
Включить пересылку маршрутов, полученных от reflector-клиента, другим BGP-соседямconsole(router-bgp)# bgp client-to-client reflection
Задать идентификатор кластера BGP-маршрутизатораconsole(router-bgp)# bgp cluser-id ip_add
Назначить BGP-cоседа Route-Reflector клиентом:console(router-bgp-nbr-af)# route-reflector-client meshed
meshed - параметр выставляется, если используется mesh-топология. При получении от такого клиента BGP-маршрутов они не будут пересылаться другим клиентам.
BGP-маршрутизатор является route-reflector'ом, если хотя бы один его сосед сконфигурирован как route-reflector клиент.
Соберем стенд из 3 коммутаторов:
и настроим следующую конфигурацию:
SW1
sw1#sh run
vlan database
vlan 5,10
exit
!
hostname sw1
!
interface TenGigabitEthernet1/0/1
description to-sw2
ip address 10.10.10.0 255.255.255.254
exit
!
interface TenGigabitEthernet1/0/2
switchport mode trunk
switchport trunk allowed vlan add 5,10
exit
!
interface vlan 5
ip address 192.168.5.1 255.255.255.0
exit
!
interface vlan 10
ip address 192.168.10.1 255.255.255.0
exit
!
!
router bgp 65500
bgp router-id 10.1.1.1
address-family ipv4 unicast
redistribute connected
exit
!
neighbor 10.10.10.1
remote-as 65500
address-family ipv4 unicast
exit
exit
exit
!
!
end
SW2
sw2#sh run
hostname sw2
!
interface TenGigabitEthernet1/0/1
description to-sw1
ip address 10.10.10.1 255.255.255.254
exit
!
interface TenGigabitEthernet1/0/2
description to-sw3
ip address 10.10.10.2 255.255.255.254
exit
!
!
router bgp 65500
bgp router-id 10.2.2.2
bgp cluster-id 10.2.2.2
address-family ipv4 unicast
exit
!
neighbor 10.10.10.0
remote-as 65500
route-reflector-client
address-family ipv4 unicast
exit
exit
!
neighbor 10.10.10.3
remote-as 65500
route-reflector-client
address-family ipv4 unicast
exit
exit
exit
!
!
end
SW3
sw3#sh run
hostname sw3
!
interface TenGigabitEthernet1/0/2
description to-sw2
ip address 10.10.10.3 255.255.255.254
exit
!
!
router bgp 65500
bgp router-id 10.3.3.3
address-family ipv4 unicast
exit
!
neighbor 10.10.10.2
remote-as 65500
address-family ipv4 unicast
exit
exit
exit
!
!
end
коммутатор sw1 анонсирует на sw2 connected подсети:
коммутатор sw2 инсталлирует эти префиксы в свою таблицу маршрутизации и являясь route-reflector'ом отражает маршруты rr-client'ам, в данном случае sw3:
Смотрим таблицу маршрутизации sw3 и видим отсутствие маршрутов от sw2, при этом в таблице bgp они есть:
sw3 не инсталлирует маршруты из-за недоступности их next-hop'ов.
добавим опцию next-hop-self на sw2 в конфигурации соседа sw3:sw2#conf
sw2(config)#router bgp 65500
sw2(router-bgp)# neighbor 10.10.10.3
sw2(router-bgp-nbr)#next-hop-self
и снова посмотрим таблицу bgp на sw3:
маршруты по-прежнему имеют next-hop назначенный на sw1 и недоступный с sw3, соответственно не могут находиться в таблице маршрутизации.
Это корректное поведение bgp, регламентировано rfc4456, в соответствии с которым route-reflector не должен менять атрибут next-hop:
Для решения задачи произведем подмену next-hop'а средствами route-map. Настроим на sw2 следующую конструкцию:ip prefix-list from-sw1 seq 1 permit 192.168.5.0/24
ip prefix-list from-sw1 seq 2 permit 192.168.10.0/24
route-map to-sw3 1 permit
continue 2
match ip address prefix-list from-sw1
set ip next-hop 10.10.10.2
exit
route-map to-sw3 2 permit
exit
prefix-list from-sw1 фильтрует полученные от sw1 префиксы, route-map to-sw3 пропускает все маршруты и меняет next-hop на тех, что попадают под prefix-list from-sw1.
Применим созданный route-map на экспорт маршрутов в sw3
sw2#conf
sw2(config)#router bgp 65500
sw2(router-bgp)# neighbor 10.10.10.3
sw2(router-bgp-nbr)# address-family ipv4 unicast
sw2(router-bgp-nbr-af)#route-map to-sw3 out
Теперь отражаемые от sw2 маршруты 192.168.5/24 и 192.168.10/24 имеют next-hop назначенный на sw2 и доступный из connected подсети, стало быть будут проинсталлированы в таблицу маршрутизации:
Источник:
docs.eltex-co.ru