教學課程:使用 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。