请阅读本文以熟悉有关使用 NAT 网关设计虚拟网络的注意事项。
使用 NAT 网关连接到 Internet
对于需要通过 Internet 连接到公共终结点的所有生产工作负载,建议使用 NAT 网关。 出站连接在部署具有子网和至少一个公共 IP 地址的 NAT 网关后立即发生。 无需路由配置即可通过 NAT 网关建立出站连接。 NAT 网关将成为子网到 Internet 的默认路由。
如果虚拟网络中存在其他出站配置,例如负载均衡器或实例级公共 IP (IL PIP),则 NAT 网关优先用于出站连接。 新的出站发起流量和返回流量将使用 NAT 网关。 将 NAT 网关添加到具有现有出站配置的子网后,出站连接不会存在故障时间。
缩放 NAT 网关以满足动态工作负载的需求
缩放 NAT 网关功能主要用于管理共享的可用 SNAT 端口库存。
缩放工作负载时,应假设每个流需要新的 SNAT 端口,然后缩放出站流量的可用 IP 地址总数。 请仔细考虑要设计的规模,然后分配 IP 地址。 NAT 网关需要足够的 SNAT 端口库存,才能应对附加到 NAT 网关的所有子网的预期峰值出站流。
随着 SNAT 端口即将耗尽,连接流可能不会成功。
缩放注意事项
每个 NAT 网关公共 IP 地址提供 64,512 个 SNAT 端口以建立出站连接。 NAT 网关可以纵向扩展到超过 100 万个 SNAT 端口。
SNAT 可将子网中的专用地址映射到附加到 NAT 网关的一个或多个公共 IP 地址,并重写此过程中的源地址和源端口。 当与同一目标终结点建立多个连接时,将会使用新的 SNAT 端口。 要区分流向同一目标的不同连接流,必须使用新的 SNAT 端口。
流向不同目标终结点的连接流可以同时重用同一 SNAT 端口。 如果可能,将会重用发送到不同目标的 SNAT 端口连接。 随着 SNAT 端口即将耗尽,流可能不会成功。
有关 SNAT 示例,请参阅 NAT 网关的示例 SNAT 流。
使用专用链接连接到 Azure 服务
可以直接通过 Azure 主干网络从 Azure 虚拟网络连接到 Azure PaaS 服务并绕过 Internet。 绕过 Internet 连接到其他 Azure PaaS 服务时,可以释放 SNAT 端口并降低 SNAT 端口耗尽的风险。 应尽可能使用专用链接连接到 Azure PaaS 服务,从而释放 SNAT 端口库存。
专用链接使用虚拟机的专用 IP 地址或 Azure 网络中的其他计算资源,通过 Azure 主干网络以私密且安全的方式连接到 Azure PaaS 服务。 查看专用链接支持的可用 Azure 服务列表。
注意
Azure 建议使用 Azure 专用链接对 Azure 中托管的服务进行安全和专用访问。 服务终结点还可用于通过 Azure 主干直接连接到 Azure PaaS 服务。
为 Azure 虚拟网络提供出站和入站连接
NAT 网关、负载均衡器和实例级公共 IP 可感知流方向,可以共存在同一虚拟网络中,以便无缝提供出站和入站连接。 通过负载均衡器或实例级公共 IP 的入站流量与通过 NAT 网关的出站流量分开进行转换。
专用实例将 NAT 网关用于出站流量和出站发起流的任何响应流量。 专用实例将实例级公共 IP 或负载均衡器用于入站流量,以及入站发起流的任何响应流量。
以下示例演示了负载均衡器或实例级公共 IP 与 NAT 网关的共存。 入站流量会通过负载均衡器或公共 IP。 出站流量会通过 NAT 网关。
具有实例级公共 IP 的 NAT 网关和 VM
图:具有实例级公共 IP 的 NAT 网关和 VM
| 资源 | 流量流方向 | 所用连接方法 |
|---|---|---|
| VM(子网 1) | 入站和出站 | 实例级公共 IP NAT 网关 |
| 虚拟机规模集(子网 1) | 入站和出站 | NA NAT 网关 |
| VM(子网 2) | 入站和出站 | NA NAT 网关 |
虚拟机可将 NAT 网关用于出站和返回流量。 入站发起的流量通过实例级公共 IP 直接关联到子网 1 中的虚拟机。 来自子网 1 的虚拟机规模集和来自子网 2 的 VM 只能通过 NAT 网关传出和接收响应流量。 无法接收任何入站发起的流量。
具有标准公共负载均衡器的 NAT 网关和 VM
图:具有标准公共负载均衡器的 NAT 网关和 VM
| 资源 | 流量流方向 | 所用连接方法 |
|---|---|---|
| VM 和虚拟机规模集(子网 1) | 入站和出站 | 负载均衡器 NAT 网关 |
| VM(子网 2) | 入站和出站 | NA NAT 网关 |
NAT 网关将取代负载均衡器上负载均衡规则或出站规则中的任何出站配置。 后端池中的 VM 实例将使用 NAT 网关发送出站流量并接收返回流量。 入站流量通过负载均衡器进入其后端池,并传递到该池中所有 VM 实例(子网 1)。 来自子网 2 的 VM 只能通过 NAT 网关传出和接收响应流量。 无法接收任何入站发起的流量。
具有实例级公共 IP 和标准公共负载均衡器的 NAT 网关与 VM
图:具有实例级公共 IP 和标准公共负载均衡器的 NAT 网关和 VM
| 资源 | 流量流方向 | 所用连接方法 |
|---|---|---|
| VM(子网 1) | 入站和出站 | 实例级公共 IP NAT 网关 |
| 虚拟机规模集(子网 1) | 入站和出站 | 负载均衡器 NAT 网关 |
| VM(子网 2) | 入站和出站 | NA NAT 网关 |
NAT 网关将取代负载均衡器上负载均衡规则或出站规则以及虚拟机上实例级公共 IP 中的任何出站配置。 子网 1 和子网 2 中的所有虚拟机将 NAT 网关专用于出站和返回流量。 实例级公共 IP 优先于负载均衡器。 子网 1 中的 VM 将实例级公共 IP 用于入站发起的流量。 虚拟机规模集没有实例级公共 IP。
如何将服务标记的公共 IP 与 NAT 网关配合使用
服务标记代表给定 Azure 服务中的一组 IP 地址。 Azure 管理服务标记包含的地址前缀,并在地址发生更改时自动更新服务标记,从而减少管理网络安全规则的复杂性。
服务标记的公共 IP 地址可与 NAT 网关配合使用,以提供到 Internet 的出站连接。 若要将标记为公共 IP 的服务添加到 NAT 网关,可以使用 Azure 中的任何可用客户端(例如门户、CLI 或 powershell)来附加它。 请参阅如何添加和移除 NAT 网关的公共 IP 以获取详细指导。
使用 VNet 流日志监视出站网络流量
若要收集 SKU NAT 网关的流量见解,建议使用虚拟网络流日志。 虚拟网络 (VNet) 流日志是 Azure 网络观察程序的一项功能,可用于记录有关流经虚拟网络的 IP 流量的信息。 若要监视来自 NAT 网关后面的虚拟机的出站流量,请启用 VNet 流日志。
有关如何启用 VNet 流日志的指南,请参阅管理虚拟网络流日志。
建议访问 Log Analytics 工作区 上的日志数据,也可以在其中查询和筛选出站流量的数据。 若要详细了解如何使用 Log Analytics,请参阅 Log Analytics 教程。
有关 VNet 流日志架构的详细信息,请参阅 流量分析架构和数据聚合。
注意
虚拟网络流日志仅显示连接到 Internet 的 VM 实例的专用 IP。 VNet 流日志不会显示 VM 的专用 IP 地址在出站连接中通过 SNAT 转换为哪个 NAT 网关的公共 IP 地址。
NAT 网关和用户定义的路由
NAT 网关依赖于子网的默认路由 0.0.0.0/0,将下一跃点指向 Internet,以便对通往 Internet 的出站流量进行源 NAT(SNAT)。
如果创建用户定义的路由(UDR)将 0.0.0.0/0 流量发送到虚拟设备作为下一跃点,则会覆盖系统的默认“Internet”路由。 因此,所有出站流量都会发送到虚拟设备,而不是通过 NAT 网关。
此模式的常见用途是强制隧道:将所有 0.0.0.0/0 流量转发到虚拟设备,例如 VPN 网关或 ExpressRoute。 然后,设备可以将流量重定向至本地网络,在该网络中流量在本地的安全、监控和合规监管下出站到互联网。 在此方案中,NAT 网关被绕过,不提供出站 Internet 连接。
如果将 UDR 配置为下一跳 = Internet,出站流量将继续通过 NAT 网关。 NAT 网关对该流量执行 SNAT。
在必须通过 Internet 访问某些目标(例如密钥管理服务 (KMS) 终结点)的情况下,此方法特别有用。 在这种情况下,您可以通过以下步骤创建用户定义路由(UDR):
目的地 = KMS 服务地址
下一跳 = Internet
使用此配置,NAT 网关处理 SNAT,并成功通过 Internet 将流量传输到 KMS 终结点。
使用 NAT 网关而不是默认出站访问
在没有显式定义的出站连接方法的情况下将虚拟机部署到虚拟网络中时,会为其分配默认出站公共 IP 地址。 此 IP 地址允许从资源到 Internet 和 Microsoft 中的其他公共终结点的出站连接,被称为默认出站 IP。 默认的出站访问 IP 由Microsoft所有,并可能会更改而不通知。 最终用户无法查看此默认出站访问公共 IP 地址。 不建议将此默认出站访问公共 IP 用于生产工作负荷。
通过 启用专用子网来保护到 Internet 的出站连接。 专用子网可防止为子网中的虚拟机创建新的默认出站 IP。 请改用出站连接的显式方法,例如 NAT 网关。
重要
2026 年 3 月 31 日,新的虚拟网络将默认使用专用子网,这意味着默认的出站访问将不再提供,因此必须启用显式出站方法才能访问 Internet 上的公共终结点,以及在 Microsoft 内的公共终结点。 建议改用显式形式的出站连接,例如 NAT 网关。
某些服务在没有显式出站连接方法(例如 Windows 激活和 Windows 更新)的情况下,在专用子网中的虚拟机上不起作用。 若要激活或更新虚拟机作系统(如 Windows),需要显式的出站连接方法,例如 NAT 网关。
限制
- vWAN 中心配置不支持 NAT 网关。