大型网络中的BGP的报文类型详解,及状态机,理论+实战

一、BGP的报文

1、Open报文:用于建立BGP对等体连接。(AS,RID,holdtime 180s)

2、Update报文:用于在对等体之间交换路由信息。(NLRI,网络层可达信息,即路由前缀及对应的属性,公认必遵:下一跳、起源和AS-path)

3、Notification报文:用于中断BGP连接。(错误通知)

4、Keepalive报文:用于保持BGP连接。//保活报文(60s)

5、Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

二、BGP拓扑

大型网络中的BGP的报文类型详解,及状态机,理论+实战

[R1-bgp]peer 10.1.15.5 ignore //主动断开到R5的邻居关系

大型网络中的BGP的报文类型详解,及状态机,理论+实战

通过抓包可以查看到FIN(主动发起断开连接)位为1

大型网络中的BGP的报文类型详解,及状态机,理论+实战

[R1-bgp]undo peer 10.1.15.5 ignore 恢复BGP邻居关系

大型网络中的BGP的报文类型详解,及状态机,理论+实战

[R1-bgp]timer keepalive 70 hold 210 //修改keepalive时间,时间不同不影响邻居关系建立,两端keepalive设置不一样情况则两端统一采用较小的时间值

<R1>refresh bgp all export //出方向刷新自身的路由策略,发出去更新报文。

<R1>refresh bgp all import //请求邻居刷新策略,把更新发回本设备

<R1>display bgp peer verbose//查看详细的BGP邻居信息

大型网络中的BGP的报文类型详解,及状态机,理论+实战

三、BGP状态机

大型网络中的BGP的报文类型详解,及状态机,理论+实战

邻居状态:

 

1、IDLE,没有建立TCP 连接

原因:EBGP通过环回口建立邻居,忘记配置多跳,没有到达对端更新源的路由,在地址族中没有**邻居

大型网络中的BGP的报文类型详解,及状态机,理论+实战

查看BGP邻居关系为IDLE:

大型网络中的BGP的报文类型详解,及状态机,理论+实战

[R2-bgp]peer 66.1.1.1 ebgp-max-hop 2//配置多跳后邻居关系正常

大型网络中的BGP的报文类型详解,及状态机,理论+实战

在ipv4地址簇下面关闭**邻居后出现IDLE,ipv4单播默认**,其他协议默认不**

大型网络中的BGP的报文类型详解,及状态机,理论+实战

2、CONNECT

在重连计时器时间内和邻居尝试建立TCP连接,BGP发起第一个TCP连接,如果连接重试计时器超时,就重新发起TCP连接,并继续保持在Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态。

3、ACTIVE

没有构建TCP会话,指定错误的TCP目的地址,指定错误的更新源

4、OpenSent:在此状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive报文,并复位Keepalive计时器,开始计时。同时转入OpenConfirm状态。

5、OpenConfirm确认收到open报文,在OpenConfirm状态,BGP等待一个Keepalive报文,同时复位保持计时器,如果收到了一个Keepalive报文,就转入Established阶段,BGP邻居关系就建立起来了。

6、Established在Established状态,BGP邻居关系已经建立,这时,BGP将和它的邻居们交换Update报文,同时复位保持计时器。

BGP对等体双方的状态必须都为Established,BGP邻居关系才能成立,双方通过Update报文交换路由信息。

 

欢迎关注转发学网络小伙伴们,关注分享该WX Gongzhonghao,持续分享干货网络技术。

大型网络中的BGP的报文类型详解,及状态机,理论+实战

同时为方便广大网络爱好者一起共同学习交流,开设了华为&思科网络技术交流qun,qun里上传大量免费学习资料,欢迎广大网络爱好者进群学习交流!

大型网络中的BGP的报文类型详解,及状态机,理论+实战