Freigeben über


Tutorial: Erstellen einer Gateway Load Balancer-Instanz mit Azure PowerShell

Azure Load Balancer umfasst Standard-, Basic- und Gateway-SKUs. Gateway Load Balancer wird zum transparenten Einfügen von virtuellen Netzwerkgeräten (Network Virtual Appliances, NVA) verwendet. Verwenden Sie Gateway Load Balancer für Szenarien, die hohe Leistung und hohe Skalierbarkeit von NVAs benötigen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen Sie ein virtuelles Netzwerk.
  • Erstellen einer Netzwerksicherheitsgruppe.
  • Erstellen einer Gateway Load Balancer-Instanz.
  • Verketten eines Load Balancer-Front-Ends mit der Gateway Load Balancer-Instanz.

Voraussetzungen

Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 5.4.1 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.

Erstellen einer Ressourcengruppe

Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe:

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

Virtuelles Netzwerk erstellen

Für die Ressourcen, die sich im Back-End-Pool der Gateway Load Balancer-Instanz befinden, ist ein virtuelles Netzwerk erforderlich. Verwenden Sie New-AzVirtualNetwork, um das virtuelle Netzwerk zu erstellen. Verwenden Sie New-AzBastion, um einen Bastionhost für die sichere Verwaltung von Ressourcen im virtuellen Netzwerk bereitzustellen.

Wichtig

Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion im Rahmen eines Tutorials oder Tests bereitstellen, empfiehlt es sich, diese Ressource zu löschen, sobald Sie sie nicht mehr benötigen.

## 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 erstellen

Verwenden Sie das folgende Beispiel, um eine Netzwerksicherheitsgruppe zu erstellen. Sie konfigurieren die NSG-Regeln, die für den Netzwerkdatenverkehr in dem zuvor erstellten virtuellen Netzwerk erforderlich sind.

Verwenden Sie New-AzNetworkSecurityRuleConfig, um Regeln für die NSG zu erstellen. Verwenden Sie New-AzNetworkSecurityGroup, um die NSG zu erstellen.

## 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

Erstellen einer Gateway Load Balancer-Instanz

In diesem Abschnitt erstellen Sie die Konfiguration und stellen Sie die Gateway Load Balancer-Instanz bereit. Verwenden Sie New-AzLoadBalancerFrontendIpConfig, um die Front-End-IP-Konfiguration für den Lastenausgleich zu erstellen.

Sie verwenden New-AzLoadBalancerTunnelInterface, um zwei Tunnelschnittstellen für den Lastenausgleich zu erstellen.

Erstellen Sie mit New-AzLoadBalancerBackendAddressPoolConfig einen Back-End-Pool für die NVAs.

Um die Integrität der Back-End-Instanzen im Lastenausgleich zu überwachen, ist ein Integritätstest erforderlich. Verwenden Sie New-AzLoadBalancerProbeConfig, um den Integritätstest zu erstellen.

Datenverkehr, der an die Back-End-Instanzen gerichtet ist, wird mit einer Lastenausgleichsregel weitergeleitet. Verwenden Sie New-AzLoadBalancerRuleConfig, um die Lastenausgleichskonfiguration zu erstellen.

Verwenden Sie New-AzLoadBalancer, um den Lastenausgleich zu erstellen.

## 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

Hinzufügen virtueller Netzwerkgeräte zum Back-End-Pool der Gateway Load Balancer-Instanz

Stellen Sie NVAs über den Azure Marketplace bereit. Fügen Sie die virtuellen Computer nach der Bereitstellung mit Add-AzVMNetworkInterface dem Back-End-Pool hinzu.

Verketten eines Load Balancer-Front-Ends mit der Gateway Load Balancer-Instanz

In diesem Beispiel verketten Sie das Front-End eines Standardlastenausgleichs mit der Gateway Load Balancer-Instanz.

Sie fügen das Front-End zur Front-End-IP eines vorhandenen Lastenausgleichs in Ihrem Abonnement hinzu.

Verwenden Sie Set-AzLoadBalancerFrontendIpConfig, um das Front-End der Gateway Load Balancer-Instanz mit Ihrem vorhandenen Lastenausgleich zu verketten.

## 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

Verketten eines virtuellen Computers mit Gateway-Load Balancer

Alternativ können Sie die NIC-IP-Konfiguration eines virtuellen Computers mit dem Gateway-Load Balancer verketten.

Sie fügen das Front-End des Gateway-Load Balancers der NIC-IP-Konfiguration eines vorhandenen virtuellen Computers hinzu.

Verwenden Sie Set-AzNetworkInterfaceIpConfig, um das Gateway-Load Balancer-Front-End mit der vorhandenen NIC-IP-Konfiguration Ihrer VM zu verbinden.

 ## 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

Bereinigen von Ressourcen

Wenn Sie die Ressourcen nicht mehr benötigen, führen Sie den Befehl Remove-AzResourceGroup aus, um die Ressourcengruppe, den Lastenausgleich und alle übrigen Ressourcen zu löschen.

Remove-AzResourceGroup -Name 'TutorGwLB-rg'

Nächste Schritte

Erstellen von virtuellen Netzwerkgeräten in Azure.

Wählen Sie beim Erstellen der NVAs die in diesem Tutorial erstellten Ressourcen aus:

  • Virtuelles Netzwerk

  • Subnet

  • Netzwerksicherheitsgruppe

  • Gateway Load Balancer

Fahren Sie mit dem nächsten Artikel fort, um sich über das Erstellen einer regionsübergreifenden Azure Load Balancer-Instanz zu informieren: