具有VNet网关和P2S VPN的Azure内部负载平衡网络

最后发布: 2019-01-30 18:33:22


问题

因此,正如标题所示,我需要使用VPN创建负载平衡的内部网关。 我是开发人员,所以网络并不是我的强项。

我有两个相同的VM(可用区1中的VM1和可用区2中的VM2),我需要在它们之间共享VPN流量。 我的客户提供了将在其防火墙上配置的5个地址范围,因此我将选择一个供他们使用,然后他们需要忽略内部路由。

我的最终目标是允许客户端通过VPN连接到一个IP地址(在其分配的范围内),并让Azure主要将流量定向到VM1,但是如果可用区1出现故障,则将故障转移到VM2。 客户端必须忽略最终连接到哪个VM。

我的问题是我无法创建一个配置,其中负载均衡器的静态IP在网关的VPN P2S地址池的地址范围内。 Azure要求P2S地址池在VNet的地址空间之外,并且Load Balancer需要使用VNet的子网(显然是在VNet的地址空间之内,所以我被困住了。

我可以使用客户端为P2S VPN指定的IP范围来创建GW-> Vnet->子网-> VM1 / VM2进行设置,但是没有负载均衡器,那么如何在VM之间定向流量呢?

例如(IP是假设的)

  • Vnet地址范围是172.10.0.0/16
  • 网关子网是172.10.10.0/24
  • 网关的P2S地址池是172.5.5.5/29
  • VM1的IP为172.10.10.4
  • VM2的IP为172.10.10.5

我可以创建一个负载平衡器来使用Vnet(以及后端池中的VM),但是它的静态IP必须落在VNet的子网中,因此必须位于P2S地址池之外。 那么我该如何实现呢?

我曾想创建第二个VNet和相应的网关并链接网关,但是我似乎最终却陷入了困境

更新 :这是我的VNet图的图像。 我现在仅添加了其中一个VM(NSPHiAvail1),但是VM2将位于同一LB后端池中 在此处输入图片说明

NSP_Address_Range是范围,是VNet的子网,是客户端指定的范围。 负载平衡器的前端IP在此范围内

azure azure-virtual-network azure-load-balancer
回答

首先,Azure负载平衡器对新传入的TCP连接进行循环负载平衡,您不能将其用于故障转移。

我的问题是我无法创建一个配置,其中负载均衡器的静态IP在网关的VPN P2S地址池的地址范围内。

您无需在P2S地址池中添加负载均衡器前端IP,该地址池用于连接到Azure VNet的客户端。

通常,您可以配置P2S VPN网关,创建网关子网和vmsubnet并 vmsubnet中创建内部标准SKU负载均衡器 ,然后可以将vmsubnet中的VM添加到后端池中作为负载均衡器的后端目标,并配置healthpro和负载均衡器规则,用于对流量进行负载均衡。 如果是这样,您可以通过负载平衡器前端专用IP从客户端访问后端VM。

此外,您可能知道有关内部负载均衡器的一些限制


回答

我的问题是负载均衡器规则-或缺少规则。 添加端口1433(SQL Server)的规则后,就可以从本地SSMS实例查询数据库

还有另一种解决方案比我尝试实现的解决方案要简单得多,但是它无法正常运行,因此需要一个内部负载均衡器

Azure虚拟机规模集实现了我指定的尽可能多的VM,并且如果一个VM出现故障,它将自动切换到另一个区域。 我不需要可伸缩性方面,因此我禁用了此功能,而仅使用负载平衡方面。

注意:此设置仅公开PUBLIC IP,并且您不能将内部负载均衡器与默认的公共负载均衡器一起分配

这是一些信息:

快速入门:在Azure门户中创建虚拟机规模集

创建使用可用区的虚拟机规模集

Azure虚拟机规模集的联网

虚拟机规模集

费用恰好是您为单个VM支付的费用,但其中包括负载平衡。 因此,它比我在问题中描述的解决方案便宜。 奖金!