新年第二题:什么是BGP同步
新年第二问:BGP同步
什么是BGP同步
BGP同步规则:在开启同步下,从IBGP收到的一条路由不会传给任何EBGP邻居(实验效果IBGP邻居和EBGP邻居都不传),除非从自身IGP中也学到这条路由,目的是防止AS内部出现路由黑洞,向外部通告了一个本AS不可达的虚假路由。
下面我们通过一个小实验来看看
AR1与AR3 IBGP AR4与AR3 IBGP
AR3为反射器
AR5与AR3建立EBGP关系
AR2不运行BGP
由于缺省情况下BGP同步功能是关闭的
但是我找了好久,也没有命令找到如何开启BGP同步,我猜华为应该不准开BGP同步。
这里讲一下,R1上发布一条1.1.1.1/24的路由,如果在R3的BGP进程中开启了同步,R3收到1.1.1.1 路由不是best路由,也不会放进R3的路由表中,更不会传给R4,R5。同步默认是关闭的,所以R3会传递给R4,R5。这样就会造成在R5上访问1.1.1.1:R5数据包给R3,R3给R2,R2收到数据包后由于目标地址不可达而丢弃数据包,此现象称为路由黑洞。
我们来看R5
已经有了1.1.1.1 路由,但是ping不通,其中原理就是上面讲到的BGP同步如果关闭了,就可能会造成路由黑洞
EBGP和IBGP传递路由的时候有什么区别
1.从IBGP邻居学习到的路由向EBGP传递时,下一跳会改成自己,从EBGP邻居学到的路由向IBGP传递时,下一跳不改变
2.传递给EBGP邻居时,会添加自己的AS号,传递给IBGP邻居时不添加自己的AS号。
3.EBGP传递路由的时候剥离本地优先级(Local-Pref),而传递给IBGP邻居时,不会剥离
4.从IBGP邻居学到的路由传给EBGP邻居的时候,MED默认剥离,但是从EBGP邻居收到路由传递给IBGP邻居时候MED不变。MED为公认任意属性
5.向IBGP反射路由时,保留起源ID属性(防环),向EBGP传递路由时,剥离这个属性