BGP属性之Originator-ID(路由反射器引起的环路问题)
写在前面
Originator-ID是BGP诸多属性中的可选非传递,即可以不支持该属性,不识别的P进程忽略包含这个属性的更新消息,并且不传递给其他BGP邻居
RR的说明
路由反射器是解决IBGP邻居间的水平分割问题,即在反射器路由器上配置客户端,只有菲菲不传,意思是不将非客户端的路由反射给非客户端,其余都会进行反射
反射器的环路分析
那么在反射路由时,就会产生两种环境下的环路
1、始发路由器宣告的路由被反射回来
2、被反射的路由在反射器间进行无休止的反射
实验1
实验拓扑
环路产生
R2的A路由宣告进BGP后,经R1反射给R3,R3做为一个反射器,又会将此路由反射给始发路由器R2,至此,造成环路
解决:Originator-ID,即始发路由器将路由传递出去时,将自己的RID携带称为Originator-id,当这条路由进来时,若起源id与本地的RID相同,则不收
配置部署
R2正常建邻即可,然后宣告自己的环回100,即A路由
[R2-bgp]di th
[V200R003C00]
#
bgp 1
peer 10.1.1.1 as-number 1
peer 10.1.1.1 connect-interface LoopBack0
peer 10.1.3.3 as-number 1
peer 10.1.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
network 100.1.2.0 255.255.255.0
peer 10.1.1.1 enable
peer 10.1.3.3 enable
#
return
R1将R2与R3作为客户端
[R1-bgp]di th
[V200R003C00]
#
bgp 1
peer 10.1.2.2 as-number 1
peer 10.1.2.2 connect-interface LoopBack0
peer 10.1.3.3 as-number 1
peer 10.1.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 10.1.2.2 enable
peer 10.1.2.2 reflect-client
peer 10.1.3.3 enable
peer 10.1.3.3 reflect-client
#
return
R3将R1与R2作为客户端
[R3-bgp]di th
[V200R003C00]
#
bgp 1
peer 10.1.1.1 as-number 1
peer 10.1.1.1 connect-interface LoopBack0
peer 10.1.2.2 as-number 1
peer 10.1.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 10.1.1.1 enable
peer 10.1.1.1 reflect-client
peer 10.1.2.2 enable
peer 10.1.2.2 reflect-client
#
return
验证查看:
R1上查看A路由,可以明显的看出从R3这个反射器反射来的A路由存在始发路由器的RID放在Originator中;为什么优选R2路由器传递来的,是因为,又选了IGP下mertic小的
R3上查看,效果相同
所以说,对于R2来讲,由于反射进来的路由的Originator-id与自己的RID相同,那么我就不接受这条路由
实验2
实验拓扑
环路产生
A路由经反射器反射后,在三个反射器间进行无休止的传递,产生环路
解决:Cluster_List
将RR的RID在反射路由的时候携带,放到Cluster_List里;每经过一个反射器,记录反射器的RID,放到Cluster-list
配置部署
R4上对R1与R3配置为反射器,R1、R3上相同
[R4-bgp]di th
[V200R003C00]
#
bgp 1
peer 10.1.1.1 as-number 1
peer 10.1.1.1 connect-interface LoopBack0
peer 10.1.3.3 as-number 1
peer 10.1.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 10.1.1.1 enable
peer 10.1.1.1 reflect-client
peer 10.1.3.3 enable
peer 10.1.3.3 reflect-client
#
return
查看R3的BGP路由表,可见存在三条去R2产生的A路径,但是优选的是R2传来的,可以明显的看出R4传递来的Cluster-list长,所以不会产生环路
至此,路由反射器所产生的环路就分析完了