3

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

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

但是......即使我切换端口,我也无法通过第二个(客户端请求的 IP)进行连接,因此导致问题的是 IP 本身,可能是因为它位于子网 B 中,而虚拟机位于子网 A 中? 这是有道理的,因为子网 A 的地址空间中的第一个 IP 确实有效?

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

我的配置------

1 个(内部)负载均衡器:

前端IP:

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

后端池(1 个池):

1 VM, in subnet A

健康探针(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
4

1 回答 1

0

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

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

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

SQL 服务器正在监听两个端口,因此端口工作正常。

你配置正确了吗?也许我们应该测试一下。在与 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

然后我在子网 2 中创建一个虚拟机,并测试内部负载均衡器,使用不同的前端 IP 地址和不同的端口,它适用于我。

于 2017-04-03T05:57:29.470 回答