首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >网工干货|BGP 超详细入门指南(原理 + 分类 + 报文 + 状态机 + 实操配置)

网工干货|BGP 超详细入门指南(原理 + 分类 + 报文 + 状态机 + 实操配置)

作者头像
ICT系统集成阿祥
发布2026-06-04 13:31:14
发布2026-06-04 13:31:14
690
举报
文章被收录于专栏:数通数通

前言:OSPF、IS-IS、RIP 等 IGP 仅适用于单个 AS 自治域内部路由互通,只能依靠开销选路、大规模组网路由管控乏力;跨运营商、跨集团多 AS 互联,BGP 是业界唯一标准协议。本文从 AS 概念→BGP 特性→邻居分类→报文→状态机→路由生成→路由规则→全套华为配置全覆盖。

一、为什么需要 BGP?自治系统 AS 是什么

随着网络体量变大,RIP、OSPF、IS-IS 等 IGP 短板暴露:仅依靠开销选路、路由承载能力有限,无法支撑大型跨域组网,**AS(自治系统)** 应运而生。

  1. AS 定义: 同一机构运维、统一路由策略的一组路由器集合,不同 AS 依靠AS 编号区分,AS 号由 IANA 统一分配。
  2. AS 编号: 16bit(0~65535):公有 AS:1~64511;私有 AS:64512~65535(内网专用,公网不可路由)32bit:公有 AS 全球分配,私有 AS 段:4200000000~4294967294

3. 核心结论

AS 内部跑 IGP(OSPF/ISIS),AS 之间跨域路由必须使用 BGP

二、BGP 协议基础特性

BGP 全称边界网关协议,归类应用层协议,依托 TCP 传输,固定目的端口179,也是典型路径矢量路由协议,区别于 IGP 链路状态 / 距离矢量:

  1. 依托 TCP可靠传输:自带可靠传输、差错重传,不用像 OSPF 自研保活机制;
  2. 触发更新:路由变化才发送更新报文,周期性仅发保活报文,节省带宽;
  3. 靠路径属性控路由:不靠 Cost 开销选路,多样路径属性实现路由引流、备份、管控,是运营商灵活调度路由的关键。
  4. 邻居手动配置:无法像 OSPF 组播自动发现邻居,必须手工指定 peer IP。

三、两种 BGP 邻居:EBGP & IBGP

BGP 邻居无法像 OSPF 自动组播发现,必须手动指定对等体 IP 建立邻居,分两大类,建邻规则差异巨大:

1.EBGP(不同 AS 之间邻居)

  • 跨自治域设备建立,默认报文 TTL=1,仅直连可正常建邻
  • 若用 Loopback 环回口跨网段建 EBGP,需配置ebgp-max-hop 255修改 TTL;
  • 修改发送报文源 IP:peer X.X.X.X connect-interface LoopBack0

2.IBGP(同一个 AS 内部邻居)

  1. AS 域内路由器邻居,默认 TTL=255,工程中主流用 Loopback 环回口搭建

IBGP 核心规则:IBGP 水平分割,从 IBGP 邻居学到的路由,不再转发给其他 IBGP 邻居。

建邻 7 大必要条件

  • 对端 BGP 报文源 IP = 本端配置的 peer 地址
  • 两端配置的邻居 AS 号和实际设备 AS 一致
  • 全网 Router-ID 不重复
  • Holdtime 取两端协商最小值,Keepalive=Holdtime/3
  • 协商相同地址族 AFI(默认 IPv4 单播)
  • Peer IP 路由可达、TCP 179 端口通
  • BGP 版本一致(V4 通用)

场景 1:EBGP 直连接口建立邻居(AR1:AS100,AR2:AS200,互联 10.1.12.0/24)

AR1 配置

代码语言:javascript
复制
sysname AR1
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0
#
bgp 100
 router-id 1.1.1.1
 peer 10.1.12.2 as-number 200  //指定邻居IP+对端AS号

AR2 配置

代码语言:javascript
复制
sysname AR2
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0
#
bgp 200
 router-id 2.2.2.2
 peer 10.1.12.1 as-number 100

场景 2:EBGP 使用 Loopback 跨网段建邻(必配:修改源 + TTL)

AR1 环回:1.1.1.1/32,AR2 环回:2.2.2.2/32,中间链路三层互通

AR1配置

代码语言:javascript
复制
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
#
bgp 100
 router-id 1.1.1.1
 peer 2.2.2.2 as-number 200
 peer 2.2.2.2 connect-interface LoopBack0  //指定BGP报文源IP为环回口
 peer 2.2.2.2 ebgp-max-hop 255               //修改EBGP TTL,解决跨网段不可达

AR2配置

代码语言:javascript
复制
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
bgp 200
 router-id 2.2.2.2
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0
 peer 1.1.1.1 ebgp-max-hop 255

场景 3:IBGP 同 AS 环回建邻(同 AS100,默认 TTL255 无需改跳数)

AR1:1.1.1.1,AR2:2.2.2.2

代码语言:javascript
复制
//AR1
bgp 100
 router-id 1.1.1.1
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
//AR2
bgp 100
 router-id 2.2.2.2
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0

四、BGP 五种报文详解

5 种 BGP 报文各司其职

  1. Open:TCP 握手完成后首发,协商 AS 号、Router-ID、Holdtime、协议能力,是邻居建立敲门砖;
  2. Keepalive:协商成功后周期性发送,保活邻居,Holdtime 协商值 ÷3 为发送周期;收到即进入 Established;
  3. Update:核心路由报文,发布可达路由(NLRI 字段)、撤销失效路由(Withdrawn 字段),携带全套路径属性;
  4. Notification:检测异常立即发送,报错并直接断开 BGP 邻居;
  5. Route-refresh:修改路由策略后,请求对端重新推送全部路由,无需断连重建邻居。

五、BGP 六状态机(故障排查必背)

Idle→Connect→Active→OpenSent→OpenConfirm→Established

  1. Idle 空闲:无去往 peer 明细路由、对端 TCP 源 IP 不匹配,卡在 Idle;默认路由不能用于 BGP 建邻
  2. Connect 连接:发起 TCP 连接,5s 重传 SYN,32s 重试整轮连接;有路由但对端无回程路由卡死;
  3. Active 活跃:TCP 反复建连失败,大概率两端 BGP 源目 IP 不匹配AS 配置错误
  4. OpenSent:TCP 建立成功,本机发出 Open 报文,等待对端 Open;
  5. OpenConfirm:Open 协商无误,收发 Keepalive 报文;AS 号错误会在 Idle/Active 来回震荡;
  6. Established:邻居完全 UP,正常收发 Update 交互路由。

六、BGP 路由来源:BGP 只搬运、不计算路由

BGP 无法自动生成路由,所有 BGP 路由均从设备 IP 路由表导入,3 种路由注入方式:

1.network(精准注入,匹配路由表精确网段 + 掩码

代码语言:javascript
复制
bgp 100
 network 1.1.1.1 255.255.255.255  //IP路由表存在该条目才注入BGP

2.import-route(批量引入:直连 / 静态 / OSPF/ISIS

代码语言:javascript
复制
bgp 100
 import-route direct    //引入全部直连路由
 import-route ospf 1   //引入OSPF 1进程路由

3.aggregate(路由聚合,汇总明细生成聚合路由

代码语言:javascript
复制
bgp 100
 aggregate 10.0.0.0 255.255.0.0

七、BGP 四大路由通告 & 下一跳规则(重中之重)

(一)路由发布 5 条原则

  1. BGP仅发布最优路由,非最优路由不会向外通告;
  2. EBGP 学到的路由:可以发给全部 EBGP+IBGP 邻居
  3. IBGP 水平分割:IBGP 学到的路由不能发给其他 IBGP 邻居(AS 内部防环)
  4. IBGP 路由:下一跳可达即可发给 EBGP;
  5. 本地始发(network/import)路由:全量发送所有 BGP 邻居。

IBGP 天然要求全互联防环,优化方案:路由反射器 RR、BGP 联盟 Confederation。

(二)BGP 下一跳默认规则 + 修改配置

  1. 路由发给EBGP 邻居:下一跳自动改为本机发送 BGP 报文的源 IP;
  2. EBGP 路由传给IBGP 邻居默认下一跳保持原始不变,导致 IBGP 设备下一跳不可达,使用next-hop-local修改;
  3. 本地生成路由,发给任意邻居:下一跳 = 本机 BGP 报文源 IP。
代码语言:javascript
复制
bgp 100
 ipv4-family unicast
  peer 2.2.2.2 next-hop-local

八、BGP 路由黑洞与同步机制

1. 路由黑洞成因

数据包途经中间设备,中间设备无对应 BGP 明细路由,出现有去无回丢包。

2. 三种解决方案

  1. 1. IBGP 全互联组网;2. BGP 路由引入 IGP;3. GRE/MPLS 隧道。

3.BGP 同步规则

从 IBGP 学习的路由,IGP 路由表也存在同网段路由才算同步,同步 + 下一跳可达才可发给 EBGP;华为设备 BGP 同步默认关闭,现网基本不用开启

九、常用 BGP 查看排错命令

代码语言:javascript
复制
display bgp peer                //查看BGP邻居简要
display bgp peer verbose        //邻居详细信息、Holdtime、Keepalive
display bgp routing-table       //查看BGP路由表
display bgp routing-table x.x.x.x mask //单条路由详情(属性、下一跳、AS-PATH)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、为什么需要 BGP?自治系统 AS 是什么
  • 二、BGP 协议基础特性
  • 三、两种 BGP 邻居:EBGP & IBGP
    • 1.EBGP(不同 AS 之间邻居)
    • 2.IBGP(同一个 AS 内部邻居)
    • 场景 1:EBGP 直连接口建立邻居(AR1:AS100,AR2:AS200,互联 10.1.12.0/24)
    • 场景 2:EBGP 使用 Loopback 跨网段建邻(必配:修改源 + TTL)
    • 场景 3:IBGP 同 AS 环回建邻(同 AS100,默认 TTL255 无需改跳数)
  • 五、BGP 六状态机(故障排查必背)
  • 六、BGP 路由来源:BGP 只搬运、不计算路由
    • 1.network(精准注入,匹配路由表精确网段 + 掩码)
  • 七、BGP 四大路由通告 & 下一跳规则(重中之重)
    • (一)路由发布 5 条原则
    • (二)BGP 下一跳默认规则 + 修改配置
  • 八、BGP 路由黑洞与同步机制
    • 1. 路由黑洞成因
    • 2. 三种解决方案
    • 3.BGP 同步规则
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档