Dela via


Konfigurera Application Gateway med en offentlig IPv6-adress för klientdelen med hjälp av Azure PowerShell

Azure Application Gateway stöder klientdelsanslutningar med dubbla staplar (IPv4 och IPv6) från klienter. Om du vill använda IPv6-klientdelsanslutningen måste du skapa en ny Application Gateway. För närvarande kan du inte uppgradera befintliga IPv4-programgatewayer till programgatewayer med dubbla staplar (IPv4 och IPv6). För närvarande stöds inte heller IPv6-adresser för serverdelen.

För att stödja stöd för IPv6-klientdel måste du skapa ett virtuellt nätverk med dubbla staplar. Det här virtuella nätverket med dubbla staplar har undernät för både IPv4 och IPv6. Virtuella Azure-nätverk har redan funktioner med dubbla staplar.

Översikt

Azure PowerShell används för att skapa en IPv6 Azure Application Gateway. Testningen utförs för att kontrollera att den fungerar korrekt.

Du lär dig att:

  • Konfigurera nätverket med dubbla staplar
  • Skapa en programgateway med IPv6-klientdelen
  • Skapa en VM-skalningsuppsättning med standardserverdelspoolen

Azure PowerShell används för att skapa en IPv6 Azure Application Gateway och utföra tester för att säkerställa att den fungerar korrekt. Application Gateway kan hantera och skydda webbtrafik till servrar som du underhåller. En VM-skalningsuppsättning är avsedd för serverdelsservrar för att hantera webbtrafik. Skalningsuppsättningen innehåller två virtuella datorinstanser som läggs till i programgatewayens standardserverdelspool. Mer information om komponenterna i en programgateway finns i Application Gateway-komponenter.

Du kan också slutföra den här snabbstarten med hjälp av Azure Portal.

Förutsättningar

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az för att hitta versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Login-AzAccount för att skapa en anslutning till Azure.

Regioner och tillgänglighet

IPv6 Application Gateway är tillgänglig för alla offentliga molnregioner där Application Gateway v2 SKU stöds. Den är också tillgänglig i Microsoft Azure som drivs av 21Vianet och Azure Government

Begränsningar

  • Endast v2 SKU stöder en klientdel med både IPv4- och IPv6-adresser
  • IPv6-serverdelar stöds för närvarande inte
  • IPv6 private Link stöds för närvarande inte
  • IPv6-only Application Gateway stöds för närvarande inte. Application Gateway måste vara dubbel stack (IPv6 och IPv4)
  • Application Gateway Ingress Controller (AGIC) stöder inte IPv6-konfiguration
  • Befintliga IPv4-programgatewayer kan inte uppgraderas till Application Gateways med dubbla staplar
  • ANPASSADE WAF-regler med ett IPv6-matchningsvillkor stöds inte för närvarande

Skapa en resursgrupp

En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Skapa en Azure-resursgrupp med New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Konfigurera ett undernät med dubbla staplar och serverdelsundernät

Konfigurera undernäten myBackendSubnet och myAGSubnet med New-AzVirtualNetworkSubnetConfig.

$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

Skapa ett virtuellt nätverk med dubbla staplar

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

Skapa offentliga IP-adresser för Application Gateway-klientdelen

$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

Skapa IP-konfigurationer och portar

Associera myAGSubnet som du skapade tidigare till programgatewayen med hjälp av New-AzApplicationGatewayIPConfiguration. Tilldela myAGPublicIPAddress till programgatewayen med New-AzApplicationGatewayFrontendIPConfig.

$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

Skapa serverdelspoolen och tillhörande inställningar

Skapa serverdelspoolen med namnet appGatewayBackendPool för programgatewayen med New-AzApplicationGatewayBackendAddressPool. Konfigurera inställningarna för serverdelsadresspoolerna med New-AzApplicationGatewayBackendHttpSettings.

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

Skapa standardlyssnare och -regel

Du behöver en lyssnare så att programgatewayen kan dirigera trafiken till serverdelspoolen på rätt sätt. I det här exemplet skapar du en grundläggande lyssnare som lyssnar efter trafik vid rotadressen.

Skapa en lyssnare med namnet mydefaultListener med New-AzApplicationGatewayHttpListener med klientdelskonfigurationen och klientdelsporten som du skapade tidigare. Du måste ange en regel för lyssnaren som anger vilken serverdelspool som ska användas för inkommande trafik. Skapa en grundläggande regel med namnet rule1 med New-AzApplicationGatewayRequestRoutingRule.

$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

Skapa programgatewayen

Nu när du har skapat nödvändiga stödresurser kan du ange parametrar för programgatewayen med hjälp av New-AzApplicationGatewaySku. Den nya programgatewayen skapas med New-AzApplicationGateway. Det tar några minuter att skapa programgatewayen.

$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

Serverdelsservrar

Nu när du har skapat programgatewayen kan du skapa de virtuella serverdelsdatorerna som värd för webbplatser. En serverdel kan bestå av nätverkskort, vm-skalningsuppsättningar, offentliga IP-adresser, interna IP-adresser, fullständigt kvalificerade domännamn (FQDN) och serverdelar för flera klientorganisationer som Azure App Service.

Skapa två virtuella datorer

I det här exemplet skapar du två virtuella datorer som ska användas som serverdelsservrar för programgatewayen. IIS är installerat på de virtuella datorerna för att verifiera att Azure har skapat programgatewayen. Skalningsuppsättningen tilldelas till serverdelspoolen när du konfigurerar IP-adressinställningarna.

För att skapa de virtuella datorerna får vi konfigurationen av den nyligen skapade Application Gateway-serverdelspoolen med Get-AzApplicationGatewayBackendAddressPool. Den här informationen används för att:

  • Skapa ett nätverksgränssnitt med New-AzNetworkInterface.
  • Skapa en konfiguration av en virtuell dator med New-AzVMConfig.
  • Skapa de virtuella datorerna med New-AzVM.

Kommentar

När du kör följande kodexempel för att skapa virtuella datorer uppmanar Azure dig att ange autentiseringsuppgifter. Ange ditt användarnamn och lösenord. Det tar några minuter att skapa de virtuella datorerna.

$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
}

Hitta den offentliga IP-adressen för Application Gateway

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Tilldela ett DNS-namn till klientdels-IPv6-adressen

Ett DNS-namn gör testningen enklare för IPv6-programgatewayen. Du kan tilldela ett offentligt DNS-namn med din egen domän och registrator eller skapa ett namn i azure.com.

Använd följande kommandon för att tilldela ett namn i azure.com. Namnet är inställt på den etikett som du anger + region + cloudapp.azure.com. I det här exemplet skapas AAAA-posten myipv6appgw i namnområdet eastus.cloudapp.azure.com:

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

Testa programgatewayen

Tidigare tilldelade vi DNS-namnet myipv6appgw.eastus.cloudapp.azure.com till den offentliga IPv6-adressen för programgatewayen. Så här testar du den här anslutningen:

  1. Med cmdleten Invoke-WebRequest skickar du en begäran till IPv6-klientdelen.
  2. Kontrollera svaret. Ett giltigt svar från myVM1 eller myVM2 verifierar att programgatewayen har skapats och kan ansluta med serverdelen. Om du utfärdar kommandot flera gånger balanserar gatewayens belastning och svarar på efterföljande begäranden från en annan serverdelsserver.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Viktigt!

Om anslutningen till DNS-namnet eller IPv6-adressen misslyckas kan det bero på att du inte kan bläddra bland IPv6-adresser från enheten. Kontrollera om det här är ditt problem genom att även testa IPv4-adressen för programgatewayen. Om IPv4-adressen ansluts korrekt är det troligt att du inte har någon offentlig IPv6-adress tilldelad till enheten. Om så är fallet kan du testa anslutningen med en virtuell dator med dubbla staplar.

Rensa resurser

När den inte längre behövs tar du bort resursgruppen, programgatewayen och alla relaterade resurser med Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Nästa steg