我无法从在Azure Stack中创建的负载平衡VM获得有效的outgoing connection。我有文档的场景2:“与VM关联的公共负载均衡器(实例上没有实例级公共IP地址)”。开箱即用的端口仅是80端口。我在附加的防火墙后面,我问自己是否必须打开其他任何特定端口以允许与Internet进行通信。三个问题:
是否存在问题,我尝试从VM内部访问的端口已由负载均衡器转换为其他SNAT端口?
文档对amount of used SNAT ports进行了说明,但没有说明使用了哪个 SNAT端口?我必须在外部防火墙中打开哪些端口?
为什么端口80开箱即可使用?默认情况下,我可以从VM内访问Web。这意味着可以访问公共互联网。我本人未对端口80包含任何其他规则。
我在Azure安全组的传入连接部分中找到了以下内容:在49152和65534之间明确提到了临时端口。不幸的是,在我们的外部防火墙的传出连接中打开这些端口并没有也可以。所有端口上的所有VM内部防火墙都是打开的。
我使用以下模板创建了集群。 SKU应该是默认的一个“标准”,因为我没有为LoadBalancer指定其他任何东西。
{
"apiVersion": "[variables('lbApiVersion')]",
"type": "Microsoft.Network/loadBalancers",
"name": "[concat('LB','-', parameters('clusterName'),'-',variables('vmNodeType0Name'))]",
"location": "[variables('location')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/',concat(variables('lbIPName'),'-','0'))]"
],
"properties": {
"frontendIPConfigurations": [
{
"name": "LoadBalancerIPConfig",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(variables('lbIPName'),'-','0'))]"
}
}
}
],
"backendAddressPools": [
{
"name": "LoadBalancerBEAddressPool",
"properties": {}
}
],
"loadBalancingRules": [
{
"name": "LBRule",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[variables('nt0fabricTcpGatewayPort')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[variables('nt0fabricTcpGatewayPort')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[variables('lbProbeID0')]"
},
"protocol": "tcp"
}
},
{
"name": "LBHttpRule",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[variables('nt0fabricHttpGatewayPort')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[variables('nt0fabricHttpGatewayPort')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[variables('lbHttpProbeID0')]"
},
"protocol": "tcp"
}
},
{
"name": "AppPortLBRule1",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[parameters('loadBalancedAppPort1')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[parameters('loadBalancedAppPort1')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[concat(variables('lbID0'),'/probes/AppPortProbe1')]"
},
"protocol": "tcp"
}
},
{
"name": "AppPortLBRule2",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[parameters('loadBalancedAppPort2')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[parameters('loadBalancedAppPort2')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[concat(variables('lbID0'),'/probes/AppPortProbe2')]"
},
"protocol": "tcp"
}
}
],
"probes": [
{
"name": "FabricGatewayProbe",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[variables('nt0fabricTcpGatewayPort')]",
"protocol": "tcp"
}
},
{
"name": "FabricHttpGatewayProbe",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[variables('nt0fabricHttpGatewayPort')]",
"protocol": "tcp"
}
},
{
"name": "AppPortProbe1",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[parameters('loadBalancedAppPort1')]",
"protocol": "tcp"
}
},
{
"name": "AppPortProbe2",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[parameters('loadBalancedAppPort2')]",
"protocol": "tcp"
}
}
],
"inboundNatPools": [
{
"name": "LoadBalancerBEAddressNatPool",
"properties": {
"backendPort": "3389",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPortRangeEnd": "4500",
"frontendPortRangeStart": "3389",
"protocol": "tcp"
}
}
]
},
"tags": {
"resourceType": "Service Fabric",
"clusterName": "[parameters('clusterName')]"
}
},
简而言之?如何从Azure VM实现Outgoind连接。
答案 0 :(得分:0)
关于您的问题,我会告诉您我所知道的一切。希望对您有帮助。
问题是我尝试从VM内部访问的端口 是由负载均衡器转换为其他SNAT端口的?
否,使用SNAT规则,您可以根据需要将Internet的访问流转换为或不转换为其他端口。 Azure负载平衡器SNAT规则意味着您可以连接到VM Internet上的端口A与端口B。端口A和端口B可以相同或不同。
文档说明了有关已使用的SNAT端口数量的信息, 但是并没有说明使用了哪些SNAT端口?我有哪些端口 在外部防火墙中打开?
经过我的测试,您甚至可以在负载均衡器NAT规则中使用端口1。因此,我假设该文档意味着每个IP配置可以使用多少个端口。建议您再次阅读该文档并仔细理解。
为什么端口80开箱即用?我可以默认访问 虚拟机内部访问Web。这意味着,有可能达到 公共互联网。我没有为端口80包含任何其他规则 我自己。
对于此问题,您应该确定一些事情。首先,如果您有一个与负载均衡器关联的公共IP与您的VM。其次,如果还有其他NAT规则,则应在Azure门户中查看。或者,您可以使用cli命令az network lb inbound-nat-rule list
。