Compartilhar via


Tutorial: Criar um balanceador de carga para gateway com o Azure PowerShell

O Azure Load Balancer é formado por SKUs Standard, Básico e Gateway. O Balanceador de Carga para Gateway é usado para inserir NVAs (soluções de virtualização de rede) de maneira transparente. Use o Balanceador de Carga para Gateway em cenários que exigem alto desempenho e alta escalabilidade de NVAs.

Neste tutorial, você aprenderá como:

  • Crie a rede virtual.
  • Criar um grupo de segurança de rede.
  • Criar um balanceador de carga para gateway.
  • Encadear um front-end de balanceador de carga ao balanceador de carga para gateway.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa.Crie uma conta grátis.
  • Um SKU padrão público existente do Azure Load Balancer. Para saber mais sobre como criar um balanceador de carga, confira Criar um balanceador de carga público com o Azure PowerShell .
    • Para os fins deste tutorial, o balanceador de carga existente nos exemplos é denominado myLoadBalancer.
  • Azure PowerShell instalado localmente ou Azure Cloud Shell

Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 5.4.1 ou posterior. Execute Get-Module -ListAvailable Az para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount para criar uma conexão com o Azure.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.

Crie um grupo de recursos com New-AzResourceGroup:

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

Criar rede virtual

Uma rede virtual é necessária para os recursos que estão no pool de back-back do balanceador de carga para gateway. Use o comando New-AzVirtualNetwork para criar a rede virtual. Use o comando New-AzBastion para implantar um bastion host e fazer o gerenciamento seguro de recursos na rede virtual.

Importante

Os preços por hora começam a partir do momento em que o Bastion é implantado, independentemente do uso de dados de saída. Para saber mais, confira Preços e SKUs. Se estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos que você exclua esse recurso após terminar de usá-lo.

## 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

Criar NSG

Siga o exemplo a seguir para criar um grupo de segurança de rede. Você vai configurar as regras de NSG necessárias para o tráfego de rede na rede virtual criada antes.

Use o comando New-AzNetworkSecurityRuleConfig para criar regras para o NSG. Use New-AzNetworkSecurityGroup para criar o NSG.

## 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

Criar um balanceador de carga para gateway

Nesta seção, você vai criar a configuração e implantar o balanceador de carga para gateway. Use o comando New-AzLoadBalancerFrontendIpConfig cria uma configuração de IP de front-end do balanceador de carga.

Use o comando New-AzLoadBalancerTunnelInterface para criar duas interfaces de túnel para o balanceador de carga.

Crie um pool de back-end para os NVAs com New-AzLoadBalancerBackendAddressPoolConfig.

É necessária uma investigação de integridade para monitorar as instâncias do back-end no balanceador de carga. Use o comando New-AzLoadBalancerProbeConfig para criar a investigação de integridade.

O tráfego destinado às instâncias de back-end é roteado com uma regra de balanceamento de carga. Use o comando New-AzLoadBalancerRuleConfig para criar a regra de balanceamento de carga.

Para criar a implantação do balanceador de carga, use o comando New-AzLoadBalancer.

## 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

Adicionar soluções de virtualização de rede ao pool de back-end do Balanceador de Carga para Gateway

Implante NVAs por meio do Azure Marketplace. Depois da implantação, adicione as máquinas virtuais ao pool de back-end com Add-AzVMNetworkInterface

Encadear um front-end de balanceador de carga ao Balanceador de Carga para Gateway

Neste exemplo, você encadeará o front-end de um balanceador de carga padrão ao balanceador de carga para gateway.

Adicione o front-end ao IP de front-end de um balanceador de carga existente em sua assinatura.

Use Set-AzLoadBalancerFrontendIpConfig para encadear o front-end do balanceador de carga para gateway ao balanceador 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

Encadear máquina virtual ao gateway do Load Balancer

Como alternativa, você pode encadear a configuração de IP da NIC de uma VM ao balanceador de carga do gateway.

Você adicionará o front-end do balanceador de carga do gateway à configuração de IP da NIC de uma VM existente.

Use set-AzNetworkInterfaceIpConfig para encadear o front-end do balanceador de carga do gateway à configuração de IP NIC da VM 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

Limpar os recursos

Quando não forem mais necessários, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos, o balanceador de carga e os recursos restantes.

Remove-AzResourceGroup -Name 'TutorGwLB-rg'

Próximas etapas

Crie soluções de virtualização de rede no Azure.

Ao criar as NVAs, escolha os recursos criados neste tutorial:

  • Rede virtual

  • Sub-rede

  • Grupo de segurança de rede

  • Balanceador de Carga para Gateway

Siga para o próximo artigo para aprender a criar um Azure Load Balancer entre regiões.