BGP五种报文类型及实战应用解析
Open 报文:自我介绍信
作用:帮助两个路由器确认彼此的身份信息。
自我介绍:发送方(R1)发送一个包含自身AS号的报文,例如“我是AS100,希望每60秒联系一次”。
对方回应:接收方(R2)必须确认AS号是否正确,否则会导致断联。如果AS号正确,R2会发送一个类似的报文。
验证:双方必须同时发送自我介绍,否则可能无法建立连接。这种验证确保了双方身份的正确性。
注意事项:AS号必须唯一且正确,避免假AS号的出现。这种报文是BGP连接的基础,确保了双方的初步身份验证。

Update 报文:路线变更通知
作用:通知对方哪些地址能到达(新增路由)和哪些地址不通(撤销路由)。
详细工作流程:
数据准备:发送方(R1)收集所有最新的路由信息,包括新增和删除的路由。
报文结构:Update报文由发送方的AS号、目的AS号、路由信息组成,例如:“从AS100到AS200的路由是192.168.1.1/24”。
发送与处理:R1发送Update报文给R2,R2检查是否已收到并确认新路由。如果R2未收到,可能需要发送自己的Update报文以确认。
注意事项:每次发送只传输变化部分,节省流量。如果发送的路由信息错误(如声称能到达无法到达的地址),会导致网络混乱。

Keepalive 报文:心跳消息
作用:定期确认对方是否活着,确保网络的连通性。
详细工作流程:
时间设置:双方在配置中设置相同的保活时间,通常是每20秒一次。
报文频率:根据保活时间,发送方每20秒发送一次Keepalive报文,例如:“我还活着”。
验证:接收方在收到Keepalive报文后,如果超过保活时间未收到回复,可能会发送Notification报文,要求断开连接。
注意事项:保活时间需要一致,否则可能导致一方多次发送或等待过久。Keepalive报文只占19字节,不会占用太多带宽。

Notification 报文:绝交信
作用:发现对方违规时,立即断绝关系。
详细工作流程:
常见违规类型:
错误码2:对方AS号错误,例如发送了错误的AS号。
错误码3:路由环路,例如绕回自身家。
处理流程:发送方发送Notification报文,例如:“你填写的AS号是假的!请断开连接。”接收方如果未回复或拒绝,发送方必须重新加对方为邻居才能恢复联系。
注意事项:一旦发送Notification报文,必须确保双方再次建立连接才能恢复关系。这种报文是BGP中重要的断联机制,确保网络的安全性。

Route-Refresh 报文:地图重传请求
作用:让路由器发送最新的路由信息,无需断开连接。
详细工作流程:
数据准备:发送方(R1)收集最新的路由信息,包括所有更新的路由。
报文结构:Route-Refresh报文由发送方的AS号和最新的路由信息组成,例如:“从AS100到所有地址的最新路由是192.168.1.1/24”。
发送与处理:R1发送Route-Refresh报文给R2,R2检查是否已收到并确认新路由。如果R2未收到,可能需要发送自己的Route-Refresh报文以确认。
注意事项:Route-Refresh报文可以避免频繁断联,适合需要频繁更新的情况。如果发送的路由信息错误,可能导致网络混乱。

六种状态机:友谊的六个阶段
Initial(初始)
状态:刚购买路由器,未开启BGP功能。
行为:不主动加邻居,也不通过好友申请。
检查:确认是否开启BGP功能。

Connect(尝试连接)
状态:主动或被动尝试加对方为邻居。
行为:疯狂点击“加好友”按钮,等待对方确认。
检查:对方IP是否正确。防火墙是否开放179端口。

Active(被动等待)
状态:双方都在等待对方确认。
行为:每隔2分钟重试一次加好友。
问题:双方同时等待,导致僵持状态。

OpenSent(已发送开放信息)
状态:双方确认身份,开始发送Update报文。
行为:发送自我介绍信,确认AS号一致。
检查:对方AS号是否正确。保活时间是否一致。

OpenConfirm(已确认)
状态:确认成功,进入稳定连接状态。
行为:定期发送Keepalive报文。
断联条件:连续3次未收到回复。对方发送违规内容。

Established(稳定连接)
状态:成为稳定的好友,日常操作正常。
行为:发送Update报文更新路由。发送Keepalive报文保持连接。
检查:对方是否在稳定状态下。路由器是否正常运行

实战示例:排查网络断网问题
现象:BGP邻居一直卡在Active状态。 排查步骤:
检查加好友流程:确认双方IP是否正确。防火墙是否开放179端口。
查看报文状态:确认双方是否已发送开放信息。检查保活时间是否一致。
解决方法:一方发送Notification报文,要求对方确认AS号。使用debug bgp命令查看详细报文,找出问题所在。

总结:BGP的核心要点
BGP是网络中的“五笔字型”:不关心数据如何传输,只关心如何选择路由。
五种报文是网络连接的“工作流程”:Open → Update → Keepalive → Notification → Route-Refresh。
状态机是人际关系的“阶段图”:从陌生人到稳定好友,中间任何一步出错都会导致网络问题。
