Здесь мы закончим разбираться с Route Reflector, а именно рассмотрим использование Cluster_ID.
Пока рассмотрим топологию:
Настройки:
RR1:
int f1/0
ip addr 1.1.2.2 255.255.255.0
duplex full
speed auto
no shut
exit
int f1/1
ip addr 1.1.3.1 255.255.255.0
duplex full
speed auto
no shut
exit
int f2/0
ip addr 1.1.6.2 255.255.255.0
duplex full
speed auto
no shut
exit
router bgp 1
neighbor 1.1.3.2 remote-as 1
neighbor 1.1.2.1 remote-as 1
neighbor 1.1.2.1 route-reflector-client
neighbor 1.1.6.1 remote-as 1
neighbor 1.1.6.1 route-reflector-client
network 1.1.6.0 mask 255.255.255.0
network 1.1.3.0 mask 255.255.255.0
network 1.1.2.0 mask 255.255.255.0
RR2:
int f1/0
ip addr 1.1.4.1 255.255.255.0
duplex full
speed auto
no shut
exit
int f2/0
ip addr 1.1.5.2 255.255.255.0
duplex full
speed auto
no shut
exit
int f1/1
ip addr 1.1.3.2 255.255.255.0
duplex full
speed auto
no shut
exit
router bgp 1
neighbor 1.1.3.1 remote-as 1
neighbor 1.1.4.2 remote-as 1
neighbor 1.1.4.2 route-reflector-client
neighbor 1.1.5.1 remote-as 1
neighbor 1.1.5.1 route-reflector-client
network 1.1.5.0 mask 255.255.255.0
network 1.1.3.0 mask 255.255.255.0
network 1.1.4.0 mask 255.255.255.0
C1:
int f1/0
ip addr 1.1.2.1 255.255.255.0
duplex full
speed auto
no shut
exit
int f1/1
ip addr 1.1.5.1 255.255.255.0
duplex full
speed auto
no shut
exit
int lo0
ip addr 1.1.1.1 255.255.255.255
exit
router bgp 1
neighbor 1.1.2.2 remote-as 1
neighbor 1.1.5.2 remote-as 1
network 1.1.5.0 mask 255.255.255.0
network 1.1.1.1 mask 255.255.255.255
network 1.1.2.0 mask 255.255.255.0
C2:
int f1/0
ip addr 1.1.4.2 255.255.255.0
duplex full
speed auto
no shut
exit
int f1/1
ip addr 1.1.6.1 255.255.255.0
duplex full
speed auto
no shut
exit
int lo0
ip addr 2.2.2.2 255.255.255.255
exit
router bgp 1
neighbor 1.1.4.1 remote-as 1
neighbor 1.1.6.2 remote-as 1
network 1.1.6.0 mask 255.255.255.0
network 2.2.2.2 mask 255.255.255.255
network 1.1.4.0 mask 255.255.255.0
Посмотрим на RR1 маршруты на 2.2.2.2/32:
Видим что маршрут на RR1 приходит двумя способами, а именно:
— через 1.1.6.1 (который является Route Reflector Client)
— через RR2, который является просто IBGP пиром.
Давайте запустим debug на С2 и посмотрим что происходит когда Route Reflector посылает нам 2.2.2.2
do debug ip bgp ipv4 unicast update in
*Mar 19 10:36:52.823: BGP(0): 1.1.6.2 rcv UPDATE about 2.2.2.2/32 — DENIED due to: ORIGINATOR is us;
Видим, что при попытке получить нам от 1.1.6.2 маршрут к 2-кам, мы по атрибуту ORIGINATOR отвергаем данный маршрут, то есть защита от петель работает.
Теперь давайте пропишем на RR1 и RR2 cluster-id:
bgp cluster-id 1.1.3.0
Теперь мы видим, что на RR приходит только 1 маршрут от самого клиента RR, от другого RR маршрут не приходит.
Давайте теперь посмотрим что произойдет если отключить линки между C1 и RR2 и C2 и RR1.
RR2(config-router)#do sh ip bgp 1.1.1.1
% Network not in table
RR2(config-router)#
C1(config-router)#do sh ip bgp 2.2.2.2
% Network not in table
C1(config-router)#
RR1 не получает никаких маршрутов от RR2, и наоборот. Сети становятся недостыпными, и это проблема о которой нужно иметь ввиду, когда используете Cluster_ID и пользоваться ими достаточно аккуратно.
Выхода тут может быть два, или использовать так как мы с Вами разбирали в начале заметки, либо использовать несколько разных кластеров, тогда все будет работать более надежно.