Creazione di un servizio di bilanciamento del carico Internet tramite l'interfaccia della riga di comando di AzureCreating an internet load balancer using the Azure CLI

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.

Azure Load Balancer è un servizio di bilanciamento del carico di livello 4 (TCP, UDP).An Azure load balancer is a Layer-4 (TCP, UDP) load balancer. 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 .The load balancer provides high availability by distributing incoming traffic among healthy service instances in cloud services or virtual machines in a load balancer set. Azure Load Balancer può anche presentare tali servizi su più porte, più indirizzi IP o entrambi.Azure Load Balancer can also present those services on multiple ports, multiple IP addresses, or both.

È possibile configurare un servizio bilanciamento del carico per:You can configure a load balancer to:

  • Bilanciare il carico del traffico Internet in ingresso nelle macchine virtuali (VMs).Load balance incoming Internet traffic to virtual machines (VMs). Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come bilanciamento del carico con connessione Internet.We refer to a load balancer in this scenario as an Internet-facing load balancer.
  • 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.Load balance traffic between VMs in a virtual network (VNet), between VMs in cloud services, or between on-premises computers and VMs in a cross-premises virtual network. Si fa riferimento a un servizio di bilanciamento del carico in questo scenario come un Bilanciamento del carico interno.We refer to a load balancer in this scenario as an internal load balancer (ILB).
  • Inoltrare il traffico esterno a una specifica istanza di macchina virtualeForward external traffic to a specific VM instance.

Questo articolo illustra il modello di distribuzione Gestione risorse.This article covers the Resource Manager deployment model. Vedere Informazioni su come creare un servizio di bilanciamento del carico Internet tramite la distribuzione classicaYou can also Learn how to create an Internet facing load balancer using classic deployment

In questo scenario verranno eseguite le seguenti attività:The following tasks will be done in this scenario:

  • 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"Create a load balancer that receives network traffic on port 80 and send load-balanced traffic to virtual machines "web1" and "web2"
  • Creare regole NAT per l'accesso desktop remoto/SSH per le macchine virtuali dietro il servizio di bilanciamento del caricoCreate NAT rules for remote desktop access/SSH for virtual machines behind the load balancer
  • Creare probe di integritàCreate health probes

Scenario del bilanciamento del carico

Distribuzione della soluzione tramite l'interfaccia della riga di comando di AzureDeploying the solution using the Azure CLI

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.The following steps show how to create an Internet facing load balancer using Azure Resource Manager with CLI. Con Azure Resource Manager ogni risorsa viene creata e configurata singolarmente e quindi integrata per creare una risorsa.With Azure Resource Manager each resource is created and configured individually, then put together to create a resource.

Creare e configurare gli oggetti seguenti per distribuire un servizio di bilanciamento del carico:You must create and configure the following objects to deploy a load balancer:

  • Configurazione di IP front-end: contiene gli indirizzi IP pubblici per il traffico di rete in ingresso.Front-end IP configuration - contains public IP addresses for incoming network traffic.
  • 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.Back-end address pool - contains network interfaces (NICs) for the virtual machines to receive network traffic from the load balancer.
  • 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.Load balancing rules - contains rules mapping a public port on the load balancer to port in the back-end address pool.
  • 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.Inbound NAT rules - contains rules mapping a public port on the load balancer to a port for a specific virtual machine in the back-end address pool.
  • Probe: contengono probe di integrità usati per verificare la disponibilità di istanze di macchine virtuali nel pool di indirizzi back-end.Probes - contains health probes used to check availability of virtual machines instances in the back-end address pool.

Per altre informazioni, vedere Supporto di Gestione risorse di Azure per il servizio di bilanciamento del carico.For more information see Azure Resource Manager support for Load Balancer.

Configurare l'interfaccia della riga di comando per l'uso di Resource ManagerSet up CLI to use 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.If you have never used Azure CLI, see Install and Configure the Azure CLI and follow the instructions up to the point where you select your Azure account and subscription.
  2. Eseguire il comando azure config mode per passare alla modalità Gestione risorse, come illustrato di seguito.Run the azure config mode command to switch to Resource Manager mode, as shown below.

        azure config mode arm
    

    Output previsto:Expected output:

     info:    New mode is arm
    

Creare una rete virtuale e un indirizzo IP pubblico per il pool di indirizzi IP front-endCreate a virtual network and a public IP address for the front-end IP pool

  1. Creare una rete virtuale (VNet) denominata NRPVnet nella località Stati Uniti orientali usando un gruppo di risorse denominato NRPRG.Create a virtual network (VNet) named NRPVnet in the East US location using a resource group named 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.Create a subnet named NRPVnetSubnet with a CIDR block of 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.Create a public IP address named NRPPublicIP to be used by a front-end IP pool with DNS name loadbalancernrp.eastus.cloudapp.azure.com. The command below uses the static allocation type and idle timeout of 4 minutes.

        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.The load balancer uses the domain label of the public IP as its FQDN. Questa è una differenza rispetto alla distribuzione classica, che usa il servizio cloud come nome di dominio completo del servizio di bilanciamento del carico.This a change from classic deployment, which uses the cloud service as the load balancer Fully Qualified Domain Name (FQDN). In questo esempio il nome di dominio completo è loadbalancernrp.eastus.cloudapp.azure.com.In this example, the FQDN is loadbalancernrp.eastus.cloudapp.azure.com.

Creare un servizio di bilanciamento del caricoCreate a load balancer

Il comando seguente crea un servizio di bilanciamento del carico denominato NRPlb nel gruppo di risorse NRPRG nella località Stati Uniti orientali di Azure.The following command creates a load balancer named NRPlb in the NRPRG resource group in the East US Azure location.

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

Creare un pool di indirizzi IP front-end e un pool di indirizzi back-endCreate a front-end IP pool and a backend address pool

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.This example demonstrates how to create the front-end IP pool that receives the incoming network traffic on the load balancer and the backend IP pool where the front-end pool sends the load balanced network traffic.

  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.Create a front-end IP pool associating the public IP created in the previous step and the load balancer.

        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.Set up a back-end address pool used to receive incoming traffic from the front-end IP pool.

        azure network lb address-pool create NRPRG NRPlb NRPbackendpool
    

Creare regole di bilanciamento del carico, regole NAT e probeCreate LB rules, NAT rules, and probe

Questo esempio crea gli elementi seguenti.This example creates the following items.

  • Regola NAT per la conversione di tutto il traffico in ingresso sulla porta 21 alla porta 221a NAT rule to translate all incoming traffic on port 21 to port 221
  • Regola NAT per la conversione di tutto il traffico in ingresso sulla porta 23 alla porta 22.a NAT rule to translate all incoming traffic on port 23 to port 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.a load balancer rule to balance all incoming traffic on port 80 to port 80 on the addresses in the back-end pool.
  • Regola probe per il controllo dello stato di integrità in una pagina denominata HealthProbe.aspx.a probe rule to check the health status on a page named HealthProbe.aspx.

1 Le regole NAT vengono associate a un'istanza di macchina virtuale specifica dietro al servizio di bilanciamento del carico.1 NAT rules are associated to a specific virtual machine instance behind the load balancer. Il traffico di rete in arrivo sulla porta 21 viene inviato a una specifica macchina virtuale sulla porta 22 associata a questa regola NAT.The network traffic arriving on port 21 is sent to a specific virtual machine on port 22 associated with this NAT rule. È necessario specificare un protocollo (UDP o TCP) per una regola NAT.You must specify a protocol (UDP or TCP) for a NAT rule. Entrambi i protocolli non possono essere assegnati alla stessa porta.Both protocols can't be assigned to the same port.

  1. Creare le regole NAT.Create the NAT rules.

        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.Create a load balancer rule.

        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à.Create a health probe.

        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.Check your settings.

        azure network lb show nrprg nrplb
    

    Output previsto:Expected output:

     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 NICCreate NICs

È 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.You need to create NICs (or modify existing ones) and associate them to NAT rules, load balancer rules, and probes.

  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.Create a NIC named lb-nic1-be, and associate it with the rdp1 NAT rule, and the NRPbackendpool back-end address pool.

        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:Expected output:

     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.Create a NIC named lb-nic2-be, and associate it with the rdp2 NAT rule, and the NRPbackendpool back-end address pool.

        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.Create a virtual machine (VM) named web1, and associate it with the NIC named lb-nic1-be. Un account di archiviazione denominato web1nrp è stato creato prima dell'esecuzione del comando seguente.A storage account called web1nrp was created before running the command below.

        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à.VMs in a load balancer need to be in the same availability set. Usare azure availset create per creare un set di disponibilità.Use azure availset create to create an availability set.

    L'output dovrebbe essere simile al seguente:The output should be similar to the following:

     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.The informational message This is a NIC without publicIP configured is expected since the NIC created for the load balancer connecting to Internet using the load balancer public IP address.

    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.Since the lb-nic1-be NIC is associated with the rdp1 NAT rule, you can connect to web1 using RDP through port 3441 on the load balancer.

  4. Creare una macchina virtuale (VM) denominata web2 e associarla alla schede di interfaccia di rete denominata lb-nic2-be.Create a virtual machine (VM) named web2, and associate it with the NIC named lb-nic2-be. Un account di archiviazione denominato web1nrp è stato creato prima dell'esecuzione del comando seguente.A storage account called web1nrp was created before running the command below.

        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 esistenteUpdate an existing load balancer

È possibile aggiungere regole che fanno riferimento a un servizio di bilanciamento del carico esistente.You can add rules referencing an existing load balancer. Nell'esempio seguente una nuova regola di bilanciamento del carico viene aggiunta a un servizio di bilanciamento del carico NRPlbIn the next example, a new load balancer rule is added to an existing load balancer 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 caricoDelete a load balancer

Per rimuovere un servizio di bilanciamento del carico, usare il comando seguente:Use the following command to remove a load balancer:

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

Passaggi successiviNext steps

Introduzione alla configurazione del bilanciamento del carico internoGet started configuring an internal load balancer

Configurare una modalità di distribuzione del servizio di bilanciamento del caricoConfigure a load balancer distribution mode

Configurare le impostazioni del timeout di inattività TCP per il bilanciamento del caricoConfigure idle TCP timeout settings for your load balancer