Freigeben über


Konfigurieren des Anwendungsgateways mit einer öffentlichen IPv6-Front-Adresse mithilfe von Azure PowerShell

Das Azure Application Gateway unterstützt Dualstape-(IPv4- und IPv6)-Frontend-Verbindungen von Clients. Um die IPv6-Frontend-Konnektivität zu verwenden, müssen Sie ein neues Application Gateway erstellen. Derzeit können Sie bestehende IPv4-Anwendungs-Gateways nicht zu Dual-Stack-Anwendungs-Gateways (IPv4 und IPv6) aktualisieren. Außerdem werden derzeit IPv6-Adressen im Back-End nicht unterstützt.

Zur Unterstützung des IPv6-Frontend-Support müssen Sie ein VNet mit dualem Stapel erstellen. Dieses duale Stapel-VNet verfügt über Subnetze für IPv4 und IPv6. Azure VNets bieten bereits Dual-Stack-Funktionen.

Übersicht

Azure PowerShell wird verwendet, um ein IPv6 Azure-Application Gateway zu erstellen. Tests werden durchgeführt, um zu überprüfen, ob sie ordnungsgemäß funktioniert.

Folgendes wird vermittelt:

Azure PowerShell wird verwendet, um ein IPv6 Azure Application Gateway zu erstellen und Tests durchzuführen, um sicherzustellen, dass es ordnungsgemäß funktioniert. Der Anwendungsgateway kann den Webdatenverkehr mit Servern, die Sie verwalten, verwalten und absichern. Ein Skalierungssatz für virtuelle Computer dient zum Verwalten von Webdatenverkehr auf Back-End-Servern. Die Skalierungsgruppe enthält zwei VM-Instanzen, die zum standardmäßigen Back-End-Pool des Anwendungsgateways hinzugefügt werden. Weitere Informationen zu den Komponenten eines Anwendungsgateways finden Sie unter Anwendungsgateway-Komponenten.

Sie können diese Schnellstartanleitung auch mit dem Azure-Portal durcharbeiten.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 1.0.0 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az aus, um die Version zu finden. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Login-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.

Regionen und Verfügbarkeit

Das IPv6 Application Gateway ist für alle öffentlichen Cloudregionen verfügbar, in denen Application Gateway v2 SKU unterstützt wird. Verfügbar ist es auch in Microsoft Azure, betrieben von 21Vianet und Azure Government

Begrenzungen

  • Nur v2-SKU unterstützt ein Frontend mit IPv4- und IPv6-Adressen
  • IPv6-Back-Ends werden derzeit nicht unterstützt
  • Private IPv6-Verknüpfung wird derzeit nicht unterstützt
  • IPv6-only-Application Gateway wird derzeit nicht unterstützt. Application Gateway muss ein dualer Stapel sein (IPv6 und IPv4)
  • Die IPv6-Konfiguration wird vom Application Gateway-Eingangscontroller (Application Gateway Ingress Controller, AGIC) nicht unterstützt
  • Vorhandene IPv4-Anwendungsgateways können nicht auf Dual Stack-Anwendungsgateways aktualisiert werden
  • Benutzerdefinierte WAF-Regeln mit einer IPv6-Übereinstimmungsbedingung werden derzeit nicht unterstützt

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mit New-AzResourceGroup eine Azure-Ressourcengruppe.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Konfigurieren eines Dual-Stack-Subnetzes und eines Backend-Subnetzes

Konfigurieren Sie mithilfe von New-AzVirtualNetworkSubnetConfig die Subnetze namens myBackendSubnet und myAGSubnet.

$AppGwSubnetPrefix = @("10.0.0.0/24", "ace:cab:deca::/64")
$appgwSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet -AddressPrefix $AppGwSubnetPrefix
$backendSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet -AddressPrefix  10.0.1.0/24

Ein virtuelles Dual-Stack-Netzwerk erstellen

$VnetPrefix = @("10.0.0.0/16", "ace:cab:deca::/48")
$vnet = New-AzVirtualNetwork `
-Name myVNet `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-AddressPrefix $VnetPrefix `
-Subnet @($appgwSubnet, $backendSubnet)

Erstellen öffentlicher Front-End-IP-Adressen für das Anwendungsgateway

$pipv4 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress4 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv4' `
-Force

$pipv6 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress6 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv6' `
-Force

Erstellen Sie die IP-Konfigurationen und Ports

Ordnen Sie das zuvor erstellte Subnetz myAGSubnet mithilfe von New-AzApplicationGatewayIPConfiguration dem Anwendungsgateway zu. Weisen Sie myAGPublicIPAddress mithilfe von New-AzApplicationGatewayFrontendIPConfig dem Anwendungsgateway zu.

$vnet   = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name myAGSubnet
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfigv4 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv4Config `
-PublicIPAddress $pipv4
$fipconfigv6 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv6Config `
-PublicIPAddress $pipv6
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myAGFrontendIPv6Config `
-Port 80

Erstellen des Back-End-Pools und der Einstellungen

Erstellen Sie mit New-AzApplicationGatewayBackendAddressPool den Back-End-Pool appGatewayBackendPool für das Anwendungsgateway. Konfigurieren Sie mit New-AzApplicationGatewayBackendHttpSettings die Einstellungen für die Back-End-Adresspools.

$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30

Erstellen des Standardlisteners und einer Regel

Ein Listener ist erforderlich, damit das Anwendungsgateway Datenverkehr in geeigneter Weise an den Back-End-Pool weiterleiten kann. In diesem Beispiel erstellen Sie einen grundlegenden Listener, der an der Stamm-URL auf Datenverkehr lauscht.

Erstellen Sie einen Listener namens mydefaultListener mit New-AzApplicationGatewayHttpListener, der zuvor erstellten Front-End-Konfiguration und dem zuvor erstellten Front-End-Port. Für den Listener ist eine Regel erforderlich, damit bekannt ist, welcher Back-End-Pool für eingehenden Datenverkehr verwendet werden soll. Erstellen Sie mit New-AzApplicationGatewayRequestRoutingRule eine grundlegende Regel namens rule1.

$listenerv4 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv4 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv4 `
-FrontendPort $frontendport
$listenerv6 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv6 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv6 `
-FrontendPort $frontendport
$frontendRulev4 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv4 `
-RuleType Basic `
-Priority 10 `
-HttpListener $listenerv4 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings 
$frontendRulev6 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv6 `
-RuleType Basic `
-Priority 1 `
-HttpListener $listenerv6 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolsettings

Erstellen des Anwendungsgateways

Nachdem Sie nun die erforderlichen unterstützenden Ressourcen erstellt haben, können Sie mithilfe von New-AzApplicationGatewaySku Parameter für das Anwendungsgateway angeben. Das neue Anwendungsgateway wird mit New-AzApplicationGatewayerstellt. Das Erstellen des Anwendungsgateways dauert einige Minuten.

$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
-Name myipv6AppGW `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolsettings `
-FrontendIpConfigurations @($fipconfigv4, $fipconfigv6) `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners @($listenerv4, $listenerv6) `
-RequestRoutingRules @($frontendRulev4, $frontendRulev6) `
-Sku $sku `
-Force

Back-End-Server

Nachdem Sie das Anwendungsgateway erstellt haben, können Sie die virtuellen Back-End-Computer erstellen, um Websites zu hosten. Ein Back-End kann Netzwerkadapter, VM-Skalierungsgruppen, öffentliche IP-Adressen, interne IP-Adressen, vollqualifizierte Domänennamen (Fully Qualified Domain Names, FQDNs) und Back-Ends mit mehreren Mandanten (beispielsweise Azure App Service) umfassen.

Erstellen von zwei virtuellen Computern

In diesem Beispiel erstellen Sie zwei virtuelle Computer, die als Back-End-Server für das Anwendungsgateway verwendet werden. IIS ist auf den virtuellen Computern installiert, um zu überprüfen, ob Azure das Anwendungsgateway erfolgreich erstellt hat. Der Skalierungssatz wird dem Back-End-Pool zugewiesen, wenn Sie die IP-Adresseinstellungen konfigurieren.

Um die virtuellen Computer zu erstellen, rufen wir die kürzlich erstellte Application Gateway-Back-End-Poolkonfiguration mit Get-AzApplicationGatewayBackendAddressPool ab. Diese Information werden für folgende Aufgaben verwendet:

  • Erstellen Sie mit New-AzNetworkInterface eine Netzwerkschnittstelle.
  • Erstellen Sie mit New-AzVMConfig eine VM-Konfiguration.
  • Erstellen Sie mit New-AzVM die virtuellen Computer.

Hinweis

Wenn Sie das folgende Codebeispiel zum Erstellen von virtuellen Computern ausführen, werden Sie von Azure zur Eingabe von Anmeldeinformationen aufgefordert. Geben Sie Ihren Benutzernamen und Ihr Kennwort ein. Die Erstellung der virtuellen Computer dauert einige Minuten.

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myipv6AppGW
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Suchen der öffentlichen IP-Adresse des Anwendungsgateways

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Zuweisen eines DNS-Namens zur Front-End-IPv6-Adresse

Ein DNS-Name erleichtert das Testen des IPv6-Anwendungsgateways. Sie können einen öffentlichen DNS-Namen mithilfe Ihrer eigenen Domäne und Registrierungsstelle zuweisen oder einen Namen in azure.com erstellen.

Verwenden Sie die folgenden Befehle, um einen Namen in azure.com zuzuweisen. Der Name wird auf die Beschriftung, die Sie angeben + die Region + cloudapp.azure.com festgelegt. In diesem Beispiel wird der AAAA-Eintrag myipv6appgw im Namespace eastus.cloudapp.azure.com erstellt:

$publicIp = Get-AzPublicIpAddress -Name myAGPublicIPAddress6 -ResourceGroupName myResourceGroupAG
$publicIp.DnsSettings = @{"DomainNameLabel" = "myipv6appgw"}
Set-AzPublicIpAddress -PublicIpAddress $publicIp

Testen der Application Gateway-Instanz

Zuvor haben wir der öffentlichen IPv6-Adresse des Anwendungsgateways den DNS-Namen myipv6appgw.eastus.cloudapp.azure.com zugewiesen. So testen Sie diese Verbindung:

  1. Geben Sie mithilfe des Cmdlets Invoke-WebRequest eine Anforderung an das IPv6-Frontend aus.
  2. Überprüfen Sie die Antwort. Eine gültige Antwort von myVM1 oder myVM2 bestätigt, dass das Anwendungsgateway erfolgreich erstellt wurde und eine Verbindung mit dem Back-End herstellen kann. Wenn Sie den Befehl mehrmals ausführen, sorgt das Gateway für einen Lastausgleich und antwortet auf nachfolgende Anfragen von einem anderen Backend-Server.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Wichtig

Wenn die Verbindung mit dem DNS-Namen oder der IPv6-Adresse fehlschlägt, liegt dies möglicherweise daran, dass Sie die IPv6-Adressen von Ihrem Gerät nicht browsen können. Um zu überprüfen, ob es der Fall ist, testen Sie auch die IPv4-Adresse des Anwendungsgateways. Wenn die IPv4-Adresse erfolgreich eine Verbindung herstellt, ist es wahrscheinlich, dass Ihrem Gerät keine öffentliche IPv6-Adresse zugewiesen ist. Wenn dies der Fall ist, können Sie versuchen, die Verbindung mit Dualstapel-VMzu testen.

Bereinigen von Ressourcen

Wenn Sie die Ressourcengruppe, das Anwendungsgateway und alle zugehörigen Ressourcen nicht mehr benötigen, entfernen Sie sie mit dem Befehl Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Nächste Schritte