用eNSP搞懂BGP选路:从邻居建立到数据转发,一个实验看透AS_PATH和Next-Hop
用eNSP深入解析BGP选路机制:从AS_PATH到Next-Hop的实战剖析
BGP(边界网关协议)作为互联网的"导航系统",其核心价值在于路径选择而非单纯的路由传递。许多网络工程师能够完成基础配置,却对BGP选路背后的逻辑一知半解。本文将借助华为eNSP模拟器,带您穿透配置表象,直击BGP路径决策的核心机制。
1. BGP邻居建立与路由传递的底层逻辑
1.1 eBGP与iBGP邻居的本质差异
在拓扑中,R1(AS100)与R2(AS200)建立的是eBGP邻居,而R2与R4(同属AS200)则是iBGP邻居。这两种邻居类型在路由处理上有根本区别:
eBGP邻居:
- 默认TTL=1(直连检测)
- 传递路由时会自动添加本地AS号到AS_PATH
- Next-Hop属性更新为发送路由器的接口地址
iBGP邻居:
- 通常需要全互联或路由反射器
- 不修改AS_PATH属性
- 默认不改变Next-Hop(需要手动配置
peer next-hop-local)
# R2的关键配置示例 bgp 200 peer 12.1.1.1 as-number 100 # eBGP邻居 peer 4.4.4.4 as-number 200 # iBGP邻居 peer 4.4.4.4 connect-interface LoopBack0 peer 4.4.4.4 next-hop-local # 强制修改Next-Hop1.2 AS_PATH属性的动态演变
观察R1和R5的路由表,可以看到AS_PATH的完整记录:
<R1> display bgp routing-table *> 5.5.5.5/32 12.1.1.2 0 0 200 300i <R5> display bgp routing-table *> 1.1.1.1/32 45.1.1.4 0 0 200 100iAS_PATH的300i和100i中的i表示路由来源为IGP重分发。这个属性链决定了路由的防环机制——BGP路由器会拒绝包含本地AS号的路由更新。
2. Next-Hop属性与路由黑洞破解
2.1 Next-Hop的传递规则
在跨AS场景中,Next-Hop属性遵循特殊规则:
| 邻居类型 | Next-Hop处理规则 | 典型问题 |
|---|---|---|
| eBGP | 自动更新为发送接口IP | 通常无需额外配置 |
| iBGP | 保持原始Next-Hop不变 | 可能导致下一跳不可达 |
| 特殊处理 | 通过peer next-hop-local强制修改 | 解决iBGP下一跳可达性问题 |
2.2 路由黑洞的成因与解决方案
实验中R3最初无法转发流量,正是因为其路由表中缺少BGP路由。这是因为:
- R3未运行BGP,无法通过iBGP学习路由
- OSPF默认不传播BGP路由
解决方案是在R2/R4上执行路由引入:
# R2/R4上的关键配置 ospf 1 import-route bgp # 将BGP路由注入OSPF此时R3的路由表会出现O_ASE标记的外部路由:
<R3> display ip routing-table 1.1.1.1/32 O_ASE 150 1 D 23.1.1.2 GE0/0/1 5.5.5.5/32 O_ASE 150 1 D 34.1.1.4 GE0/0/23. BGP选路属性的实战调优
3.1 Local_Pref:AS内部的优先级控制
Local_Pref是iBGP传播的重要属性,值越大优先级越高。我们可以通过策略修改它:
# 在R2上提升来自R1路由的优先级 route-policy LOCAL_PREF permit node 10 apply local-preference 200 # bgp 200 peer 12.1.1.1 route-policy LOCAL_PREF import3.2 MED:影响相邻AS的入站流量
MED(Multi-Exit Discriminator)用于向邻居AS建议优选路径。在R4上配置:
route-policy SET_MED permit node 10 apply cost 50 # bgp 200 peer 45.1.1.5 route-policy SET_MED export3.3 权重与AS_PATH预挂
华为设备特有的权重属性(仅本地有效):
# R1上设置5.5.5.5路由的权重 ip as-path-filter 1 permit ^300$ route-policy WEIGHT permit node 10 if-match as-path-filter 1 apply weight 100 # bgp 100 peer 12.1.1.2 route-policy WEIGHT import4. 路径选择的全流程验证
4.1 数据流向的逐跳分析
通过traceroute可以看到实际路径:
<R1> tracert -a 1.1.1.1 5.5.5.5 1 12.1.1.2 (R2) 2 23.1.1.3 (R3) 3 34.1.1.4 (R4) 4 45.1.1.5 (R5)4.2 路由属性的综合影响
BGP的选路顺序遵循严格规则:
- 最高权重(Cisco专有)
- 最高Local_Pref
- 本地起源路由
- 最短AS_PATH
- 最低Origin类型(IGP < EGP < Incomplete)
- 最低MED
- eBGP优于iBGP
- 到Next-Hop的IGP度量最小
4.3 策略效果的验证方法
查看特定路由的详细信息:
<R2> display bgp routing-table 5.5.5.5 Paths: 1 available From: 4.4.4.4 (4.4.4.4) Route Duration: 00:15:23 Relay IP Nexthop: 23.1.1.3 Original nexthop: 4.4.4.4 LocalPref: 100 MED: 0 AS-path: 300 Origin: IGP