网站首页 > 教程文章 正文
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。
- 状态机是人际关系的“阶段图”:从陌生人到稳定好友,中间任何一步出错都会导致网络问题。
猜你喜欢
- 2025-04-01 BGP高级特性:骨干网配置OSPF协议,配置EBGP/IBGP对等体与多级RR
- 2025-04-01 VXLAN故障案例——设备BFD/BGP协议振荡并存在路由超限告警
- 2025-04-01 5G承载(2):5G承载的路由技术是怎样的?
- 2025-04-01 网络工程师必备:路由器配置命令大全
- 2025-04-01 6 分钟看完 BGP 协议(bgp协议有什么用)
- 2025-04-01 BGP排障和设计问题 论述题(bgp设计与实现)
- 2025-04-01 2023年下半年计算机软考网络工程师试题解析
- 2025-04-01 智安网络丨32张图详解BGP路由协议:BGP基本概念、BGP对等体等
- 2025-04-01 BGP的认证功能(bgp公认)
- 2025-04-01 网络工程师的24小时:机房泡面香,代码催人老
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)