Bereitstellen eines Azure-Gatewaylastenausgleichs mit zwei Stapeln

In diesem Tutorial stellen Sie IPv6-Konfigurationen für einen bestehenden IPv4-konfigurierten Azure-Gatewaylastenausgleich bereit.

Folgendes wird beschrieben:

  • Fügen Sie IPv6-Adressbereiche zu einem bestehenden Subnetz hinzu.
  • Fügen Sie ein IPv6-Front-End zum Gatewaylastenausgleich hinzu.
  • Fügen Sie einen IPv6-Backend-Pool zum Gatewaylastenausgleich hinzu.
  • IPv6-Konfiguration zu Netzwerkschnittstellen hinzufügen.
  • Fügen Sie eine Lastenausgleichsregel für IPv6-Datenverkehr hinzu.
  • Verketten Sie das IPv6-Lastenausgleichs-Front-End mit dem Gatewaylastenausgleich.

Neben dem Gatewaylastenausgleich enthält dieses Szenario die folgenden schon bereitgestellten Ressourcen:

  • Ein virtuelles Dual-Stack-Netzwerk und Subnetz.
  • Einen Load Balancer Standard mit dualen (IPv4 + IPv6) Frontendkonfigurationen.
  • Einen Gatewaylastenausgleich nur mit IPv4.
  • Eine Netzwerkschnittstelle mit einer Dual-Stack-IP-Konfiguration, einer angefügten Netzwerksicherheitsgruppe und öffentlichen IPv4- und IPv6-Adressen.

Voraussetzungen

Hinzufügen von IPv6-Adressbereichen zu einem bestehenden Subnetz

In diesem Artikel wird davon ausgegangen, dass Sie bereits einen Gatewaylastenausgleich für IPv4-Verkehr konfiguriert haben, mit einem entsprechenden VNET und Subnetz. In diesem Schritt fügen Sie IPv6-Bereiche zum VNET und Subnetz Ihres Gatewaylastenausgleichs hinzu. Dieser Bereich wird benötigt, wenn Sie eine IPv6-Front-End-Konfiguration für Ihren Gatewaylastenausgleich mit einer privaten IP-Adresse aus diesem Subnetz/VNET erstellen.


#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

Hinzufügen eines IPv6-Front-Ends zum Gatewaylastenausgleich

Nachdem Sie nun IPv6-Präfixbereiche zum Subnetz und VNET Ihres Gateways hinzugefügt haben, können wir eine neue IPv6-Front-End-Konfiguration im Gatewaylastenausgleich mit einer IPv6-Adresse aus dem Subnetzbereich erstellen.


# 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 

Hinzufügen eines IPv6-Back-End-Pools zum Gatewaylastenausgleich

Um IPv6-Datenverkehr zu verteilen, benötigen Sie einen Back-End-Pool, der Instanzen mit IPv6-Adressen umfasst. Zuerst erstellen Sie einen Back-End-Pool im Gatewaylastenausgleich. Im folgenden Schritt erstellen Sie IPv6-Konfigurationen für Ihre vorhandenen Backend-NICs für IPv4-Verkehr und verbinden sie mit diesem Back-End-Pool.


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

IPv6-Konfiguration zu Netzwerkschnittstellen hinzufügen


#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


Hinzufügen einer Lastausgleichsregel für IPv6-Verkehr

Lastausgleichsregeln bestimmen, wie der Datenverkehr an Ihre Back-End-Instanzen weitergeleitet wird. Für den Gatewaylastenausgleich erstellen Sie eine Lastenausgleichsregel mit aktivierten Hochverfügbarkeits-Ports, sodass Sie den Datenverkehr aller Protokolle, die auf allen Ports ankommen, überprüfen können.


# 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
 

Verkettung des IPv6-Lastenausgleich-Front-Ends mit dem Gatewaylastenausgleich-Instanz

In diesem letzten Schritt koppeln Sie das IPv6-Front-End Ihres bestehenden Load Balancer Standard mit dem IPv6-Front-End des Gatewaylastenausgleichs. Nun wird der gesamte IPv6-Datenverkehr, der zum Front-End Ihres Load Balancer Standard geleitet wird, an Ihren Gatewaylastenausgleich weitergeleitet, wo er von den konfigurierten NVAs überprüft wird, bevor er Ihre Anwendung erreicht.


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

Begrenzungen

  • Der Gatewaylastenausgleich unterstützt NAT 64/46 nicht.
  • Wenn Sie die Verkettung implementieren, muss die IP-Adressversion der Front-End-Konfigurationen des Load Balancer Standard und Gatewaylastenausgleichs übereinstimmen.

Nächste Schritte