初步了解BGP-2【update-source、水平分割、同步概念】
目录
- 初步了解BGP-2【update-source、水平分割、同步概念】
- Update-source
- IBGP 水平分割
- IBGP与IGP的同步
Update-source
由于BGP无法像IGP那样自动发现邻居,而BGP的邻居需要手动指定邻居,一般情况下邻居为流量的出接口,如果想要成功建立起邻居关系,必须本地配置邻居ip与用于建立BGP的源IP相同时,BGP才能被正常建立。
一般情况下,BGP邻居通过采用配置环回接口为建立邻居的接口,如果不采用环回口进行建立,物理接口如果down,那么BGP邻居就会down,使用环回口一定程度上保证了BGP邻居的稳定性,可以在路由器之间增加一条冗余线路来保证网络层的连通性。
- 如果两台路由器之间是建立的EBGP邻居关系(AS号不同),那么EBGP邻居就会检查路由,默认的TTL是为1,所以EBGP邻居采用环回口建立时,双方的环回口到达对方的跳数是至少两跳,这时候需要配置neighbor 2.2.2.2 ebgp-mul 2
- 在使用环回口作为建立邻居接口的时候,动态路由和静态路由都可以进行邻居的建立,但是如果双方都用默认路由互指,则BGP邻居关系无法建立,这样做达到了防环的问题,但是一边用静态,一边用默认是可以的
IBGP 水平分割
BGP的防环是通过AS-path实现的,而ASPath仅仅在路由离开AS的时候才会被更改,因此在IBGP中就没有EBGP的防环能力,为了防止环路的出现,BGP路由器将不会从IBGP邻居中学习到的路由通告给其他IBGP邻居
- BGP规定不能将通过一个IBGP邻居学习到的路由传递给其他的IBGP邻居,这就是IBGP的水平分割
由于水平分割的存在,所以必须保证IBGP中全互联,才可以使其他路由器学习到路由
IBGP与IGP的同步
在上图所示,AS65102中只有BE启用了BGP,而CD没有启动BGP,IBGP
中使用OSPF协议。BE建立了IBGP邻居,AB,EF建立了EBGP邻居,当A上有1.1.1.0网段注入BGP时,A会将路由传递给B,而B会传递给E,其中是进行了递归传递,对于CD来说,没有开启BGP路由,所以收到的BGP包对他们来说只是一个IP包,并不查看直接转发。最终传递给E,而E传递给F。
当F有数据发送给A的1.1.1.0网段的时候,首先将数据传递给E,E中有关于1.1.1.0的网段信息只有B,所以需要递归传送,到B的下一跳是C或者D,但是对于CD来说他们并不知道1.1.1.0网段在哪里,至此造成路由黑洞
这就是造成路由黑洞的原因,要避免这个问题可以将BGP重分发进入OSPF,但是这样做的后果是无法承担的,BGP承载了太多的路由条目。
【同步的概念】BGP路由器从IBGP邻居学习到一条路由之后,是不启用的,除非他再次从IGP学习到相同的路由时,才会启用。(学习到两次才会正式启用路由)
但是如果IBGP全互联,那么同步就没有意义了,现在思科默认关闭同步规则。