sql-server - 在负载均衡器配置中添加时,NIC 的二头肌模板会中断互联网访问

标签 sql-server azure azure-bicep nic

我正在尝试为 SQL Server VM 部署网络接口(interface)卡,该虚拟机将作为 AlwaysOn 可用性组的一部分放置,随后应添加到我的内部负载均衡器中。该卡将在虚拟机本身之前创建。

我的问题是,当创建 VM 并在部署过程中附加预先创建的 NIC 时,VM 的 Internet 访问似乎无法正常工作。

enter image description here

我尝试在门户中手动创建 NIC 并手动连接到虚拟机/负载均衡器,这似乎工作正常。

作为引用,我已将类似的模板部署到不同的虚拟机,该虚拟机不需要 NIC 成为后端地址池的一部分,并且部署没有问题。

除了对负载均衡器中后端地址池的resourceId 的引用之外,我是否需要添加更多属性才能使其正常工作?

    resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-05-01' existing = {
  name: virtualNetworkName
  scope: resourceGroup(virtualNetworkResourceGroup)
}

resource virtualMachineNetworkInterfaceCardSubnet 'Microsoft.Network/virtualNetworks/subnets@2022-05-01' existing = {
  name: virtualNetworkSubnetName
  parent: virtualNetwork
}

resource loadBalancer 'Microsoft.Network/loadBalancers@2022-05-01' existing = {
  name: loadBalancerName
  scope: resourceGroup(virtualNetworkResourceGroup)
}

resource loadBalancerBackendAddressPool 'Microsoft.Network/loadBalancers/backendAddressPools@2022-05-01' existing = {
  name: loadBalancerBackendAddressPoolName
  parent: loadBalancer
}

resource virtualMachineNetworkInterfaceCard 'Microsoft.Network/networkInterfaces@2022-05-01' = {
  name: '${virtualMachineName}-nic-01'
  location: resourceLocation
  tags: {
    associatedResource: virtualMachineName
    environmentCode: environmentCode
    loadBalancer: loadBalancerName
    resourceLocation: resourceLocation
  }
  properties: {
    dnsSettings: {
      dnsServers: [
      ]
    }
    enableAcceleratedNetworking: true
    enableIPForwarding: false
    ipConfigurations: [
      {
        name: '${virtualMachineName}-nic-01-configuration'
        properties: {
          loadBalancerBackendAddressPools: [
            {
              id: loadBalancerBackendAddressPool.id
            }
          ]
          
          primary: true
          privateIPAddress: networkInterfaceCardIPAddress
          privateIPAddressVersion: 'IPv4'
          privateIPAllocationMethod: 'Static'
          subnet: {
            id: virtualMachineNetworkInterfaceCardSubnet.id
          }
        
        }
      }
    ]
    nicType: 'Standard'
  }
}

最佳答案

事实证明,根本错误与 NIC 本身的 Bicep 模板无关。

这是因为,根据 https://learn.microsoft.com/en-us/answers/questions/37890/internet-access-on-vms-in-internal-load-balancer-p.html 的设计,负载均衡器(内部和公共(public))不允许出站互联网访问 和 https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections

在我的案例中,我可以通过首先将 NAT 网关分配给虚拟机/负载均衡器所在的子网来实现此目的。我还能够测试通过路由表将流量转发到 Azure 防火墙,该防火墙也有效

关于sql-server - 在负载均衡器配置中添加时,NIC 的二头肌模板会中断互联网访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74279412/

相关文章:

azure - 逻辑应用 - 将 Blob 文件复制到本地服务器

azure - 如何为 Bicep 中的应用程序分配自定义角色

r - 选择到临时表

sql - 仅选择与其他行相同的值

sql - 单行 GO(Batch) 语句在 SQL Server 中出错?

azure - 是否可以通过变量访问Azure Pipelines中任务中的测试执行结果?

sql-server - 使用 ID 和日期进行透视

azure - 如何从我的 Azure 函数向 Azure 服务总线发布消息?

azure - 使用 BICEP 更新不同资源组中的 DNS 区域

azure - 使用运行 Azure 命令的部署脚本时 ARM/Bicep 模板中出现错误