7*24小时值班咨询手机:15101073985(微信同号)   
CCIE
当前位置:网站首页>CCIE
ccie培训:BGP 更新源
发布日期:2019-09-10 10:56:51 发布者:
    BGP并不能主动在网络中寻找邻居,必须手工指定BGP邻居的地址,那么BGP才会将数据包发往指定的地址来请求建立邻居,与此同时,BGP发出的请求数据包除了写明目标IP地址外,还要写上自己的IP地址,即BGP源地址。路由器自己产生流量后从接口发出时,流量从哪个接口被发出,那么这些数据包的源IP地址就是哪个接口的地址。因此当BGP发出数据包寻找邻居时,这些数据包从哪个接口被发出,那么BGP源IP地址就是哪个接口的地址。要两台BGP路由器要正常建立邻居,必须双方路由器都相互指定邻居,相互发送数据包才行。当一台BGP路由器收到建立邻居的请求后,如果发现数据包的目标IP不是自己的BGP源地址,那么就拒绝该连接请求,只有当请求数据包的目标IP与自己的BGP源地址相同时,才可建立BGP邻居。需要注意的是,这个条件只在两个邻居之间,任意一个邻居满足条件即可,并不需要双方都满足,也就是说一方收到的数据包目标IP与自己的BGP源地址相同即可,另一方收到的数据包目标IP与它的BGP源地址不同也没关系,只要单方面符合条件就行,但我们通常都将BGP两端的源与目标保持一致。BGP的源地址是可以随意更改的,但只能是路由器上的接口地址。

    如下图


ccie培训


    在上图中,R1与R2之间有两条链路,当配置BGP邻居时,如果R1指定邻居地址为12.1.1.2,R2指定邻居地址为12.1.1.1,那么在建立邻居过程中,R1将请求数据包从接口F0/0发出,数据包的目标IP为12.1.1.2,BGP源地址为F0/0的接口地址12.1.1.1, 当R2将请求数据包从接口F0/0发出时,数据包的目标IP为12.1.1.1,BGP源地址为F0/0的接口地址12.1.1.2,由于R1发出的数据包目标IP12.1.1.2与R2的BGP源地址12.1.1.2完全相同,所以最终能够正常建立BGP邻居。R1在检测地址时,R2的目标IP与R1的源也完全相同,通常我们都保证双方一致。

    当R1与R2之间的直连接口F0/0中断后,如果双方将数据包从S0/0发出,那么R1的源地址就是10.1.1.1,R2的源地址就是20.1.1.2,由此可以看出,双方发出的数据包的目标IP都与对方的源地址不符,所以无法建立BGP邻居。虽然在上面的网络环境中,双方路由器之间都拥有多条链路,在中断某条链路之间,仍然可以通信,但是这并不能保证BGP邻居的永久连接。为了使拥有多条链路的BGP邻居之间永远保持连接,考虑到路由器的loopback口在设备正常工作的情况下,不会像物理接口那样出现中断,所以建议在BGP邻居之间使用loopback接口的地址来建立TCP连接,当指定邻居时,不再将邻居的地址指定为对方物理接口地址,而改为指定对方的loopback地址,这样一来,既然物理接口中断,只要还有通畅的链路,那么BGP邻居仍然可以保持连接。在将BGP邻居地址指定为对方loopback地址时,为了使数据包的目标IP与对方的BGP源地址相同,所以邻居也要将BGP源地址更改为自己的loopback接口地址,从而使得双方正常建立BGP连接。

    在上图中,当R1指定邻居地址为2.2.2.2,BGP源地址为1.1.1.1,而R2指定邻居地址为1.1.1.1,BGP源地址为2.2.2.2,这样一来,双方的目标IP都与对方的BGP源地址相同,所以可以正常建立邻居,并且在双方链路中,任何一条链路断开,都不影响邻居的会话,BGP的连接仍然保持而不会中断,实现了连接的冗余性和稳定性。

微信