实验拓扑:

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由

环境描述:AR1、AR2运行OSPF协议,但是AR3的环回口0不宣告进OSPF种,AR1、AR3使用环回口建立IBGP邻居关系,AR3、AR4使用直连接口建立EBGP邻居关系。

邻居状态:

ldle (空闲)状态—>Connect(连接)状态—>【Active(激活)状态】—>OpenSent(打开发送)状态—>OpenConfirm(打开确认)状态—>.Established(建立)状态

1、Idle(空闲):初始状态,未发送TCP三次握手,也不发送BGP报文

停留此状态的常见原因:

  • 没有去往邻居的路由

当AR1和AR3建立IBGP邻居关系时,由于AR1没有到达AR3环回口3.3.3.3的路由条目,此时邻居状态会停留在Idle状态。

BGP邻居IDLE bgp邻居状态一直处于connect_其他_02

BGP邻居IDLE bgp邻居状态一直处于connect_TCP_03

BGP邻居IDLE bgp邻居状态一直处于connect_状态机_04

此时可以看到邻居状态一直停留在Idle状态。

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_05

BGP邻居IDLE bgp邻居状态一直处于connect_BGP邻居IDLE_06

  • 到错误通告报文

当AR1和AR3建立IBGP关系以后,其中一方收到错误通告报文时,此时邻居状态会从Established切换到Idle状态。

(在AR1和AR2上配置去往3.3.3.3的静态路由,这样邻居就会成功建立;不直接在AR3上宣告3.3.3.3,后续还用的到静态路由)

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_07

当AR3想要挂起邻居状态时,会向AR1发送一个通告报文,通知AR1切换邻居状态。

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_08

此时如果AR1收到AR3发送的错误通告报文,邻居状态会切换到Idle状态。

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_09

 2Connect(连接):发起TCP三次握手

停留此状态的常见原因(已经向邻居发送SYN握手,但是没收到回复):

去往邻居的网络不通(路径上有策略阻止报文通过,路径设备缺少去往目标的路由,非直连的EBGPTTL值消耗殆尽)

  • 演示路径设备缺少去往目标的路由AR2上没有去往3.3.3.3的静态路由;但AR1上存在去往3.3.3.3的路由,结合第一问,只需要将AR2上的静态路由删掉即可,这时当数据包到达AR2时,会选择丢包)。   

undo掉AR3的挂起状态,此时邻居状态会切换到establish

BGP邻居IDLE bgp邻居状态一直处于connect_BGP邻居IDLE_10

BGP邻居IDLE bgp邻居状态一直处于connect_BGP邻居IDLE_11

去掉AR2去往AR3的静态路由条目,使路由表中不存在到达3.3.3.3的路由

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_12

此时,由于AR2缺少去往AR3的静态路由,虽然AR1发送了TCP三次握手报文,可是报文到达AR2时被丢弃,AR3并没有收到WO收报文,邻居状态会一直停留在Connect。

BGP邻居IDLE bgp邻居状态一直处于connect_其他_13

BGP邻居IDLE bgp邻居状态一直处于connect_TCP_14

3Active(活跃):第一次握手失败,会进入该状态,不断重复发送TCP握手

停留此状态的常见原因(配置错误):

  •  BGP邻居指定错误

由于AR3是使用环回口和AR1建立邻居关系,但是AR1peer地址是AR3接口地址,邻居指定错误

BGP邻居IDLE bgp邻居状态一直处于connect_状态机_15

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_16

此时邻居状态会停留在active

BGP邻居IDLE bgp邻居状态一直处于connect_BGP邻居IDLE_17

BGP邻居IDLE bgp邻居状态一直处于connect_状态机_18

  •      没有指定更新源

当使用环回口建立邻居时,没有指定更新源为环回口

BGP邻居IDLE bgp邻居状态一直处于connect_状态机_19

BGP邻居IDLE bgp邻居状态一直处于connect_状态机_20

状态会一直停留在active

BGP邻居IDLE bgp邻居状态一直处于connect_静态路由_21

BGP邻居IDLE bgp邻居状态一直处于connect_其他_22

4Opensent(打开发送):此时发送Open报文,协商邻居关系

停留此状态的常见原因:

已经向邻居发送完open报文,可是一直没有收到邻居发送的open报文

5、Openconfirm(打开确认):同意邻居的协商参数时,会向邻居发送Keep alive报文,等待对方的keep alive报文。

6Establish(建立连接):当收到对方的keep alive包,进入该状态,发送Update报文更新路由信息