Azure VNet非传递路由问题及Hub中Checkpoint NVA路由配置咨询
解决ExpressRoute无法识别Spoke路由的Checkpoint NVA配置方案
咱们先把核心矛盾理清楚:Azure的VNet peering默认是非传递性的,所以ER VNet的网关没办法直接学到Spoke VNet的路由,而你出于管理考量又不能把ER网关移到Hub里,那就得靠Hub里的Checkpoint NVA来做路由的「中转枢纽」。下面是具体可落地的配置步骤:
1. 先确认VNet Peering的基础配置
首先得保证几个VNet之间的peering都开对了关键选项,这是后续配置的前提:
- Hub ↔ Spoke VNet Peering:
- 两边都开启
Allow forwarded traffic(允许转发流量) - Hub侧开启
Allow gateway transit,Spoke侧开启Use remote gateways(确保Spoke能把流量发往Hub的NVA)
- 两边都开启
- Hub ↔ ER VNet Peering:
- 两边开启
Allow forwarded traffic - ER VNet侧开启
Allow gateway transit,Hub侧开启Use remote gateways(让Hub能通过ER VNet的网关访问本地网络)
- 两边开启
2. 配置Checkpoint NVA的内部路由
在Checkpoint设备上,你需要手动添加静态路由条目,确保它能在Spoke和本地网络之间做中转:
- 目标网络:所有Spoke VNet的子网前缀(比如
10.1.0.0/16、10.2.0.0/16这类),下一跳设置为Hub VNet的默认网关(或者直接用Checkpoint自动学到的peering路由,只要能到达Spoke就行) - 目标网络:本地网络的前缀(也就是通过ExpressRoute发布的路由,比如
192.168.0.0/16),下一跳设置为ER VNet的方向(通过Hub到ER VNet的peering路由)
同时别忘了在Checkpoint的安全规则里放开Spoke和本地网络之间的双向流量,别把这些合法流量给阻断了。
3. 配置用户定义路由(UDR)引导流量走向
在Hub VNet的子网(尤其是NVA所在子网、与Spoke/ER VNet peering关联的子网)绑定UDR:
- 添加路由条目:目标为本地网络前缀,下一跳类型选
Virtual appliance,地址填Checkpoint NVA的内网IP(让Hub到本地的流量都走NVA) - 添加路由条目:目标为所有Spoke VNet前缀,下一跳类型选
VNet peering(指向对应的Spoke VNet peering,确保NVA能把流量转发到Spoke)
在ER VNet的网关子网(或所有需要往Spoke发流量的子网)绑定UDR:
- 添加路由条目:目标为所有Spoke VNet前缀,下一跳类型选
VNet peering(指向Hub VNet的peering)
这样ER网关收到本地过来的流量后,会先通过peering到Hub,再由Hub的UDR导向Checkpoint NVA,最终转发到Spoke。
在Spoke VNet的子网绑定UDR:
- 添加路由条目:目标为本地网络前缀,下一跳类型选
VNet peering(指向Hub VNet的peering),让Spoke的流量先到Hub,再经Checkpoint中转到ER VNet。
4. 验证路由与流量
配置完成后,你可以通过以下方式确认效果:
- 在ER VNet的虚拟机上执行
route print(Windows)或ip route(Linux),检查是否能看到Spoke的前缀路由,下一跳是否为Hub的peering地址 - 在Checkpoint设备上查看路由表,确认Spoke和本地网络的路由条目都存在且生效
- 测试本地网络到Spoke虚拟机的双向ping、应用连通性,若还有环路问题,检查UDR的优先级(数字越小优先级越高),确保自定义路由比默认路由优先生效
内容的提问来源于stack exchange,提问作者shakalakka
相关产品推荐
相关产品推荐

