什么是 Azure NAT 网关?
Azure NAT 网关是一种完全托管且高度可复原的网络地址转换 (NAT) 服务。 可以使用 Azure NAT 网关让专用子网中的所有实例出站能够连接到 Internet,同时保持完全专用。 不允许通过 NAT 网关从 Internet 发起未经请求的入站连接。 只有作为响应数据包到达出站连接的数据包才能通过 NAT 网关。
NAT 网关提供动态 SNAT 端口功能,可自动扩展出站连接并降低 SNAT 端口耗尽的风险。
Azure NAT 网关图
Azure NAT 网关为许多 Azure 资源提供出站连接,包括:
专用子网中的 Azure 虚拟机或虚拟机规模集。
通过虚拟网络集成的 Azure 应用服务实例(Web 应用程序、REST API 和移动后端)。
Azure NAT 网关的优势
简单安装
通过 NAT 网关有意简化部署。 将 NAT 网关附加到子网和公共 IP 地址,并立即开始出站连接到 Internet。 无需任何维护和路由配置。 以后可以添加更多公共 IP 或子网,而不会影响现有配置。
以下步骤是有关如何设置 NAT 网关的示例:
创建非区域或区域 NAT 网关。
分配公共 IP 地址或公共 IP 前缀。
将虚拟网络子网配置为使用 NAT 网关。
如有必要,请修改传输控制协议 (TCP) 空闲超时(可选)。 在更改默认值之前,请查看计时器。
安全性
NAT 网关基于零信任网络安全模型构建,默认情况下是安全的。 使用 NAT 网关时,子网中的专用实例不需要公共 IP 地址即可访问 Internet。 专用资源可以通过源网络地址转换 (SNAT) 到 NAT 网关的静态公共 IP 地址或前缀来访问虚拟网络外部的外部源。 可以使用公共 IP 前缀为出站连接提供一组连续的 IP。 可以基于此可预测 IP 列表配置目标防火墙规则。
复原
Azure NAT 网关是一种完全托管的分布式服务。 它不依赖于单个计算实例,例如 VM 或单个物理网关设备。 NAT 网关始终包含具有多个容错域,可以承受多次故障的同时避免服务中断。 软件定义的网络使 NAT 网关具有高复原能力。
可伸缩性
NAT 网关会在创建后进行横向扩展。 无需执行纵向或横向扩展操作。 Azure 将自动管理 NAT 网关的操作。
将 NAT 网关附加到子网,为该子网中的所有专用资源提供出站连接。 虚拟网络中的所有子网都可以使用相同的 NAT 网关资源。 可以通过向 NAT 网关分配最多 16 个公共 IP 地址或 /28 位掩码长度的公共 IP 前缀来横向扩展出站连接。 NAT 网关关联到公共 IP 前缀时,NAT 网关会自动缩放到出站所需的 IP 地址数。
性能
Azure NAT 网关是软件定义的网络服务。 每个 NAT 网关最多可为出站和返回流量处理 50 Gbps 的数据。
NAT 网关不会影响计算资源的网络带宽。 了解有关 NAT 网关性能的详细信息。
Azure NAT 网关基本信息
出站连接
NAT 网关是推荐的出站连接方法。
- 要从默认出站访问或负载平衡器出站规则迁移到 NAT 网关的出站访问,请参阅迁移到 Azure NAT 网关的出站访问。
注意
2025 年 9 月 30 日,将会停用新部署的默认出站访问权限。 建议改用显式形式的出站连接,例如 NAT 网关。
使用 NAT 网关可以在每个子网级别定义流出量。 NAT 网关将替换子网的默认 Internet 目标。
无需流量路由配置即可使用 NAT 网关。
NAT 网关支持创建从虚拟网络到虚拟网络外部服务的流。 在活动流的响应中仅允许来自 Internet 的返回流量。 虚拟网络外部的服务无法通过 NAT 网关启动入站连接。
NAT 网关优先于其他出站连接方法,包括负载均衡器、实例级公共 IP 地址和 Azure 防火墙。
为虚拟网络(其中已存在其他出站连接方法)配置 NAT 网关时,NAT 网关将接管所有向前移动的出站流量。 Azure 负载均衡器上现有连接的流量流不会下降。 所有新连接都将使用 NAT 网关。
NAT 网关对 SNAT 端口耗尽的限制与默认出站访问和负载均衡器的出站规则不同。
NAT 网关仅支持 TCP 和用户数据报协议 (UDP) 协议。 不支持 Internet 控制消息协议 (ICMP)。
流量路由
子网具有系统默认路由,它将目标为 0.0.0.0/0 的流量自动路由到 Internet。 将 NAT 网关配置为子网后,从子网中存在的虚拟机到 Internet 的通信将优先使用 NAT 网关的公共 IP。
在子网路由表中为 0.0.0.0/0 流量创建用户定义的路由 (UDR),将重写此流量的默认 Internet 路径。 改用将 0.0.0.0/0 流量发送到虚拟设备或虚拟网络网关(VPN 网关和 ExpressRoute)的 UDR 作为下一个跃点类型,会替代 NAT 网关与 Internet 的连接。
出站连接在各种不同路由和出站连接方法中遵循以下优先顺序:
- UDR 到下一个跃点虚拟设备或虚拟网关 >> NAT 网关 >> 虚拟机上的实例级公共 IP 地址 >> 负载均衡器出站规则 >> 通往 Internet 的默认系统路由。
NAT 网关配置
同一虚拟网络中的多个子网可以使用不同的 NAT 网关或同一 NAT 网关。
多个 NAT 网关不能连接到单个子网。
一个 NAT 网关不能跨越多个虚拟网络。
NAT 网关不能部署在网关子网中。
NAT 网关资源最多可以使用 16 个 IP 地址,可以采用以下类型的任意组合:
公共 IP 地址。
公共 IP 前缀。
NAT 网关不能关联到 IPv6 公共 IP 地址或 IPv6 公共 IP 前缀。
NAT 网关可与使用出站规则的负载均衡器配合使用以提供双堆栈出站连接。 请参阅与 NAT 网关和负载均衡器建立双堆栈出站连接。
NAT 网关适用于任何虚拟机网络接口或 IP 配置。 NAT 网关可以对网络接口上的多个 IP 配置进行 SNAT 操作。
NAT 网关可以关联到中心虚拟网络中的 Azure 防火墙子网,并从对等互连到中心的分支虚拟网络提供出站连接。 若要了解详细信息,请参阅 Azure 防火墙与 NAT 网关的集成。
可用性区域
NAT 网关可以在特定的可用性区域中创建,也可以放置在禁止区域中。
创建区域隔离方案时,NAT 网关可以隔离在特定区域中。 此部署称为区域部署。 部署 NAT 网关后,无法更改区域选择。
默认情况下,NAT 网关未置于任何区域中。 非区域 NAT 网关将由 Azure 放置在区域中。
NAT 网关和基本资源
NAT 网关与标准公共 IP 地址、公共 IP 前缀资源或两者的组合相兼容。
基本资源(例如基本负载均衡器或基本公共 IP)与 NAT 网关不兼容。 NAT 网关不能与存在基本资源的子网一起使用。 基本负载均衡器和基本公共 IP 可以升级到标准,以便与 NAT 网关一起使用。
有关如何将负载均衡器从基本升级到标准的详细信息,请参阅升级公共基本 Azure 负载均衡器。
有关如何将公共 IP 从基本 IP 升级到标准的详细信息,请参阅升级公共 IP 地址。
连接超时和计时器
NAT 网关会为识别为非现有连接的任何连接流发送 TCP 重置 (RST) 数据包。 如果达到 NAT 网关空闲超时或连接提前关闭,则连接流不再存在。
当不存在的连接流上的流量发送方收到 NAT 网关 TCP RST 数据包时,该连接将不再可用。
连接关闭后,SNAT 端口将无法随时重新用于同一目标终结点。 NAT 网关需要将 SNAT 端口置于冷却状态,然后才能重新使用它们来连接到同一目标终结点。
SNAT 端口重用 TCP 流量计时器的持续时间取决于连接的关闭方式。 若要了解详细信息,请参阅端口重用计时器。
使用的默认 TCP 空闲超时为 4 分钟,最大可提高到 120 分钟。 流中的任何活动也可以重置空闲计时器,包括 TCP Keepalive。 若要了解详细信息,请参阅空闲超时计时器。
UDP 流量的空闲超时计时器为 4 分钟,且无法更改。
UDP 流量有一个 65 秒的端口重用计时器,必须将端口抑制该时长后,才可将其重复用于同一目标终结点。
定价
有关 Azure NAT 网关定价,请参阅《NAT 网关定价》。
后续步骤
有关如何创建和验证 NAT 网关的详细信息,请参阅快速入门:使用 Azure 门户创建 NAT 网关。
有关 NAT 网关资源的详细信息,请参阅 NAT 网关资源。