Technorati 标签: BGP,CCIE,Router reflector,RR,路由反射器

IBGP的路由反射器 (RR)

由于IBGP的水平分割问题,所以IBGP需要全互连FULL MESH.由于整个IBGP full mesh的话,需要建的session数为(n*(n-1))/2. 不具有扩展型.所以产生两种解决办法, RR是其中的一种.

clip_p_w_picpath002

总结为非非不能传. (非客户和非客户之间不能传递BGP路由)

RR的client并不知道自己是client.所以RR是本地有效. 客户和非客户经过RR反射的路由更新会带上cluster-list和originator,可用于IBGP防环. Cluster-id默认为RR自己的router-id. 可以通过命令bgp cluster-id x.x.x.x来修改.

Cluster-id为32位的值, 可以写成点分十进制,也可以写成十进制数;originator为IBGP内起源路由器的router-id. RR是IBGP的特征,除了IBGP后,RR所有的特性消失 (即路由携带的Cluster-list和originator全部消失).

neighbor 1.1.1.1 route-reflector-client

可以通过这条命令来将IBGP的peer 1.1.1.1变成自己的客户端.建议对每个IBGP邻居都打上这个命令.

当RR的客户端FULL mesh的时候,可以用no bgp client-to-client reflection禁止客户端到客户端的路由反射,可以减少路由更新.

clip_p_w_picpath004

clip_p_w_picpath006

用这个命令的意义:

在某些特殊情况下, 在RR上面使能了no bgp client-to-client reflection以后,客户端到客户端通过RR是不能进行宣告了,但是,还有一些情况是非客户端和客户端之间是可以正常通讯的.

但是一般情况下,在RR上面使能了这个命令,那么这个RR也失效了.(因为在运营商网络中,专用的RR会和每一个路由器建立IBGP邻居,并且指定每一个路由器为RR客户端)

RR用两个技术进行防止环路:Cluster-list和orgator-ID进行防环.

Cluster list:

当RR被部署的时候,cluster-id在AS内被用作另一个环路防止机制。这个属性记录了在RR环境中,前缀所经过的cluster-id列表,当RR从他的客户那里反射路由到cluster外的非客户的时候,或从非客户反射路由到客户的时候,或是从一个客户反射到另外一个客户的时候,他会把本地cluster-id添加到clsuter-list前面。如果路由更新的cluster-list为空,那么RR自动创建一个.

Originator

是IBGP内起源路由器的router-ID.他在AS内部被用作防环机制,他由第一个RR创建,并且不被后续的RR所更改。Originator-id是:如果是在本地AS始发的路由,那么就是BGP宣告者的router-id.如果路由是通过EBGP学习到的,那么就是同一个AS的边界路由器. 该属性是一个32bit的数值,并且只应该从IBGP对等体那里接收到,在RR上,originator-id用来替代路径选择过程中的router ID. 当IBGP宣告者接收的更新包含他自己的originator-id时,丢弃路由。因为环路已经产生了。

在具体实施中,运营商一般是下面的情况:

专门用两台核心路由器,专门做RR,路由反射器.这样每台路由反射器和AS内每一个IBGP对等器建立邻居关系.之所以要两台做RR主要目的是做冗余,A和B两台路由器,只做路由反射,不做流量转发.

clip_p_w_picpath008

简化的情况是下面:

clip_p_w_picpath010

从而可以保证,不管R1学习到多少条路由,其他所有路由器都可以同步路由信息.

路由反射器配置案例:

clip_p_w_picpath012

R2配置:

interface Loopback0

ip address 2.2.2.2 255.255.255.255

ip ospf 1 area 0

!

interface Ethernet0/0

ip address 192.168.12.2 255.255.255.0

ip ospf 1 area 0

!

interface Serial1/0

ip address 23.1.1.2 255.255.255.0

serial restart-delay 0

!

router ospf 1

router-id 2.2.2.2

!

router bgp 12

bgp router-id 2.2.2.2

bgp log-neighbor-changes

network 1.1.1.1 mask 255.255.255.255

network 2.2.2.2 mask 255.255.255.255

neighbor 1.1.1.1 remote-as 12

neighbor 1.1.1.1 update-source Loopback0

neighbor 3.3.3.3 remote-as 100

neighbor 3.3.3.3 ebgp-multihop 10

neighbor 3.3.3.3 update-source Loopback0

neighbor 3.3.3.3 advertisement-interval 20

!

ip route 3.3.3.3 255.255.255.255 23.1.1.3

!

R3配置:

interface Loopback0

ip address 3.3.3.3 255.255.255.255

!

interface Ethernet0/0

ip address 38.1.1.3 255.255.255.0

!

interface Ethernet0/1

ip address 172.16.34.3 255.255.255.0

!

interface Serial1/0

ip address 23.1.1.3 255.255.255.0

serial restart-delay 0

!

router eigrp 100

network 3.3.3.3 0.0.0.0

network 172.16.34.3 0.0.0.0

eigrp router-id 3.3.3.3

!

router bgp 100

bgp router-id 3.3.3.3

bgp log-neighbor-changes

neighbor 2.2.2.2 remote-as 12

neighbor 2.2.2.2 ebgp-multihop 255

neighbor 2.2.2.2 update-source Loopback0

neighbor 4.4.4.4 remote-as 100

neighbor 4.4.4.4 update-source Loopback0

neighbor 4.4.4.4 next-hop-self

neighbor 8.8.8.8 remote-as 38

neighbor 8.8.8.8 ebgp-multihop 255

neighbor 8.8.8.8 update-source Loopback0

!

ip route 2.2.2.2 255.255.255.255 23.1.1.2

ip route 8.8.8.8 255.255.255.255 38.1.1.8

!

对于R3来说,到2.2.2.2的下一跳是2.2.2.2. 因为下一跳可达2.2.2.2(静态),所以最优.

clip_p_w_picpath014

R4配置:(路由反射器,需要和AS内所有路由器建立IBGP关系)

interface Loopback0

ip address 4.4.4.4 255.255.255.255

!

interface Ethernet0/0

ip address 172.16.45.4 255.255.255.0

!

interface Ethernet0/1

ip address 172.16.34.4 255.255.255.0

!

router eigrp 100

network 4.4.4.4 0.0.0.0

network 172.16.34.4 0.0.0.0

network 172.16.45.4 0.0.0.0

eigrp router-id 4.4.4.4

!

router bgp 100

bgp router-id 4.4.4.4

bgp log-neighbor-changes

neighbor Hank peer-group

neighbor Hank remote-as 100

neighbor Hank update-source Loopback0

neighbor Hank route-reflector-client

neighbor 3.3.3.3 peer-group Hank

neighbor 5.5.5.5 peer-group Hank

neighbor 6.6.6.6 peer-group Hank

!

clip_p_w_picpath016

上面可以看到,3.3.3.3,和6.6.6.6把相关的2.2.2.2和77.77.77.77路由都已经传递过来了。

R5配置:

interface Loopback0

ip address 5.5.5.5 255.255.255.255

!

interface Ethernet0/0

ip address 172.16.45.5 255.255.255.0

!

interface Ethernet0/1

ip address 172.16.56.5 255.255.255.0

!

router eigrp 100

network 5.5.5.5 0.0.0.0

network 172.16.45.5 0.0.0.0

network 172.16.56.5 0.0.0.0

eigrp router-id 5.5.5.5

!

router bgp 100

bgp router-id 5.5.5.5

bgp log-neighbor-changes

neighbor 4.4.4.4 remote-as 100

neighbor 4.4.4.4 update-source Loopback0

!

R6配置:

interface Loopback0

ip address 6.6.6.6 255.255.255.255

!

interface Ethernet0/1

ip address 172.16.56.6 255.255.255.0

!

interface Serial1/0

ip address 67.1.1.6 255.255.255.0

serial restart-delay 0

!

router eigrp 100

network 6.6.6.6 0.0.0.0

network 172.16.56.6 0.0.0.0

eigrp router-id 6.6.6.6

!

router bgp 100

bgp router-id 6.6.6.6

bgp log-neighbor-changes

neighbor 4.4.4.4 remote-as 100

neighbor 4.4.4.4 update-source Loopback0

neighbor 4.4.4.4 next-hop-self

neighbor 7.7.7.7 remote-as 67

neighbor 7.7.7.7 ebgp-multihop 255

neighbor 7.7.7.7 update-source Loopback0

!

ip route 7.7.7.7 255.255.255.255 67.1.1.7

!

clip_p_w_picpath018

R7配置:

interface Loopback0

ip address 7.7.7.7 255.255.255.255

!

interface Loopback77

ip address 77.77.77.77 255.255.255.0

!

interface Serial1/0

ip address 67.1.1.7 255.255.255.0

serial restart-delay 0

!

router bgp 67

bgp router-id 7.7.7.7

bgp log-neighbor-changes

network 77.77.77.0 mask 255.255.255.0

neighbor 6.6.6.6 remote-as 100

neighbor 6.6.6.6 ebgp-multihop 10

neighbor 6.6.6.6 update-source Loopback0

!

ip route 6.6.6.6 255.255.255.255 67.1.1.6

!

最终:R2 ping R7,通:

clip_p_w_picpath020