现象:路由器和交换机双路配置等价路由不通
问题:
这个是豆包给的思路ecmp双线等价路由,豆包描述直接配置静态路由。说设备ecmp功能是默认开启的。
还有就是这个测试路由后面想加bfd ,豆包描述这2个型号的设备直接加bfd,设备会自动启动bfd探测不需要手动配置bfd参数所有的bfd参数都是设备按照bfd创建的默认参数
本次实验使用HCL测试
路由配置
interface LoopBack0
ip address 10.1.1.1 255.255.255.0
#
return
[H3C]dis cur int g0/0/1
#
interface GigabitEthernet0/0/1
port link-mode route
combo enable copper
ip address 1.1.1.1 255.255.255.252
#
return
[H3C]dis cur int g0/0/2
#
interface GigabitEthernet0/0/2
port link-mode route
combo enable copper
ip address 2.2.2.1 255.255.255.252
ip route-static 20.1.1.0 24 1.1.1.2
ip route-static 20.1.1.0 24 2.2.2.2
----------------------------------------------------
交换配置
interface LoopBack0
ip binding vpn-instance xzm
ip address 20.1.1.1 255.255.255.0
#
return
<H3C>dis cur int g1/0/1
#
interface GigabitEthernet1/0/1
port link-mode route
combo enable fiber
ip binding vpn-instance xzm
ip address 1.1.1.2 255.255.255.252
#
return
<H3C>dis cur int g1/0/2
#
interface GigabitEthernet1/0/2
port link-mode route
combo enable fiber
ip address 2.2.2.2 255.255.255.252
ip route-static vpn-instance xzm 10.1.1.0 24 1.1.1.1
ip route-static vpn-instance xzm 10.1.1.0 24 2.2.2.1
----------------------------------------------------------
(0)
2个设备之间做ISIS三层互通就可以。加载上BFD
(0)
isis 不熟,我用ospf试试吧。
一、为什么等价路由不通?(根因)
1. 最致命问题:交换机侧用了 VPN 实例,路由器侧没绑定
交换机(S6850)的接口和路由都绑定了 vpn-instance xzm,但路由器(VSR-88)侧没有配置任何 VPN 实例,导致:
路由器发往 20.1.1.0/24 的报文,从 1.1.1.2/2.2.2.2 收到后,交换机认为这些报文属于公网实例,和 vpn-instance xzm 完全隔离,无法路由到 LoopBack0。
你 ping 的 20.1.1.1 是 vpn-instance xzm 里的地址,路由器侧根本没有对应的路由,也没有进入 VPN 实例转发。
2. ECMP 功能默认是开启的,但有前提
H3C VSR 系列(含 VSR-88)和 S68 系列默认开启 ECMP,不需要额外配置 ecmp enable。
但前提是:两条路由的优先级、开销、下一跳都完全一致,且设备支持。你的配置满足这个条件,但因为 VPN 隔离,路由根本没生效。
3. BFD 配置误区:不是加个 bfd 就自动生效
你说 “直接加 bfd 设备会自动启动探测”,这是错误的。
在 H3C 设备上,静态路由绑定 BFD 必须:
全局开启 BFD
接口下开启 BFD
路由命令里指定 bfd control-packet 或 bfd echo-packet
公网和 VPN 实例下的 BFD 探测需要分别配置,不能混用默认参数。
二、可直接复制的完整修复配置(分设备)
1. 路由器侧(VSR-88 / 模拟 SR6608)
bash
运行
# 全局配置
system-view
sysname Router
# 接口配置
interface LoopBack0
ip address 10.1.1.1 255.255.255.0
interface GigabitEthernet0/0/1
port link-mode route
combo enable copper
ip address 1.1.1.1 255.255.255.252
interface GigabitEthernet0/0/2
port link-mode route
combo enable copper
ip address 2.2.2.1 255.255.255.252
# 全局开启BFD
bfd
# 接口下开启BFD(echo模式,HCL推荐)
interface GigabitEthernet0/0/1
bfd echo-packet enable
interface GigabitEthernet0/0/2
bfd echo-packet enable
# 配置等价静态路由+BFD探测
ip route-static 20.1.1.0 24 1.1.1.2 bfd echo-packet
ip route-static 20.1.1.0 24 2.2.2.2 bfd echo-packet
2. 交换机侧(S6850 / 模拟 S12508-AF)
bash
运行
# 全局配置
system-view
sysname Switch
# 创建VPN实例(必须和路由绑定)
ip vpn-instance xzm
route-distinguisher 100:1
# 接口配置
interface LoopBack0
ip binding vpn-instance xzm
ip address 20.1.1.1 255.255.255.0
interface GigabitEthernet1/0/1
port link-mode route
combo enable fiber
ip binding vpn-instance xzm
ip address 1.1.1.2 255.255.255.252
interface GigabitEthernet1/0/2
port link-mode route
combo enable fiber
ip binding vpn-instance xzm
ip address 2.2.2.2 255.255.255.252
# 全局开启BFD
bfd
# 接口下开启BFD(echo模式)
interface GigabitEthernet1/0/1
bfd echo-packet enable
interface GigabitEthernet1/0/2
bfd echo-packet enable
# 配置等价静态路由+VPN实例+BFD探测
ip route-static vpn-instance xzm 10.1.1.0 24 1.1.1.1 bfd echo-packet
ip route-static vpn-instance xzm 10.1.1.0 24 2.2.2.1 bfd echo-packet
三、关键验证步骤(配置完必做)
1. 验证路由是否为等价路由
路由器侧执行:
bash
运行
display ip routing-table 20.1.1.0 verbose
必须看到 两个下一跳(1.1.1.2 和 2.2.2.2),且 Flags 中都有 ECMP 标记。
交换机侧执行:
bash
运行
display ip routing-table vpn-instance xzm 10.1.1.0 verbose
同样要看到两个等价路由条目。
2. 验证 BFD 会话是否建立
路由器侧执行:
bash
运行
display bfd session all
看到 State 为 Up,说明 BFD 探测正常。
3. 测试连通性
bash
运行
# 路由器侧ping交换机侧LoopBack
ping 20.1.1.1
# 交换机侧ping路由器侧LoopBack
ping -vpn-instance xzm 10.1.1.1
四、HCL 模拟器特殊注意事项
S6850 与 VSR 互联:HCL 中 S6850 的 combo enable fiber 要和 VSR 的 combo enable copper 对应,否则接口可能不 up。
BFD echo 模式兼容性:HCL 中推荐用 bfd echo-packet,control-packet 模式在模拟器中容易出现会话无法建立的问题。
VPN 实例下 BFD 探测:必须在 ip route-static vpn-instance 命令中绑定 BFD,不能在公网实例下配置。
五、补充:为什么你之前说 “加 bfd 自动生效” 是错的?
H3C 设备中,静态路由绑定 BFD 有两种模式:
Echo 模式:接口下开启 bfd echo-packet enable,路由命令加 bfd echo-packet,参数默认使用全局模板,但仍需手动指定。
Control 模式:需要创建 BFD 会话模板,指定对端 IP、源接口,再绑定到路由上,完全手动配置。
没有任何模式是 “只加 bfd 就自动生效” 的,必须手动开启和绑定。
(0)
你遇到的双线等价路由不通,从配置来看,问题大概率出在交换机的 VPN实例 配置上。
简单来说,你的路由器(SR6608)路由在公网,交换机(S12508-AF)路由在私网(VPN xzm),两边路由表被隔离了,自然无法通过等价路由实现互通和负载分担。
你的排查方向是对的,但故障根因其实是路由表的隔离。
你的配置现状:你在交换机上的静态路由配置了 vpn-instance xzm,这意味着这些路由被放入了私网路由表。而路由器上的静态路由没有指定 vpn-instance,它们停留在公网路由表。两者是完全隔离的。
为什么会不通:等价路由(ECMP)生效的前提,是去往同一目的地的、开销相同的多条路由出现在同一个路由表中。在你的配置里,去往 20.1.1.0/24 和 10.1.1.0/24 的两条路由,在公网和私网中各有一条,无法形成等价,设备只是根据路由的优先级选择其中一条,等价路由功能并未生效。
为了让你更直观地理解,你的路由状态大概是这样的:
| 设备 | 路由表类型 | 目的地 | 下一跳 | 是否等价? |
|---|---|---|---|---|
| SR6608 | 公网 (Public) | 20.1.1.0/24 | 1.1.1.2 | 否 (私网有另一条) |
| SR6608 | 公网 (Public) | 20.1.1.0/24 | 2.2.2.2 | 否 (私网有另一条) |
| S12508-AF | 私网 (VPN xzm) | 10.1.1.0/24 | 1.1.1.1 | 否 (公网有另一条) |
| S12508-AF | 私网 (VPN xzm) | 10.1.1.0/24 | 2.2.2.1 | 否 (公网有另一条) |
要让它们形成等价,你必须将所有期望等价的静态路由配置在同一个路由表中。这里提供两种方案:
方案A(推荐):将路由器上的路由也拉入“私网”
如果你的全网络都规划在这个VPN实例内,这是最彻底的做法。你需要做两件事:
接口入网:将路由器与交换机互联的两个接口(GE0/0/1, GE0/0/2)也绑定到VPN实例 xzm。
路由入表:在路由器上配置静态路由时,也加上 vpn-instance xzm,让其进入私网路由表。
方案B(备选):将交换机上的路由“释放”回公网
如果VPN实例是误配,这是最快的解决方法。在交换机上,将静态路由配置为不含 vpn-instance 参数,使其回到公网路由表。
GE1/0/1 接口下的 ip binding vpn-instance xzm 配置移除,并确认交换机上的 LoopBack0 接口及下联终端的网关是否也需要调整。路由调通后,关于你关心的 BFD(双向转发检测),正确的配置并非“全自动”,而是需要在静态路由上通过 track 关联 BFD 来实现。
这是一个典型的配置示例,可以作为参考:
开启BFD echo报文源地址:
配置静态路由并与BFD联动:
track 1/track 2: 与BFD会话关联的Track项。
preference 70: 关键配置。备份路由的优先级必须低于主路由(默认优先级为60),且不能与主路由等价。
对端设备配置同理:确保BFD会话的双向检测能够建立。
配置完成后,你可以使用这些命令来验证效果:
display bfd session:查看BFD会话是否正常建立(State为Up)。
display ip routing-table:查看路由表,确认等价路由是否已生效。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明