1. 先弄明白BGP到底怎么“挑路”
说句大实话,BGP选路这个问题,很多干网络的朋友刚接触时都容易懵。路由表里明明一堆条目,为什么最终只有一条被装进IP路由表?这个“唯一”的赢家是怎么被选出来的?答案就是BGP那套十三条选路规则。
不过真正翻过华为文档的人都知道,文档里的优先级列表又长又抽象,什么“Preferred-Value”、“Local_Preference”、“AS_PATH”……冷冰冰的术语堆在一起,根本记不住。我自己带过不少新人,最有效的学习方法从来不是背规则,而是动手搭一个小实验,让每条规则“亲手”把路由选出来。所以这篇就用eNSP做一个小而全的BGP选路实验,把最常见的几条选路规则挨个验证一遍。
这里先交代一下,这个小实验面向的是已经会基本BGP配置,但选路逻辑还比较模糊的朋友。不会从零教你怎么敲neighbor命令,重点讲“为什么这么配、选路结果怎么变、实际项目中怎么用”。实验本身不大,三台路由器就能跑起来,但覆盖的规则足够应付日常工作中90%的选路场景。
先给个目录感,整个实验会按这个顺序走:
- 搭建一个三台设备的最小BGP拓扑
- 配好基础BGP邻居关系
- 依次验证首选值、Local_Preference、AS_PATH、MED这四条最常用的选路规则
- 最后聊一聊实际项目里选路策略怎么落地
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验拓扑与基础配置
2.1 拓扑设计思路
实验拓扑我用了三台AR路由器,本质上是一个不对称的三角网。为什么要三角网?因为只有存在多条可达路径,选路规则才有用武之地。如果只有一条路径,BGP根本没得选。
具体规划是这样的:
- 设备R1、R2、R3,运行OSPF作为底层IGP,保证设备之间TCP可达
- BGP运行在AS 100内,也就是IBGP邻居关系
- R1上宣告一条业务网段100.1.1.0/24
- R2和R3之间直连,R1到R2、R1到R3也都有链路
code复制拓扑示意:
R2
/ \
/ \
R1----R3
R1 -- R2 : 10.1.12.0/24
R1 -- R3 : 10.1.13.0/24
R2 -- R3 : 10.1.23.0/24
R1上宣告业务网段:100.1.1.0/24
这个拓扑下,R2和R3都会从R1学到100.1.1.0/24这条路由,同时因为R2和R3是IBGP邻居,它们彼此之间还会转发这条路由。也就是说,R2看100.1.1.0/24时,会看到两条路径:一条直连从R1来,一条从R3绕过来。这样就有“选路”的空间了。
2.2 基础配置清单
按下面的配置逐台敲就行,先把邻居关系建起来。
R1的基础配置:
text复制sysname R1
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.13.1 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.13.0 0.0.0.255
network 1.1.1.1 0.0.0.0
bgp 100
router-id 1.1.1.1
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
network 100.1.1.0 255.255.255.0
R2的基础配置:
text复制sysname R2
interface GigabitEthernet0/0/0
ip address 10.1.12.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.23.2 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.23.0 0.0.0.255
network 2.2.2.2 0.0.0.0
bgp 100
router-id 2.2.2.2
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
R3的基础配置:
text复制sysname R3
interface GigabitEthernet0/0/0
ip address 10.1.13.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.23.3 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 10.1.13.0 0.0.0.255
network 10.1.23.0 0.0.0.255
network 3.3.3.3 0.0.0.0
bgp 100
rout
