Implantar um Balanceador de carga do gateway do Azure de pilha dupla

Neste tutorial, você implanta configurações IPv6 em um Balanceador de carga do gateway do Azure configurado para IPv4 existente.

Você aprenderá a:

  • Adicione intervalos de endereços IPv6 a uma sub-rede existente.
  • Adicione um frontend IPv6 ao Balanceador de carga do gateway.
  • Adicione um pool de back-end IPv6 ao Balanceador de carga do gateway.
  • Adicione configuração IPv6 às interfaces de rede.
  • Adicione uma regra de balanceamento de carga para o tráfego IPv6.
  • Encadeie o frontend do balanceador de carga IPv6 ao Balanceador de carga do gateway.

Junto com o Balanceador de carga do gateway, esse cenário inclui os seguintes recursos já implantados:

  • Uma rede virtual de pilha dupla e sub-rede.
  • Um Load Balancer padrão com configurações front-end duplas (IPv4 + IPv6).
  • Um Balanceador de carga do gateway somente com IPv4.
  • Uma interface de rede com uma configuração IP de pilha dupla, um grupo de segurança de rede anexado e endereços IPv4 e IPv6 públicos.

Pré-requisitos

Adicionar intervalos de endereços IPv6 a uma sub-rede existente

Este artigo pressupõe que você já tenha um Balanceador de carga do gateway configurado para tráfego IPv4, com uma VNET e uma sub-rede correspondentes. Nesta etapa, você adiciona intervalos IPv6 à VNET e à sub-rede do Balanceador de carga do gateway. Esse intervalo é necessário ao criar uma configuração de front-end IPv6 para o Balanceador de carga do gateway usando um endereço IP privado dessa sub-rede/VNET.


#Add IPv6 ranges to the VNET and subnet
#Retrieve the VNET object
$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroup"
$vnet = Get-AzVirtualNetwork  -ResourceGroupName $rg.ResourceGroupName -Name "myVNet"  

#Add IPv6 prefix to the VNET
$vnet.addressspace.addressprefixes.add("fd00:db8:deca::/48")

#Update the running VNET
$vnet |  Set-AzVirtualNetwork

#Retrieve the subnet object from the local copy of the VNET
$subnet= $vnet.subnets[0]

#Add IPv6 prefix to the subnet
$subnet.addressprefix.add("fd00:db8:deca::/64")

#Update the running VNET with the new subnet configuration
$vnet |  Set-AzVirtualNetwork

Adicionar um frontend IPv6 ao Balanceador de carga do gateway

Agora que você adicionou intervalos de prefixos IPv6 à sub-rede e à VNET do Balanceador de carga do gateway, podemos criar uma nova configuração de front-end IPv6 no Balanceador de carga do gateway, com um endereço IPv6 do intervalo da sua sub-rede.


# Retrieve the load balancer configuration
$gwlb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup"-Name "myGatewayLoadBalancer"

# Add IPv6 frontend configuration to the local copy of the load balancer configuration
$gwlb | Add-AzLoadBalancerFrontendIpConfig `
     -Name "myGatewayFrontEndv6" `
     -PrivateIpAddressVersion "IPv6" `
     -Subnet $subnet

#Update the running load balancer with the new frontend
$gwlb | Set-AzLoadBalancer 

Adicionar um pool de back-end IPv6 ao Balanceador de carga do gateway

Para distribuir o tráfego IPv6, você precisa de um pool de back-end contendo instâncias com endereços IPv6. Primeiro, você cria um pool de back-end no Balanceador de carga do gateway. Na etapa a seguir, você cria configurações IPv6 para suas NICs de back-end existentes para tráfego IPv4 e as anexa a esse pool de back-end.


## Create IPv6 tunnel interfaces
$int1 = @{
    Type = 'Internal'
    Protocol = 'Vxlan'
    Identifier = '866'
    Port = '2666'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1

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

# Create the IPv6 backend pool
$pool = @{
    Name = 'myGatewayBackendPoolv6'
    TunnelInterface = $tunnelInterface1,$tunnelInterface2
}

# Add the backend pool to the load balancer
$gwlb | Add-AzLoadBalancerBackendAddressPoolConfig @pool

# Update the load balancer
$gwlb | Set-AzLoadBalancer

Adicionar configuração IPv6 a interfaces de rede


#Retrieve the NIC object
$NIC_1 = Get-AzNetworkInterface -Name "myNic1" -ResourceGroupName $rg.ResourceGroupName


$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "myGatewayBackendPoolv6" -LoadBalancer $gwlb

#Add an IPv6 IPconfig to NIC_1 and update the NIC on the running VM
$NIC_1 | Add-AzNetworkInterfaceIpConfig -Name myIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_1 | Set-AzNetworkInterface


Adicionar uma regra de balanceamento de carga para tráfego IPv6

As regras de balanceamento de carga determinam como o tráfego é roteado para suas instâncias de back-end. Para o Balanceador de carga do gateway, você cria uma regra de balanceamento de carga com portas HA habilitadas, para que possa inspecionar o tráfego de todos os protocolos, chegando em todas as portas.


# Retrieve the updated (live) versions of the frontend and backend pool, and existing health probe
$frontendIPv6 = Get-AzLoadBalancerFrontendIpConfig -Name "myGatewayFrontEndv6" -LoadBalancer $gwlb
$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "myGatewayBackendPoolv6" -LoadBalancer $gwlb
$healthProbe = Get-AzLoadBalancerProbeConfig -Name "myHealthProbe" -LoadBalancer $gwlb

# Create new LB rule with the frontend and backend
$gwlb | Add-AzLoadBalancerRuleConfig `
  -Name "myRulev6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol All `
  -FrontendPort 0 `
  -BackendPort 0 `
  -Probe $healthProbe

#Finalize all the load balancer updates on the running load balancer
$gwlb | Set-AzLoadBalancer
 

Encadear o front-end do balanceador de carga IPv6 ao Balanceador de carga do gateway

Nesta etapa final, você encadeará o frontend IPv6 do Standard Load Balancer existente ao frontend IPv6 do Balanceador de carga do gateway. Agora, todo o tráfego IPv6 direcionado para o front-end do Standard Load Balancer é encaminhado para o Balanceador de carga do gateway para inspeção pelos NVAs configurados antes de chegar ao aplicativo.


## Place the existing Standard load balancer into a variable. ##
$par1 = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par1

## Place the public frontend IP of the Standard load balancer into a variable.
$par3 = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myIPv6PublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3

## Chain the Gateway load balancer to your existing Standard load balancer frontend. ##
# $feip = Get-AzLoadBalancerFrontendIpConfig -Name "myGatewayFrontEndv6" -LoadBalancer $gwlb

$par4 = @{
    Name = 'myIPv6FrontEnd'
    PublicIPAddress = $publicIP 
    LoadBalancer = $lb
    GatewayLoadBalancerId = $feip.id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4

$config | Set-AzLoadBalancer

Limitações

  • O Balanceador de carga do gateway não oferece suporte ao NAT 64/46.
  • Quando você implementa o encadeamento, a versão de endereço IP das configurações de front-end Standard e Balanceador de carga do gateway deve corresponder.

Próximas etapas