Introducción a la creación de un equilibrador de carga orientado a Internet con IPv6 mediante el uso de PowerShell para Resource ManagerGet started creating an Internet facing load balancer with IPv6 using PowerShell for Resource Manager

Nota

En este artículo se describe una característica de IPv6 introductoria que permite que los equilibradores de carga básicos proporcionen conectividad IPv4 e IPv6.This article describes an introductory IPv6 feature to allow Basic Load Balancers to provide both IPv4 and IPv6 connectivity. Ahora hay disponible conectividad IPv6 completa con IPv6 para redes virtuales de Azure que integra conectividad IPv6 con las redes virtuales e incluye características clave como las reglas de grupo de seguridad de red IPv6, el enrutamiento definido por el usuario IPv6, el equilibrio de carga de IPv6 básico y estándar, y mucho más.Comprehensive IPv6 connectivity is now available with IPv6 for Azure VNETs which integrates IPv6 connectivity with your Virtual Networks and includes key features such as IPv6 Network Security Group rules, IPv6 User-defined routing, IPv6 Basic and Standard load balancing, and more. IPv6 para redes virtuales de Azure es el estándar recomendado para las aplicaciones IPv6 en Azure.IPv6 for Azure VNETs is the recommended standard for IPv6 applications in Azure. Vea IPv6 para la implementación de PowerShell de red virtual de Azure.See IPv6 for Azure VNET Powershell Deployment

Azure Load Balancer es un equilibrador de carga de nivel 4 (TCP y UDP)An Azure load balancer is a Layer-4 (TCP, UDP) load balancer. que distribuye proporcionando una alta disponibilidad el tráfico entrante entre las instancias de servicio correctas de los servicios en la nube o las máquinas virtuales de un conjunto de carga equilibrada.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 también pueden presentar prestar servicios en varios puertos, varias direcciones IP o ambos.Azure Load Balancer can also present those services on multiple ports, multiple IP addresses, or both.

Nota

Este artículo se ha actualizado para usar el módulo Az de Azure PowerShell.This article has been updated to use the Azure Az PowerShell module. El módulo Az de PowerShell es el módulo de PowerShell que se recomienda para interactuar con Azure.The Az PowerShell module is the recommended PowerShell module for interacting with Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell.To get started with the Az PowerShell module, see Install Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Escenario de implementación de ejemploExample deployment scenario

En el siguiente diagrama se ilustra la solución de equilibrio de carga que se implementa en este artículo.The following diagram illustrates the load balancing solution being deployed in this article.

Escenario del equilibrador de carga

En este escenario creará los siguientes recursos de Azure:In this scenario you will create the following Azure resources:

  • un equilibrador de carga orientado a Internet con una dirección IP pública IPv4 e IPv6an Internet-facing Load Balancer with an IPv4 and an IPv6 Public IP address
  • dos reglas de equilibrio de carga para asignar las VIP públicas a los puntos de conexión privadostwo load balancing rules to map the public VIPs to the private endpoints
  • un conjunto de disponibilidad con las dos máquinas virtualesan Availability Set to that contains the two VMs
  • dos máquinas virtuales (VM)two virtual machines (VMs)
  • una interfaz de red virtual para cada máquina virtual con las direcciones IPv4 e IPv6 asignadasa virtual network interface for each VM with both IPv4 and IPv6 addresses assigned

Implementación de la solución mediante Azure PowerShellDeploying the solution using the Azure PowerShell

Los pasos siguientes muestran cómo crear un equilibrador de carga orientado a Internet mediante Azure Resource Manager con PowerShell.The following steps show how to create an Internet facing load balancer using Azure Resource Manager with PowerShell. Con Azure Resource Manager, cada recurso se crea y configura individualmente y, a continuación, se colocan juntos para crear un recurso.With Azure Resource Manager, each resource is created and configured individually, then put together to create a resource.

Para implementar un equilibrador de carga, debe crear y configurar los siguientes objetos:To deploy a load balancer, you create and configure the following objects:

  • Configuración de direcciones IP de front-end: contiene direcciones IP públicas para el tráfico de red entrante.Frontend IP configuration - contains public IP addresses for incoming network traffic.
  • Grupo de direcciones de back-end: contiene interfaces de red (NIC) para que las máquinas virtuales reciban tráfico de red del equilibrador de carga.Backend address pool - contains network interfaces (NICs) for the virtual machines to receive network traffic from the load balancer.
  • Reglas de equilibrio de carga: contiene reglas que asignan un puerto público en el equilibrador de carga al del grupo de direcciones de back-end.Load balancing rules - contains rules mapping a public port on the load balancer to port in the back-end address pool.
  • Reglas NAT de entrada: contiene reglas que asignan un puerto público en el equilibrador de carga a un puerto para una máquina virtual específica en el grupo de direcciones de 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.
  • Sondeos: contiene los sondeos de estado que se usan para comprobar la disponibilidad de las instancias de las máquinas virtuales del grupo de direcciones de back-end.Probes - contains health probes used to check availability of virtual machines instances in the back-end address pool.

Para más información, vea Componentes de Azure Load Balancer.For more information, see Azure Load Balancer components.

Configuración de PowerShell para usar Resource ManagerSet up PowerShell to use Resource Manager

Asegúrese de que tiene la última versión de producción del módulo Azure Resource Manager para PowerShell.Make sure you have the latest production version of the Azure Resource Manager module for PowerShell.

  1. Inicio de sesión en AzureSign into Azure

    Connect-AzAccount
    

    Escriba sus credenciales cuando se le solicite.Enter your credentials when prompted.

  2. Compruebe las suscripciones para la cuenta.Check the subscriptions for the account

     Get-AzSubscription
    
  3. Elección de la suscripción de Azure que se va a usar.Choose which of your Azure subscriptions to use.

    Select-AzSubscription -SubscriptionId 'GUID of subscription'
    
  4. Creación de un grupo de recursos (omitir este paso si se utiliza un grupo de recursos existente)Create a resource group (skip this step if using an existing resource group)

    New-AzResourceGroup -Name NRP-RG -location "West US"
    

Creación de una red virtual y una dirección IP pública para el grupo de direcciones IP front-endCreate a virtual network and a public IP address for the front-end IP pool

  1. Cree una red virtual con una subredCreate a virtual network with a subnet.

    $backendSubnet = New-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24
    $vnet = New-AzvirtualNetwork -Name VNet -ResourceGroupName NRP-RG -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet
    
  2. Cree recursos de dirección IP pública (PIP) de Azure para el grupo de direcciones IP de front-endCreate Azure Public IP address (PIP) resources for the front-end IP address pool. No olvide cambiar el valor de -DomainNameLabel antes de ejecutar los comandos siguientes.Be sure to change the value for -DomainNameLabel before running the following commands. El valor debe ser único dentro de la región de Azure.The value must be unique within the Azure region.

    $publicIPv4 = New-AzPublicIpAddress -Name 'pub-ipv4' -ResourceGroupName NRP-RG -Location 'West US' -AllocationMethod Static -IpAddressVersion IPv4 -DomainNameLabel lbnrpipv4
    $publicIPv6 = New-AzPublicIpAddress -Name 'pub-ipv6' -ResourceGroupName NRP-RG -Location 'West US' -AllocationMethod Dynamic -IpAddressVersion IPv6 -DomainNameLabel lbnrpipv6
    

    Importante

    El equilibrador de carga usa la etiqueta de dominio de la dirección IP pública como prefijo para su FQDN.The load balancer uses the domain label of the public IP as prefix for its FQDN. En este ejemplo, los FQDN son lbnrpipv4.westus.cloudapp.azure.com y lbnrpipv6.westus.cloudapp.azure.com.In this example, the FQDNs are lbnrpipv4.westus.cloudapp.azure.com and lbnrpipv6.westus.cloudapp.azure.com.

Creación de configuraciones de direcciones IP de front-end y un grupo de direcciones de back-endCreate a Front-End IP configurations and a Back-End Address Pool

  1. Cree la configuración de direcciones de front-end que usa las direcciones IP públicas que ha creadoCreate front-end address configuration that uses the Public IP addresses you created.

    $FEIPConfigv4 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv4" -PublicIpAddress $publicIPv4
    $FEIPConfigv6 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv6" -PublicIpAddress $publicIPv6
    
  2. Cree grupos de direcciones de back-endCreate back-end address pools.

    $backendpoolipv4 = New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendPoolIPv4"
    $backendpoolipv6 = New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendPoolIPv6"
    

Crear reglas de equilibrador de carga, reglas NAT, un sondeo y un equilibrador de cargaCreate LB rules, NAT rules, a probe, and a load balancer

En este ejemplo se crean los siguientes elementos:This example creates the following items:

  • una regla NAT para trasladar todo el tráfico entrante del puerto 443 al puerto 4443a NAT rule to translate all incoming traffic on port 443 to port 4443
  • Una regla de equilibrador de carga para equilibrar todo el tráfico entrante del puerto 80 al puerto 80 en las direcciones del grupo de 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.
  • Una regla de equilibrador de carga para permitir la conexión RDP a las máquinas virtuales en el puerto 3389.a load balancer rule to allow RDP connection to the VMs on port 3389.
  • una regla de sondeo para comprobar el estado de mantenimiento en una página llamada HealthProbe.aspx o un servicio en el puerto 8080a probe rule to check the health status on a page named HealthProbe.aspx or a service on port 8080
  • un equilibrador de carga que usa todos estos objetosa load balancer that uses all these objects
  1. Cree las reglas NAT.Create the NAT rules.

    $inboundNATRule1v4 = New-AzLoadBalancerInboundNatRuleConfig -Name "NicNatRulev4" -FrontendIpConfiguration $FEIPConfigv4 -Protocol TCP -FrontendPort 443 -BackendPort 4443
    $inboundNATRule1v6 = New-AzLoadBalancerInboundNatRuleConfig -Name "NicNatRulev6" -FrontendIpConfiguration $FEIPConfigv6 -Protocol TCP -FrontendPort 443 -BackendPort 4443
    
  2. Cree un sondeo de estado.Create a health probe. Hay dos formas de configurar un sondeo:There are two ways to configure a probe:

    Sondeo HTTPHTTP probe

    $healthProbe = New-AzLoadBalancerProbeConfig -Name 'HealthProbe-v4v6' -RequestPath 'HealthProbe.aspx' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    

    o sondeo TCPor TCP probe

    $healthProbe = New-AzLoadBalancerProbeConfig -Name 'HealthProbe-v4v6' -Protocol Tcp -Port 8080 -IntervalInSeconds 15 -ProbeCount 2
    $RDPprobe = New-AzLoadBalancerProbeConfig -Name 'RDPprobe' -Protocol Tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
    

    En este ejemplo, vamos a usar los sondeos TCP.For this example, we are going to use the TCP probes.

  3. Cree una regla de equilibrador de carga.Create a load balancer rule.

    $lbrule1v4 = New-AzLoadBalancerRuleConfig -Name "HTTPv4" -FrontendIpConfiguration $FEIPConfigv4 -BackendAddressPool $backendpoolipv4 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 8080
    $lbrule1v6 = New-AzLoadBalancerRuleConfig -Name "HTTPv6" -FrontendIpConfiguration $FEIPConfigv6 -BackendAddressPool $backendpoolipv6 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 8080
    $RDPrule = New-AzLoadBalancerRuleConfig -Name "RDPrule" -FrontendIpConfiguration $FEIPConfigv4 -BackendAddressPool $backendpoolipv4 -Probe $RDPprobe -Protocol Tcp -FrontendPort 3389 -BackendPort 3389
    
  4. Cree el equilibrador de carga mediante los objetos creados anteriormenteCreate the load balancer using the previously created objects.

    $NRPLB = New-AzLoadBalancer -ResourceGroupName NRP-RG -Name 'myNrpIPv6LB' -Location 'West US' -FrontendIpConfiguration $FEIPConfigv4,$FEIPConfigv6 -InboundNatRule $inboundNATRule1v6,$inboundNATRule1v4 -BackendAddressPool $backendpoolipv4,$backendpoolipv6 -Probe $healthProbe,$RDPprobe -LoadBalancingRule $lbrule1v4,$lbrule1v6,$RDPrule
    

Creación de tarjetas NIC para las máquinas virtuales de back-endCreate NICs for the back-end VMs

  1. Obtenga la red virtual y la subred de red virtual, donde deben crearse las NIC.Get the Virtual Network and Virtual Network Subnet, where the NICs need to be created.

    $vnet = Get-AzVirtualNetwork -Name VNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. Cree configuraciones de direcciones IP y tarjetas NIC para las máquinas virtualesCreate IP configurations and NICs for the VMs.

    $nic1IPv4 = New-AzNetworkInterfaceIpConfig -Name "IPv4IPConfig" -PrivateIpAddressVersion "IPv4" -Subnet $backendSubnet -LoadBalancerBackendAddressPool $backendpoolipv4 -LoadBalancerInboundNatRule $inboundNATRule1v4
    $nic1IPv6 = New-AzNetworkInterfaceIpConfig -Name "IPv6IPConfig" -PrivateIpAddressVersion "IPv6" -LoadBalancerBackendAddressPool $backendpoolipv6 -LoadBalancerInboundNatRule $inboundNATRule1v6
    $nic1 = New-AzNetworkInterface -Name 'myNrpIPv6Nic0' -IpConfiguration $nic1IPv4,$nic1IPv6 -ResourceGroupName NRP-RG -Location 'West US'
    
    $nic2IPv4 = New-AzNetworkInterfaceIpConfig -Name "IPv4IPConfig" -PrivateIpAddressVersion "IPv4" -Subnet $backendSubnet -LoadBalancerBackendAddressPool $backendpoolipv4
    $nic2IPv6 = New-AzNetworkInterfaceIpConfig -Name "IPv6IPConfig" -PrivateIpAddressVersion "IPv6" -LoadBalancerBackendAddressPool $backendpoolipv6
    $nic2 = New-AzNetworkInterface -Name 'myNrpIPv6Nic1' -IpConfiguration $nic2IPv4,$nic2IPv6 -ResourceGroupName NRP-RG -Location 'West US'
    

Creación de máquinas virtuales y asignación de las tarjetas NIC recién creadasCreate virtual machines and assign the newly created NICs

Para obtener más información sobre la creación de una máquina virtual, consulte Creación de una máquina virtual de Windows con Resource Manager y Azure PowerShellFor more information about creating a VM, see Create and preconfigure a Windows Virtual Machine with Resource Manager and Azure PowerShell

  1. Cree un conjunto de disponibilidad y una cuenta de almacenamientoCreate an Availability Set and Storage account

    New-AzAvailabilitySet -Name 'myNrpIPv6AvSet' -ResourceGroupName NRP-RG -location 'West US'
    $availabilitySet = Get-AzAvailabilitySet -Name 'myNrpIPv6AvSet' -ResourceGroupName NRP-RG
    New-AzStorageAccount -ResourceGroupName NRP-RG -Name 'mynrpipv6stacct' -Location 'West US' -SkuName "Standard_LRS"
    $CreatedStorageAccount = Get-AzStorageAccount -ResourceGroupName NRP-RG -Name 'mynrpipv6stacct'
    
  2. Cree cada máquina virtual y asigne las tarjetas NIC creadas con anterioridadCreate each VM and assign the previous created NICs

    $mySecureCredentials= Get-Credential -Message "Type the username and password of the local administrator account."
    
    $vm1 = New-AzVMConfig -VMName 'myNrpIPv6VM0' -VMSize 'Standard_G1' -AvailabilitySetId $availabilitySet.Id
    $vm1 = Set-AzVMOperatingSystem -VM $vm1 -Windows -ComputerName 'myNrpIPv6VM0' -Credential $mySecureCredentials -ProvisionVMAgent -EnableAutoUpdate
    $vm1 = Set-AzVMSourceImage -VM $vm1 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest"
    $vm1 = Add-AzVMNetworkInterface -VM $vm1 -Id $nic1.Id -Primary
    $osDisk1Uri = $CreatedStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/myNrpIPv6VM0osdisk.vhd"
    $vm1 = Set-AzVMOSDisk -VM $vm1 -Name 'myNrpIPv6VM0osdisk' -VhdUri $osDisk1Uri -CreateOption FromImage
    New-AzVM -ResourceGroupName NRP-RG -Location 'West US' -VM $vm1
    
    $vm2 = New-AzVMConfig -VMName 'myNrpIPv6VM1' -VMSize 'Standard_G1' -AvailabilitySetId $availabilitySet.Id
    $vm2 = Set-AzVMOperatingSystem -VM $vm2 -Windows -ComputerName 'myNrpIPv6VM1' -Credential $mySecureCredentials -ProvisionVMAgent -EnableAutoUpdate
    $vm2 = Set-AzVMSourceImage -VM $vm2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest"
    $vm2 = Add-AzVMNetworkInterface -VM $vm2 -Id $nic2.Id -Primary
    $osDisk2Uri = $CreatedStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/myNrpIPv6VM1osdisk.vhd"
    $vm2 = Set-AzVMOSDisk -VM $vm2 -Name 'myNrpIPv6VM1osdisk' -VhdUri $osDisk2Uri -CreateOption FromImage
    New-AzVM -ResourceGroupName NRP-RG -Location 'West US' -VM $vm2