Creare un servizio di bilanciamento del carico con connessione Internet con IPv6 in Azure Resource Manager usando l'interfaccia della riga di comando di AzureCreate an Internet facing load balancer with IPv6 in Azure Resource Manager 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.

Scenario di distribuzione di esempioExample deployment scenario

Il diagramma seguente illustra la soluzione di bilanciamento del carico distribuita usando il modello di esempio descritto in questo articolo.The following diagram illustrates the load balancing solution being deployed using the example template described in this article.

Scenario del bilanciamento del carico

In questo scenario si creeranno le seguenti risorse di Azure:In this scenario you will create the following Azure resources:

  • due macchine virtuali (VM)two virtual machines (VMs)
  • un'interfaccia di rete virtuale per ogni VM con l'assegnazione degli indirizzi IPv4 e IPv6a virtual network interface for each VM with both IPv4 and IPv6 addresses assigned
  • un servizio di bilanciamento del carico con connessione Internet con un indirizzo IP pubblico IPv4 e IPv6an Internet-facing Load Balancer with an IPv4 and an IPv6 Public IP address
  • un set di disponibilità contenente le due macchine virtualian Availability Set to that contains the two VMs
  • due regole di bilanciamento del carico per eseguire il mapping degli indirizzi VIP pubblici agli endpoint privatitwo load balancing rules to map the public VIPs to the private endpoints

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, and then put together to create a resource.

Per distribuire un servizio di bilanciamento del carico è necessario creare e configurare gli oggetti seguenti:To deploy a load balancer, you create and configure the following objects:

  • 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 Azure Resource Manager per Load Balancer.For more information, see Azure Resource Manager support for Load Balancer.

Configurare l'ambiente dell'interfaccia della riga di comando per l'uso di Azure Resource ManagerSet up your CLI environment to use Azure Resource Manager

Per questo esempio verranno eseguiti gli strumenti dell'interfaccia della riga di comando in una finestra di comando di PowerShell.For this example, we are running the CLI tools in a PowerShell command window. Non verranno usati i cmdlet di Azure PowerShell, ma le funzionalità di script di PowerShell per migliorare la leggibilità e il riutilizzo.We are not using the Azure PowerShell cmdlets but we use PowerShell's scripting capabilities to improve readability and reuse.

  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à Resource Manager.Run the azure config mode command to switch to Resource Manager mode.

    azure config mode arm
    

    Output previsto:Expected output:

     info:    New mode is arm
    
  3. Accedere ad Azure e ottenere un elenco delle sottoscrizioni.Sign in to Azure and get a list of subscriptions.

    azure login
    

    Immettere le credenziali di Azure quando richiesto.Enter your Azure credentials when prompted.

    azure account list
    

    Selezionare la sottoscrizione da usare.Pick the subscription you want to use. Prendere nota dell'ID sottoscrizione per il passaggio successivo.Make note of the subscription Id for the next step.

  4. Impostare le variabili di PowerShell per l'uso con i comandi dell'interfaccia della riga di comando.Set up PowerShell variables for use with the CLI commands.

    $subscriptionid = "########-####-####-####-############"  # enter subscription id
    $location = "southcentralus"
    $rgName = "pscontosorg1southctrlus09152016"
    $vnetName = "contosoIPv4Vnet"
    $vnetPrefix = "10.0.0.0/16"
    $subnet1Name = "clicontosoIPv4Subnet1"
    $subnet1Prefix = "10.0.0.0/24"
    $subnet2Name = "clicontosoIPv4Subnet2"
    $subnet2Prefix = "10.0.1.0/24"
    $dnsLabel = "contoso09152016"
    $lbName = "myIPv4IPv6Lb"
    

Creare un gruppo di risorse, un servizio di bilanciamento del carico, una rete virtuale e subnetCreate a resource group, a load balancer, a virtual network, and subnets

  1. Creare un gruppo di risorseCreate a resource group

    azure group create $rgName $location
    
  2. Creare un servizio di bilanciamento del caricoCreate a load balancer

    $lb = azure network lb create --resource-group $rgname --location $location --name $lbName
    
  3. Creare una rete virtuale.Create a virtual network (VNet).

    $vnet = azure network vnet create  --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
    

    Creare due subnet nella rete virtuale.Create two subnets in this VNet.

    $subnet1 = azure network vnet subnet create --resource-group $rgname --name $subnet1Name --address-prefix $subnet1Prefix --vnet-name $vnetName
    $subnet2 = azure network vnet subnet create --resource-group $rgname --name $subnet2Name --address-prefix $subnet2Prefix --vnet-name $vnetName
    

Creare indirizzi IP pubblici per il pool front-endCreate public IP addresses for the front-end pool

  1. Configurare le variabili di PowerShellSet up the PowerShell variables

    $publicIpv4Name = "myIPv4Vip"
    $publicIpv6Name = "myIPv6Vip"
    
  2. Creare un indirizzo IP pubblico per il pool IP front-end.Create a public IP address the front-end IP pool.

    $publicipV4 = azure network public-ip create --resource-group $rgname --name $publicIpv4Name --location $location --ip-version IPv4 --allocation-method Dynamic --domain-name-label $dnsLabel
    $publicipV6 = azure network public-ip create --resource-group $rgname --name $publicIpv6Name --location $location --ip-version IPv6 --allocation-method Dynamic --domain-name-label $dnsLabel
    

    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. Si tratta di una differenza rispetto alla distribuzione classica, che usa il nome del servizio cloud come nome di dominio completo del servizio di bilanciamento del carico.This a change from classic deployment, which uses the cloud service name as the load balancer FQDN. In questo esempio, il nome di dominio completo è contoso09152016.southcentralus.cloudapp.azure.com.In this example, the FQDN is contoso09152016.southcentralus.cloudapp.azure.com.

Creare pool front-end e back-endCreate front-end and back-end pools

Questo esempio crea il pool di indirizzi IP front-end che riceve il traffico in ingresso 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 con bilanciamento del carico.This example creates the front-end IP pool that receives the incoming network traffic on the load balancer and the back-end IP pool where the front-end pool sends the load balanced network traffic.

  1. Configurare le variabili di PowerShellSet up the PowerShell variables

    $frontendV4Name = "FrontendVipIPv4"
    $frontendV6Name = "FrontendVipIPv6"
    $backendAddressPoolV4Name = "BackendPoolIPv4"
    $backendAddressPoolV6Name = "BackendPoolIPv6"
    
  2. 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.

    $frontendV4 = azure network lb frontend-ip create --resource-group $rgname --name $frontendV4Name --public-ip-name $publicIpv4Name --lb-name $lbName
    $frontendV6 = azure network lb frontend-ip create --resource-group $rgname --name $frontendV6Name --public-ip-name $publicIpv6Name --lb-name $lbName
    $backendAddressPoolV4 = azure network lb address-pool create --resource-group $rgname --name $backendAddressPoolV4Name --lb-name $lbName
    $backendAddressPoolV6 = azure network lb address-pool create --resource-group $rgname --name $backendAddressPoolV6Name --lb-name $lbName
    

Creare il probe, le regole NAT e le regole di bilanciamento del caricoCreate the probe, NAT rules, and LB rules

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

  • una regola probe per verificare la connettività alla porta TCP 80a probe rule to check for connectivity to TCP port 80
  • una regola NAT per la conversione di tutto il traffico in ingresso nella porta 3389 alla porta 3389 per RDP1a NAT rule to translate all incoming traffic on port 3389 to port 3389 for RDP1
  • una regola NAT per la conversione di tutto il traffico in ingresso nella porta 3391 alla porta 3389 per RDP1a NAT rule to translate all incoming traffic on port 3391 to port 3389 for RDP1
  • 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.

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 3389 viene inviato alla specifica macchina virtuale e alla porta associata alla regola NAT.The network traffic arriving on port 3389 is sent to the specific virtual machine and port associated with the 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. Configurare le variabili di PowerShellSet up the PowerShell variables

    $probeV4V6Name = "ProbeForIPv4AndIPv6"
    $natRule1V4Name = "NatRule-For-Rdp-VM1"
    $natRule2V4Name = "NatRule-For-Rdp-VM2"
    $lbRule1V4Name = "LBRuleForIPv4-Port80"
    $lbRule1V6Name = "LBRuleForIPv6-Port80"
    
  2. Creare il probeCreate the probe

    L'esempio seguente crea un probe TCP che verifica la connettività alla porta TCP di back-end 80 ogni 15 secondi.The following example creates a TCP probe that checks for connectivity to back-end TCP port 80 every 15 seconds. Contrassegna la risorsa back-end come non disponibile dopo due tentativi consecutivi non riusciti.It will mark the back-end resource unavailable after two consecutive failures.

    $probeV4V6 = azure network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --count 2 --lb-name $lbName
    
  3. Creare regole NAT in ingresso che consentano connessioni RDP alle risorse back-endCreate inbound NAT rules that allow RDP connections to the back-end resources

    $inboundNatRuleRdp1 = azure network lb inbound-nat-rule create --resource-group $rgname --name $natRule1V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3389 --backend-port 3389 --lb-name $lbName
    $inboundNatRuleRdp2 = azure network lb inbound-nat-rule create --resource-group $rgname --name $natRule2V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3391 --backend-port 3389 --lb-name $lbName
    
  4. Creare regole del servizio di bilanciamento del carico che inviano il traffico a porte back-end diverse a seconda del front-end che ha ricevuto la richiestaCreate a load balancer rules that send traffic to different back-end ports depending on which front end received the request

    $lbruleIPv4 = azure network lb rule create --resource-group $rgname --name $lbRule1V4Name --frontend-ip-name $frontendV4Name --backend-address-pool-name $backendAddressPoolV4Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 80 --lb-name $lbName
    $lbruleIPv6 = azure network lb rule create --resource-group $rgname --name $lbRule1V6Name --frontend-ip-name $frontendV6Name --backend-address-pool-name $backendAddressPoolV6Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 8080 --lb-name $lbName
    
  5. Verificare le impostazioniCheck your settings

    azure network lb show --resource-group $rgName --name $lbName
    

    Output previsto:Expected output:

     info:    Executing command network lb show
     info:    Looking up the load balancer "myIPv4IPv6Lb"
     data:    Id                              : /subscriptions/########-####-####-####-############/resourceGroups/pscontosorg1southctrlus09152016/providers/Microsoft.Network/loadBalancers/myIPv4IPv6Lb
     data:    Name                            : myIPv4IPv6Lb
     data:    Type                            : Microsoft.Network/loadBalancers
     data:    Location                        : southcentralus
     data:    Provisioning state              : Succeeded
     data:
     data:    Frontend IP configurations:
     data:    Name             Provisioning state  Private IP allocation  Private IP   Subnet  Public IP
     data:    ---------------  ------------------  ---------------------  -----------  ------  ---------
     data:    FrontendVipIPv4  Succeeded           Dynamic                                     myIPv4Vip
     data:    FrontendVipIPv6  Succeeded           Dynamic                                     myIPv6Vip
     data:
     data:    Probes:
     data:    Name                 Provisioning state  Protocol  Port  Path  Interval  Count
     data:    -------------------  ------------------  --------  ----  ----  --------  -----
     data:    ProbeForIPv4AndIPv6  Succeeded           Tcp       80          15        2
     data:
     data:    Backend Address Pools:
     data:    Name             Provisioning state
     data:    ---------------  ------------------
     data:    BackendPoolIPv4  Succeeded
     data:    BackendPoolIPv6  Succeeded
     data:
     data:    Load Balancing Rules:
     data:    Name                  Provisioning state  Load distribution  Protocol  Frontend port  Backend port  Enable floating IP  Idle timeout in minutes
     data:    --------------------  ------------------  -----------------  --------  -------------  ------------  ------------------  -----------------------
     data:    LBRuleForIPv4-Port80  Succeeded           Default            Tcp       80             80            false               4
     data:    LBRuleForIPv6-Port80  Succeeded           Default            Tcp       80             8080          false               4
     data:
     data:    Inbound NAT Rules:
     data:    Name                 Provisioning state  Protocol  Frontend port  Backend port  Enable floating IP  Idle timeout in minutes
     data:    -------------------  ------------------  --------  -------------  ------------  ------------------  -----------------------
     data:    NatRule-For-Rdp-VM1  Succeeded           Tcp       3389           3389          false               4
     data:    NatRule-For-Rdp-VM2  Succeeded           Tcp       3391           3389          false               4
     info:    network lb show
    

Creare NICCreate NICs

Creare schede di interfaccia di rete e associarle a regole NAT, regole del servizio di bilanciamento del carico e probe.Create NICs and associate them to NAT rules, load balancer rules, and probes.

  1. Configurare le variabili di PowerShellSet up the PowerShell variables

    $nic1Name = "myIPv4IPv6Nic1"
    $nic2Name = "myIPv4IPv6Nic2"
    $subnet1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet1Name"
    $subnet2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet2Name"
    $backendAddressPoolV4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV4Name"
    $backendAddressPoolV6Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV6Name"
    $natRule1V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule1V4Name"
    $natRule2V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule2V4Name"
    
  2. Creare una scheda di interfaccia di rete per ogni back-end e aggiungere una configurazione di IPv6.Create a NIC for each back-end and add an IPv6 configuration.

    $nic1 = azure network nic create --name $nic1Name --resource-group $rgname --location $location --private-ip-version "IPv4" --subnet-id $subnet1Id --lb-address-pool-ids $backendAddressPoolV4Id --lb-inbound-nat-rule-ids $natRule1V4Id
    $nic1IPv6 = azure network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-version "IPv6" --lb-address-pool-ids $backendAddressPoolV6Id --nic-name $nic1Name
    
    $nic2 = azure network nic create --name $nic2Name --resource-group $rgname --location $location --subnet-id $subnet1Id --lb-address-pool-ids $backendAddressPoolV4Id --lb-inbound-nat-rule-ids $natRule2V4Id
    $nic2IPv6 = azure network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-version "IPv6" --lb-address-pool-ids $backendAddressPoolV6Id --nic-name $nic2Name
    

Creare le risorse delle macchine virtuali back-end e collegare ogni scheda di interfaccia di reteCreate the back-end VM resources and attach each NIC

Per creare le macchine virtuali è necessario un account di archiviazione.To create VMs, you must have a storage account. Per il bilanciamento del carico, le macchine virtuali devono essere membri di un set di disponibilità.For load balancing, the VMs need to be members of an availability set. Per altre informazioni sulla creazione di VM, vedere Creare una VM di Azure con PowerShellFor more information about creating VMs, see Create an Azure VM using PowerShell

  1. Configurare le variabili di PowerShellSet up the PowerShell variables

    $storageAccountName = "ps08092016v6sa0"
    $availabilitySetName = "myIPv4IPv6AvailabilitySet"
    $vm1Name = "myIPv4IPv6VM1"
    $vm2Name = "myIPv4IPv6VM2"
    $nic1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic1Name"
    $nic2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic2Name"
    $disk1Name = "WindowsVMosDisk1"
    $disk2Name = "WindowsVMosDisk2"
    $osDisk1Uri = "https://$storageAccountName.blob.core.windows.net/vhds/$disk1Name.vhd"
    $osDisk2Uri = "https://$storageAccountName.blob.core.windows.net/vhds/$disk2Name.vhd"
    $imageurn "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest"
    $vmUserName = "vmUser"
    $mySecurePassword = "PlainTextPassword*1"
    

    Avviso

    Questo esempio usa il nome utente e la password per le macchine virtuali in testo non crittografato.This example uses the username and password for the VMs in clear text. È necessario prestare attenzione quando si usano credenziali non crittografate.Appropriate care must be taken when using credentials in the clear. Per un metodo più sicuro per la gestione delle credenziali in PowerShell, vedere il cmdlet Get-Credential .For a more secure method of handling credentials in PowerShell, see the Get-Credential cmdlet.

  2. Creare l'account di archiviazione e il set di disponibilitàCreate the storage account and availability set

    È possibile usare un account di archiviazione esistente quando si creano le macchine virtuali.You may use an existing storage account when you create the VMs. Il comando seguente consente di creare un nuovo account di archiviazione.The following command creates a new storage account.

    $storageAcc = azure storage account create $storageAccountName --resource-group $rgName --location $location --sku-name "LRS" --kind "Storage"
    

    Creare quindi il set di disponibilità.Next, create the availability set.

    $availabilitySet = azure availset create --name $availabilitySetName --resource-group $rgName --location $location
    
  3. Creare le macchine virtuali con le schede di interfaccia di rete associateCreate the virtual machines with the associated NICs

    $vm1 = azure vm create --resource-group $rgname --location $location --availset-name $availabilitySetName --name $vm1Name --nic-id $nic1Id --os-disk-vhd $osDisk1Uri --os-type "Windows" --admin-username $vmUserName --admin-password $mySecurePassword --vm-size "Standard_A1" --image-urn $imageurn --storage-account-name $storageAccountName --disable-bginfo-extension
    
    $vm2 = azure vm create --resource-group $rgname --location $location --availset-name $availabilitySetName --name $vm2Name --nic-id $nic2Id --os-disk-vhd $osDisk2Uri --os-type "Windows" --admin-username $vmUserName --admin-password $mySecurePassword --vm-size "Standard_A1" --image-urn $imageurn --storage-account-name $storageAccountName --disable-bginfo-extension
    

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