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

本文介绍如何使用 PowerShell 为预先存在的虚拟网络添加、调整大小和删除虚拟网络网关。 这些步骤适用于使用 ExpressRoute 资源管理器部署模型创建的虚拟网络。 有关更多信息,请参阅关于 ExpressRoute 虚拟网关

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

Prerequisites

在开始之前,请确保具备:

  • 拥有有效订阅的 Azure 帐户。
  • 要在其中创建网关的现有虚拟网络。 有关详细信息,请参阅 使用 PowerShell 创建虚拟网络
  • 已安装 Azure PowerShell。 有关详细信息,请参阅安装 Azure PowerShell
  • 虚拟网络中有足够的地址空间用于网关子网(/27 或更大)。

示例配置值

下表显示了本文中使用的示例值。 可以使用这些值创建测试环境,或参考它们来更好地了解示例:

Setting Value
虚拟网络名称 TestVNet
虚拟网络地址空间 192.168.0.0/16
资源组 TestRG
Subnet1 名称 FrontEnd
Subnet1 地址空间 192.168.1.0/24
Subnet1 名称 FrontEnd
网关子网名称 GatewaySubnet
网关子网地址空间 192.168.200.0/26
Region 中国东部
网关名称 GW
网关 IP 名称 GWIP
网关 IP 配置名称 gwipconf
类型 ExpressRoute

添加网关

Important

如果计划通过 ExpressRoute 使用基于 IPv6 的专用对等互连,请选择已启用可用性区域的 SKU(ErGw1Az、ErGw2Az、ErGw3Az)作为 -GatewaySku,或使用具有标准和静态公共 IP 的非可用性区域 SKU(标准、HighPerformance、UltraPerformance)。

  1. 连接到 Azure 帐户。

    Connect-AzAccount -Environment AzureChinaCloud
    
  2. 声明本文的变量。 编辑示例值以反映配置:

    $RG = "TestRG"
    $Location = "China East"
    $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
    

    ExpressRoute 网关不再需要公共 IP 地址。

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

    Note

    • ExpressRoute 虚拟网络网关不支持基本 SKU 公共 IP。
    • 不再需要创建公共 IP。 Microsoft创建和管理公共 IP,这意味着所有 ExpressRoute 虚拟网络网关都创建为区域冗余网关。
  7. 为网关创建 IP 配置。

    网关配置定义要使用的子网。 在此步骤中,指定在创建网关时使用的配置。

    对于标准网关:

    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet 
    
  8. 创建网关。

    必须将 -GatewayType 参数设置为 ExpressRoute-GatewaySku 参数确定网关的性能和功能。 网关创建可能需要 45 分钟或更多时间才能完成。

    根据网关 SKU 选择相应的命令:

    对于灵活的可缩放网关,请使用带有 -MinScaleUnit-MaxScaleUnit 参数的 ErGwScale SKU。

    固定缩放(建议用于可预测工作负荷):

    将最小和最大缩放单位设置为相同的值时,网关将维护固定带宽:

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location -IpConfigurations $ipconf -GatewayType Expressroute -GatewaySku ErGwScale -MinScaleUnit 2 -MaxScaleUnit 2
    

    自动缩放(建议用于变量工作负荷):

    设置不同的最小值和最大值时,网关会根据流量自动缩放:

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location -IpConfigurations $ipconf -GatewayType Expressroute -GatewaySku ErGwScale -MinScaleUnit 2 -MaxScaleUnit 10
    

    Important

    • 将最大缩放单元设置为 1 时,最小缩放单元也必须为 1。
    • 缩放单位范围为 1 到 40。
    • 每个缩放单元提供 1 Gbps 的带宽。

    有关详细信息,请参阅 关于 ExpressRoute 可缩放网关


验证是否已创建网关

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

Get-AzVirtualNetworkGateway -ResourceGroupName $RG

重设网关大小

可以更改网关 SKU 以纵向扩展或缩减网关的性能。 根据网关类型使用相应的命令:

对于可缩放网关(ErGwScale SKU),请使用 Set-AzVirtualNetworkGateway 命令,并指定 -MinScaleUnit-MaxScaleUnit 参数:

$vng = Get-AzVirtualNetworkGateway -Name <GatewayName> -ResourceGroupName <ResourceGroupName>
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $vng -MinScaleUnit 2 -MaxScaleUnit 10 -GatewaySku ErGwScale

可以调整缩放单元以更改网关的带宽和性能。 缩放更改可能需要最多 30 分钟来完成。

清理资源

如果不再需要网关,请使用以下命令将其删除:

Remove-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG

后续步骤

创建虚拟网络网关后,可以将虚拟网络链接到 ExpressRoute 线路:

若需了解有关 ExpressRoute 网关的更多信息: