网络协议—BGP协议

admin 2025-12-30 01:16:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章系统梳理BGP协议原理与实战:先讲AS、ASN、eBGP/iBGP概念,再按Idle到Established六状态拆解邻居建立流程,随后给出R1-R3拓扑的完整配置、验证截图与报文抓包,逐字节解析OPEN、KEEPALIVE、UPDATE、NOTIFICATION格式,演示路由宣告与撤销过程,并总结常见Cease子码,可对照实验复现及排障。 综合评分: 82 文章分类: 网络协议,安全建设,技术标准,解决方案,安全培训


cover_image

网络协议—BGP协议

原创

老五

老五说网络

2025年12月29日 16:30 陕西

一、基本概念

    BGP(Border Gateway Protocol,边界网关协议)是互联网核心的外部网关协议(EGP),用于在不同的自治系统(Autonomous System, AS)之间交换路由信息。它是目前唯一广泛使用的域间路由协议,负责在全球范围内实现互联网的可达性。

  • 自治系统(AS):由一个组织或 ISP 管理的一组 IP 前缀和路由器,使用统一的内部路由策略。
  • AS 号(ASN):每个 AS 有一个唯一的编号(16 位或 32 位),如 AS15169(Google)、AS13335(Cloudflare)。
  • eBGP(External BGP):运行在不同 AS 之间的 BGP,用于交换外部路由。
  • iBGP(Internal BGP):运行在同一 AS 内部的 BGP,用于将外部路由在整个 AS 内传播。

二、BGP 报文类型和邻居状态

1、报文类型

  • Open:建立邻居关系(包含 ASN、BGP 版本、Hold Time 等)
  • Update:通告或撤销路由(携带 NLRI、路径属性等)
  • Keepalive:维持 BGP 会话(默认每 60 秒一次)
  • Notification:报告错误并关闭连接
  • Route-refresh(可选):请求对等体重新发送路由(用于软重配)

2、邻居状态

  1. Idle(空闲):初始状态,拒绝所有连接;等待启动事件(如配置邻居)
  2. Connect(连接):尝试 TCP 连接 发起 TCP SYN,等待三次握手完成
  3. Active(活跃):主动重试连接 TCP 失败后,持续尝试建立连接
  4. OpenSent(Open 已发送):已发送 Open 报文,等待对方的 Open 报文
  5. OpenConfirm(Open 已确认):等待 Keepalive 收到对方 Open 后,等待 Keepalive 或 Notification
  6. Established(已建立):正常运行,可交换 Update、Keepalive 等路由信息。

三、BGP基本配置实验

1、实验拓扑

2、实验配置

R1:

# sysname R1#interface LoopBack0 ip address 1.1.1.1 255.255.255.255#interface LoopBack1 ip address 11.1.1.1 255.255.255.255#interface GigabitEthernet0/0 port link-mode route combo enable copper ip address 12.1.1.1 255.255.255.0#bgp 65501 router-id 1.1.1.1 peer 12.1.1.2 as-number 65502 # address-family ipv4 unicast  network 1.1.1.1 255.255.255.255  network 11.1.1.1 255.255.255.255  peer 12.1.1.2 enable#

R2:

# sysname R2#ospf 1 area 0.0.0.0  network 2.2.2.2 0.0.0.0  network 23.1.1.0 0.0.0.255#interface LoopBack0 ip address 2.2.2.2 255.255.255.255#interface GigabitEthernet0/0 port link-mode route combo enable copper ip address 12.1.1.2 255.255.255.0#interface GigabitEthernet0/1 port link-mode route combo enable copper ip address 23.1.1.1 255.255.255.0#bgp 65502 router-id 2.2.2.2 peer 3.3.3.3 as-number 65502 peer 3.3.3.3 connect-interface LoopBack0 peer 12.1.1.1 as-number 65501 # address-family ipv4 unicast  import-route direct  peer 3.3.3.3 enable  peer 12.1.1.1 enable#

R3:

# sysname R3#ospf 1 area 0.0.0.0  network 3.3.3.3 0.0.0.0  network 23.1.1.0 0.0.0.255#interface LoopBack0 ip address 3.3.3.3 255.255.255.255#interface GigabitEthernet0/0 port link-mode route combo enable copper ip address 23.1.1.2 255.255.255.0#bgp 65502 router-id 3.3.3.3 peer 2.2.2.2 as-number 65502 peer 2.2.2.2 connect-interface LoopBack0 # address-family ipv4 unicast  peer 2.2.2.2 enable#

3、实验验证

R1:邻居关系以及BGP路由表

R2:邻居关系以及BGP路由表

R3:邻居关系,BGP路由表,连通性测试

四、BGP协议报文分析

    上述内容描述两个设备之间的BGP对等体通信,源 IP 和目标 IP 是 12.1.1.1 和 12.1.1.2。这是典型的BGP邻居关系建立过程。

1、OPEN报文:BGP 会话建立流程(正常)

  • 双方都发送了 OPEN 消息,表示尝试建立 BGP 会话。
  • 通常在收到对方 OPEN 后,如果参数匹配(如 AS 号、版本),就会进入 Established 状态。

说明:BGP 会话已成功建立!

️2、KEEPALIVE报文: 消息频繁交换

  • 大量的 KEEPALIVE Message 在双向传输,时间间隔大约为 60 秒左右,符合默认的 Hold Timer = 180s, Keepalive = 60s 的设置。

说明:BGP 会话稳定运行中,没有中断。

3、UPDATE报文:路由更新

  • 表示双方交换了路由信息
  • 通常在 BGP 建立后,会通过 UPDATE 发送可达路径或撤销路由

说明:BGP 路由已开始同步,网络处于正常工作状态

  1. 分析新增路由或者撤销路由的报文

注:新增对 IP 地址 3.3.3.3/32 的路由宣告,提供完整路径信息,让对等体知道如何到达该网络。

边界网关协议(BGP)    更新消息(UPDATE Message)        标记:16 字节        长度:48 字节        类型:更新消息(2)        不可达路由长度:0 字节        总路径属性长度:20 字节        路径属性:            ORIGIN:IGP(4 字节)                标志:0x40(公认、可传递、完整)                类型码:ORIGIN(1)                长度:1 字节                起源:IGP(0)            AS_PATH:65502(9 字节)                标志:0x40(公认、可传递、完整)                类型码:AS_PATH(2)                长度:6 字节                AS 路径:65502            NEXT_HOP:12.1.1.2(7 字节)                标志:0x40(公认、可传递、完整)                类型码:NEXT_HOP(3)                长度:4 字节                下一跳:12.1.1.2(即本设备地址)        网络层可达性信息(NLRI):5 字节            3.3.3.3/32                NLRI 前缀长度:32                NLRI 前缀:3.3.3.3(即 IP 地址 3.3.3.3)

注:撤销了对 IP 地址 3.3.3.3/32 的路由宣告,该网络不可达的报文。

边界网关协议(BGP)    更新消息(UPDATE Message)        标记:16 字节        长度:28 字节        类型:更新消息(2)        不可达路由长度:5 字节        撤销的路由:           3.3.3.3/32                撤销路由前缀长度:32                撤销的前缀:3.3.3.3(即 IP 地址 3.3.3.3)        总路径属性长度:0 字节

4、Notification 报文

    通过在R2上进行删除了邻居指向后,12.1.1.2 发送给 12.1.1.1,主动终止 BGP 会话,产生了Notification 报文。具体报文格式如下:

边界网关协议(BGP)    通知消息(NOTIFICATION Message)        标记:16 字节        长度:21 字节        类型:通知消息(3)        错误代码:终止(Cease)(6)        错误子代码:对端未配置(Peer Unconfigured)(3)

 小知识:常见的 Cease Subcode

公众号:老五说网络

长按左侧二维码关注


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:老五说网络 老五《网络协议—BGP协议》

评论:0   参与:  0