BGP状态机制
Idel---connect---active---opensent---Openconfirm---Establieshed
Idle:初始状态,未发送TCP三次握手,也不发送BGP报文。
Connect 发起TCP三次握手,在 Connect 状态下,BGP 启动连接重传定时器,等待 TCP 完成连接。
Active:第一次握手失败,会进入该状态,不断重复发送TCP握手,如果连接成功进入OpenSent,失败继续停留在active,重传定时器超时回到connect。
OpenSent:在 OpenSent 状态,BGP 等对等体的 Open 报文,并对收到的 Open 报文中的 AS 号,版本号,认证信息等进行检查,如果Open报文正确,发送keepalive报文,重置keepallive定时器,进入下一个阶段。
Openconfim-----自己发送 Keeplive-----等待对方的 Keeplieve
在 OpenConfirm 状态下,BGP 等待 Keepalive 或 Notification 报文
如果收到Keepalive报文,进入Established;收到Notification报文,则转到Idle
Established: 可以与对等体交换Update、Keepalive、Route-refresh、Notification报文。状态停留在Established说明bgp邻居状态正常。
无法形成邻居的因素:
停留在Idel状态:
1、route-id冲突,或未配置route-id(在全网ipv6的场景下)
2、两端地址族不匹配
3、双方为回环口建立邻居关系,双方都配置了默认路由
4、BGP不会用默认路由主动发起(BGP TCP session,但是可以被动接受session请求)
5、peer ignore命令禁止与对等体(组)建立会话
停留在Conect状态:
1、认证不通过
2、底层路由不可达
3、非直连的EBGPTTL值消耗殆尽
4、存在过滤tcp 179端口的策略
停留在Active状态:
1、AS号指错
2、使用回环口建立没指定更新源
停留在Opensent状态:
1、已经向邻居发送完open报文,可是一直没有收到邻居发送的open报文