BGP超详细入门指南
前言:OSPF、IS-IS、RIP 等 IGP 仅适用于单个 AS 自治域内部路由互通,只能依靠开销选路、大规模组网路由管控乏力;跨运营商、跨集团多 AS 互联,BGP 是业界唯一标准协议。本文从 AS 概念→BGP 特性→邻居分类→报文→状态机→路由生成→路由规则→全套华为配置全覆盖。
一、为什么需要 BGP?自治系统 AS 是什么
随着网络体量变大,RIP、OSPF、IS-IS 等 IGP 短板暴露:仅依靠开销选路、路由承载能力有限,无法支撑大型跨域组网,AS(自治系统) 应运而生。
-
AS 定义:
同一机构运维、统一路由策略的一组路由器集合,不同 AS 依靠AS 编号区分,AS 号由 IANA 统一分配。 -
AS 编号:
16bit(0~65535):公有 AS:1~64511;私有 AS:64512~65535(内网专用,公网不可路由)32bit:公有 AS 全球分配,私有 AS 段:4200000000~4294967294 -
核心结论
AS 内部跑 IGP(OSPF/ISIS),AS 之间跨域路由必须使用 BGP。

二、BGP 协议基础特性
BGP 全称边界网关协议,归类应用层协议,依托 TCP 传输,固定目的端口179,也是典型路径矢量路由协议,区别于 IGP 链路状态 / 距离矢量:
- 依托 TCP可靠传输:自带可靠传输、差错重传,不用像 OSPF 自研保活机制;
- 触发更新:路由变化才发送更新报文,周期性仅发保活报文,节省带宽;
- 靠路径属性控路由:不靠 Cost 开销选路,多样路径属性实现路由引流、备份、管控,是运营商灵活调度路由的关键。
- 邻居手动配置:无法像 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 内部邻居)
* 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 配置
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 配置
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配置
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配置
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
//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(精准注入,匹配路由表精确网段 + 掩码)
bgp 100
network 1.1.1.1 255.255.255.255 //IP路由表存在该条目才注入BGP
2.import-route(批量引入:直连 / 静态 / OSPF/ISIS)
bgp 100
import-route direct //引入全部直连路由
import-route ospf 1 //引入OSPF 1进程路由
3.aggregate(路由聚合,汇总明细生成聚合路由)
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。
bgp 100
ipv4-family unicast
peer 2.2.2.2 next-hop-local
八、BGP 路由黑洞与同步机制
1. 路由黑洞成因
数据包途经中间设备,中间设备无对应 BGP 明细路由,出现有去无回丢包。
- 三种解决方案
- IBGP 全互联组网;2. BGP 路由引入 IGP;3. GRE/MPLS 隧道。
3.BGP 同步规则
从 IBGP 学习的路由,IGP 路由表也存在同网段路由才算同步,同步 + 下一跳可达才可发给 EBGP;华为设备 BGP 同步默认关闭,现网基本不用开启。
九、常用 BGP 查看排错命令
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)