你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 PowerShell 配置 ExpressRoute 的虚拟网络网关

本文演示使用 PowerShell 为预先存在的虚拟网络 (VNet) 添加虚拟网络网关、重设其大小并进行删除的步骤。 此配置的步骤适用于使用资源管理器部署模型创建的 VNet(针对 ExpressRoute 配置)。 有关 ExpressRoute 的虚拟网络网关和网关配置设置的详细信息,请参阅关于 ExpressRoute 的虚拟网络网关

显示连接到 ExpressRoute 线路的 ExpressRoute 网关的关系图。

先决条件

配置参考列表

此任务的步骤使用的 VNet 基于以下配置参考列表中的值。 此列表中也概述了更多设置和名称。 尽管我们确实基于此列表中的值添加变量,但是我们在任何步骤中不会直接使用此列表。 可以复制列表作为参考,并将列表中的值替换为自己的值。

设置
虚拟网络名称 TestVNet
虚拟网络地址空间 192.168.0.0/16
资源组 TestRG
Subnet1 名称 FrontEnd
Subnet1 地址空间 192.168.1.0/24
Subnet1 名称 FrontEnd
网关子网名称 GatewaySubnet
网关子网地址空间 192.168.200.0/26
区域 美国西部
网关名称 GW
网关 IP 名称 GWIP
网关 IP 配置名称 gwipconf
类型 ExpressRoute
网关公共 IP 名称 gwpip

添加网关

重要

如果计划在 ExpressRoute 上使用基于 IPv6 的专用对等互连,请确保为“-GatewaySku”选择 AZ SKU(ErGw1AZ、ErGw2AZ、ErGw3AZ),或为使用标准和静态公共 IP的 -GatewaySKU 使用非 AZ SKU(标准、HighPerformance、UltraPerformance)。

  1. 若要连接到 Azure,请运行 Connect-AzAccount

  2. 声明此教程的变量。 请务必编辑此示例,使之反映想要使用的设置。

    $RG = "TestRG"
    $Location = "West US"
    $GWName = "GW"
    $GWIPName = "GWIP"
    $GWIPconfName = "gwipconf"
    $VNetName = "TestVNet"
    

    如果要在 Azure 扩展区域中创建网关,请添加 $ExtendedLocation 变量。

    $RG = "TestRG"
    $Location = "West US"
    $ExtendedLocation = "losangeles"
    $GWName = "GW"
    $GWIPName = "GWIP"
    $GWIPconfName = "gwipconf"
    $VNetName = "TestVNet"
    
  3. 将虚拟网络对象存储为变量。

    $vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $RG
    
  4. 将网关子网添加到虚拟网络中。 网关子网必须命名为“GatewaySubnet”。 网关子网必须是 /27 或更大(/26、/25 等)。 如果计划将 16 个 ExpressRoute 线路连接到网关,则必须创建 /26 或更大的网关子网。

    Add-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet -AddressPrefix 192.168.200.0/26
    

    如果你使用的是双重堆栈虚拟网络,并且计划通过 ExpressRoute 使用基于 IPv6 的专用对等互连,请改为创建双重堆栈网关子网。

    Add-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet -AddressPrefix "10.0.0.0/26","ace:daa:daaa:deaa::/64"
    
  5. 设置配置。

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  6. 将网关子网存储为变量。

    $subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
    
  7. 请求公共 IP 地址。 创建网关之前请求 IP 地址。 无法指定要使用的 IP 地址;将自动分配该地址。 后面的配置部分将使用此 IP 地址。 AllocationMethod 必须是动态的。

    $pip = New-AzPublicIpAddress -Name $GWIPName  -ResourceGroupName $RG -Location $Location -AllocationMethod Static -SKU Standard
    

    如果要在 Azure 扩展区域中创建网关,请使用 -ExtendedLocation 参数请求扩展区域中的公共 IP 地址。

    $pip = New-AzPublicIpAddress -Name $GWIPName  -ResourceGroupName $RG -Location $Location -ExtendedLocation $ExtendedLocation -AllocationMethod Static -SKU Standard
    

    注意

    新的 ExpressRoute 虚拟网络网关不支持基本 SKU 公共 IP。

  8. 创建网关配置。 网关配置定义要使用的子网和公共 IP 地址。 在此步骤中,将指定创建网关时使用的配置。 使用以下示例创建网关配置。

    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
    
  9. 创建网关。 在此步骤中,-GatewayType 尤其重要。 必须使用值 ExpressRoute。 运行这些 cmdlet 后,可能需要 45 分钟或更长时间才能创建好网关。

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location -IpConfigurations $ipconf -GatewayType Expressroute -GatewaySku Standard
    

    如果要在 Azure 扩展区域中创建网关,请添加 -ExtendedLocation 参数。

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location -ExtendedLocation $ExtendedLocation -IpConfigurations $ipconf -GatewayType Expressroute -GatewaySku Standard
    

    注意

    若要在 Azure 扩展区域中创建网关,必须先请求对扩展区域的访问权限。 获得访问权限后,你可以创建网关。

    在扩展区域中创建虚拟网络网关时,需要考虑以下注意事项:

    • Azure 扩展区域中不支持可用性区域。
    • Azure 扩展区域中目前支持以下 SKU:标准、高性能、超性能。
    • Azure 扩展区域中的网关不支持本地 SKU 线路。

验证是否已创建网关

使用以下命令来验证是否已创建网关:

Get-AzVirtualNetworkGateway -ResourceGroupName $RG

重设网关大小

网关 SKU 有许多。 可以使用以下命令随时更改网关 SKU。

$gw = Get-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG
Resize-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -GatewaySku HighPerformance

清理资源

使用以下命令删除网关:

Remove-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG

后续步骤

创建 VNet 网关后,可将 VNet 链接到 ExpressRoute 线路。