多AS互联BGP4综合实验设计

经典的多自治系统(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 的默认规则是:

  1. 手动配置的 router id 优先级最高。

  2. 如果没有手动配置,OSPF 会自动在所有处于 up 状态的接口中,选举 IP地址最大 的 Loopback 接口地址作为 Router ID。

  3. 如果没有 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 邻居分为两步:

  1. 在 bgp 64512 视图下指定 peer x.x.x.x as-number xxxx(定义邻居和AS号)。
  2. 进入 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 网段。


四、 核心技术点解析

  1. 为什么 R1 和 R4 建立邻居用 Loopback?
    使用 Loopback 接口建立邻居更稳定。配置了 ebgp-max-hop 2 是因为默认 eBGP 报文的 TTL 为 1(物理直连),经过一跳(Loopback 到物理接口)后 TTL 会减 1 导致丢弃,放大跳数可解决。
  2. 为什么 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 并转发。
  3. 宣告路由的方式:network 10.1.4.0 24 必须要求本地路由表中存在精确的 /24 直连路由(已在 Loopback1 上配置)。

彩蛋:本实验中有一个隐藏坑:AR4/AR5 没配 Router ID !

在华为设备中,如果你没有手动指定 BGP 的 Router ID,BGP 会按照以下顺序自动选举:

  1. 如果有配置了 router id,直接用。
  2. 如果没有,选所有 Loopback 接口中 IP 地址最大的那个。
  3. 如果没有 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.

相关推荐
某不知名網友1 小时前
ROS2进阶:服务通信、自定义SRV接口、参数服务器与基于服务的参数通信详解
java·开发语言·microsoft
Wang's Blog1 小时前
Java 项目实战: 交友项目 - MongoDB 入门:体系结构和命令行操作
java·mongodb·交友
小溪学编程1 小时前
将 Bean 放入 Spring 容器中的方式有哪些?
java·后端·spring
java_nnnn1 小时前
LeetCode刷题滑动窗口(水果成篮+找到字符串中所有字母的异位词)Java
java·开发语言·leetcode
用户3721574261351 小时前
Java 读取、修改和清空 PDF 文档属性(元数据)
java
SL_staff1 小时前
从‘改一行代码等三天’到‘改完即生效’:实施工程师的逻辑引擎避坑手记
java·产品·全栈
小羊没烦恼!2 小时前
异步编程:线程概述及使用
java·开发语言·mysql·算法·c#
hhwyqwqhhwy2 小时前
设备树之 provider 和 consumer
java·linux·前端
\光辉岁月/2 小时前
9.日期时间类
java·date·localdatetime·日期类