Compartir a través de


Tutorial: Creación de un equilibrador de carga de puerta de enlace mediante Azure PowerShell

Azure Load Balancer consta de SKU estándar, básicas y de puerta de enlace. La instancia de Load Balancer de puerta de enlace se usa para la inserción transparente de aplicaciones virtuales de red (NVA). Use la instancia de Load Balancer de puerta de enlace en escenarios que requieran alto rendimiento y alta escalabilidad de NVA.

En este tutorial aprenderá a:

  • Cree una red virtual.
  • Cree un grupo de seguridad de red.
  • Cree un equilibrador de carga de puerta de enlace.
  • Encadene un front-end de equilibrador de carga a un equilibrador de carga de puerta de enlace.

Prerrequisitos

Si decide instalar y usar PowerShell de forma local, para realizar los pasos de este artículo necesita la versión 5.4.1 del módulo de Azure PowerShell o cualquier versión posterior. Ejecute Get-Module -ListAvailable Az para buscar la versión instalada. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.

Crear un grupo de recursos

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

Cree un grupo de recursos con New-AzResourceGroup:

New-AzResourceGroup -Name 'TutorGwLB-rg' -Location 'eastus'

Creación de una red virtual

Se necesita una red virtual para los recursos que se encuentran en el grupo de back-end del equilibrador de carga de puerta de enlace. Cree la red virtual mediante el comando New-AzVirtualNetwork. Use New-AzBastion para implementar un host bastión para la administración segura de recursos en la red virtual.

Importante

Los precios por hora comienzan desde el momento en que se implementa Bastion, independientemente del uso de datos salientes. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.

## Create backend subnet config ##
$subnet = @{
    Name = 'myBackendSubnet'
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'myBastionIP'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myBastion'
    PublicIpAddress = $publicip
    VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob

Creación de NSG

Use el ejemplo siguiente para crear un grupo de seguridad de red. Configurará las reglas de NSG necesarias para el tráfico de red en la red virtual creada anteriormente.

Use New-AzNetworkSecurityRuleConfig para crear reglas para NSG. Use New-AzNetworkSecurityGroup para crear el grupo de seguridad de red.

## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
    Name = 'myNSGRule-AllowAll'
    Description = 'Allow all'
    Protocol = '*'
    SourcePortRange = '*'
    DestinationPortRange = '*'
    SourceAddressPrefix = '0.0.0.0/0'
    DestinationAddressPrefix = '0.0.0.0/0'
    Access = 'Allow'
    Priority = '100'
    Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1

$nsgrule2 = @{
    Name = 'myNSGRule-AllowAll-TCP-Out'
    Description = 'Allow all TCP Out'
    Protocol = 'TCP'
    SourcePortRange = '*'
    DestinationPortRange = '*'
    SourceAddressPrefix = '0.0.0.0/0'
    DestinationAddressPrefix = '0.0.0.0/0'
    Access = 'Allow'
    Priority = '100'
    Direction = 'Outbound'
}
$rule2 = New-AzNetworkSecurityRuleConfig @nsgrule2

## Create network security group ##
$nsg = @{
    Name = 'myNSG'
    ResourceGroupName = 'TutorGwLB-rg'
    Location = 'eastus'
    SecurityRules = $rule1,$rule2
}
New-AzNetworkSecurityGroup @nsg

Creación de un equilibrador de carga de puerta de enlace

En esta sección, creará la configuración e implementará el equilibrador de carga de puerta de enlace. Cree la configuración de la IP de front-end para el equilibrador de carga mediante New-AzLoadBalancerFrontendIpConfig.

Usará New-AzLoadBalancerTunnelInterface para crear dos interfaces de túnel para el equilibrador de carga.

Cree un grupo de back-end con New-AzLoadBalancerBackendAddressPoolConfig para las NVA.

Es necesario realizar un sondeo de estado para supervisar el estado de las instancias de back-end en el equilibrador de carga. Use New-AzLoadBalancerProbeConfig para crear los sondeos de estado que necesite.

El tráfico destinado a las instancias de back-end se enruta con una regla de equilibrio de carga. Use New-AzLoadBalancerRuleConfig para crear la regla del equilibrador de carga.

Use New-AzLoadBalancer para crear la implementación del equilibrador de carga.

## Place virtual network configuration in a variable for later use. ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = 'TutorGwLB-rg'
}
$vnet = Get-AzVirtualNetwork @net

## Create load balancer frontend configuration and place in variable. ## 
$fe = @{
    Name = 'myFrontend'
    SubnetId = $vnet.subnets[0].id
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe

## Create backend address pool configuration and place in variable. ## 
$int1 = @{
    Type = 'Internal'
    Protocol = 'Vxlan'
    Identifier = '800'
    Port = '10800'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1

$int2 = @{
    Type = 'External'
    Protocol = 'Vxlan'
    Identifier = '801'
    Port = '10801'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2

$pool = @{
    Name = 'myBackendPool'
    TunnelInterface = $tunnelInterface1,$tunnelInterface2
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @pool

## Create the health probe and place in variable. ## 
$probe = @{
    Name = 'myHealthProbe'
    Protocol = 'http'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
    RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe

## Create the load balancer rule and place in variable. ## 
$para = @{
    Name = 'myLBRule'
    Protocol = 'All'
    FrontendPort = '0'
    BackendPort = '0'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
    Probe = $healthprobe
}
$rule = New-AzLoadBalancerRuleConfig @para

## Create the load balancer resource. ## 
$lb = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
    Location = 'eastus'
    Sku = 'Gateway'
    LoadBalancingRule = $rule
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
    Probe = $healthprobe
}
New-AzLoadBalancer @lb

Adición de aplicaciones virtuales de red al grupo de back-end del equilibrar la carga de la puerta de enlace

Implemente las NVA a través de Azure Marketplace. Una vez implementadas, agregue las máquinas virtuales al grupo de back-end con Add-AzVMNetworkInterface.

Encadene un front-end del equilibrador de carga a un equilibrador de carga de puerta de enlace.

En este ejemplo, encadenará el front-end de un equilibrador de carga estándar al equilibrador de carga de puerta de enlace.

Asimismo, agregará el front-end a la dirección IP de front-end de un equilibrador de carga existente en la suscripción.

Use Set-AzLoadBalancerFrontendIpConfig para encadenar el front-end del equilibrador de carga de puerta de enlace al equilibrador de carga existente.

## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1

## Place the existing load balancer into a variable. ##
$par2 = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par2

## Place the existing public IP for the existing load balancer into a variable.
$par3 = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myPublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3

## Chain the gateway load balancer to your existing load balancer frontend. ##
$par4 = @{
    Name = 'myFrontEndIP'
    PublicIPAddress = $publicIP
    LoadBalancer = $lb
    GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4

$config | Set-AzLoadBalancer

Encadenamiento de una máquina virtual un equilibrador de carga de puerta de enlace

Como alternativa, puede encadenar la configuración de IP de NIC de una máquina virtual al equilibrador de carga de puerta de enlace.

Agregará el front-end del equilibrador de carga de puerta de enlace a la configuración de IP de NIC de una máquina virtual existente.

Use Set-AzNetworkInterfaceIpConfig para encadenar el front-end del equilibrador de carga de puerta de enlace a la configuración de IP de NIC de la máquina virtual existente.

 ## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
    ResourceGroupName = 'TutorGwLB-rg'
    Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1

## Place the existing NIC into a variable. ##
$par2 = @{
    ResourceGroupName = 'MyResourceGroup'
    Name = 'myNic'
}
$nic = Get-AzNetworkInterface @par2

## Chain the gateway load balancer to your existing VM NIC. ##
$par3 = @{
    Name = 'myIPconfig'
    NetworkInterface = $nic
    GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzNetworkInterfaceIpConfig @par3

$config | Set-AzNetworkInterface

Limpieza de recursos

Cuando ya no los necesite, puede usar el comando Remove-AzResourceGroup para quitar el grupo de recursos, el equilibrador de carga y el resto de los recursos.

Remove-AzResourceGroup -Name 'TutorGwLB-rg'

Pasos siguientes

Cree aplicaciones virtuales de red en Azure.

Al crear las aplicaciones virtuales de red, elija los recursos creados en este tutorial:

  • Virtual network

  • Subnet

  • Grupo de seguridad de red

  • Equilibrador de carga de puerta de enlace

Pase al siguiente artículo para aprender a crear una instancia de Azure Load Balancer entre regiones.