使用用户定义的路由通过负载均衡器访问 Azure VM

使用用户定义的路由通过负载均衡器访问 Azure VM

我有一个运行 apache2 的虚拟机,并设置了一个简单的公共负载平衡器来访问它。这很好用。

但是,我尝试将其与用户定义的路由结合使用。这样做的原因是我需要知道我的虚拟机使用哪个公共 IP 地址来访问互联网,因为这个虚拟机需要访问另一个网络上的另一个系统(这是我们现实生活中的一个非常简化的版本,所以请耐心等待)。

我已经设置了一个运行 ubuntu 的“nva vm”,它执行 nat 转换,并且使用 UDR 我已经将我的“apache vms”子网设置为通过 nat vm 进行路由(使用目标 0.0.0.0/0 作为目标)。当我激活此设置时,我的 apache vm 无法再使用负载均衡器访问。

我找不到有关使用 LB 和自定义路线的“特殊考虑”的任何信息,这不是一个受支持的设置吗?

答案1

我找不到有关使用 LB 和自定义路线的“特殊考虑”的任何信息,这不是一个受支持的设置吗?

简而言之,答案是否定的。

此问题不是由 Azure 引起的。这是设计行为。主机上应该只配置一个有效的默认路由条目。在您的案例中,您将网络虚拟机配置为服务器的默认网关。

当服务器对从负载均衡器收到的请求做出响应时,根据您配置的路由,数据包将被发送到nat VM,这将导致连接失败。

如果您尝试在服务器上执行网络捕获,则您会发现负载均衡器不会将请求转发到服务器。 这意味着如果没有有效的反向路由条目,Azure 将不会转发任何数据包。

综上所述,需要访问负载均衡器和nat VM的IP范围不能重叠,应该配置具体的路由条目,而不是默认路由。

相关内容