Creare un servizio di bilanciamento del carico pubblico con IPv6 in Gestione risorse di Azure mediante Azure CLICreate a public load balancer with IPv6 in Azure Resource Manager by using 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.Although Basic Load Balancer is generally available, Standard Load Balancer is currently in public preview. Per altre informazioni su Load Balancer Standard, vedere la 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. Servizi di bilanciamento del carico garantire una disponibilità elevata mediante la distribuzione del traffico in entrata tra le istanze del servizio di integrità in servizi cloud o macchine virtuali in un set di bilanciamento del carico.Load balancers provide high availability by distributing incoming traffic among healthy service instances in cloud services or virtual machines in a load balancer set. Servizi di bilanciamento del carico possono inoltre presentare questi servizi su più porte e/o più indirizzi IP.Load balancers can also present these services on multiple ports or multiple IP addresses or both.

Scenario di distribuzione di esempioExample deployment scenario

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

Scenario del bilanciamento del carico

In questo scenario, creare le risorse di Azure seguenti:In this scenario, you create the following Azure resources:

  • Due macchine virtuali (VM)Two virtual machines (VMs)
  • Un'interfaccia di rete virtuale per ogni macchina virtuale con indirizzi IPv4 e IPv6 assegnatiA virtual network interface for each VM with both IPv4 and IPv6 addresses assigned
  • Un servizio di bilanciamento del carico pubblico con IPv4 e un indirizzo IP pubblico IPv6A public load balancer with an IPv4 and an IPv6 public IP address
  • Un set di disponibilità che contiene due macchine virtualiAn availability set that contains the two VMs
  • Due regole di bilanciamento del carico per eseguire il mapping VIP pubblici per l'endpoint privato di caricoTwo load balancing rules to map the public VIPs to the private endpoints

Distribuire la soluzione usando l'interfaccia CLI di AzureDeploy the solution by using Azure CLI

La procedura seguente viene illustrato come creare un servizio di bilanciamento del carico pubblico usando Gestione risorse di Azure con CLI di Azure.The following steps show how to create a public load balancer by using Azure Resource Manager with Azure CLI. Con Gestione risorse di Azure, creare e configurare singolarmente, ogni oggetto e quindi inserire combinarli per creare una risorsa.With Azure Resource Manager, you create and configure each object individually, and then put them together to create a resource.

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

  • Configurazione 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 le interfacce di rete (NIC) per le macchine virtuali ricevere il traffico di rete dal 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: contiene le regole che eseguono il mapping di una porta pubblica su servizio di bilanciamento del carico a una porta nel pool di indirizzi back-end.Load balancing rules: Contains rules that map a public port on the load balancer to a port in the back-end address pool.
  • Regole NAT in ingresso: contiene regole network address translation (NAT) che eseguono il mapping di una porta pubblica su servizio di bilanciamento del carico a una porta per una macchina virtuale specifica nel pool di indirizzi back-end.Inbound NAT rules: Contains network address translation (NAT) rules that map a public port on the load balancer to a port for a specific virtual machine in the back-end address pool.
  • Probe: contiene i probe di integrità che consentono di controllare la disponibilità delle istanze di macchine virtuali nel pool di indirizzi back-end.Probes: Contains health probes that are used to check the availability of virtual machine 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 CLI di Azure per usare Gestione risorse di AzureSet up your Azure CLI environment to use Azure Resource Manager

In questo esempio, eseguire gli strumenti di interfaccia CLI di Azure in una finestra di comando di PowerShell.In this example, you run the Azure CLI tools in a PowerShell command window. Per migliorare la leggibilità e il riutilizzo, utilizzare le funzionalità di script di PowerShell, non i cmdlet di Azure PowerShell.To improve readability and reuse, you use PowerShell's scripting capabilities, not the Azure PowerShell cmdlets.

  1. Se non si è mai usato CLI di Azure, vedere installare e configurare Azure CLI e seguire le istruzioni fino al punto in cui si seleziona l'account di Azure e la sottoscrizione.If you have never used Azure CLI, see Install and configure Azure CLI and follow the instructions up to the point where you select your Azure account and subscription.

  2. Per passare alla modalità di gestione delle risorse, eseguire il modalità di configurazione azure comando:To switch to Resource Manager mode, run the azure config mode command:

    azure config mode arm
    

    Output previsto:Expected output:

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

    azure login
    
  4. Al prompt di immettere le credenziali di Azure:At the prompt, enter your Azure credentials:

    azure account list
    
  5. Selezionare la sottoscrizione che si desidera utilizzare e prendere nota dell'ID sottoscrizione da utilizzare nel passaggio successivo.Select the subscription that you want to use, and note the subscription ID to use in the next step.

  6. Impostare le variabili di PowerShell per l'utilizzo con i comandi CLI di Azure:Set up PowerShell variables for use with the Azure 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 risorse:Create a resource group:

    azure group create $rgName $location
    
  2. Creare un servizio di bilanciamento del carico:Create 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 = azure network vnet create  --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
    
  4. In questa rete virtuale, creare due subnet:In this virtual network, create two subnets:

    $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. Impostare le variabili di PowerShell:Set 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 for 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 bilanciamento del carico utilizza l'etichetta del dominio dell'indirizzo IP pubblico come il nome di dominio completo (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.

    In questo esempio, il nome di dominio completo è contoso09152016.southcentralus.cloudapp.azure.com.

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

In questa sezione è creare i pool IP seguenti:In this section, you create the following IP pools:

  • Il pool IP front-end che riceve il traffico di rete in ingresso sul bilanciamento del carico.The front-end IP pool that receives the incoming network traffic on the load balancer.
  • Il pool di IP back-end in cui il pool di server front-end invia il traffico di rete con bilanciamento del carico.The back-end IP pool where the front-end pool sends the load-balanced network traffic.
  1. Impostare le variabili di PowerShell:Set up the PowerShell variables:

    $frontendV4Name = "FrontendVipIPv4"
    $frontendV6Name = "FrontendVipIPv6"
    $backendAddressPoolV4Name = "BackendPoolIPv4"
    $backendAddressPoolV6Name = "BackendPoolIPv6"
    
  2. Creare un pool IP front-end e associarlo con l'indirizzo IP pubblico che è stato creato nel passaggio precedente e il bilanciamento del carico.Create a front-end IP pool, and associate it with the public IP that you 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 regole di bilanciamento del caricoCreate the probe, NAT rules, and load balancer rules

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

  • Una regola di probe per verificare la connettività alla porta TCP 80.A probe rule to check for connectivity to TCP port 80.
  • Una regola NAT per convertire tutto il traffico in ingresso sulla porta 3389 alla porta 3389 per RDP.*A NAT rule to translate all incoming traffic on port 3389 to port 3389 for RDP.*
  • Una regola NAT per convertire tutto il traffico in ingresso sulla porta 3391 alla porta 3389 per remote desktop protocol (RDP).*A NAT rule to translate all incoming traffic on port 3391 to port 3389 for remote desktop protocol (RDP).*
  • Una regola di bilanciamento del carico per bilanciare il traffico in ingresso sulla porta 80 per la porta 80 sugli indirizzi nel pool di 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.

*Le regole NAT sono associate a una specifica istanza di macchina virtuale di bilanciamento del carico.* NAT rules are associated with a specific virtual-machine instance behind the load balancer. Il traffico di rete che arriva nella porta 3389 viene inviato per la macchina virtuale specifica e la porta associata la regola NAT.The network traffic that arrives on port 3389 is sent to the specific virtual machine and port that's 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. È possibile assegnare a entrambi i protocolli sulla stessa porta.You cannot assign both protocols to the same port.

  1. Impostare le variabili di PowerShell:Set 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 probe.Create the probe.

    L'esempio seguente crea un probe TCP che controlla la connettività alla porta TCP di back-end 80 ogni 15 secondi.The following example creates a TCP probe that checks for connectivity to the back-end TCP port 80 every 15 seconds. Dopo due errori consecutivi, contrassegna la risorsa back-end come non disponibile.After two consecutive failures, it marks the back-end resource as unavailable.

    $probeV4V6 = azure network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --count 2 --lb-name $lbName
    
  3. Creare le regole NAT in ingresso che consentono connessioni RDP alle risorse back-end:Create 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 di bilanciamento del carico che invia il traffico alle porte di back-end diversi, a seconda di front-end che ha ricevuto la richiesta.Create load balancer rules that send traffic to different back-end ports, depending on the front end that 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 impostazioni:Check 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 rete e associarli a regole, regole di bilanciamento carico e probe NAT.Create NICs and associate them with NAT rules, load balancer rules, and probes.

  1. Impostare le variabili di PowerShell:Set 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 rete per ogni back-end e aggiungere una configurazione 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 della macchina virtuale back-end e associare ogni scheda 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 ulteriori informazioni sulla creazione di macchine virtuali, vedere creare una macchina virtuale di Azure usando PowerShell.For more information about creating VMs, see Create an Azure VM by using PowerShell.

  1. Impostare le variabili di PowerShell:Set 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

    In questo esempio viene utilizzato il nome utente e la password per le macchine virtuali in testo non crittografato. Prestare attenzione appropriato quando si utilizzano queste credenziali in testo non crittografato. Per un metodo più sicuro per la gestione delle credenziali in PowerShell, vedere il Get-Credential cmdlet.

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

    Quando si creano le macchine virtuali, è possibile utilizzare un account di archiviazione esistente.You can use an existing storage account when you create the VMs. Creare un nuovo account di archiviazione usando il comando seguente:You create a new storage account by using the following command:

    $storageAcc = azure storage account create $storageAccountName --resource-group $rgName --location $location --sku-name "LRS" --kind "Storage"
    
  3. Creare il set di disponibilità:Create the availability set:

    $availabilitySet = azure availset create --name $availabilitySetName --resource-group $rgName --location $location
    
  4. Creare le macchine virtuali con le schede di rete associati:Create 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