经典的多自治系统(Multi-AS)BGP综合实验。现代华为/H3C/思科设备(如实验中的eNSP AR系列)中,默认运行的BGP版本均为BGP-4。BGP-3不支持CIDR(无类域间路由),本实验中使用了/24的无类掩码宣告,因此实际配置命令与BGP-4完全一致,底层逻辑互通。
多AS互联BGP4综合实验设计
本实验同款环境:通过网盘分享的文件:计算机网络拓扑实验所需的配置软件
链接 : https://pan.baidu.com/s/1yHLcijdIQK8Ggl2r-l2Yqg?pwd=opop 提取码: opop)
一、 实验拓扑与规划
1. 拓扑逻辑解析
AS 64512(核心AS,紫色区域):内部运行 OSPF 作为底层 IGP 打通路由(包含 R1, R2, R3 的 Loopback0 及互联接口)。内部运行 iBGP,实现全互联(R1-R2, R2-R3, R1-R3)。
AS 64513(红色区域):R4 与 R1 通过物理接口(Serial 2/0/0)直连,但采用 Loopback0 接口建立 eBGP 邻居(需要配置 ebgp-max-hop 和静态路由)。
AS 64514(蓝色区域):R5 与 R3 通过物理接口(Serial 2/0/0)直连,采用物理接口 IP 建立 eBGP 邻居。
路由宣告:R4 宣告 10.1.4.0/24,R5 宣告 10.1.5.0/24。

疑问:一个自治系统中只能跑一种路由协议吗? 如果不是,那 AS 是依靠什么划分的?
答:不是。一个 AS 内部可以同时运行多种路由协议。真实网络场景:一个大型企业或运营商(一个 AS)内部,可能核心骨干网跑的是 IS-IS,办公区跑的是 OSPF,旧设备跑的是 RIP,边缘连接分支机构的又有静态路由。它们之间通过路由重分发(Route Redistribution)技术,互相把对方的路由"翻译"并注入到自己的协议中,从而实现全网互通。
AS(Autonomous System,自治系统)的划分基于以下三个维度:
1. 行政管辖权(谁管理):AS 是由一个单一的技术管理机构(比如中国电信、中国联通、某个大学、某个大公司)统一管理的网络。只要归同一个机构管,有统一的出口策略,哪怕里面跑了几百种协议,对外也是一个 AS。
2. AS 号(AS Number):这是互联网中划分 AS 的唯一硬性标准。就像每个国家的身份证号一样,全世界每个接入互联网的 AS 都有一个或多个由 IANA(互联网号码分配局)分配的唯一 AS 号(比如本实验里,AS 64512、64513、64514)。
3. 统一的路由策略边界:在 AS 内部,路由怎么走是"内部矛盾"(IGP 解决);但跨越了 AS 边界,就要遵循商业规则和 BGP 策略(比如:谁给我钱我就把路由给谁,或者谁交钱我就让流量走哪)。
因此,即使不同的AS相连的设备分属于同一个网段(如AR1的200端口和AR4的200端口相连接,都在10.0.14.0 24这个网段中,也可以分属不同的 AS)。这个网段实际上就是"边境线"。在这个网段上,AR1 用 eBGP 协议与 AR4 交换路由信息。底层的 IP 连通性只需保证 AR1 能 ping 通 AR4,至于上面跑什么 BGP 策略,互不干涉。在真实互联网中,中国电信(AS 4134)和中国联通(AS 4837)之间的互联接口,通常也是在一个共同的 `/30` 或 `/24` 网段里的。
本实验中,AS 64512(紫色):是一个管理域。内部跑 OSPF(IGP)。AS 64513 / 64514(红/蓝):是另外的管理域。内部只有直连和静态路由。它们之间跨越边界,跑的是 BGP(EGP)。
疑问:AS的划分不看设备看端口是吗?
答:不是"看端口",而是"看边界"。设备本身归属于一个 AS,而"接口"是 AS 的边界。你在一台路由器上敲 bgp 64512,这台设备就属于 AS 64512,它不可能同时属于两个 AS。
AS 的边界实际上体现在接口上。AR1 属于 AS 64512,它的 S2/0/0 接口连接到了 AR4,这个接口就是"外部边界"。而 AR1 的另一个接口 S2/0/1 连接 AR2,就是"内部边界"。
OSPF 是按"接口"划分区域的。一台路由器可以有多个接口分别属于 Area 0 和 Area 1(这就是 ABR)。
BGP 是按"设备"划分 AS 的。一台路由器只能有一个本地 AS 号,但它的不同接口可以连接不同的外部 AS。
ISIS 是按"设备"划分区域的。一台路由器(整个设备)只能属于一个 Area。在配置 ISIS 时,是在 `isis 1` 进程下敲 `network-entity xx.xxxx.xxxx.xxxx.00`,这个 `00` 就是 Area ID。整台路由器都在这个 Area 里。ISIS 怎么连接不同区域?它靠的是"路由器级别"的角色来划分。连接不同 Area 的路由器被称为 L1/L2 路由器。它的 L1 路由表负责本区域,L2 路由表负责骨干区域(L2 区域)。
2. 接口与IP地址规划表
| 设备 | 接口 | IP地址/掩码 | 所属AS | 说明/角色 |
|---|---|---|---|---|
| R1 | Serial 2/0/0 | 10.0.14.1/24 | 64512 | 连接 R4 (eBGP) |
| Serial 2/0/1 | 10.0.12.1/24 | 64512 | 连接 R2 (OSPF) | |
| LoopBack 0 | 10.0.1.1/32 | 64512 | 用于建立 iBGP 及 eBGP 邻居 | |
| R2 | Serial 2/0/0 | 10.0.12.2/24 | 64512 | 连接 R1 (OSPF) |
| Serial 2/0/1 | 10.0.23.2/24 | 64512 | 连接 R3 (OSPF) | |
| LoopBack 0 | 10.0.2.2/32 | 64512 | 用于建立 iBGP 邻居 | |
| R3 | Serial 2/0/0 | 10.0.23.3/24 | 64512 | 连接 R2 (OSPF) |
| Serial 2/0/1 | 10.0.35.3/24 | 64512 | 连接 R5 (eBGP) | |
| LoopBack 0 | 10.0.3.3/32 | 64512 | 用于建立 iBGP 邻居 | |
| R4 | Serial 2/0/0 | 10.0.14.4/24 | 64513 | 连接 R1 (eBGP) |
| LoopBack 0 | 10.0.4.4/32 | 64513 | 用于建立 eBGP 邻居 | |
| LoopBack 1 | 10.1.4.4/24 | 64513 | 模拟业务网段,需宣告进BGP | |
| R5 | Serial 2/0/0 | 10.0.35.5/24 | 64514 | 连接 R3 (eBGP) |
| LoopBack 0 | 10.0.5.5/32 | 64514 | 设备标识 | |
| LoopBack 1 | 10.1.5.5/24 | 64514 | 模拟业务网段,需宣告进BGP |
二、 详细配置步骤
任务一:配置底层 IGP (OSPF) 及静态路由
目标:确保 AS 64512 内部网络全通,且 R1 和 R4 之间能够通过 Loopback 互通(为建立 eBGP 邻居做准备)。
OSPF 就像公司的内部通讯录,让大家知道彼此在哪儿。在这个 AS 内部配置 OSPF(IGP)的核心目的:为 BGP 提供底层路由的"地基"和"连通性"。
另外两个 AS(64513和64514)里写了 Area1 和 Area2,但没配协议,影响实验吗?
答:不影响,拓扑图上确实在红框(AS 64513)写了 `OSPF Area2`,在蓝框(AS 64514)写了 `OSPF Area1`。但这只是出题人的规划意图。在本实验的配置代码中,AR4 和 AR5 根本没有开启任何 IGP(既没有 OSPF 也没有 RIP)。为啥不配也没事?因为它们叫"Stub AS(末端自治系统)":看 AR4,它内部只有一台路由器,唯一的一条业务网段就是它的 Loopback1(10.1.4.4/24)。它根本不需要在内部跑路由协议,它只需要把直连网段通过 `network` 命令宣告进 BGP 即可。同理,AR5 也只有一台路由器。在没有内部多台路由器需要互通的场景下,配置内部路由协议纯属多余。那它们怎么连通外面?AR4 用静态路由 `ip route-static 10.0.1.1 32 10.0.14.1` 专门指向了 AR1 的 Loopback,目的仅仅是为了让 eBGP 的 TCP 连接能建立起来。 AR5 更简单,直接通过物理接口(10.0.35.3 / 10.0.35.5)和 AR3 建立 eBGP,连静态路由都不需要,因为直连天然互通。
在真实世界里,AS 64513 和 AS 64514 可能不止一台路由器,里面可能确实运行着 OSPF Area 2 或 Area 1 来打通内部。出题人把这些画上去,是为了展示一种"多区域网络"的全局感,让你知道"如果它们内部有网络,一般会是这样划分的"。但在当前的实验任务中,只需要关注 AR4 和 AR5 如何与外部的 eBGP 邻居建立连接,内部的 IGP 协议被简化或者说默认了。
AR1 配置:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname AR1
[AR1]router id 10.0.1.1
[AR1]interface Serial 2/0/0
[AR1-Serial2/0/0]ip address 10.0.14.1 24
[AR1-Serial2/0/0]quit
[AR1]interface Serial 2/0/1
[AR1-Serial2/0/1]ip address 10.0.12.1 24
[AR1-Serial2/0/1]quit
[AR1]interface LoopBack 0
[AR1-LoopBack0]ip address 10.0.1.1 32
[AR1-LoopBack0]quit
[AR1]ospf 1
[AR1-ospf-1]area 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.0.12.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]quit
[AR1-ospf-1]quit
[AR1]ip route-static 10.0.4.4 32 10.0.14.4 #配置静态路由指向R4,为了建立BGP邻居。
[AR1]quit
<AR1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR1>
疑问:<AR1>reset ospf process这个命令是干嘛的?
答:由于手动配置了AR1的router id 为10.0.1.1,为了让设备彻底重新计算拓扑,习惯性敲这个命令,确保之前残留的邻接关系被清除。
OSPF 选举 Router ID 的默认规则是:
-
手动配置的
router id优先级最高。 -
如果没有手动配置,OSPF 会自动在所有处于 up 状态的接口中,选举 IP地址最大 的 Loopback 接口地址作为 Router ID。
-
如果没有 Loopback 接口,就选举 IP 地址最大的物理接口地址作为 Router ID。
如果不手动配置 Router ID,本实验也不会出错。因为AR1 的 Loopback 0 是
10.0.1.1,AR2 是10.0.2.2,AR3 是10.0.3.3。即使不敲router id x.x.x.x这一行,由于各个设备都有 Loopback 接口,OSPF 也会自动把10.0.1.1、10.0.2.2、10.0.3.3选为 Router ID,结果是一样的。在真实企业网中,为了稳定性和规范性。如果自动选举,万一哪天管理员不小心把某个 Loopback 接口的 IP 改大了,OSPF 的 Router ID 可能会突然变化,导致全网 OSPF 重新收敛,引发断网。所以,规范的做法永远是手动写死 Router ID。
AR2 配置:
<Huawei>sys
[Huawei]undo info-center enable
[Huawei]sysname AR2
[AR2]router id 10.0.2.2
[AR2]interface Serial 2/0/0
[AR2-Serial2/0/0]ip address 10.0.12.2 24
[AR2-Serial2/0/0]quit
[AR2]interface Serial 2/0/1
[AR2-Serial2/0/1]ip address 10.0.23.2 24
[AR2-Serial2/0/1]quit
[AR2]interface LoopBack 0
[AR2-LoopBack0]ip address 10.0.2.2 32
[AR2-LoopBack0]quit
[AR2]ospf 1
[AR2-ospf-1]area 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.0.12.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.0.23.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]quit
[AR2-ospf-1]quit
[AR2]quit
<AR2>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR2>
AR3 配置:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname AR3
[AR3]router id 10.0.3.3
[AR3]interface Serial 2/0/0
[AR3-Serial2/0/0]ip address 10.0.23.3 24
[AR3-Serial2/0/0]quit
[AR3]interface Serial 2/0/1
[AR3-Serial2/0/1]ip address 10.0.35.3 24
[AR3-Serial2/0/1]quit
[AR3]interface LoopBack 0
[AR3-LoopBack0]ip address 10.0.3.3 32
[AR3-LoopBack0]quit
[AR3]ospf 1
[AR3-ospf-1]area 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 10.0.23.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]quit
[AR3-ospf-1]quit
[AR3]quit
<AR3>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR3>
AR4 配置底层与静态路由:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname AR4
[AR4]interface Serial 2/0/0
[AR4-Serial2/0/0]ip address 10.0.14.4 24
[AR4-Serial2/0/0]quit
[AR4]interface LoopBack 0
[AR4-LoopBack0]ip address 10.0.4.4 32
[AR4-LoopBack0]quit
[AR4]interface LoopBack 1
[AR4-LoopBack1]ip address 10.1.4.4 24
[AR4-LoopBack1]quit
[AR4]ip route-static 10.0.1.1 32 10.0.14.1 # 配置静态路由(指向R1的Loopback0)
[AR4]quit
<AR4>
AR5 配置底层与静态路由:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname AR5
[AR5]interface Serial 2/0/0
[AR5-Serial2/0/0]ip address 10.0.35.5 24
[AR5-Serial2/0/0]quit
[AR5]interface LoopBack 0
[AR5-LoopBack0]ip address 10.0.5.5 32
[AR5-LoopBack0]quit
[AR5]interface LoopBack 1
[AR5-LoopBack1]ip address 10.1.5.5 24
[AR5-LoopBack1]quit
[AR5]ip route-static 10.0.3.3 32 10.0.35.3 #此行命令逻辑上冗余
[AR5]quit
<AR5>
疑问:为什么说[AR5]ip route-static 10.0.3.3 32 10.0.35.3这行命令多余?
答:因为 10.0.35.5 和 10.0.35.3 在同一个直连网段,底层天然互通,不需要写静态路由去指对方。AR4 为什么必须写静态路由? ip route-static 10.0.1.1 32 10.0.14.1?因为 AR4 是使用 Loopback 接口(10.0.1.1)去和 AR1 建立邻居的,它不知道 10.0.1.1 在哪,必须写静态路由指路。
任务二:配置 BGP 邻居关系
1. AS 64512 内部 iBGP 全互联
关键点:R1 和 R3 需要配置 next-hop-local(即 next-hop-self),因为要将从 eBGP 学到的路由传给 iBGP 邻居时,必须将下一跳修改为自己,否则 R2 无法到达外部网络。
R1 BGP 配置:
[AR1]bgp 64512
[AR1-bgp]peer 10.0.2.2 as-number 64512
[AR1-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[AR1-bgp]peer 10.0.3.3 as-number 64512
[AR1-bgp]peer 10.0.3.3 connect-interface LoopBack 0
# 配置 eBGP 邻居 (指向 R4)
[AR1-bgp]peer 10.0.4.4 as-number 64513
[AR1-bgp]peer 10.0.4.4 ebgp-max-hop 2
[AR1-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]peer 10.0.2.2 enable
[AR1-bgp-af-ipv4]peer 10.0.2.2 next-hop-local
[AR1-bgp-af-ipv4]peer 10.0.3.3 enable
[AR1-bgp-af-ipv4]peer 10.0.3.3 next-hop-local
[AR1-bgp-af-ipv4]peer 10.0.4.4 enable
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]quit
<AR1>
疑问:[AR1-bgp-af-ipv4]peer 10.0.2.2 enable 该命令开启了什么?
答:在IPv4地址族下激活该bgp邻居。在华为设备中,建立 BGP 邻居分为两步:
- 在
bgp 64512视图下指定peer x.x.x.x as-number xxxx(定义邻居和AS号)。 - 进入
ipv4-family unicast(IPv4单播地址族)视图,使用peer x.x.x.x enable激活该邻居。
在较新的 VRP 版本中,默认BGP邻居建立后会在 IPv4 单播地址族自动激活。但在许多老设备中,默认可能是不激活的,显式地打上enable是一个非常标准且严谨的配置习惯,便于后续排错。
R2 BGP 配置:
[AR2]bgp 64512
[AR2-bgp]peer 10.0.1.1 as-number 64512
[AR2-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[AR2-bgp]peer 10.0.3.3 as-number 64512
[AR2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[AR2-bgp]ipv4-family unicast
[AR2-bgp-af-ipv4]peer 10.0.1.1 enable
[AR2-bgp-af-ipv4]peer 10.0.3.3 enable
[AR2-bgp-af-ipv4]quit
[AR2-bgp]quit
[AR2]quit
<AR2>
AR3 BGP 配置:
<AR3>system-view
[AR3]bgp 64512
[AR3-bgp]peer 10.0.1.1 as-number 64512
[AR3-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[AR3-bgp]peer 10.0.2.2 as-number 64512
[AR3-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[AR3-bgp]peer 10.0.35.5 as-number 64514 # 配置 eBGP 邻居 (指向 R5)
[AR3-bgp]ipv4-family unicast
[AR3-bgp-af-ipv4]peer 10.0.1.1 enable
[AR3-bgp-af-ipv4]peer 10.0.1.1 next-hop-local
[AR3-bgp-af-ipv4]peer 10.0.2.2 enable
[AR3-bgp-af-ipv4]peer 10.0.2.2 next-hop-local
[AR3-bgp-af-ipv4]peer 10.0.35.5 enable
[AR3-bgp-af-ipv4]quit
[AR3-bgp]quit
[AR3]quit
<AR3>
2. AS 64513 与 AS 64514 的 eBGP 配置
R4 BGP 配置(与 R1 建立 eBGP):
<AR4>system-view
[AR4]bgp 64513
[AR4-bgp]peer 10.0.1.1 as-number 64512
[AR4-bgp]peer 10.0.1.1 ebgp-max-hop 2
[AR4-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[AR4-bgp]ipv4-family unicast
[AR4-bgp-af-ipv4]undo synchronization
[AR4-bgp-af-ipv4]network 10.1.4.0 24 # 宣告自己的业务网段
[AR4-bgp-af-ipv4]peer 10.0.1.1 enable
[AR4-bgp-af-ipv4]quit
[AR4-bgp]quit
[AR4]quit
<AR4>
R5 BGP 配置(与 R3 建立 eBGP):
<AR5>system-view
[AR5]bgp 64514
[AR5-bgp]peer 10.0.35.3 as-number 64512
[AR5-bgp]ipv4-family unicast
[AR5-bgp-af-ipv4]undo synchronization
[AR5-bgp-af-ipv4]network 10.1.5.0 24 # 宣告自己的业务网段
[AR5-bgp-af-ipv4]peer 10.0.35.3 enable
[AR5-bgp-af-ipv4]quit
[AR5-bgp]quit
[AR5]quit
<AR5>
三、 实验验证与测试
1. 检查 BGP 邻居状态
在任意路由器上执行,状态必须为 Established。应该能看到 R1 与 10.0.2.2、10.0.3.3、10.0.4.4 均为 Established 状态。
<AR1>display bgp peer
BGP local router ID : 10.0.1.1
Local AS number : 64512
Total number of peers : 3 Peers in established state : 3
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
10.0.2.2 4 64512 31 33 0 00:29:45 Established
0
10.0.3.3 4 64512 32 33 0 00:29:42 Established
1
10.0.4.4 4 64513 11 13 0 00:08:33 Established
1
2. 检查 BGP 路由表
检查 R4 和 R5 的业务网段是否成功传递到了 AS 64512 内部:
在 R2 上输入display bgp routing-table,应该能看到 10.1.4.0/24 和 10.1.5.0/24 的路由,且 NextHop 被 R1 和 R3 修改为了自身地址(10.0.1.1 和 10.0.3.3)。
text
<AR2>display bgp routing-table
BGP Local router ID is 10.0.2.2
Status codes: - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
>i 10.1.4.0/24 10.0.1.1 0 100 0 64513i
>i 10.1.5.0/24 10.0.3.3 0 100 0 64514i
3. 全局连通性测试(Ping 测试)
验证跨 AS 的端到端通信。
在 R4 上 ping R5 的业务地址:
text
<AR4>ping -a 10.1.4.4 10.1.5.5
PING 10.1.5.5: 56 data bytes, press CTRL_C to break
Reply from 10.1.5.5: bytes=56 Sequence=1 ttl=252 time=90 ms
Reply from 10.1.5.5: bytes=56 Sequence=2 ttl=252 time=30 ms
Reply from 10.1.5.5: bytes=56 Sequence=3 ttl=252 time=40 ms
Reply from 10.1.5.5: bytes=56 Sequence=4 ttl=252 time=40 ms
Reply from 10.1.5.5: bytes=56 Sequence=5 ttl=252 time=40 ms
--- 10.1.5.5 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/48/90 ms
实验成功。
注意:此处必须带源地址 -a 10.1.4.4,否则默认会使用物理接口(10.0.14.4)去 ping,而 R5 没有回程路由到 10.0.14.0/24 网段。
四、 核心技术点解析
- 为什么 R1 和 R4 建立邻居用 Loopback?
使用 Loopback 接口建立邻居更稳定。配置了ebgp-max-hop 2是因为默认 eBGP 报文的 TTL 为 1(物理直连),经过一跳(Loopback 到物理接口)后 TTL 会减 1 导致丢弃,放大跳数可解决。 - 为什么 R1 和 R3 需要
next-hop-local?
iBGP 默认防环机制规定,从 eBGP 学到的路由传给 iBGP 时,不改变下一跳。如果 R1 不修改,R2 去往 R4 业务网络的下一跳将是10.0.14.4,但 R2 没有去往10.0.14.0/24的路由(OSPF 未宣告),会导致路由不可达。修改为自身地址后,R2 就可以通过 OSPF 找到 R1 并转发。 - 宣告路由的方式:
network 10.1.4.0 24必须要求本地路由表中存在精确的/24直连路由(已在 Loopback1 上配置)。
彩蛋:本实验中有一个隐藏坑:AR4/AR5 没配 Router ID !
在华为设备中,如果你没有手动指定 BGP 的 Router ID,BGP 会按照以下顺序自动选举:
- 如果有配置了
router id,直接用。 - 如果没有,选所有 Loopback 接口中 IP 地址最大的那个。
- 如果没有 Loopback,选物理接口中 IP 地址最大的那个。
你看 AR4:
Loopback0 是 10.0.4.4
Loopback1 是 10.1.4.4
显然 10.1.4.4 更大,所以 AR4 的 BGP Router ID 自动变成了 10.1.4.4。同理,AR5 的 BGP Router ID 变成了 10.1.5.5。
有什么危害?
虽然实验能通,但在真实网络中,这是一个致命隐患。10.1.4.4 是用来模拟业务网段的,如果这个业务网段(Loopback1)因为某种原因(比如接口被 shutdown 或物理震荡)断开了,这个 IP 就会消失。一旦 BGP 发现最大的 IP 没了,它就会重新选举 Router ID,导致整个 BGP 进程直接重启(Reset),瞬间造成全网路由震荡断网。
规范做法: 永远手动将 Router ID 写死为设备的 Loopback0 地址(即 10.0.4.4 和 10.0.5.5)。
2、补救
AR4 补救配置:
text
<AR4> system-view
[AR4] bgp 64513
[AR4-bgp] router-id 10.0.4.4 # 手动指定 Router ID 为 Loopback0 的地址
[AR4-bgp] quit
[AR4]quit
<AR4> reset bgp all # 在用户视图下重置 BGP 连接,让新 ID 生效
AR5 补救配置:
text
<AR5> system-view
[AR5] bgp 64514
[AR5-bgp] router-id 10.0.5.5
[AR5-bgp] quit
<AR5> reset bgp all
(注:敲完 reset bgp all 后,BGP 邻居会短暂断开一下,然后重新建立,稍等片刻即可。)
检查:
<AR4>display bgp peer
BGP local router ID : 10.0.4.4
Local AS number : 64513
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
10.0.1.1 4 64512 8 6 0 00:03:00 Established
1
BGP local router ID : 10.0.4.4,不是之前的10.1.4.4了。成功。
<AR5>display bgp peer
BGP local router ID : 10.0.5.5
Local AS number : 64514
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
10.0.35.3 4 64512 6 7 0 00:03:48 Established
1
看到BGP local router ID : 10.0.5.5。成功。
<AR2>display bgp routing-table
BGP Local router ID is 10.0.2.2
Status codes: - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
>i 10.1.4.0/24 10.0.1.1 0 100 0 64513i
>i 10.1.5.0/24 10.0.3.3 0 100 0 64514i
- 能看到
10.1.4.0/24和10.1.5.0/24两条路由。 - 前面的状态码包含
>(表示最优有效路由)。 - NextHop(下一跳)是 R1 的地址(
10.0.1.1)和 R3 的地址(10.0.3.3)。
控制面没问题了,最后测一下实际能不能通。在 AR4 上执行(带源地址 ping AR5 的业务网段)
<AR4>ping -a 10.1.4.4 10.1.5.5
PING 10.1.5.5: 56 data bytes, press CTRL_C to break
Reply from 10.1.5.5: bytes=56 Sequence=1 ttl=252 time=50 ms
Reply from 10.1.5.5: bytes=56 Sequence=2 ttl=252 time=40 ms
Reply from 10.1.5.5: bytes=56 Sequence=3 ttl=252 time=40 ms
Reply from 10.1.5.5: bytes=56 Sequence=4 ttl=252 time=40 ms
Reply from 10.1.5.5: bytes=56 Sequence=5 ttl=252 time=50 ms
--- 10.1.5.5 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 40/44/50 ms
5 个包全通。
排坑鸣谢:kimi.