第三问:BGP有哪些防环机制
BGP防环机制
⼀、AS之间防环:
通过AS-path(AS号)防环,每经过⼀个AS,会添加该AS的AS编号在AS-Path的最前⾯,当从EBGP邻居得到⼀条路由时,会检查该路由的AS-path有没有⾃⾝所在AS,如果有则,丢弃,如果没有则继续。
如果有如果
如图,AR1为AS1 …当AR1上⼀条路由1.1.1.1/32 传递到AR2时
因为是从EBGP邻居AS1传过来的,所以会加上AS号,当这条路由传递给AR3时,
会在最前⾯加上AR2的AS号,以此来达到防环的⽬的。
⼆、AS内部防环
IBGP⽔平分割:IBGP邻居之间通过IBGP的⽔平分割防⽌环路,即:从IBGP邻居学到的路由不会更新给其他IBGP邻居。
所以要实现AS内部每台路由器都可以学习到路由,需要建⽴IBGP邻居全互联(路由器数⽬很⼤的时候,很⿇烦)。可以通过反射器,联盟…解决。
说到反射器RR,就要讲⼀下有两种⾓⾊(经过产品⽂档科普有五种⾓⾊).
分别是
路由反射器(RR):可以把从IBGP邻居学习到的路由反射给其他IBGP对等体。类似OSPF中的DR
客户机(client):跟RR形成反射邻居关系的IBGP设备
⾮客户机(Non-client):既不是RR也不是客户机的设备
始发者(Originator):在AS内部始发路由的设备,Originator-ID⽤于防⽌环路
**集(Cluster):**路由反射器及其客户机的集合,Cluster-list属性⽤于防⽌集之间环路。
RR反射路由规则
RR对待两种⾓⾊传来的路由有不同的处理⽅式
1.从客户端传来的路由会传递给所有客户端和⾮客户端(发送这条路由除外)
2.从⾮客户端传来的路由,传递给所有客户端
3.从EBGP邻居传递过来的路由,会发送给所有客户端和⾮客户端。
上⾯提到的反射器,通过两种属性来防环
originator-id 和 cluster-list
我们先讲originator-id属性
AR5678 都在同⼀个AS内
AR7,AR6为RR
当AR8将路由传递给AR7时,会在originator属性标记上⾃⼰的router-id,这样路由经过反射,再给⾃⼰的时候,发现这条路由就是⾃⼰发出去的,所以就丢弃。
cluster-list属性
就是反射路由的时候会将⾃⼰的cluster-id(默认为router-id)写进cluster-list,当接收这条路由发现cluster-list⾥⾯有⾃⼰的cluster-id,就会拒收路由器,这样防环的。
总结⼀下:
AS内部:IBGP⽔平分割,RR的两种属性(originato-id,cluster-list)
AS之间:AS-Path
补充 BGP防环还有 BGP soo属性防环
SOO防环:SOO 的防环机制,是在PE传递路由给CE的时候,检查出接⼝配置的SOO值是否与从其他MP-BGP邻居收到的VPNv4路由的SOO值⼀致,如果⼀致,就不传给CE。