本文介绍如何使用 Azure 门户、Azure CLI 或 Azure PowerShell 添加 IPv6 支持,以便通过 ExpressRoute 连接到 Azure 中的资源。
注释
门户体验的某些方面仍在实施中。 因此,使用 Azure 门户时,请按照本文档中提供的确切步骤顺序成功添加 IPv6 支持。 具体而言,在门户中创建新的虚拟网络网关 之前 ,请确保创建虚拟网络和子网,或将 IPv6 地址空间添加到现有虚拟网络和 GatewaySubnet。
先决条件
注释
在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud。
本文中的步骤和示例使用 Azure PowerShell Az 模块。 若要在计算机上本地安装 Az 模块,请参阅 “安装 Azure PowerShell”。 若要详细了解新的 Az 模块,请参阅 新的 Azure PowerShell Az 模块简介。 PowerShell cmdlet 经常更新。 如果未运行最新版本,则说明中指定的值可能会失败。 若要在系统上查找已安装的 PowerShell 版本,请使用 Get-Module -ListAvailable Az cmdlet。
将 IPv6 专用对等互连添加到 ExpressRoute 线路
创建 ExpressRoute 线路 或导航到要更改的现有线路。
选择 Azure 专用 对等互连配置。
通过为 子网选择“两者”,或者仅通过选择“IPv6”在新线路上启用 IPv6 专用对等互连,将 IPv6 专用对等互连添加到现有 IPv4 专用对等互连配置。 为主链接和辅助链接提供一对 /126 IPv6 子网。 从每个子网中,将第一个可用 IP 地址分配给路由器,因为Microsoft为其路由器使用第二个可用 IP。 定义所有参数后,保存对等互连配置。
成功接受配置后,应会看到类似于以下示例的内容。
创建 ExpressRoute 线路 或使用现有线路。 运行以下命令查看线路详细信息:
az network express-route show --resource-group "<ExpressRouteResourceGroup>" --name "<MyCircuit>"
运行以下命令查看线路的专用对等互连配置:
az network express-route peering show -g "<ExpressRouteResourceGroup>" --circuit-name "<MyCircuit>" --name AzurePrivatePeering
将 IPv6 专用对等互连添加到现有的 IPv4 专用对等互连配置。 为主链接和辅助链接提供一对 /126 IPv6 子网。 从每个子网中,将第一个可用 IP 地址分配给路由器,因为 Azure 将第二个可用 IP 用于其路由器。
az network express-route peering update -g "<ExpressRouteResourceGroup>" --circuit-name "<MyCircuit>" --name AzurePrivatePeering --ip-version ipv6 --primary-peer-subnet "<X:X:X:X/126>" --secondary-peer-subnet "<Y:Y:Y:Y/126>"
创建 ExpressRoute 线路 或使用现有线路。 通过运行 Get-AzExpressRouteCircuit 命令检索线路:
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"
通过运行 Get-AzExpressRouteCircuitPeeringConfig 检索线路的专用对等互连配置:
Get-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ckt
将 IPv6 专用对等互连添加到现有的 IPv4 专用对等互连配置。 为主链接和辅助链接提供一对 /126 IPv6 子网。 从每个子网中,将第一个可用 IP 地址分配给路由器,因为 Azure 将第二个可用 IP 用于其路由器。
注释
对等 ASN 和 VlanId 应与 IPv4 专用对等互连配置中的对等互连匹配。
Set-AzExpressRouteCircuitPeeringConfig -Name "AzurePrivatePeering" -ExpressRouteCircuit $ckt -PeeringType AzurePrivatePeering -PeerASN 100 -PrimaryPeerAddressPrefix "3FFE:FFFF:0:CD30::/126" -SecondaryPeerAddressPrefix "3FFE:FFFF:0:CD30::4/126" -VlanId 200 -PeerAddressType IPv6
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
成功保存配置后,通过运行 Get-AzExpressRouteCircuit 命令再次获取线路。 响应应类似于以下示例:
Name : ExpressRouteARMCircuit
ResourceGroupName : ExpressRouteResourceGroup
Location : chinaeast
Id : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag : W/"################################"
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes :
ServiceProviderProperties : {
"ServiceProviderName": "Equinix",
"PeeringLocation": "Washington DC",
"BandwidthInMbps": 50
}
ExpressRoutePort : null
BandwidthInGbps :
Stag : 29
ServiceKey : **************************************
Peerings : [
{
"Name": "AzurePrivatePeering",
"Etag": "W/\"facc8972-995c-4861-a18d-9a82aaa7167e\"",
"Id": "/subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit/peerings/AzurePrivatePeering",
"PeeringType": "AzurePrivatePeering",
"State": "Enabled",
"AzureASN": 12076,
"PeerASN": 100,
"PrimaryPeerAddressPrefix": "192.168.15.16/30",
"SecondaryPeerAddressPrefix": "192.168.15.20/30",
"PrimaryAzurePort": "",
"SecondaryAzurePort": "",
"VlanId": 200,
"ProvisioningState": "Succeeded",
"GatewayManagerEtag": "",
"LastModifiedBy": "Customer",
"Ipv6PeeringConfig": {
"State": "Enabled",
"PrimaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::/126",
"SecondaryPeerAddressPrefix": "3FFE:FFFF:0:CD30::4/126"
},
"Connections": [],
"PeeredConnections": []
},
]
Authorizations : []
AllowClassicOperations : False
GatewayManagerEtag :
更新到现有虚拟网络的连接
若要将 IPv6 专用对等互连与现有 Azure 资源配合使用,请执行以下步骤:
如果有想要将 IPv6 专用对等互连用于 Azure 资源的现有环境,请按照以下步骤作。
导航到 ExpressRoute 线路连接到的虚拟网络。
导航到 “地址空间 ”选项卡,并将 IPv6 地址空间添加到虚拟网络。
保存 地址空间。
导航到“ 子网 ”选项卡并选择 GatewaySubnet。 检查 “添加 IPv6 地址空间 ”并为子网提供 IPv6 地址空间。 网关 IPv6 子网应为 /64 或更大。 定义所有参数后保存配置。
如果有现有的区域冗余网关,请在 PowerShell 中运行以下命令以启用 IPv6 连接(请注意,更改可能需要长达 1 小时才能反映)。 否则,请使用任何 SKU 和标准静态公共 IP 地址 创建虚拟网络网关 。 如果计划使用 FastPath,请使用 UltraPerformance 或 ErGw3AZ(请注意,此选项仅适用于使用 ExpressRoute Direct 的线路)。
$gw = Get-AzVirtualNetworkGateway -Name "GatewayName" -ResourceGroupName "ExpressRouteResourceGroup"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw
将 IPv6 地址空间添加到 ExpressRoute 线路连接到的虚拟网络。
az network vnet update -g "<MyResourceGroup>" -n "<MyVNet>" --address-prefixes "X:X:X:X::/64"
将 IPv6 地址空间添加到网关子网。 网关 IPv6 子网应为 /64 或更大。
az network vnet subnet update -g "<MyResourceGroup>" -n "<MySubnet>" -vnet-name "<MyVNet>" --address-prefixes "10.0.0.0/26", "X:X:X:X::/64"
如果有现有的区域冗余网关,请运行以下命令以启用 IPv6 连接(请注意,更改最多可能需要 1 小时才能反映)。 否则,请使用任何 SKU 创建虚拟网络网关 。 如果计划使用 FastPath,请使用 UltraPerformance 或 ErGw3AZ(请注意,此功能仅适用于使用 ExpressRoute Direct 的线路)。
az network vnet-gateway update --name "<GatewayName>" --resource-group "<MyResourceGroup>"
检索 ExpressRoute 线路连接到的虚拟网络。
$vnet = Get-AzVirtualNetwork -Name "VirtualNetwork" -ResourceGroupName "ExpressRouteResourceGroup"
将 IPv6 地址空间添加到虚拟网络。
$vnet.AddressSpace.AddressPrefixes.add("ace:daa:daaa:deaa::/64")
Set-AzVirtualNetwork -VirtualNetwork $vnet
将 IPv6 地址空间添加到网关子网。 网关 IPv6 子网应为 /64 或更大。
Set-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet -AddressPrefix "10.0.0.0/26", "ace:daa:daaa:deaa::/64"
Set-AzVirtualNetwork -VirtualNetwork $vnet
如果有现有的区域冗余网关,请运行以下命令以启用 IPv6 连接(请注意,更改最多可能需要 1 小时才能反映)。 否则,请使用任何 SKU 创建虚拟网络网关 。 如果计划使用 FastPath,请使用 UltraPerformance 或 ErGw3AZ(请注意,此功能仅适用于使用 ExpressRoute Direct 的线路)。
$gw = Get-AzVirtualNetworkGateway -Name "GatewayName" -ResourceGroupName "ExpressRouteResourceGroup"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw
注释
如果现有网关不是区域冗余(这意味着它是标准、高性能或超高性能 SKU),并且使用基本 SKU 的公共 IP 地址,则需要使用任何 SKU 删除并重新创建网关。
区域冗余 SKU 类型的网关(这意味着它是标准、高性能或超级性能)只能在可用性区域支持的区域中部署。
创建与新虚拟网络的连接
若要通过 IPv6 专用对等互连连接到一组新的 Azure 资源,请执行以下步骤:
创建具有 IPv4 和 IPv6 地址空间的双堆栈虚拟网络。 有关详细信息,请参阅创建虚拟网络。
创建双堆栈网关子网。
使用任何 SKU 和标准静态公共 IP 地址创建虚拟网络网关。 如果计划使用 FastPath,请使用 UltraPerformance 或 ErGw3AZ(请注意,此选项仅适用于使用 ExpressRoute Direct 的线路)。
注意: 使用此步骤的 PowerShell 说明,因为 Azure 门户体验仍在开发中。
将虚拟网络链接到 ExpressRoute 线路。
局限性
虽然 IPv6 支持可用于连接到全球 Azure 区域中的部署,但它不支持以下用例:
与非区域冗余 的现有 ExpressRoute 网关的连接。
使用 标准静态 IP 地址可以用于双堆栈 ExpressRoute 连接的任何 SKU 的新创建的 ExpressRoute 网关(既具有区域冗余,又不具有区域冗余)
将 ExpressRoute 与虚拟 WAN 配合使用
将 ExpressRoute 与 路由服务器 配合使用(仅限门户)
与用于 IPv6 流量的 VPN 网关共存。 你仍然可以在双堆栈虚拟网络中配置与 VPN 网关共存,但 VPN 网关仅支持 IPv4 流量。
无法将双堆栈 ExpressRoute 虚拟网络网关连接到仅在专用对等互连上启用了 IPv4 的 ExpressRoute 线路。 还必须在 ExpressRoute 线路上启用 IPv6。 还必须在本地 CPE 设备上配置 IPv6。
后续步骤
若要排查 ExpressRoute 问题,请参阅以下文章: