BGP 动态路由配置(华为)
触发场景
- 数据中心 Spine-Leaf 跑 EBGP / IBGP 做底层路由
- VXLAN EVPN 用 BGP 做控制面
- 企业出口跑双 ISP 多线接入
- 跨 AS 互联、与运营商对接
- 大型园区核心层用 BGP 替代 OSPF 做路由汇聚
平台适用
| 设备类型 | 是否支持 | 典型场景 |
|---|---|---|
| CloudEngine 数据中心交换机 | ✅ 主战场 | DCN Spine-Leaf、VXLAN EVPN |
| USG6000E 防火墙 | ✅ 常用 | 双 ISP 接入、跨地域互联 |
| S 系列接入/汇聚交换机 | ❌ 不建议 | 一般跑 OSPF/静态路由即可 |
配置六步走(基础 EBGP 邻居建立)
Step 1:规划 AS 号与 router-id
本端 AS:65001
对端 AS:65002(EBGP)/ 65001(IBGP)
Router-ID:建议用 Loopback0 地址(稳定)
Step 2:进入 BGP 视图
[~SwitchA] bgp 65001
[*SwitchA-bgp] router-id 1.1.1.1
Step 3:建立邻居
# EBGP(不同 AS)
[*SwitchA-bgp] peer 10.1.1.2 as-number 65002
# IBGP(相同 AS,通常用 Loopback 建立)
[*SwitchA-bgp] peer 2.2.2.2 as-number 65001
[*SwitchA-bgp] peer 2.2.2.2 connect-interface LoopBack0
Step 4:进入地址族,激活邻居
[*SwitchA-bgp] ipv4-family unicast
[*SwitchA-bgp-af-ipv4] peer 10.1.1.2 enable
[*SwitchA-bgp-af-ipv4] peer 2.2.2.2 enable
Step 5:通告本地路由
# 方式 1:network 精确通告
[*SwitchA-bgp-af-ipv4] network 192.168.10.0 24
# 方式 2:import-route 引入其他协议
[*SwitchA-bgp-af-ipv4] import-route ospf 1
[*SwitchA-bgp-af-ipv4] import-route direct
Step 6:CE 设备必须 commit 提交
[*SwitchA-bgp-af-ipv4] commit
⚠️ CE V200R022+ 是两阶段提交,不 commit 配置不生效。USG 防火墙和 S 交换机不需要。
核心命令体系
| 类别 | 命令 | 说明 |
|---|---|---|
| 启用 | bgp <as-number> |
启动 BGP 进程 |
| 标识 | router-id <ip> |
设置 router-id(必配) |
| 邻居 | peer <ip> as-number <as> |
指定邻居 AS |
| 邻居 | peer <ip> connect-interface LoopBack0 |
用 Loopback 建邻居 |
| 邻居 | peer <ip> ebgp-max-hop <n> |
EBGP 多跳(Loopback 必配) |
| 激活 | peer <ip> enable |
在地址族内激活 |
| 通告 | network <ip> <mask-len> |
精确通告路由 |
| 引入 | import-route <protocol> |
引入其他协议路由 |
| 反射器 | peer <ip> reflect-client |
配置路由反射器客户端 |
| 团体 | peer <ip> advertise-community |
通告团体属性 |
| 联盟 | confederation id <as> |
配置 BGP 联盟 |
| 认证 | peer <ip> password cipher <pwd> |
MD5 认证 |
| BFD | peer <ip> bfd enable |
启用 BFD 联动快速收敛 |
典型场景
场景 1:EBGP + IBGP 全互联(CE 数据中心)
- SwitchA (AS65001) ←EBGP→ SwitchB (AS65002)
- SwitchB / SwitchC / SwitchD 之间 IBGP 全互联
- 关键:IBGP 必须全互联或用反射器,否则路由不传递
场景 2:路由反射器(解决 IBGP 全互联爆炸)
- 选定一台作为 RR,其余作为 Client
- RR 上:
peer <client-ip> reflect-client - Client 之间不用互建邻居,由 RR 反射路由
场景 3:USG 防火墙双 ISP 接入
- USG 同时与电信、联通建立 EBGP
- 配合 route-policy 控制路由优选
- 出方向通告本地公网段,入方向接受默认路由或全表
场景 4:VXLAN EVPN 底层 IBGP
- Spine 作为 RR,Leaf 作为 Client
- 启用
l2vpn-family evpn地址族 - 邻居用 Loopback 建立(CE Spine-Leaf 标准范式)
场景 5:BFD 联动快速收敛
peer <ip> bfd enable把 BGP Keepalive 从秒级降到毫秒级- 链路断开 50ms 内感知,路由立即切换
排错思路
邻居建不起来(Idle / Active 状态)
display bgp peer看状态- 检查 AS 号、IP 互通(ping)、防火墙策略放行 TCP 179
- IBGP 用 Loopback 时检查
connect-interface和路由 - EBGP 用 Loopback 时必须配
ebgp-max-hop
邻居 Established 但收不到路由
- 对端
display bgp routing-table是否有路由 - 本端是否在地址族内
peer xxx enable激活 - 是否被 route-policy 过滤
- 对端
路由通告了但对端不接收
- 检查 IBGP 水平分割(IBGP 学到的路由默认不传给其他 IBGP 邻居 → 需反射器)
- 检查 next-hop 是否可达(IBGP 默认不改 next-hop)
路由频繁震荡
- 启用
dampening(路由衰减) - 启用 BGP 下一跳迭代震荡抑制
- 启用
平台差异
| 项 | CE 数据中心 | USG 防火墙 | S 接入交换机 |
|---|---|---|---|
| 支持度 | 完整(含 EVPN) | 完整(IPv4/IPv6) | 不建议 |
| 提交方式 | 必须 commit | 直接生效 | 直接生效 |
| 典型场景 | Spine-Leaf / EVPN | 双 ISP / 跨地域 | — |
| Loopback 邻居 | 标配 | 常用 | — |
速查参考
详细命令清单见 references/bgp-commands.md
故障排查手册见 references/bgp-troubleshooting.md
完整配置场景见 references/bgp-scenarios.md