Condividi tramite


Esercitazione: creare un servizio di bilanciamento del carico del gateway con Azure PowerShell

Azure Load Balancer è costituito da SKU Standard, Basic e Gateway. Bilanciamento del carico del gateway viene usato per l'inserimento trasparente di appliance virtuali di rete (NVA). Usare Bilanciamento del carico del gateway per scenari che richiedono prestazioni e scalabilità elevate delle appliance virtuali di rete.

In questa esercitazione apprenderai a:

  • Creare una rete virtuale.
  • Creare un gruppo di sicurezza di rete.
  • Creare un servizio di bilanciamento del carico del gateway.
  • Concatenare un front-end del servizio di bilanciamento del carico al servizio di bilanciamento del carico del gateway.

Prerequisiti

Se si sceglie di installare e usare PowerShell in locale, per questo articolo è necessario il modulo Azure PowerShell 5.4.1 o versione successiva. Eseguire Get-Module -ListAvailable Az per trovare la versione installata. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell. Se si esegue PowerShell in locale, è anche necessario eseguire Connect-AzAccount per creare una connessione con Azure.

Creare un gruppo di risorse

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.

Creare un gruppo di risorse con New-AzResourceGroup:

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

Creare una rete virtuale

Per le risorse presenti nel pool back-end del servizio di bilanciamento del carico del gateway è necessaria una rete virtuale. Usare New-AzVirtualNetwork per creare la rete virtuale. Usare New-AzBastion per distribuire un host bastion per la gestione sicura delle risorse nella rete virtuale.

Importante

La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion come parte di un'esercitazione o di un test, è consigliabile eliminare questa risorsa dopo averla usata.

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

Creare un gruppo di sicurezza di rete

Usare l'esempio seguente per creare un gruppo di sicurezza di rete. Si configureranno le regole del gruppo di sicurezza di rete necessarie per il traffico di rete nella rete virtuale creata in precedenza.

Usare New-AzNetworkSecurityRuleConfig per creare regole per il gruppo di sicurezza di rete. Usare New-AzNetworkSecurityGroup per creare il gruppo di sicurezza di rete.

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

Creare il servizio di bilanciamento del carico del gateway

In questa sezione si creerà la configurazione e si distribuirà il servizio di bilanciamento del carico del gateway. Usare New-AzLoadBalancerFrontendIpConfig per creare la configurazione IP front-end del servizio di bilanciamento del carico.

Si userà New-AzLoadBalancerTunnelInterface per creare due interfacce di tunnel per il servizio di bilanciamento del carico.

Creare un pool back-end con New-AzLoadBalancerBackendAddressPoolConfig per le appliance virtuali di rete.

È necessario un probe di integrità per monitorare l'integrità delle istanze back-end nel servizio di bilanciamento del carico. Usare New-AzLoadBalancerProbeConfig per creare il probe di integrità.

Il traffico destinato alle istanze back-end viene instradato con una regola di bilanciamento del carico. Usare New-AzLoadBalancerRuleConfig per creare la regola di bilanciamento del carico.

Per creare la distribuzione del servizio di bilanciamento del carico, usare 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

Aggiungere appliance virtuali di rete al pool back-end del servizio di bilanciamento del carico del gateway

Distribuire appliance virtuali di rete tramite Azure Marketplace. Dopo la distribuzione, aggiungere le macchine virtuali al pool back-end con Add-AzVMNetworkInterface

Concatenare il servizio front-end di bilanciamento del carico al servizio di bilanciamento del carico del gateway

In questo esempio si concatenerà il front-end di un servizio di bilanciamento del carico standard al servizio di bilanciamento del carico del gateway.

Si aggiungerà il front-end all'indirizzo IP front-end di un servizio di bilanciamento del carico esistente nella sottoscrizione.

Usare Set-AzLoadBalancerFrontendIpConfig per concatenare il front-end del servizio di bilanciamento del carico del gateway al servizio di bilanciamento del carico esistente.

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

Concatenare la macchina virtuale al servizio di bilanciamento del carico del gateway

In alternativa, è possibile concatenare la configurazione IP della scheda di interfaccia di rete di una macchina virtuale al servizio di bilanciamento del carico del gateway.

Si aggiungerà il front-end del servizio di bilanciamento del carico del gateway alla configurazione IP della scheda di interfaccia di rete di una macchina virtuale esistente.

Usare Set-AzNetworkInterfaceIpConfig per concatenare il front-end del servizio di bilanciamento del carico del gateway alla configurazione IP della scheda di interfaccia di rete della macchina virtuale esistente.

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

Pulire le risorse

Quando non servono più, è possibile usare il comando Remove-AzResourceGroup per rimuovere il gruppo di risorse, il servizio di bilanciamento del carico e le risorse rimanenti.

Remove-AzResourceGroup -Name 'TutorGwLB-rg'

Passaggi successivi

Creare appliance virtuali di rete in Azure.

Al momento della creazione delle appliance virtuali di rete, scegliere le risorse create in questa esercitazione:

  • Rete virtuale

  • Subnet

  • Gruppo di sicurezza di rete

  • Load Balancer Gateway

Passare all'articolo successivo per informazioni su come creare un servizio di bilanciamento del carico tra aree.