何时应使用 Azure NAT 网关?
考虑部署 Azure NAT 网关服务时,应首先分析你的场景。 默认情况下,不会将该服务部署到 Azure 虚拟网络,并且不是每个方案都适用于此服务。 不过,这是一个很好的解决方案,用于解决在线零售公司的 Azure VM 的连接问题。
使用 Azure NAT 网关服务的场景
Azure NAT 网关提供 NAT 网关资源,无需复杂的预规划,即可按需提供出站连接,这使得在需要时可相对轻松地进行部署。 设置完成后,所有 VM 实例都具有出站连接,并使用指定的静态 IP 地址,进而简化了允许列表的创建。
如果你希望在访问 Internet 资源时为 VM 指定公共 IP 地址,Azure NAT 网关可以提供帮助。 假设你的合作伙伴组织仅允许来自一组固定 IP 地址的连接。 你可以将公共 IP 前缀关联到 Azure NAT 网关,以确保将一组连续的 IP 用于出站连接。 然后,可以根据此可预测的 IP 列表在目标上配置防火墙。 例如,这解决方案可能会解决你的合作伙伴托管你需要连接到的面向 Internet 的 API 的情况。
如果你在 Azure 虚拟网络上的资源建立了许多出站连接,并且集中使用各种端口进行出站通信,则应考虑部署 Azure NAT 网关服务。 该服务可帮助你合并和最大化可用端口号,同时避免端口耗尽。
例如,你可能有一个虚拟网络,其中创建了一些子网。 此子网托管 Azure VM,而另一个子网托管带有网站或其他服务的应用服务。 如果不使用 Azure NAT 网关,则 VM 和其他服务可用于出站连接的端口数量有限。 通常,此数字比理论上可用的 65,535 个端口小。 如果你的一个或多个 VM 或服务用完可用的端口池,则连接将会超时。 由于端口是根据每个 VM 分配的,因此无法从其他 VM 共享端口池,并且所有这些资源都可能有用于公共通信的不同 IP 地址。 分配有公共 IP 的 Azure VM 将使用此地址来访问 Internet 资源, 而没有公共 IP 的 VM 将使用 Azure 服务地址池中当前可用的地址。 Azure NAT 网关通过为其涵盖的子网中的 VM 提供完整的端口范围,以及用于出站连接的唯一公共 IP(或 IP 范围),帮助解决这两个问题。
不适合使用 Azure NAT 网关服务的场景
虽然 Azure NAT 网关是一项有用且易于部署的服务,但可能不适合每种场景。 下面是一些示例:
- 如果你的 Azure VM 布局非常简单,只有几个 VM,几乎不会对 Internet 资源建立许多连接,那么你可能不需要 Azure NAT 网关。 可以改为使用 Azure 本机地址转换或向一个或多个 VM 分配公共 IP。
- 如果需要管理来自 Internet 的 Azure VM 的入站连接,则 Azure NAT 网关没有用。 Azure NAT 网关只管理从 NAT 后面的 Azure VM(或其他服务)发起的入站连接。 安装在 Azure VM 上的 Azure VM 或软件将启动与 Internet 上资源的连接。 Azure NAT 网关注册该连接。 如果 Internet 上的这一资源应将一些数据返回到 Azure VM 或启动入站连接,则允许此行为。 但是,将阻止从 Internet 发起的不响应出站定向流量的连接。
- 如果需要与其他基于 Azure 的服务(例如 Azure SQL 数据库或 Azure 存储)建立连接,则不应使用 Azure NAT 网关。 无需部署 Azure NAT 网关即可连接到 Azure 资源。 连接到 Azure 服务时,可以使用 Azure 专用链接将 Azure 资源与虚拟网络进行连接,并控制对 Azure 服务资源的访问。 例如,访问 Azure 存储时,请使用存储的专用终结点来帮助确保连接完全专用。
- 不能将 Azure NAT 网关与 Azure 网关子网一起使用。 此外,不能在 Azure 中将一项单独的 Azure NAT 网关服务与多个虚拟网络一起使用。 但是,可以使用单个 Azure NAT 网关服务来涵盖同一虚拟网络中的多个子网。