共用方式為


教學課程:使用 Azure PowerShell 建立網路閘道負載平衡器

Azure Load Balancer 是由標準、基本和閘道 SKU 構成。 Gateway Load Balancer 用於網路虛擬設備 (NVA) 的透明插入。 Gateway Load Balancer 可用於 NVA 需要高效能和高可擴縮性的情境。

在本教學課程中,您會了解如何:

  • 建立虛擬網路。
  • 建立網路安全性群組。
  • 設定閘道負載平衡器。
  • 將負載平衡器前端鏈結到閘道負載平衡器。

必要條件

  • 包含作用中訂用帳戶的 Azure 帳戶。建立免費帳戶
  • 現有的公開標準 SKU Azure Load Balancer。 如需建立負載平衡器的詳細資訊,請參閱使用 Azure PowerShell 建立公開負載平衡器
    • 針對本教學課程之用,範例中的現有負載平衡器名為 myLoadBalancer
  • 已在本機安裝 Azure PowerShell 或 Azure Cloud Shell

如果您選擇在本機安裝和使用 PowerShell,本文會要求使用 Azure PowerShell 模組版本 5.4.1 或更新版本。 執行 Get-Module -ListAvailable Az 以尋找安裝的版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 如果正在本機執行 PowerShell,也需要執行 Connect-AzAccount,以建立與 Azure 的連線。

建立資源群組

Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。

使用 New-AzResourceGroup 建立資源群組:

New-AzResourceGroup -Name 'TutorGwLB-rg' -Location 'eastus'

建立虛擬網路

位於閘道負載平衡器後端集區的資源需要使用虛擬網路。 使用 New-AzVirtualNetwork 建立虛擬網路。 使用 New-AzBastion 來部署 Bastion 主機,藉此在虛擬網路中安全地管理資源。

重要

無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU。 如果您要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。

## Create backend subnet config ##
$subnet = @{
    Name = 'myBackendSubnet'
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'myBastionIP'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myBastion'
    PublicIpAddress = $publicip
    VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob

建立 NSG

可使用以下範例建立網路安全性群組。 需要在先前建立的虛擬網路中,設定網路流量所需的 NSG 規則。

使用 New-AzNetworkSecurityRuleConfig 建立 NSG 的規則。 使用 New-AzNetworkSecurityGroup \(英文\) 來建立 NSG。

## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
    Name = 'myNSGRule-AllowAll'
    Description = 'Allow all'
    Protocol = '*'
    SourcePortRange = '*'
    DestinationPortRange = '*'
    SourceAddressPrefix = '0.0.0.0/0'
    DestinationAddressPrefix = '0.0.0.0/0'
    Access = 'Allow'
    Priority = '100'
    Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1

$nsgrule2 = @{
    Name = 'myNSGRule-AllowAll-TCP-Out'
    Description = 'Allow all TCP Out'
    Protocol = 'TCP'
    SourcePortRange = '*'
    DestinationPortRange = '*'
    SourceAddressPrefix = '0.0.0.0/0'
    DestinationAddressPrefix = '0.0.0.0/0'
    Access = 'Allow'
    Priority = '100'
    Direction = 'Outbound'
}
$rule2 = New-AzNetworkSecurityRuleConfig @nsgrule2

## Create network security group ##
$nsg = @{
    Name = 'myNSG'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    SecurityRules = $rule1,$rule2
}
New-AzNetworkSecurityGroup @nsg

建立閘道負載平衡器

本節會帶領您建立設定並部署閘道負載平衡器。 使用 New-AzLoadBalancerFrontendIpConfig 來建立負載平衡器的前端 IP 設定。

您將使用 New-AzLoadBalancerTunnelInterface 來為負載平衡器建立兩個通道介面。

使用 New-AzLoadBalancerBackendAddressPoolConfig 針對 NVA 建立後端集區。

需要健全狀態探查,才能監視負載平衡器中後端執行個體的健全狀態。 使用 New-AzLoadBalancerProbeConfig 來建立健全狀態探查。

目的地為後端執行個體的流量會以負載平衡規則進行路由。 使用 New-AzLoadBalancerRuleConfig 來建立 load-balancing 設定。

要建立負載平衡器,請使用 New-AzLoadBalancer

## Place virtual network configuration in a variable for later use. ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = 'TutorGwLB-rg'
}
$vnet = Get-AzVirtualNetwork @net

## Create load balancer frontend configuration and place in variable. ## 
$fe = @{
    Name = 'myFrontend'
    SubnetId = $vnet.subnets[0].id
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe

## Create backend address pool configuration and place in variable. ## 
$int1 = @{
    Type = 'Internal'
    Protocol = 'Vxlan'
    Identifier = '800'
    Port = '10800'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1

$int2 = @{
    Type = 'External'
    Protocol = 'Vxlan'
    Identifier = '801'
    Port = '10801'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2

$pool = @{
    Name = 'myBackendPool'
    TunnelInterface = $tunnelInterface1,$tunnelInterface2
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @pool

## Create the health probe and place in variable. ## 
$probe = @{
    Name = 'myHealthProbe'
    Protocol = 'http'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
    RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe

## Create the load balancer rule and place in variable. ## 
$para = @{
    Name = 'myLBRule'
    Protocol = 'All'
    FrontendPort = '0'
    BackendPort = '0'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
    Probe = $healthprobe
}
$rule = New-AzLoadBalancerRuleConfig @para

## Create the load balancer resource. ## 
$lb = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
    Location = 'eastus'
    Sku = 'Gateway'
    LoadBalancingRule = $rule
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
    Probe = $healthprobe
}
New-AzLoadBalancer @lb

將網路虛擬設備新增到 Gateway Load Balancer 後端集區

可透過 Azure Marketplace 部署 NVA。 部署之後,將虛擬機器新增至後端集區,並搭配 Add-AzVMNetworkInterface

將負載平衡器前端鏈結到閘道負載平衡器

在此範例中,您會將標準負載平衡器的前端鏈結到閘道負載平衡器。

需將該前端新增到您訂閱項目中既有的負載平衡器前端 IP。

使用 Set-AzLoadBalancerFrontendIpConfig 將閘道負載平衡器前端連結至現有的負載平衡器。

## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1

## Place the existing load balancer into a variable. ##
$par2 = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par2

## Place the existing public IP for the existing load balancer into a variable.
$par3 = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myPublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3

## Chain the gateway load balancer to your existing load balancer frontend. ##
$par4 = @{
    Name = 'myFrontEndIP'
    PublicIPAddress = $publicIP
    LoadBalancer = $lb
    GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4

$config | Set-AzLoadBalancer

將虛擬機器鏈結至閘道負載平衡器

或者可以將 VM 的 NIC IP 設定鏈結至閘道負載平衡器。

您會將閘道負載平衡器的前端,新增至現有 VM 的 NIC IP 設定。

使用 Set-AzNetworkInterfaceIpConfig 將閘道負載平衡器前端,鏈結至您現有 VM 的 NIC IP 設定。

 ## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1

## Place the existing NIC into a variable. ##
$par2 = @{
    ResourceGroupName = 'MyResourceGroup'
    Name = 'myNic'
}
$nic = Get-AzNetworkInterface @par2

## Chain the gateway load balancer to your existing VM NIC. ##
$par3 = @{
    Name = 'myIPconfig'
    NetworkInterface = $nic
    GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzNetworkInterfaceIpConfig @par3

$config | Set-AzNetworkInterface

清除資源

當不再需要時,您可以使用 Remove-AzResourceGroup 命令來移除資源群組、負載平衡器和其餘資源。

Remove-AzResourceGroup -Name 'TutorGwLB-rg'

下一步

請在 Azure 中建立網路虛擬設備。

建立網路虛擬設備時,請選擇本教學課程中建立的資源:

  • 虛擬網路

  • 子網路

  • 網路安全性群組

  • 閘道負載平衡器

前往下一篇文章,以了解如何建立跨區域 Azure Load Balancer。