0. 课件与参考
BGP 对同一前缀的多条有效路径按固定顺序比较;前一条规则已经分出高低时,后续规则不再参与。先确认下一跳可达,才谈得上 best。
1. 两个前提:有效与最优
text
display bgp routing-table 203.0.113.0 24
* valid:下一跳在 IP 路由表中可达
> best :在全部 valid 路径中按选路规则胜出没有 * 的路径不参与最优比较。常见根因是 IBGP 学到的 Next_Hop 在 IGP / 静态路由中不可达;应先补齐承载网可达性,或在适当边界使用 peer ... next-hop-local,而不是直接调属性。
2. 华为 VRP 的比较顺序
下表按当前华为文档的默认顺序归纳为 13 项。不同产品版本、特性开关(例如 AIGP、MED 比较范围)可能略有差异,实施前应以目标设备版本命令参考为准。
| 顺序 | 比较项 | 优选方向 | 常见用途 |
|---|---|---|---|
| 1 | PrefVal / preferred-value | 大 | 本机对指定邻居的绝对优先级 |
| 2 | Local_Pref | 大 | 控制本 AS 出口优先级 |
| 3 | 路由生成方式 | 手工聚合 > 自动聚合 > network > import-route > peer | 本地始发优先 |
| 4 | AIGP | 小,带 AIGP 优先于不带 | 支持 AIGP 的跨域度量场景 |
| 5 | AS_Path 长度 | 短 | 常用出入口/防环策略 |
| 6 | Origin | IGP > EGP > Incomplete | 反映路由来源方式 |
| 7 | MED | 小 | 同一邻接 AS 的入站引流 |
| 8 | Peer 类型 | EBGP > IBGP > LocalCross > RemoteCross | 优先直学外部路径 |
| 9 | 到 Next_Hop 的 IGP Metric | 小 | 选离出口更近的内部路径 |
| 10 | Cluster_List 长度 | 短 | RR 场景收敛后的比较 |
| 11 | Router ID | 小 | 后段确定性打破平局 |
| 12 | Originator_ID | 小 | RR 路径携带该属性时参与比较 |
| 13 | Peer 地址 | 小 | 最后确定唯一最优路径 |
MED 的比较边界
默认 MED 通常只在来自同一邻接 AS 的路径之间比较。若强行跨 AS 比较 MED,可能得到违反运营意图的结果,须明确评审对应的 bestroute 配置。
3. 四个最常用的业务旋钮
3.1 PrefVal:只在本机生效
PrefVal 是华为私有属性,不会传播给其他 BGP 设备。适合“本机从两个上游收到同一前缀,固定偏向某一邻居”。
text
bgp 65001
peer 192.0.2.1 preferred-value 2003.2 Local_Pref:控制出 AS 的出口
Local_Pref 只在本 AS 的 IBGP 范围传播。值越大越优,默认值通常为 100。将从主出口学到的路由在入方向提高 Local_Pref,可使全 AS 的流量优先由主出口离开。
text
route-policy PREFER-ISP-A permit node 10
apply local-preference 200
# 未匹配路由必须放行
route-policy PREFER-ISP-A permit node 100
bgp 65001
peer 192.0.2.1 route-policy PREFER-ISP-A import3.3 AS_Path:控制外部视角与防环
AS_Path 越短越优。出方向追加本 AS 号(AS-Path prepend)可让外部网络相对不偏好该入口;本端收到包含自己 AS 号的路径会拒绝,构成 EBGP 防环。
text
route-policy PREPEND-BACKUP permit node 10
apply as-path 65001 65001 additive3.4 MED:告诉相邻 AS 从哪里进入
MED 越小越优,主要用于同一相邻 AS 的多个互联点。它是“给对方的建议”,对方是否采纳取决于对方策略;不要把 MED 当成本 AS 出口选路的首选工具。
text
route-policy PREFER-ENTRY-A permit node 10
apply cost 204. 逐步选路示例
目标前缀 203.0.113.0/24 有三条有效路径:
| 路径 | 来源 | Local_Pref | AS_Path | MED | 到 Next_Hop 的 IGP Cost |
|---|---|---|---|---|---|
| A | ISP-A,经 IBGP 传入 | 200 | 65010 | 50 | 30 |
| B | ISP-B,经 IBGP 传入 | 100 | 65020 | 10 | 10 |
| C | ISP-A 的另一出口 | 200 | 65010 | 20 | 50 |
- A、C 的 Local_Pref 200 高于 B 的 100,B 被淘汰。
- A、C 的 AS_Path 相同,继续比较 MED(来自同一 ISP-A)。
- C 的 MED 20 小于 A 的 50,因此 C 成为最优;即使 A 的 IGP Cost 更小,也不会再比较到第 9 项。
这就是“属性不是加权打分,而是有先后短路规则”的核心。
5. 验证与排错
text
display bgp routing-table 203.0.113.0 24
display bgp peer verbose
display ip routing-table 192.0.2.1
display route-policy PREFER-ISP-A| 现象 | 排查方向 |
|---|---|
路径没有 * | Next_Hop、IGP/静态路由、IBGP 的 next-hop-local |
| 改 Local_Pref 无效 | 是否在 import 方向调用、策略是否有末尾 permit、是否刷新路由 |
| MED 不生效 | 两路径是否来自同一邻接 AS、是否更早规则已经分出胜负 |
| 外部流量未按预期进入 | 对端是否接受 AS_Path / MED,是否有更高优先级策略 |
6. 考前速记
PrefVal管本机,Local_Pref管本 AS 出口,MED是给相邻 AS 的入站建议。- 先 valid 再 best;Next_Hop 不可达时不参与选路。
- BGP 按顺序逐项比较,前项胜出后后项不再比较。
AS_Path既参与选路,也承担 EBGP 防环。
