在 Azure 虚拟网络中部署 IPv6 双堆栈应用程序 - 模板

本文提供 IPv6 配置任务的列表,以及适用的 Azure 资源管理器 VM 模板部分。 使用本文所述的模板可以在 Azure 中部署一个使用标准负载均衡器的双堆栈 (IPv4 + IPv6) 应用程序,其中包含具有 IPv4 和 IPv6 子网的双堆栈虚拟网络、采用双重 (IPv4 + IPv6) 前端配置的标准负载均衡器、具有采用双重 IP 配置的 NIC 的 VM、网络安全组,以及公共 IP。

所需的配置

在模板中搜索模板节,以了解它们应该出现的位置。

虚拟网络的 IPv6 地址空间

要添加的模板节:

"addressSpace": {
  "addressPrefixes": [
    "[variables('vnetv4AddressRange')]",
    "[variables('vnetv6AddressRange')]"    

IPv6 虚拟网络地址空间中的 IPv6 子网

要添加的模板节:

{
    "name": "V6Subnet",
    "properties": {
      "addressPrefix": "[variables('subnetv6AddressRange')]"
    }

NIC 的 IPv6 配置

要添加的模板节:

{
    "name": "ipconfig-v6",
    "properties": {
      "privateIPAllocationMethod": "Dynamic",
      "privateIPAddressVersion":"IPv6",
      "subnet": {
        "id": "[variables('v6-subnet-id')]"
      },
      "loadBalancerBackendAddressPools": [
        {
          "id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
        }

IPv6 网络安全组 (NSG) 规则

{
    "name": "default-allow-rdp",
    "properties": {
      "description": "Allow RDP",
      "protocol": "Tcp",
      "sourcePortRange": "33819-33829",
      "destinationPortRange": "5000-6000",
      "sourceAddressPrefix": "fd00:db8:deca:deed::/64",
      "destinationAddressPrefix": "fd00:db8:deca:deed::/64",
      "access": "Allow",
      "priority": 1003,
      "direction": "Inbound"
    }

条件性配置

如果使用的是网络虚拟设备,请在路由表中添加 IPv6 路由。 否则,此配置是可选的。

{
  "type": "Microsoft.Network/routeTables",
  "name": "v6route",
  "apiVersion": "[variables('ApiVersion')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "routes": [
      {
        "name": "v6route",
        "properties": {
          "addressPrefix": "fd00:db8:deca:deed::/64",
          "nextHopType": "VirtualAppliance",
          "nextHopIpAddress": "fd00:db8:ace:f00d::1"
        }

可选配置

虚拟网络的 IPv6 Internet 访问

{
    "name": "LBFE-v6",
    "properties": {
      "publicIPAddress": {
        "id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
      }

IPv6 公共 IP 地址

{
  "apiVersion": "[variables('ApiVersion')]",
  "type": "Microsoft.Network/publicIPAddresses",
  "name": "lbpublicip-v6",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "Standard"
  },
  "properties": {
    "publicIPAllocationMethod": "Static",
	"publicIPAddressVersion": "IPv6"
  }

负载均衡器的 IPv6 前端

{
    "name": "LBFE-v6",
    "properties": {
      "publicIPAddress": {
        "id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
      }

负载均衡器的 IPv6 后端地址池

  "backendAddressPool": {
    "id": "[concat(resourceId('Microsoft.Network/loadBalancers', 'loadBalancer'), '/backendAddressPools/LBBAP-v6')]"
  },
  "protocol": "Tcp",
  "frontendPort": 8080,
  "backendPort": 8080
},
"name": "lbrule-v6"

用于关联传入和传出端口的 IPv6 负载均衡器规则

{
    "name": "ipconfig-v6",
    "properties": {
      "privateIPAllocationMethod": "Dynamic",
      "privateIPAddressVersion":"IPv6",
      "subnet": {
        "id": "[variables('v6-subnet-id')]"
      },
      "loadBalancerBackendAddressPools": [
        {
          "id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
        }

示例 VM 模板 JSON

若要使用 Azure 资源管理器模板在 Azure 虚拟网络中部署 IPv6 双堆栈应用程序,请查看此处的示例模板。

部署到 Azure

注意

必须修改从 GitHub 存储库“azure-quickstart-templates”下载或参考的模板,以适应 Azure 中国云环境。 例如,替换某些终结点(将“blob.core.windows.net”替换为“blob.core.chinacloudapi.cn”,将“cloudapp.azure.com”替换为“chinacloudapp.cn”);必要时更改某些不受支持的 VM 映像、VM 大小、SKU 以及资源提供程序的 API 版本。

后续步骤

可以查找有关公共 IP 地址网络带宽负载均衡器的定价详细信息。