你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure NAT 网关设计虚拟网络

请阅读本文,了解有关使用 NAT 网关设计虚拟网络的注意事项。

重要

标准 V2 SKU Azure NAT 网关目前为预览版。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款

使用 NAT 网关连接到 Internet

对于需要通过 Internet 连接到公共终结点的所有生产工作负载,建议使用 NAT 网关。 在部署具有子网和至少一个公共 IP 地址的 NAT 网关时,会立即建立出站连接。 无需路由配置即可开始使用 NAT 网关进行出站连接。 NAT 网关将成为子网到 Internet 的默认路由。

如果虚拟网络中存在其他出站配置,例如负载均衡器或实例级公共 IP (IL PIP),NAT 网关会优先用于出站连接。 新的出站发起和返回流量均会通过 NAT 网关传输。 而且在向已有出站配置的子网添加 NAT 网关时,出站连接不会出现中断。

使用 StandardV2 NAT 网关实现区域冗余

可用性区域 是每个 Azure 区域内物理上独立的数据中心群组。 当一个区域发生故障时,服务可以切换到任意一个剩余的正常区域。

StandardV2 NAT 网关支持可用性区域方案。

部署 StandardV2 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 PaaS 服务并绕过 Internet。 绕过 Internet 连接到其他 Azure PaaS 服务时,可以释放 SNAT 端口并降低 SNAT 端口耗尽的风险。 应尽可能使用专用链接连接到 Azure PaaS 服务,从而释放 SNAT 端口库存。

专用链接使用虚拟机的专用 IP 地址或 Azure 网络中的其他计算资源,通过 Azure 主干网络以私密且安全的方式连接到 Azure PaaS 服务。 查看专用链接支持的可用 Azure 服务列表。

注意

Microsoft 建议使用 Azure 专用链接,以安全私密地访问 Azure 托管的服务。 也可以使用服务终结点,通过 Azure 主干网络直接连接到 Azure PaaS 服务。

为 Azure 虚拟网络提供出站和入站连接

NAT 网关、负载均衡器和实例级公共 IP 可感知流方向,可以共存在同一虚拟网络中,以便无缝提供出站和入站连接。 通过负载均衡器或实例级公共 IP 传输的入站流量与通过 NAT 网关传输的出站流量将分开转换。

专用实例使用 NAT 网关处理出站流量和出站发起流的所有响应流量。 同时,使用实例级公共 IP 或负载均衡器处理入站流量和入站发起流的所有响应流量。

以下示例演示负载均衡器或实例级公共 IP 与 NAT 网关共存的场景。 入站流量遍历负载均衡器或公共 IP。 出站流量遍历 NAT 网关。

NAT 网关和配备实例级公共 IP 的 VM

具有实例级 IP 地址的虚拟机的 NAT 网关示意图。

图:NAT 网关和配备实例级公共 IP 的 VM

资源 流量流方向 使用的连接方法
VM(子网 1) 入站和出站 实例级公共 IP
NAT 网关
虚拟机规模集(子网 1) 入站和出站 NA
NAT 网关
VM(子网 2) 入站和出站 NA
NAT 网关

虚拟机使用 NAT 网关处理出站和返回流量。 入站发起的流量通过实例级公共 IP 直接关联到子网 1 中的虚拟机。 来自子网 1 的虚拟机规模集和来自子网 2 的 VM 只能通过 NAT 网关传出和接收响应流量。 两者均无法接收任何入站发起流量。

NAT 网关和配备标准公共负载均衡器的 VM

NAT 网关(处理虚拟网络至 Internet 的出站流量)与公共负载均衡器(处理入站流量)混合部署示意图。

图:NAT 网关和配备标准公共负载均衡器的 VM

资源 流量流方向 使用的连接方法
VM 和虚拟机规模集(子网 1) 入站和出站 负载均衡器
NAT 网关
VM(子网 2) 入站和出站 NA
NAT 网关

NAT 网关会覆盖负载均衡器上负载均衡规则或出站规则的所有出站配置。 后端池中的 VM 实例使用 NAT 网关发送出站流量并接收返回流量。 入站发起的流量将通过负载均衡器后端池中的所有 VM 实例(子网 1)的负载均衡器。 来自子网 2 的 VM 只能通过 NAT 网关传出和接收响应流量。 两者均无法接收任何入站发起流量。

NAT 网关、配备实例级公共 IP 的 VM 以及配备标准公共负载均衡器的 VM

NAT 网关(处理虚拟网络至 Internet 的出站流量)和实例级公共 IP 与公共负载均衡器(处理入站流量)混合部署示意图。

图:NAT 网关、配备实例级公共 IP 的 VM 以及配备标准公共负载均衡器的 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 地址。 Microsoft 会管理服务标记包含的地址前缀,并在地址更改时自动更新服务标记,从而降低管理网络安全规则的复杂性。

服务标记的公共 IP 地址可与 NAT 网关配合使用,以提供到 Internet 的出站连接。 要把附有服务标签的公共 IP 添加到 NAT 网关,可以使用 Azure 中任意可用的客户端(例如门户、CLI 或 PowerShell)进行操作。 请参阅如何添加和移除 NAT 网关的公共 IP 以获取详细指导。

注意

NAT 网关不支持路由 首选项为“Internet”的公共 IP 地址。 NAT 网关仅支持通过Microsoft全局网络路由的公共 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 地址。

StandardV2 NAT 网关支持通过 Azure Monitor 的 NAT 网关流日志。 NAT 网关流日志为流经 StandardV2 NAT 网关的流量提供 IP 级别流量信息。 有关详细信息,请参阅 使用流日志分析 NAT 网关流量

NAT 网关和用户定义的路由

NAT 网关需依赖子网的默认路由 0.0.0.0/0(下一跃点 Internet),对互联网出站流量进行源 NAT (SNAT) 处理。

若创建用户定义路由 (UDR) 将 0.0.0.0/0 流量的下一跃点指向虚拟设备,则会覆盖系统的默认“Internet”路由。 因此,所有出站流量都会发送到虚拟设备,而不是通过 NAT 网关。

此模式的常见用途是强制隧道:将所有 0.0.0.0/0 流量转发到虚拟设备,例如 VPN 网关或 ExpressRoute。 该设备随后可将流量重定向到本地网络,在本地安全策略、监控及合规管控下访问 Internet。 在此方案中,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 网关。

  • StandardV2 NAT 网关需要 StandardV2 SKU 公共 IP 地址和前缀。 不支持标准 SKU 公共 IP。

  • StandardV2 NAT 网关不支持自定义 IP 前缀(BYOIP)

  • StandardV2 NAT 网关不能作为 AKS 工作负荷管理的 NAT 网关进行部署。 仅支持配置为用户分配的 NAT 网关。 有关详细信息,请参阅 [为 AKS 群集创建 NAT 网关](为 Azure Kubernetes 服务 (AKS) 群集创建托管或用户分配的 NAT 网关 - Azure Kubernetes 服务 |Microsoft Learn

  • StandardV2 NAT 网关在选定的 Azure 区域中可用。 它在以下区域中不可用:

    • 加拿大东部
    • 印度中部
    • 智利中部
    • 印度尼西亚中部
    • 以色列西北部
    • 马来西亚西部
    • 卡塔尔中部
    • 阿拉伯联合酋长国中部