实验拓扑:
环境描述: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状态。
此时可以看到邻居状态一直停留在Idle状态。
- 到错误通告报文
当AR1和AR3建立IBGP关系以后,其中一方收到错误通告报文时,此时邻居状态会从Established切换到Idle状态。
(在AR1和AR2上配置去往3.3.3.3的静态路由,这样邻居就会成功建立;不直接在AR3上宣告3.3.3.3,后续还用的到静态路由)
当AR3想要挂起邻居状态时,会向AR1发送一个通告报文,通知AR1切换邻居状态。
此时如果AR1收到AR3发送的错误通告报文,邻居状态会切换到Idle状态。
2、Connect(连接):发起TCP三次握手
停留此状态的常见原因(已经向邻居发送SYN握手,但是没收到回复):
去往邻居的网络不通(路径上有策略阻止报文通过,路径设备缺少去往目标的路由,非直连的EBGPTTL值消耗殆尽)
- 演示路径设备缺少去往目标的路由(AR2上没有去往3.3.3.3的静态路由;但AR1上存在去往3.3.3.3的路由,结合第一问,只需要将AR2上的静态路由删掉即可,这时当数据包到达AR2时,会选择丢包)。
undo掉AR3的挂起状态,此时邻居状态会切换到establish
去掉AR2去往AR3的静态路由条目,使路由表中不存在到达3.3.3.3的路由
此时,由于AR2缺少去往AR3的静态路由,虽然AR1发送了TCP三次握手报文,可是报文到达AR2时被丢弃,AR3并没有收到WO收报文,邻居状态会一直停留在Connect。
3、Active(活跃):第一次握手失败,会进入该状态,不断重复发送TCP握手
停留此状态的常见原因(配置错误):
- BGP邻居指定错误
由于AR3是使用环回口和AR1建立邻居关系,但是AR1peer地址是AR3接口地址,邻居指定错误
此时邻居状态会停留在active
- 没有指定更新源
当使用环回口建立邻居时,没有指定更新源为环回口
状态会一直停留在active
4、Opensent(打开发送):此时发送Open报文,协商邻居关系
停留此状态的常见原因:
已经向邻居发送完open报文,可是一直没有收到邻居发送的open报文
5、Openconfirm(打开确认):同意邻居的协商参数时,会向邻居发送Keep alive报文,等待对方的keep alive报文。
6、Establish(建立连接):当收到对方的keep alive包,进入该状态,发送Update报文更新路由信息