是否有可能在同一个Azure云服务中同时使用ILB和ELB(在相同的端口上侦听)?

我正在Azure上构buildtestingLync部署; 是的,我知道这不被支持,因此“testing”。

Lync前端服务器提供了两套Web服务,一套用于内部用户,另一套用于外部用户; 他们在不同的端口(443和4443)上监听同一台服务器; 当外部服务发布时,您需要反向代理或端口转发,以将公共IP地址的端口443映射到前端服务器的端口4443。 如果池中有多个前端服务器,则还需要对其进行负载平衡

因此,典型的Lync部署如下所示:

Internal users | 443 | Internal LB 192.168.0.20 / \ / \ 443 443 | | Lync FE 1 Lync FE 2 192.168.0.21 192.168.0.22 | | 4443 4443 \ / \ / External LB Public IP Address | 443 | External Users 

应该很容易在Azure中复制,因为它支持外部负载平衡 ( configurationhowto )和内部负载平衡 ( configurationhowto )。 他们甚至在同一个云服务中一起支持,所以这个configuration应该很容易。 但是,这里看起来像“应该”是关键字。

创build外部负载平衡端点(侦听外部端口443,并转发到服务器上的端口4443)后,我试图创build一个内部负载平衡器,并添加到内部端点; 但是,在ILB可以成功创build的情况下,添加侦听端口443的内部端点并转发到服务器上的端口443会失败,出现错误,指出端口443已被另一个端点使用:

 Update-AzureVM : BadRequest : Port 443 is already in use by one of the endpoints in this deployment. Ensure that the port numbers are unique across endpoints within a deployment. 

作为参考,我的命令是:

 Add-AzureInternalLoadBalancer -InternalLoadBalancerName "LyncILB" -ServiceName "LyncFrontEnd" -SubnetName "LabSubnet" -StaticVNetIPAddress 192.168.0.20 

(这个成功完成)

 Get-AzureVM LYNCFE1 | Add-AzureEndpoint -Name "Https-Int" -Protocol "tcp" -LocalPort 443 -PublicPort 443 -LBSetName "HttpsIntLB" -DefaultProbe -InternalLoadBalancerName "LyncILB" 

(这失败了)

现有的外部端点configuration如下:

 Get-AzureVM LYNCFE1 | get-azureendpoint LBSetName : HttpsExtLB LocalPort : 4443 Name : HTTPS-Ext Port : 443 Protocol : tcp Vip : ProbePath : ProbePort : 4443 ProbeProtocol : tcp ProbeIntervalInSeconds : 15 ProbeTimeoutInSeconds : 31 EnableDirectServerReturn : False Acl : {} InternalLoadBalancerName : IdleTimeoutInMinutes : LoadBalancerDistribution : 

这个错误甚至没有什么意义。 外部负载均衡器侦听公共IP地址,而内部负载均衡器侦听内部networking中的私有IP地址; 这里不应该有任何冲突…但是看起来好像有一个冲突。

为什么这不工作? 我做错了什么,或者是Azurenetworking又像往常一样愚蠢?

刚刚遇到了不同的部署相同的问题。 问题是你不能在相同的端口和协议上使用相同的后端IP池configuration多个LB规则。

要实现你想要的东西,你将需要添加额外的网卡到机器上,并使用不同的IP来实现内部和外部的平衡规则。 另外,你可以给机器公开的IP和外部的负载均衡(但是你把机器暴露在互联网上,通常是不可取的)。

希望有所帮助!