Bilanciamento del carico in più configurazioni IP tramite PowerShellLoad balancing on multiple IP configurations using PowerShell

Importante

Azure Load Balancer supporta due tipi diversi: Basic e Standard.Azure Load Balancer supports two different types: Basic and Standard. Questo articolo illustra Load Balancer Basic.This article discusses Basic Load Balancer. Load Balancer Basic è disponibile a livello generale, mentre Load Balancer Standard è attualmente in anteprima pubblica.Basic Load Balancer is generally available, whereas Standard Load Balancer is currently in Public Preview. Per altre informazioni su Load Balancer Standard, vedere Panoramica di Load Balancer Standard.For more information about Standard Load Balancer, see Standard Load Balancer Overview.

Questo articolo descrive come usare Azure Load Balancer con più indirizzi IP su una scheda di interfaccia di rete secondaria.This article describes how to use Azure Load Balancer with multiple IP addresses on a secondary network interface (NIC). Per questo scenario sono disponibili due VM con Windows, ognuna con una scheda di interfaccia di rete primaria e secondaria.For this scenario, we have two VMs running Windows, each with a primary and a secondary NIC. Ogni scheda di interfaccia di rete secondaria dispone di due configurazioni di indirizzo IP.Each of the secondary NICs has two IP configurations. Ogni macchina virtuale ospita entrambi i siti Web: contoso.com e fabrikam.com. Ogni sito Web è associato a una delle configurazioni IP della scheda di interfaccia di rete secondaria.Each VM hosts both websites contoso.com and fabrikam.com. Each website is bound to one of the IP configurations on the secondary NIC. Azure Load Balancer viene usato per esporre due indirizzi IP front-end, uno per ogni sito Web, per distribuire il traffico alla rispettiva configurazione IP per il sito Web.We use Azure Load Balancer to expose two frontend IP addresses, one for each website, to distribute traffic to the respective IP configuration for the website. Questo scenario usa lo stesso numero di porta per entrambi i front-end, nonché per entrambi gli indirizzi IP del pool back-end.This scenario uses the same port number across both frontends, as well as both backend pool IP addresses.

Immagine dello scenario LB

Procedura per il bilanciamento del carico in più configurazioni IPSteps to load balance on multiple IP configurations

Per ottenere lo scenario descritto in questo articolo, seguire questa procedura:Follow the steps below to achieve the scenario outlined in this article:

  1. Installare Azure PowerShell.Install Azure PowerShell. Per informazioni su come installare la versione più recente di Azure PowerShell, selezionare la sottoscrizione e accedere all'account, vedere Come installare e configurare Azure PowerShell.See How to install and configure Azure PowerShell for information about installing the latest version of Azure PowerShell, selecting your subscription, and signing in to your account.
  2. Creare un gruppo di risorse usando le impostazioni seguenti:Create a resource group using the following settings:

    $location = "westcentralus".
    $myResourceGroup = "contosofabrikam"
    

    Per altre informazioni, vedere il passaggio 2 dell'articolo relativo alla creazione di un gruppo di risorse.For more information, see Step 2 of Create a Resource Group.

  3. Creare un set di disponibilità che dovrà contenere le macchine virtuali.Create an Availability Set to contain your VMs. Per questo scenario, usare il comando seguente:For this scenario, use the following command:

    New-AzureRmAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
    
  4. Seguire le istruzioni contenute nei passaggi da 3 a 5 dell'articolo Creare una VM Windows per preparare la creazione di una macchina virtuale con una scheda di interfaccia di rete singola.Follow instructions steps 3 through 5 in Create a Windows VM article to prepare the creation of a VM with a single NIC. Eseguire il passaggio 6.1 e sostituire il comando del passaggio 6.2 con quanto segue:Execute step 6.1, and use the following instead of step 6.2:

    $availset = Get-AzureRmAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset"
    New-AzureRmVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
    

    Completare quindi i passaggi da 6.3 a 6.8 dell'articolo Creare una VM Windows.Then complete Create a Windows VM steps 6.3 through 6.8.

  5. Aggiungere una seconda configurazione IP a ognuna delle macchine virtuali.Add a second IP configuration to each of the VMs. Seguire le istruzioni contenute nell'articolo Assegnare più indirizzi IP alle macchine virtuali.Follow the instructions in Assign multiple IP addresses to virtual machines article. Usare le impostazioni di configurazione seguenti:Use the following configuration settings:

    $NicName = "VM1-NIC2"
    $RgName = "contosofabrikam"
    $NicLocation = "West Central US"
    $IPConfigName4 = "VM1-ipconfig2"
    $Subnet1 = Get-AzureRmVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
    

    Ai fini di questa esercitazione, non è necessario associare le configurazioni IP secondarie agli indirizzi IP pubblici.You do not need to associate the secondary IP configurations with public IPs for the purpose of this tutorial. Modificare il comando per rimuovere la parte relativa all'associazione dell'indirizzo IP pubblico.Edit the command to remove the public IP association part.

  6. Completare nuovamente i passaggi da 4 a 6 di questo articolo per VM2.Complete steps 4 through 6 of this article again for VM2. In questo caso assicurarsi di sostituire il nome della macchina virtuale con VM2.Be sure to replace the VM name to VM2 when doing this. Si noti che non è necessario creare una rete virtuale per la seconda macchina virtuale.Note that you do not need to create a virtual network for the second VM. È possibile scegliere se creare o meno una nuova subnet in base al caso d'uso.You may or may not create a new subnet based on your use case.

  7. Creare due indirizzi IP pubblici e archiviarli in variabili appropriate, come illustrato di seguito:Create two public IP addresses and store them in the appropriate variables as shown:

    $publicIP1 = New-AzureRmPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel contoso
    $publicIP2 = New-AzureRmPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel fabrikam
    
    $publicIP1 = Get-AzureRmPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam
    $publicIP2 = Get-AzureRmPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
    
  8. Creare due configurazioni IP front-end:Create two frontend IP configurations:

    $frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1
    $frontendIP2 = New-AzureRmLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
    
  9. Creare i pool di indirizzi back-end, un probe e regole di bilanciamento del carico:Create your backend address pools, a probe, and your load balancing rules:

    $beaddresspool1 = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name contosopool
    $beaddresspool2 = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name fabrikampool
    
    $healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    
    $lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    $lbrule2 = New-AzureRmLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    
  10. Dopo aver creato queste risorse, creare il servizio di bilanciamento del carico:Once you have these resources created, create your load balancer:

    $mylb = New-AzureRmLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'West Central US' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    
  11. Aggiungere il secondo pool di indirizzi back-end e la configurazione IP front-end per il servizio di bilanciamento del carico appena creato:Add the second backend address pool and frontend IP configuration to your newly created load balancer:

    $mylb = Get-AzureRmLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzureRmLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzureRmLoadBalancer
    
    $mylb | Add-AzureRmLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzureRmLoadBalancer
    
    Add-AzureRmLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzureRmLoadBalancer
    
  12. I comandi seguenti permettono di ottenere le schede di interfaccia di rete e aggiungono entrambe le configurazioni IP di ogni scheda di interfaccia di rete secondaria al pool di indirizzi back-end del servizio di bilanciamento del carico:The commands below get the NICs and then add both IP configurations of each secondary NIC to the backend address pool of the load balancer:

    $nic1 = Get-AzureRmNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup";
    $nic2 = Get-AzureRmNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup";
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    
    $mylb = $mylb | Set-AzureRmLoadBalancer
    
    $nic1 | Set-AzureRmNetworkInterface
    $nic2 | Set-AzureRmNetworkInterface
    
  13. Infine, è necessario configurare i record risorsa DNS in modo che puntino all'indirizzo IP front-end corrispondente di Azure Load Balancer.Finally, you must configure DNS resource records to point to the respective frontend IP address of the Load Balancer. È possibile ospitare i domini nel servizio DNS di Azure.You may host your domains in Azure DNS. Per altre informazioni sull'uso del servizio DNS di Azure con Azure Load Balancer, vedere Uso del servizio DNS di Azure con altri servizi di Azure.For more information about using Azure DNS with Load Balancer, see Using Azure DNS with other Azure services.

Passaggi successiviNext steps