Creazione di un servizio di bilanciamento del carico Internet tramite l'interfaccia della riga di comando di Azure

Importante

Azure Load Balancer supporta due tipi diversi: Basic e Standard. Questo articolo illustra Load Balancer Basic. Load Balancer Basic è disponibile a livello generale, mentre Load Balancer Standard è attualmente in anteprima pubblica. Per altre informazioni su Load Balancer Standard, vedere Panoramica di Load Balancer Standard.

Azure Load Balancer è un servizio di bilanciamento del carico di livello 4 (TCP, UDP). Il servizio di bilanciamento del carico offre disponibilità elevata distribuendo il traffico in ingresso tra istanze del servizio integre in servizi cloud o macchine virtuali in un set di bilanciamento del carico . Azure Load Balancer può anche presentare tali servizi su più porte, più indirizzi IP o entrambi.

È possibile configurare un servizio bilanciamento del carico per:

  • Bilanciare il carico del traffico Internet in ingresso nelle macchine virtuali (VMs). Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come bilanciamento del carico con connessione Internet.
  • Bilanciare il carico del traffico tra macchine virtuali in una rete virtuale, tra macchine virtuali nei servizi cloud o tra computer locali e macchine virtuali in una rete virtuale cross-premise. Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come un Bilanciamento del carico interno.
  • Inoltrare il traffico esterno a una specifica istanza di macchina virtuale

Importante

Prima di iniziare a usare le risorse di Azure, è importante comprendere che Azure al momento offre due modelli di distribuzione, la distribuzione classica e Azure Resource Manager. È importante comprendere i modelli e strumenti di distribuzione prima di lavorare con le risorse di Azure. È possibile visualizzare la documentazione relativa a diversi strumenti facendo clic sulle schede nella parte superiore di questo articolo.

Questo articolo illustra il modello di distribuzione Gestione risorse. Vedere Informazioni su come creare un servizio di bilanciamento del carico Internet tramite la distribuzione classica

In questo scenario verranno eseguite le seguenti attività:

  • Creare un servizio di bilanciamento del carico che riceve il traffico di rete sulla porta 80 e invia il traffico con carico bilanciato alle macchine virtuali "web1" e "web2"
  • Creare regole NAT per l'accesso desktop remoto/SSH per le macchine virtuali dietro il servizio di bilanciamento del carico
  • Creare probe di integrità

Scenario del bilanciamento del carico

Distribuzione della soluzione tramite l'interfaccia della riga di comando di Azure

La procedura seguente illustra come creare un servizio di bilanciamento del carico Internet usando Azure Resource Manager con l'interfaccia della riga di comando di Azure. Con Azure Resource Manager ogni risorsa viene creata e configurata singolarmente e quindi integrata per creare una risorsa.

Creare e configurare gli oggetti seguenti per distribuire un servizio di bilanciamento del carico:

  • Configurazione di IP front-end: contiene gli indirizzi IP pubblici per il traffico di rete in ingresso.
  • Pool di indirizzi back-end: contiene interfacce di rete (NIC) per le macchine virtuali per la ricezione di traffico di rete dal servizio di bilanciamento del carico.
  • Regole di bilanciamento del carico: contengono regole per il mapping di una porta pubblica nel servizio di bilanciamento del carico alle porte nel pool di indirizzi back-end.
  • Regole NAT in ingresso: contengono regole per il mapping di una porta pubblica nel servizio di bilanciamento del carico a una porta per una macchina virtuale specifica nel pool di indirizzi back-end.
  • Probe: contengono probe di integrità usati per verificare la disponibilità di istanze di macchine virtuali nel pool di indirizzi back-end.

Per altre informazioni, vedere Supporto di Gestione risorse di Azure per il servizio di bilanciamento del carico.

Configurare l'interfaccia della riga di comando per l'uso di Resource Manager

  1. Se l'interfaccia della riga di comando di Azure non è mai stata usata, vedere Installare e configurare l'interfaccia della riga di comando di Azure e seguire le istruzioni fino al punto in cui si selezionano l'account e la sottoscrizione di Azure.
  2. Eseguire il comando azure config mode per passare alla modalità Gestione risorse, come illustrato di seguito.

        azure config mode arm
    

    Output previsto:

     info:    New mode is arm
    

Creare una rete virtuale e un indirizzo IP pubblico per il pool di indirizzi IP front-end

  1. Creare una rete virtuale (VNet) denominata NRPVnet nella località Stati Uniti orientali usando un gruppo di risorse denominato NRPRG.

        azure network vnet create NRPRG NRPVnet eastUS -a 10.0.0.0/16
    

    Creare una subnet denominata NRPVnetSubnet con un blocco CIDR di 10.0.0.0/24 in NRPVnet.

        azure network vnet subnet create NRPRG NRPVnet NRPVnetSubnet -a 10.0.0.0/24
    
  2. Creare un indirizzo IP pubblico denominato NRPPublicIP che dovrà essere usato da un pool di indirizzi IP front-end con nome DNS loadbalancernrp.eastus.cloudapp.azure.com. Il comando seguente usa il tipo di allocazione statica e un timeout di inattività pari a 4 minuti.

        azure network public-ip create -g NRPRG -n NRPPublicIP -l eastus -d loadbalancernrp -a static -i 4
    

    Importante

    Il servizio di bilanciamento del carico usa l'etichetta di dominio dell'indirizzo IP pubblico come nome di dominio completo. Questa è una differenza rispetto alla distribuzione classica, che usa il servizio cloud come nome di dominio completo del servizio di bilanciamento del carico. In questo esempio il nome di dominio completo è loadbalancernrp.eastus.cloudapp.azure.com.

Creare un servizio di bilanciamento del carico

Il comando seguente crea un servizio di bilanciamento del carico denominato NRPlb nel gruppo di risorse NRPRG nella località Stati Uniti orientali di Azure.

```azurecli
azure network lb create NRPRG NRPlb eastus
```

Creare un pool di indirizzi IP front-end e un pool di indirizzi back-end

Questo esempio spiega come creare il pool di indirizzi IP front-end che riceve il traffico di rete in entrata per il servizio di bilanciamento del carico e il pool di indirizzi IP back-end a cui il pool front-end invia il traffico di rete sottoposto a bilanciamento del carico.

  1. Creare un pool di indirizzi IP front-end che associa l'indirizzo IP pubblico creato nel passaggio precedente e il servizio di bilanciamento del carico.

        azure network lb frontend-ip create nrpRG NRPlb NRPfrontendpool -i nrppublicip
    
  2. Configurare un pool di indirizzi back-end usato per ricevere il traffico in ingresso dal pool di indirizzi IP front-end.

        azure network lb address-pool create NRPRG NRPlb NRPbackendpool
    

Creare regole di bilanciamento del carico, regole NAT e probe

Questo esempio crea gli elementi seguenti.

  • Regola NAT per la conversione di tutto il traffico in ingresso sulla porta 21 alla porta 221
  • Regola NAT per la conversione di tutto il traffico in ingresso sulla porta 23 alla porta 22.
  • Regola del servizio di bilanciamento del carico per il bilanciamento di tutto il traffico in ingresso sulla porta 80 verso la porta 80 negli indirizzi nel pool back-end.
  • Regola probe per il controllo dello stato di integrità in una pagina denominata HealthProbe.aspx.

1 Le regole NAT vengono associate a un'istanza di macchina virtuale specifica dietro al servizio di bilanciamento del carico. Il traffico di rete in arrivo sulla porta 21 viene inviato a una specifica macchina virtuale sulla porta 22 associata a questa regola NAT. È necessario specificare un protocollo (UDP o TCP) per una regola NAT. Entrambi i protocolli non possono essere assegnati alla stessa porta.

  1. Creare le regole NAT.

        azure network lb inbound-nat-rule create --resource-group nrprg --lb-name nrplb --name ssh1 --protocol tcp --frontend-port 21 --backend-port 22
        azure network lb inbound-nat-rule create --resource-group nrprg --lb-name nrplb --name ssh2 --protocol tcp --frontend-port 23 --backend-port 22
    
  2. Creare una regola del servizio di bilanciamento del carico.

        azure network lb rule create --resource-group nrprg --lb-name nrplb --name lbrule --protocol tcp --frontend-port 80 --backend-port 80 --frontend-ip-name NRPfrontendpool --backend-address-pool-name NRPbackendpool
    
  3. Creare un probe di integrità.

        azure network lb probe create --resource-group nrprg --lb-name nrplb --name healthprobe --protocol "http" --port 80 --path healthprobe.aspx --interval 15 --count 4
    
  4. Verificare le impostazioni.

        azure network lb show nrprg nrplb
    

    Output previsto:

     info:    Executing command network lb show
     + Looking up the load balancer "nrplb"
     + Looking up the public ip "NRPPublicIP"
     data:    Id                              : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb
     data:    Name                            : nrplb
     data:    Type                            : Microsoft.Network/loadBalancers
     data:    Location                        : eastus
     data:    Provisioning State              : Succeeded
     data:    Frontend IP configurations:
     data:      Name                          : NRPfrontendpool
     data:      Provisioning state            : Succeeded
     data:      Public IP address id          : /subscriptions/####################################/resourceGroups/NRPRG/providers/Microsoft.Network/publicIPAddresses/NRPPublicIP
     data:      Public IP allocation method   : Static
     data:      Public IP address             : 40.114.13.145
     data:
     data:    Backend address pools:
     data:      Name                          : NRPbackendpool
     data:      Provisioning state            : Succeeded
     data:
     data:    Load balancing rules:
     data:      Name                          : HTTP
     data:      Provisioning state            : Succeeded
     data:      Protocol                      : Tcp
     data:      Frontend port                 : 80
     data:      Backend port                  : 80
     data:      Enable floating IP            : false
     data:      Idle timeout in minutes       : 4
     data:      Frontend IP configuration     : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/frontendIPConfigurations/NRPfrontendpool
     data:      Backend address pool          : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/backendAddressPools/NRPbackendpool
     data:
     data:    Inbound NAT rules:
     data:      Name                          : ssh1
     data:      Provisioning state            : Succeeded
     data:      Protocol                      : Tcp
     data:      Frontend port                 : 21
     data:      Backend port                  : 22
     data:      Enable floating IP            : false
     data:      Idle timeout in minutes       : 4
     data:      Frontend IP configuration     : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/frontendIPConfigurations/NRPfrontendpool
     data:
     data:      Name                          : ssh2
     data:      Provisioning state            : Succeeded
     data:      Protocol                      : Tcp
     data:      Frontend port                 : 23
     data:      Backend port                  : 22
     data:      Enable floating IP            : false
     data:      Idle timeout in minutes       : 4
     data:      Frontend IP configuration     : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/frontendIPConfigurations/NRPfrontendpool
     data:
     data:    Probes:
     data:      Name                          : healthprobe
     data:      Provisioning state            : Succeeded
     data:      Protocol                      : Http
     data:      Port                          : 80
     data:      Interval in seconds           : 15
     data:      Number of probes              : 4
     data:
     info:    network lb show command OK
    

Creare NIC

È necessario creare schede di interfaccia di rete (NIC) o modificare quelle esistenti e associarle a regole NAT, regole del servizio di bilanciamento del carico e probe.

  1. Creare una schede di interfaccia di rete denominata lb-nic1-be e associarla alla regola NAT rdp1 e al pool di indirizzi back-end NRPbackendpool.

        azure network nic create --resource-group nrprg --name lb-nic1-be --subnet-name nrpvnetsubnet --subnet-vnet-name nrpvnet --lb-address-pool-ids "/subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/backendAddressPools/NRPbackendpool" --lb-inbound-nat-rule-ids "/subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/inboundNatRules/rdp1" eastus
    

    Output previsto:

     info:    Executing command network nic create
     + Looking up the network interface "lb-nic1-be"
     + Looking up the subnet "nrpvnetsubnet"
     + Creating network interface "lb-nic1-be"
     + Looking up the network interface "lb-nic1-be"
     data:    Id                              : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/networkInterfaces/lb-nic1-be
     data:    Name                            : lb-nic1-be
     data:    Type                            : Microsoft.Network/networkInterfaces
     data:    Location                        : eastus
     data:    Provisioning state              : Succeeded
     data:    Enable IP forwarding            : false
     data:    IP configurations:
     data:      Name                          : NIC-config
     data:      Provisioning state            : Succeeded
     data:      Private IP address            : 10.0.0.4
     data:      Private IP Allocation Method  : Dynamic
     data:      Subnet                        : /subscriptions/####################################/resourceGroups/NRPRG/providers/Microsoft.Network/virtualNetworks/NRPVnet/subnets/NRPVnetSubnet
     data:      Load balancer backend address pools
     data:        Id                          : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/backendAddressPools/NRPbackendpool
     data:      Load balancer inbound NAT rules:
     data:        Id                          : /subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/inboundNatRules/rdp1
     data:
     info:    network nic create command OK
    
  2. Creare una schede di interfaccia di rete denominata lb-nic2-be e associarla alla regola NAT rdp2 e al pool di indirizzi back-end NRPbackendpool.

        azure network nic create --resource-group nrprg --name lb-nic2-be --subnet-name nrpvnetsubnet --subnet-vnet-name nrpvnet --lb-address-pool-ids "/subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/backendAddressPools/NRPbackendpool" --lb-inbound-nat-rule-ids "/subscriptions/####################################/resourceGroups/nrprg/providers/Microsoft.Network/loadBalancers/nrplb/inboundNatRules/rdp2" eastus
    
  3. Creare una macchina virtuale (VM) denominata web1 e associarla alla schede di interfaccia di rete denominata lb-nic1-be. Un account di archiviazione denominato web1nrp è stato creato prima dell'esecuzione del comando seguente.

        azure vm create --resource-group nrprg --name web1 --location eastus --vnet-name nrpvnet --vnet-subnet-name nrpvnetsubnet --nic-name lb-nic1-be --availset-name nrp-avset --storage-account-name web1nrp --os-type Windows --image-urn MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:4.0.20150825
    

    Importante

    Le macchine virtuali in un servizio di bilanciamento del carico devono trovarsi nello stesso set di disponibilità. Usare azure availset create per creare un set di disponibilità.

    L'output dovrebbe essere simile al seguente:

     info:    Executing command vm create
     + Looking up the VM "web1"
     Enter username: azureuser
     Enter password for azureuser: *********
     Confirm password: *********
     info:    Using the VM Size "Standard_A1"
     info:    The [OS, Data] Disk or image configuration requires storage account
     + Looking up the storage account web1nrp
     + Looking up the availability set "nrp-avset"
     info:    Found an Availability set "nrp-avset"
     + Looking up the NIC "lb-nic1-be"
     info:    Found an existing NIC "lb-nic1-be"
     info:    Found an IP configuration with virtual network subnet id "/subscriptions/####################################/resourceGroups/NRPRG/providers/Microsoft.Network/virtualNetworks/NRPVnet/subnets/NRPVnetSubnet" in the NIC "lb-nic1-be"
     info:    This is a NIC without publicIP configured
     + Creating VM "web1"
     info:    vm create command OK
    

    Nota

    Il messaggio informativo This is a NIC without publicIP configured è un comportamento previsto, perché la NIC creata per il servizio di bilanciamento del carico si connette a Internet tramite l'indirizzo IP pubblico del servizio di bilanciamento del carico.

    Poiché la schede di interfaccia di rete lb-nic1-be è associata alla regola NAT rdp1, è possibile connettersi a web1 con RDP tramite la porta 3441 nel servizio di bilanciamento del carico.

  4. Creare una macchina virtuale (VM) denominata web2 e associarla alla schede di interfaccia di rete denominata lb-nic2-be. Un account di archiviazione denominato web1nrp è stato creato prima dell'esecuzione del comando seguente.

        azure vm create --resource-group nrprg --name web2 --location eastus --vnet-name nrpvnet --vnet-subnet-name nrpvnetsubnet --nic-name lb-nic2-be --availset-name nrp-avset --storage-account-name web2nrp --os-type Windows --image-urn MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:4.0.20150825
    

Aggiornare un bilanciamento del carico esistente

È possibile aggiungere regole che fanno riferimento a un servizio di bilanciamento del carico esistente. Nell'esempio seguente una nuova regola di bilanciamento del carico viene aggiunta a un servizio di bilanciamento del carico NRPlb

azure network lb rule create --resource-group nrprg --lb-name nrplb --name lbrule2 --protocol tcp --frontend-port 8080 --backend-port 8051 --frontend-ip-name frontendnrppool --backend-address-pool-name NRPbackendpool

Eliminare un servizio di bilanciamento del carico

Per rimuovere un servizio di bilanciamento del carico, usare il comando seguente:

azure network lb delete --resource-group nrprg --name nrplb

Passaggi successivi

Introduzione alla configurazione del bilanciamento del carico interno

Configurare una modalità di distribuzione del servizio di bilanciamento del carico

Configurare le impostazioni del timeout di inattività TCP per il bilanciamento del carico