带有虚拟网络的 Azure 网关

Azure gateway with a virtual network

我有多个关于网关和 VM 设置的问题,下面是我的实际情况。

我有一个应用程序网关和两个 VM Ubuntu,所有内容都托管在 Azure 上。他们都在同一个虚拟网络上。两个虚拟机只有一个私有 IP(10.1.0.4 和 10.1.0.5),网关有一个私有 IP(10.1.1.4)和一个 public IP。因为只有网关有一个public IP,所以我想一切都必须经过它,这就是我想要的。

我努力实现的目标:

我已经使用 HTTP 参数、侦听器和规则创建了网关的端口 1680 的重定向。

Azure 应用程序网关

Azure 应用程序网关在 HTTP/HTTPS/WebSocket 协议的 OSI 模型的第 7 层运行,因为任何其他协议(如 SSH)都无法路由。

你有几个选择。

您可以使用网络安全组或 NSG 来控制对虚拟机的访问。在 NSG 中,您可以定义允许访问 VM 的流量来自何处。

NSG 的行为类似于基于源和目标信息过滤流量的访问控制列表,并按优先级顺序评估规则。有关 NSG 的详细信息,请参阅 this 页面。

另一种选择是使用负载平衡器。

Azure 负载均衡器

如果您需要进行端口映射,就像您在问题中描述的那样,那么简单的负载均衡器可能是更适合您的解决方案。 Azure 负载均衡器在 OSI 模型中的较低级别工作,即第 4 层(传输层),处理 TCP/UDP 流量。

因此,如果您使用的是负载均衡器,那么您可以设置 NAT 规则以将您的流量转发到特定的机器,换句话说,如果您想这样做:

  • LB 端口 1234 重定向到 VM1 端口 22 并且
  • LB 端口 4312 重定向到 VM2 端口 22

您可以使用 Creating a public load balancer in Resource Manager by using PowerShell 文章中所述的 PowerShell 来完成此操作。

步骤很多,但它会引导您完成创建 NAT 规则、NIC 和关联虚拟机的整个过程。

Azure 应用程序网关与 Azure 负载均衡器?

这两个服务是截然不同的服务,它们试图解决不同的问题,尽管这些问题可能看起来很相似:)

应用程序网关的主要用途是:

  • SSL 终止
  • 基于 cookie 的会话亲和力
  • 负载均衡流量循环

其中 Azure 负载均衡器服务作为 TCP/UDP 级别工作并支持例如端口映射。

成本方面,负载均衡器服务免费,而应用程序网关按小时计费。

关于这个话题有很多很棒的文章,什么时候选择哪个服务。有关更多详细信息,请参见例如链接