结论先行(EVPN VXLAN SDN Border 场景)
现象正常:Border 路由表存在这条静态默认路由,但是不会通过 BGP EVPN 发布给 Leaf 交换机。根因:BGP 引入静态路由时会做递归可达性校验;静态路由下一跳不可达,BGP 不会生成有效 BGP 路由条目,自然不会传递给邻居。
一、完整原理(华三 Comware V7 BGP 通用规则,EVPN 地址族同样遵守)
import-route static 机制:
BGP 只会引入有效 Active 静态路由。
静态路由出接口 UP ≠ 路由有效;必须能够递归解析到下一跳 IP。
plaintext
ip route-static 0.0.0.0 0 203.0.113.1
出接口物理 UP;
但是去往203.0.113.1没有可达路由 → 静态路由在 IP 路由表虽然显示存在,但属于无效静态路由(不可递归)。
BGP 处理逻辑:
Border 执行import-route static扫描路由表:
✅ 能递归解析下一跳 → 生成 BGP 路由,通过 EVPN 发给 Leaf;
❌ 下一跳无法递归解析 → BGP 忽略这条静态路由,不生成 BGP 路由,Leaf 自然收不到。
补充区分:
IP 路由表存在 ≠ BGP 认可为可发布路由;BGP 引入 IGP / 静态路由自带可达性校验。
二、现场验证命令(Border 执行)
plaintext
# 1、查看IP路由表(你已经看到存在默认路由)
display ip routing-table protocol static
# 2、重点!查看BGP本地路由表,看是否生成这条默认路由
display bgp evpn routing-table
# 或者普通IPv4地址族(看你三层路由用evpn-ip前缀还是ipv4-family)
display bgp ipv4-family unicast routing-table
# 如果表里看不到0.0.0.0/0,证明BGP没有引入成功,就是可达性校验拦截
三、两种解决方案(按需选择)
方案 1【推荐,规范设计】保证下一跳可达
给静态路由的下一跳配置回程 / 直连路由,使 Border 可以递归解析下一跳 IP;
下一跳可达后,BGP 自动引入默认路由,EVPN 传递给所有 Leaf。
方案 2【临时强制引入,慎用!极易产生黑洞】
华三 Comware V7 支持关闭可达性校验,强制引入不可递归的静态路由:
plaintext
bgp xxx
ipv4-family unicast
import-route static allow-ibgp-unreachable
⚠️巨大风险:强制发布后 Leaf 收到默认路由;流量到达 Border 后,Border 无法到达外网下一跳,形成全网路由黑洞。仅测试场景临时使用,正式业务不建议。
四、延伸 EVPN 特别提醒
你是 EVPN VXLAN 分布式网关场景:
三层外部路由(默认路由)在 Border 引入,通过 EVPN 的 IP 前缀路由传递;
EVPN 地址族引入路由规则和传统 BGP IPv4 地址族可达性校验逻辑完全一致;
不要混淆:仅接口 UP、下一跳不通,在任何 BGP 引入场景都会触发该现象。
暂无评论
这是完全正常的现象,符合 BGP(包括 BGP EVPN)的标准路由发布规则。
根本原因是:BGP 协议只发布“有效(Active)”且“下一跳可达”的路由。 虽然 display ip routing-table 能看到该静态路由(说明它已写入路由表),但只要下一跳不可达,这条路由就被标记为 “无效(Inactive)”,BGP 绝对不会将其引入并发送给任何 Leaf 交换机(无论是通过 VPNv4 地址族还是 EVPN 地址族)。
以下是针对 H3C Comware V7/V9 平台的深度技术拆解和验证方法:
路由迭代失败(关键机制):
你配置了 ip route-static 0.0.0.0 0 1.1.1.1。
设备需要将下一跳 1.1.1.1“迭代”为具体的出接口。当下一跳不可达时,系统无法完成这一迭代过程。
路由表中的状态:display ip routing-table 会显示该静态路由,但状态中通常会有 Inactive 标志(或在末尾有 invalid 标记)。
BGP 引入过滤机制:
当你在 BGP 视图下配置了 import-route static 或 network 时,BGP 进程会扫描路由表。
BGP 硬性规则:只处理状态为“Active”的路由。状态为 Inactive 的静态路由会被 BGP 忽略,不会生成 BGP 路由条目,自然也就不会通过 peer 发送给 Leaf 交换机。
登录 Border 交换机,执行以下两组对比命令,差异会非常明显:
1. 查看 IP 路由表(能看到静态路由,但可能带标记)
预期结果:显示该默认路由,但请注意状态字段是否有 Inactive 或 Invalid(取决于具体版本)。
2. 查看 BGP 路由表(这里为空,说明没引入进来)
预期结果:没有任何输出(除非还有别的来源)。
3. 查看 BGP EVPN 发布的 Type-5 路由(同理,不会有)
预期结果:不会有对应的 IP 前缀路由发布。
在 SDN/VXLAN 组网中,Border 向 Leaf 发布默认路由属于 L3VPN(Type-5) 路由。
前提条件:BGP EVPN 在发布该 Type-5 路由时,除了下一跳(下一跳 IP 通常是 Border 的 VTEP 地址或 Loopback 地址)可达外,还要求该路由在 VPN 实例(VRF)中的 RT(Route Target)属性匹配。
由于该静态路由在 Border 的 VPN 实例内处于 Inactive 状态,EVPN 进程根本不会生成对应的 NLRI(网络层可达信息),因此 Leaf 根本收不到这个更新包。
要让 Leaf 学到这条默认路由,必须保证 Border 设备能到达该静态路由的下一跳。通常有以下三种修正方式:
使用出接口代替下一跳 IP(强烈推荐):
如果接口物理层 UP,且是 P2P 链路,可以将静态路由改为:
(无需迭代下一跳 IP,直接关联出接口,该路由会变为 Active,从而被 BGP 引入)
保证下一跳 IP 递归可达:
确保有另一条直连路由或静态路由能让交换机到达 1.1.1.1(例如配置 ip route-static 1.1.1.1 255.255.255.255 GigabitEthernet 1/0/1)。
配置黑洞路由(慎用):
如果在极特殊情况下要强制发布该路由(不建议在现网使用),可配置 ip route-static 0.0.0.0 0 NULL 0 并引入 BGP,但这会导致数据包被丢弃,通常只在防环场景使用。
你观察到的现象(Border 有路由,Leaf 没有)完全正常且符合协议逻辑。这不是 BGP 配置错误或 SDN 控制器的问题,而是 BGP 的“有效性检查”机制自动生效的结果。请将静态路由改为“指定出接口”的方式,配置完成后等待几秒,Leaf 上应该就能收到来自 Border 的默认路由了。如果需要立即验证,在 Border 上执行 reset bgp all 也能触发重发布,但不推荐在业务中直接使用。这是完全正常的现象,符合 BGP(包括 BGP EVPN)的标准路由发布规则。
根本原因是:BGP 协议只发布“有效(Active)”且“下一跳可达”的路由。 虽然 display ip routing-table 能看到该静态路由(说明它已写入路由表),但只要下一跳不可达,这条路由就被标记为 “无效(Inactive)”,BGP 绝对不会将其引入并发送给任何 Leaf 交换机。
路由迭代失败(关键机制):
你配置了 ip route-static 0.0.0.0 0 1.1.1.1。
设备需要将下一跳 1.1.1.1“迭代”为具体的出接口。当下一跳不可达时,系统无法完成这一迭代过程。
路由表中的状态:display ip routing-table 会显示该静态路由,但状态中通常会有 Inactive 标志(或在末尾有 invalid 标记)。
BGP 引入过滤机制:
当你在 BGP 视图下配置了 import-route static 或 network 时,BGP 进程会扫描路由表。
BGP 硬性规则:只处理状态为“Active”的路由。状态为 Inactive 的静态路由会被 BGP 忽略,不会生成 BGP 路由条目,自然也就不会通过 peer 发送给 Leaf 交换机。
登录 Border 交换机,执行以下两组对比命令,差异会非常明显:
1. 查看 IP 路由表(能看到静态路由,但可能带标记)
预期结果:显示该默认路由,但请注意状态字段是否有 Inactive 或 Invalid(取决于具体版本)。
2. 查看 BGP 路由表(这里为空,说明没引入进来)
预期结果:没有任何输出(除非还有别的来源)。
3. 查看 BGP EVPN 发布的 Type-5 路由(同理,不会有)
预期结果:不会有对应的 IP 前缀路由发布。
在 SDN/VXLAN 组网中,Border 向 Leaf 发布默认路由属于 L3VPN(Type-5) 路由。
前提条件:BGP EVPN 在发布该 Type-5 路由时,除了下一跳(下一跳 IP 通常是 Border 的 VTEP 地址或 Loopback 地址)可达外,还要求该路由在 VPN 实例(VRF)中的 RT(Route Target)属性匹配。
由于该静态路由在 Border 的 VPN 实例内处于 Inactive 状态,EVPN 进程根本不会生成对应的 NLRI(网络层可达信息),因此 Leaf 根本收不到这个更新包。
要让 Leaf 学到这条默认路由,必须保证 Border 设备能到达该静态路由的下一跳。通常有以下三种修正方式:
使用出接口代替下一跳 IP(强烈推荐):
如果接口物理层 UP,且是 P2P 链路,可以将静态路由改为:
(无需迭代下一跳 IP,直接关联出接口,该路由会变为 Active,从而被 BGP 引入)
保证下一跳 IP 递归可达:
确保有另一条直连路由或静态路由能让交换机到达 1.1.1.1(例如配置 ip route-static 1.1.1.1 255.255.255.255 GigabitEthernet 1/0/1)。
配置黑洞路由(慎用):
如果在极特殊情况下要强制发布该路由(不建议在现网使用),可配置 ip route-static 0.0.0.0 0 NULL 0 并引入 BGP,但这会导致数据包被丢弃,通常只在防环场景使用。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论