BGP(Border Gateway Protocol)
BGP 是外部网关协议(EGP),用于自治系统(AS)之间交换路由,是互联网与运营商网络的骨干协议。
基本特性
- 基于 TCP 179 端口,可靠性高
- 只通告最优路由,路径矢量协议(携带 AS_Path 防环)
- 支持 CIDR、策略控制、路由反射器/联盟等大规模扩展
- 度量不是带宽,而是属性(Attributes),选路靠属性比较
报文与状态机
报文类型
| 报文 | 作用 |
|---|---|
| OPEN | 建立邻居,协商参数 |
| KEEPALIVE | 维持邻居(60s 周期) |
| UPDATE | 通告/撤销路由(携带 NLRI + 属性) |
| NOTIFICATION | 错误通知,断开邻居 |
| ROUTE-REFRESH | 请求重新通告(策略变更后) |
邻居状态机
Idle → Connect → OpenSent → OpenConfirm → Established
- Idle:等待开始
- Established:邻居建立成功,开始交换路由
IBGP 与 EBGP
| 类型 | 范围 | 特性 |
|---|---|---|
| EBGP | 不同 AS 之间 | 默认 TTL=1;Next-Hop 更新为对端地址 |
| IBGP | 同一 AS 内 | 默认 TTL=255;Next-Hop 不改变(需解决下一跳可达);防环:不传播从 IBGP 学到的路由给其他 IBGP 邻居 |
IBGP 扩展方案
- 路由反射器 RR:反射 IBGP 路由,减少全互联
- 联盟 Confederation:AS 内划分子 AS,仍需配置
- 全互联(Full Mesh):n 台设备需 n(n-1)/2 条 IBGP 邻居,不推荐大规模使用
核心属性
| 属性 | 类型 | 说明 |
|---|---|---|
| Origin | 公认必遵 | IGP / EGP / Incomplete |
| AS_Path | 公认必遵 | 经过的 AS 列表,防环+选路 |
| Next_Hop | 公认必遵 | 下一跳地址 |
| Local_Pref | 公认自决 | 本 AS 内选路,越大越优,默认 100 |
| MED | 可选非传递 | 告诉对端 AS 进入本 AS 的优选,越小越优 |
| Community | 可选传递 | 团体属性,批量控制路由(如 no-export) |
选路原则(精简版,需按序比较)
- 优选 Preferred-Value 最大(本地自定义)
- 优选 Local_Pref 最大
- 本地始发路由(network/import)优于学习路由
- 优选 AS_Path 最短
- 优选 Origin(IGP > EGP > Incomplete)
- 优选 MED 最小
- EBGP 优于 IBGP
- 优选 IGP 度量小(到 Next_Hop)
- 优选 Router ID 小 / 对等体地址小
实际考试常考前 6~8 条,务必记熟。
华为配置示例
[Huawei] bgp 65001
[Huawei-bgp] router-id 1.1.1.1
[Huawei-bgp] peer 192.168.12.2 as-number 65002 // EBGP 邻居
[Huawei-bgp] peer 10.0.0.2 as-number 65001 // IBGP 邻居
[Huawei-bgp] ipv4-family unicast
[Huawei-bgp-af-ipv4] peer 192.168.12.2 enable
[Huawei-bgp-af-ipv4] network 10.1.1.0 255.255.255.0 // 通告本地路由(须在 IGP 表中)路由反射器:
[Huawei-bgp] peer 10.0.0.2 reflect-client
[Huawei-bgp] peer 10.0.0.3 reflect-client验证命令
<Huawei> display bgp peer // 邻居状态(应为 Established)
<Huawei> display bgp routing-table // BGP 路由表
<Huawei> display bgp routing-table 10.1.1.0 // 查看单条路由属性
<Huawei> display bgp routing-table statistics常见排错
| 问题 | 检查 |
|---|---|
| 邻居起不来 | 对端地址可达?AS 号、Router ID、TCP 179 被过滤? |
| 收到路由不优 | 检查 Next_Hop 可达性(IBGP 常见)、同步、策略 |
| 路由不传播 | 防环(AS_Path 含本 AS)、反射器配置、Community 策略 |
| 选路不符预期 | 用 display bgp routing-table 逐项比较属性 |
🔗 相关笔记:03.06_OSPF 03.09_路由策略与策略路由 03.10_MPLS与Segment_Routing