BGP(边界网关协议)-----EBGP多跳和指定更新源问题分析

bgp默认本地优先级是多少 bgp指定更新源_tcp/ip

bgp默认本地优先级是多少 bgp指定更新源_tcp/ip_02

bgp默认本地优先级是多少 bgp指定更新源_运维_03

不指定更新源无法正常建立邻居的原因:

由于BGP建立邻居时将检查收到的BGP报文的源IP地址是否匹配自己配置的neighbor,如果使用Loopback地址建立BGP邻居,必须指定BGP更新源。

问题本质:

因为bgp邻居建立是基于tcp连接的,必须有本端地址和对端地址。指定更新源,实际就是指定发出open包的源地址,也就是tcp连接的本端地址。如果非直连情况下,没有指定源地址,那么按照发包的网络接口绑定的ip发出,这个ip不一定跟对方认为你的ip是同一个ip

根本原因:

BGP并不能主动在网络中寻找邻居,必须手工指定BGP邻居的地址,那么BGP才会将数据包发往指定的地址来请求建立邻居,与此同时,BGP发出的请求数据包除了写明目标IP地址外,还要写上自己的IP地址,即BGP源地址。路由器自己产生流量后从接口发出时,流量从哪个接口被发出,那么这些数据包的源IP地址就是哪个接口的地址。因此当BGP发出数据包寻找邻居时,这些数据包从哪个接口被发出,那么BGP源IP地址就是哪个接口的地址。要两台BGP路由器要正常建立邻居,必须双方路由器都相互指定邻居,相互发送数据包才行。当一台BGP路由器收到建立邻居的请求后,如果发现数据包的目标IP不是自己的BGP源地址,那么就拒绝该连接请求,只有当请求数据包的目标IP与自己的BGP源地址相同时,才可建立BGP邻居。需要注意的是,这个条件只在两个邻居之间,任意一个邻居满足条件即可,并不需要双方都满足,也就是说一方收到的数据包目标IP与自己的BGP源地址相同即可,另一方收到的数据包目标IP与它的BGP源地址不同也没关系,只要单方面符合条件就行,但我们通常都将BGP两端的源与目标保持一致。BGP的源地址是可以随意更改的,但只能是路由器上的接口地址。

结合指定更新源问题,同时分析一下为什么推荐使用环回接口

网络设备环回接口:

loopback接口,在网络设备(一般是路由器)上是一种特殊的接口,它不是物理接口,而是一种看不见摸不着的逻辑接口(也称虚拟接口),但是对于网络设备来说却是至关重要的。
在网络设备上可以通过配置命令来创建一个或多个环回接口,并且可以和配置物理接口一样,配置环回接口的IP地址和掩码,环回接口的掩码一般为全1,即255.255.255.255。环回接口有一个特性,除非设备瘫痪,否则其状态一直是up。这个特性对于路由协议来说非常重要。环回接口是使用广泛的一种逻辑接口。在一个网络中,不同设备的环回接口地址以及同一设备上的不同环回接口地址应该统一规划,避免重复。

bgp默认本地优先级是多少 bgp指定更新源_源地址_04

在上图中,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 的连接仍然保持而不会中断,实现了连接的冗余性和稳定性。

bgp默认本地优先级是多少 bgp指定更新源_网络_05