虚拟网络 NAT 是一种完全托管且高度可复原的网络地址转换 (NAT) 服务。 虚拟网络 NAT 简化了虚拟网络出站的 Internet 连接。 在子网中配置后,所有出站连接将使用虚拟网络 NAT 的静态公共 IP 地址。
虚拟网络 NAT 权益
安全性
使用 NAT 时,单个 VM(或其他计算资源)不需要公共 IP 地址并且可以保持完全专用。 此类无公共 IP 地址的资源仍可访问虚拟网络之外的外部源。 还可以关联公共 IP 前缀,以确保将一组连续的 IP 用于出站。 可以基于此可预测 IP 列表配置目标防火墙规则。
复原
NAT 是完全托管的分布式服务。 它不依赖于任何单个计算实例,例如 VM 或单个物理网关设备。 NAT 利用软件定义的网络,使其具有很高的复原能力。
可伸缩性
NAT 可以关联到子网,并且该子网中所有计算资源都可以使用 NAT。 此外,虚拟网络中所有子网都可以利用同一资源。 关联到公共 IP 前缀时,它会自动缩放到出站所需的 IP 地址数。
性能
NAT 不会影响计算资源的网络带宽,因为它是软件定义的网络服务。
虚拟网络 NAT 基础知识
NAT 可以在特定的可用性区域中创建,并将冗余内置于指定区域中。 NAT 默认为非区域。 非区域虚拟网络 NAT 尚未关联到特定区域,但是由 Azure 分配给了特定区域。 创建可用性区域方案时,NAT 可以在特定区域中隔离。 此部署称为区域部署。
NAT 一开始就已完全横向扩展。 无需执行纵向或横向扩展操作。 Azure 将自动管理 NAT 的操作。 NAT 始终包含具有多个容错域,可以承受多次故障,可避免服务中断。
- 可为使用 NAT 的每个子网定义出站连接。 同一虚拟网络中的多个子网可以使用不同的 NAT。 或者同一个虚拟网络中的多个子网可以使用同一个 NAT。 可以通过指定要使用的 NAT 网关资源来配置子网。 NAT 会自动处理子网的所有出站流量,而无需完成任何客户配置。 NAT 优先于其他出站方案,可替代子网的默认 Internet 目标。
- 存在虚拟设备和虚拟网络网关的 UDR 会替代 NAT 网关,以将 Internet 绑定流量 (路由到地址前缀为 0.0.0.0/0)。
- NAT 仅支持 TCP 和 UDP 协议。 不支持 ICMP。
- NAT 网关资源可以使用:
- 公共 IP
- 公共 IP 前缀
- NAT 与标准 SKU 公共 IP 地址、公共 IP 前缀资源或两者的组合相兼容。 可以直接使用公共 IP 前缀,或者在多个 NAT 网关资源之间分配前缀的公共 IP 地址。 NAT 会将所有流量梳理到前缀的 IP 地址范围。 基本资源(例如基本负载均衡器或基本公共 IP)与 NAT 不兼容。 基本资源必须放置在未与 NAT 网关关联的子网中。 基本负载均衡器和基本公共 IP 可以升级到标准层,以便与 NAT 网关一起使用。
- NAT 是用于出站连接的推荐方法。 NAT 网关的 SNAT 端口耗尽限制与默认出站访问和负载均衡器的出站规则不同。
- NAT 无法关联到 IPv6 公共 IP 地址或 IPv6 公共 IP 前缀。 它可以关联到双堆栈子网。
- NAT 允许创建从虚拟网络到虚拟网络外部服务的流。 在活动流的响应中仅允许来自 Internet 的返回流量。 虚拟网络外部的服务无法通过 NAT 网关启动入站连接。
- NAT 不能跨多个虚拟网络。
- 无法将多个 NAT 附加到单个子网。
- NAT 不能部署在网关子网中
- NAT 的专用端(虚拟机实例或其他计算资源)发送 TCP 重置数据包,以尝试在不存在的 TCP 连接上进行通信。 例如,已达到空闲超时的连接。 收到的下一个数据包将向专用 IP 地址返回 TCP 重置,以指示此状态并强制关闭连接。 NAT 的公共端不会生成 TCP 重置数据包或其他任何流量。 只会发出客户虚拟网络生成的流量。
- 使用的默认 TCP 空闲超时为 4 分钟,最大可提高到 120 分钟。 流中的任何活动也可以重置空闲计时器,包括 TCP Keepalive。