Condividi tramite


Distribuire un Bilanciamento del carico del gateway di Azure dual-stack

In questa esercitazione, si distribuiscono configurazioni IPv6 a un servizio di Bilanciamento del carico del gateway di Azure esistente basato su IPv4.

Si apprenderà come:

  • Aggiungere intervalli di indirizzi IPv6 a una subnet esistente.
  • Aggiungere un'istanza font-end IPv6 al servizio di Bilanciamento del carico del gateway.
  • Aggiungere un pool back-end IPv6 al servizio di Bilanciamento del carico del gateway.
  • Aggiungere una configurazione IPv6 alle interfacce di rete.
  • Aggiungere una regola di bilanciamento del carico per il traffico IPv6.
  • Concatenare il servizio front-end di bilanciamento del carico IPv6 al servizio di Bilanciamento del carico del gateway.

Insieme al servizio di Bilanciamento del carico del gateway, questo scenario include le risorse già distribuite seguenti:

  • Una rete virtuale dual stack e la relativa subnet.
  • Un servizio di Load Balancer Standard con doppia configurazione front-end (IPv4 + IPv6).
  • Un servizio di Bilanciamento del carico del gateway con solo IPv4.
  • Un'interfaccia di rete con configurazione IP dual-stack, un gruppo di sicurezza di rete collegato e indirizzi pubblici IPv4 e IPv6.

Prerequisiti

Aggiungere intervalli di indirizzi IPv6 a una subnet esistente

Questo articolo presuppone che sia già stato configurato un servizio di bilanciamento del carico del gateway per il traffico IPv4, con una rete virtuale e una subnet corrispondenti. In questo passaggio si aggiungono intervalli IPv6 alla rete virtuale e alla subnet del servizio di bilanciamento del carico del gateway. Questo intervallo è necessario quando si crea una configurazione front-end IPv6 per il servizio di bilanciamento del carico del gateway usando un indirizzo IP privato da questa subnet/rete virtuale.


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

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

#Update the running virtual network
$vnet |  Set-AzVirtualNetwork

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

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

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

Aggiungere un'istanza font-end IPv6 al servizio di Bilanciamento del carico del gateway

Dopo aver aggiunto intervalli di prefissi IPv6 alla subnet e alla rete virtuale del servizio di bilanciamento del carico del gateway, è possibile creare una nuova configurazione front-end IPv6 nel servizio di bilanciamento del carico del gateway, con un indirizzo IPv6 dall'intervallo della subnet.


# 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 

Aggiungere un pool back-end IPv6 al servizio di Bilanciamento del carico del gateway

Per distribuire il traffico IPv6, è necessario un pool back-end contenente istanze con indirizzi IPv6. Per prima cosa, si crea un pool back-end sul servizio di Bilanciamento del carico del gateway. Nel passaggio seguente, si creano configurazioni IPv6 per le schede di interfaccia di rete back-end esistenti per il traffico IPv4 e si collegano a questo pool 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

Aggiungere una configurazione IPv6 alle interfacce di rete


#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


Aggiungere una regola di bilanciamento del carico per il traffico IPv6

Le regole di bilanciamento del carico determinano in che modo il traffico viene trasferito alle istanze back-end. Per il servizio di Bilanciamento del carico del gateway, si crea una regola di bilanciamento del carico con le porte a disponibilità elevata abilitate, in modo che sia possibile analizzare il traffico di tutti i protocolli, in arrivo in tutte le porte.


# 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
 

Concatenare il servizio front-end di bilanciamento del carico IPv6 al servizio di Bilanciamento del carico del gateway

In questo passaggio finale, si concatenerà l'istanza front-end IPv6 di Load Balancer Standard esistente all'istanza IPv6 del servizio di Bilanciamento del carico del gateway. Ora, tutto il traffico IPv6 diretto all'istanza front-end di Load Balancer Standard viene inoltrato al servizio di Bilanciamento del carico del gateway per essere analizzato dall'appliance virtuale di rete prima di raggiungere la tua applicazione.


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

Limiti

  • Il servizio di Bilanciamento del carico del gateway non supporta NAT 64/46.
  • Quando si implementa il concatenamento, la versione dell'indirizzo IP delle configurazioni front-end di Load Balancer Standard e del servizio di Bilanciamento del carico del gateway devono corrispondere.

Passaggi successivi