You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure中关联多公网负载均衡器的VM出站IP不一致问题

Azure负载均衡出站IP异常问题排查解答

问题场景

我在Azure中创建了包含VMSS的虚拟机,并将它们加入两个公网负载均衡器(LB)的后端地址池。LB1配置了两条TCP负载均衡规则(端口443和22),LB2配置了SNAT出站规则。但在3台VM中执行curl ifconfig.me检测时,发现2台使用LB1的公网前端IP,1台使用LB2的公网前端IP。LB1未配置出站规则,为何部分VM会使用其IP?已检查LB门户配置未发现异常。

原因分析与排查

  • LB1的隐式SNAT规则
    当VM加入公网LB的后端池且LB存在入站负载均衡规则时,Azure默认会自动启用隐式SNAT规则(无需手动配置出站规则)。只要LB1的入站规则处于启用状态,后端VM的出站流量就可能触发这条隐式规则,使用LB1的前端IP作为源地址。

  • 多LB关联的流量匹配逻辑
    你的VMSS实例同时属于两个LB的后端池,出站SNAT的IP选择会遵循以下逻辑:

    • 优先匹配明确配置的SNAT规则,但如果LB2的SNAT规则未覆盖所有协议/端口(比如仅针对特定端口,而curl ifconfig.me使用的80/443端口刚好被LB1的入站规则覆盖),未匹配的流量会 fallback 到LB1的隐式SNAT。
    • VMSS实例在关联多个LB时,存在实例层面的规则匹配随机性,部分实例可能优先触发LB1的隐式规则。
  • 验证步骤

    1. 检查LB1的入站负载均衡规则:查看每个规则的“出站SNAT”选项是否为默认的“启用”状态,这是隐式SNAT生效的关键。
    2. 核对LB2的SNAT规则:确认规则是否覆盖所有协议(选“全部”)和端口范围(0-65535),避免流量漏匹配。
    3. 查看VMSS实例的网络接口:确认每个实例同时关联两个LB,且无NSG策略限制出站流量路由。

解决方案

  • 禁用LB1的隐式SNAT:编辑LB1的所有入站负载均衡规则,将“出站SNAT”设置为“禁用”,切断LB1对出站流量的IP分配能力。
  • 完善LB2的SNAT规则:确保规则覆盖所有出站协议和端口,让所有流量都优先匹配LB2的SNAT规则,统一使用LB2的前端IP。

内容的提问来源于stack exchange,提问作者q85ts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:34:50