Azure内部负载均衡器使用2个不同的前端IP

时间:2017-04-02 05:31:11

标签: azure routing virtual-machine subnet internal-load-balancer

我想通过2个不同的IP地址访问我的VM(特定的SQL Server实例),一个用于内部使用,一个客户请求他们使用的特定IP。在我的虚拟网络中,我需要2个不同的地址空间,因为IP相距很远。据我所知,我还需要2个子网(子网A和子网B)。

在我的内部负载均衡器中,我添加了两个IP(在不同的子网中)作为前端IP,并添加了一个规则来将流量转发到我的SQL Server VM实例(在子网A中) 。规则适用于不同的端口,但SQL Server正在侦听这两个端口,因此端口可以正常工作。

但是......我无法通过第二个(客户端请求的IP)进行连接,即使我切换了端口,因此IP本身也会导致问题,可能是因为它在子网B和VM在子网A中?这有意义,因为子网A的地址空间中的第一个IP确实有用吗?

在我的负载均衡器规则中,我可以为这两个规则指定目标VM和网络适配器,因此我认为这两个子网不会成为问题。

我的配置-------

1(内部)负载均衡器:

frontend IP' s:

 10.4.2.250 (in subnet A, and addressspace 1)
 172.4.2.1 (in subnet B, and addressspace 2)

Backendpools(1个游泳池):

1 VM, in subnet A

Healthprobes(1探针):

1 probe, TCP port 1440

负载平衡规则:

TCP 1440 to backendpool port 1440 with probe 1440
TCP 1450 to backendpool port 1450 with probe 1440

我的MSSQL实例是通过Sql Server配置管理器>配置的。 SQL Server网络配置> MyInstance的协议> TCP / IP属性

  Protocol -> Enabled = Yes, Listen All = Yes

  IP Addresses -> for all fields with 'TCP Port' = 1440,1450

1 个答案:

答案 0 :(得分:0)

根据您的描述,我们可以使用内部负载均衡器为一个VM添加两个内部IP地址。

  

然而......我无法通过第二个(客户端请求的IP)连接作为前端IP,并添加了一个规则来将流量转发到我的SQL Server VM实例(在子网A中) )。规则适用于不同的端口,但SQL Server正在侦听这两个端口,因此端口可以正常工作

同一个Vnet中的所有虚拟机?您创建了一个内部负载均衡器,因此所有虚拟机应该在同一个Vnet中,只有在同一个Vnet中,其他虚拟机可以与内部负载均衡器通信。

  

SQL服务器正在侦听bouth端口,因此端口可以工作。

您是否正确配置?也许我们应该测试一下。使用SQL Server在同一个Vnet中创建一个VM,然后使用此VM将SQL Server与不同的端口连接。如果它工作,则意味着我们应该检查负载均衡器配置,否则我们将检查SQL服务器端口设置。

关于内部负载均衡器,我们可以在其中添加多个前端IP地址(相同的Vnet,不同的子网)。

在我的测试中,我在其上配置了一个Web服务器,并在两个端口(80和8080)上进行侦听,我在其中添加了两个内部IP地址:
前端IP池:sub1 10.0.1.5 sub2 10.0.2.9
后端池:VM1 10.0.1.4
运行状况探测:TCP端口80
负载均衡器规则
1.sub1前端IP地址10.0.1.5端口80
2.sub2前端IP地址10.0.2.9端口8080

然后我在subnet2中创建一个VM,并测试内部负载均衡器,不同的前端IP地址和不同的端口,它适用于我。