本文介绍如何使用 Azure 门户、Azure CLI 或 Azure PowerShell 添加 IPv6 支持,以便通过 ExpressRoute 连接到 Azure 中的资源。
Note
门户体验的某些方面仍在实现中。 因此,使用 Azure 门户时,请按照本文档中提供的确切步骤顺序成功添加 IPv6 支持。 具体而言,确保在门户中创建新的虚拟网络网关之前,先创建虚拟网络和子网,或将 IPv6 地址空间添加到现有的虚拟网络和 GatewaySubnet。
Prerequisites
Azure Cloud Shell
Azure 托管 Azure Cloud Shell,这是一个可以通过浏览器使用的交互式 shell 环境。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用,以使用 Azure 服务。 可以使用 Cloud Shell 预安装命令运行本文中的代码,而无需在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
| Option |
Example/Link |
| 在代码或命令块的右上角选择“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 |
|
| 转到 https://shell.azure.com或选择 “启动 Cloud Shell ”按钮,在浏览器中打开 Cloud Shell。 |
|
| 选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
|
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上按下Ctrl+Shift+V,或在 macOS 上按下Cmd+Shift+V,将代码或命令粘贴到 Cloud Shell 会话中。
选择 Enter 以运行代码或命令。
本文中的步骤和示例使用 Azure PowerShell Az 模块。 若要在计算机上本地安装 Az 模块,请参阅安装 Azure PowerShell。 若要详细了解新 Az 模块,请参阅新 Azure Powershell Az 模块简介。 PowerShell 命令行工具经常被更新。 如果未运行最新版本,在说明中指定的值可能无法使用。 若要在系统上查找已安装的 PowerShell 版本,请使用 Get-Module -ListAvailable Az cmdlet。
可以使用 Azure Cloud Shell 来运行大多数 PowerShell cmdlet 和 CLI 命令,而无需在本地安装 Azure PowerShell 或 CLI。 Azure Cloud Shell 是免费的交互式 Shell,预安装有常用 Azure 工具,并将其配置为与帐户一起使用。 若要在 Azure Cloud Shell 上运行本文中包含的任何代码,请打开 Cloud Shell 会话,对代码块使用“复制”按钮以复制代码,然后使用 Ctrl+Shift+V(在 Windows 和 Linux 上)或 Cmd+Shift+V(在 macOS 上)将其粘贴到 Cloud Shell 会话中。 粘贴的文本不会自动执行,请按“Enter”运行代码。
可通过多种方式来启动 Cloud Shell:
| Option |
Link |
| 单击代码块右上角的“试用”。 |
|
| 在浏览器中打开 Cloud Shell。 |
 |
| 单击 Azure 门户右上角菜单上的“Cloud Shell”按钮。 |
|
|
|
将 IPv6 专用对等互连添加到 ExpressRoute 线路
创建 ExpressRoute 线路,或导航到要更改的现有线路。
选择“Azure 专用”对等互连配置。
通过为“子网”选择“两者”将 IPv6 专用对等添加到你的现有 IPv4 专用对等配置,或者仅选择“IPv6”在新线路上启用 IPv6 专用对等互连。 为主链接和辅助链接提供一对自己拥有的 /126 IPV6 子网。 在每个子网中,当 Microsoft 将第二个可用的 IP 用于其路由器时,需要为路由器分配第一个可用的 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 子网。 在每个子网中,当 Microsoft 将第二个可用的 IP 用于其路由器时,需要为路由器分配第一个可用的 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 子网。 在每个子网中,当 Microsoft 将第二个可用的 IP 用于其路由器时,需要为路由器分配第一个可用的 IP 地址。
Note
对等 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 : eastus
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 资源配合使用,请执行以下步骤:
如果你已有 Azure 资源环境,并且你想要对该环境使用 IPv6 专用对等互连,请按照这些步骤进行操作。
导航到 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
Note
如果现有网关不是区域冗余(这意味着它是标准、高性能或超高性能 SKU),并且使用基本 SKU 的公共 IP 地址,则需要使用任何 SKU 删除并重新创建网关。
区域冗余 SKU 类型的网关(这意味着它是标准、高性能或超级性能)只能在可用性区域支持的区域中部署。
创建与新虚拟网络的连接
若要通过 IPv6 专用对等互连连接到一组新的 Azure 资源,请执行以下步骤:
创建包含 IPv4 和 IPv6 地址空间的双堆栈虚拟网络。 有关详细信息,请参阅创建虚拟网络。
创建双堆栈网关子网。
使用任意 SKU 和标准静态公共 IP 地址创建虚拟网络网关。 如果计划使用 FastPath,请使用 UltraPerformance 或 ErGw3AZ(注意,此选项仅适用于使用 ExpressRoute Direct 的线路)。
注意:请在此步骤中使用 PowerShell 说明,因为 Azure 门户体验仍在开发中。
将虚拟网络链接到 ExpressRoute 线路。
Limitations
虽然 IPv6 支持可用于连接到全局 Azure 区域中的部署,但它不支持以下用例:
- 与非区域冗余的现有 ExpressRoute 网关的连接。
使用标准静态 IP 地址新创建的任何 SKU(区域冗余和非区域冗余)ExpressRoute 网关均可用于双堆栈 ExpressRoute 连接
- 将 ExpressRoute 用于虚拟 WAN
- 将 ExpressRoute 与 路由服务器 配合使用(仅限门户)
- FastPath 与非 ExpressRoute Direct 线路
- FastPath 与以下对等互连位置的线路:迪拜
- 与 VPN 网关共存,以支持 IPv6 流量。 仍然可以在双堆栈虚拟网络中配置与 VPN 网关共存,但 VPN 网关将仅支持 IPv4 流量。
- 无法将双堆栈 ExpressRoute 虚拟网络网关连接到仅在专用对等互连上启用了 IPv4 的 ExpressRoute 线路。 还必须在 ExpressRoute 线路上启用 IPv6。 还必须在本地 CPE 设备上配置 IPv6。
后续步骤
若要排查 ExpressRoute 问题,请参阅以下文章: