Partager via


Configurer Application Gateway avec une adresse IPv6 publique front-end à l’aide d’Azure PowerShell

Azure Application Gateway prend en charge les connexions front-end double pile (IPv4 et IPv6) à partir de clients. Pour utiliser la connectivité front-end IPv6, vous devez créer une passerelle Application Gateway. Actuellement, vous ne pouvez pas mettre à niveau les passerelles Application Gateway existantes uniquement IPv4 vers des passerelles Application Gateway à double pile (IPv4 et IPv6). En outre, les adresses IPv6 front-end ne sont pas prises en charge.

Pour prendre en charge les IPv6 front-end, vous devez créer un réseau virtuel double pile. Ce réseau virtuel double pile a des sous-réseaux pour IPv4 et IPv6. Les réseaux virtuels Azure offrent déjà une fonctionnalité double pile.

Vue d’ensemble

Azure PowerShell est utilisé pour créer une passerelle Azure Application Gateway IPv6. Le test est effectué pour vérifier qu’elle fonctionne correctement.

Vous allez apprendre à effectuer les actions suivantes :

Azure PowerShell est utilisé pour créer une passerelle Azure Application Gateway IPv6 et effectuer des tests pour s’assurer qu’elle fonctionne correctement. La passerelle d’application peut gérer et sécuriser le trafic web vers les serveurs que vous gérez. Un groupe de machines virtuelles identiques permet aux serveurs principaux de gérer le trafic web. Le groupe identique contient deux instances de machine virtuelle qui sont ajoutées au pool de back-end par défaut de la passerelle d’application. Pour plus d’informations sur les composants d’une passerelle applicative, consultez Composants de passerelle applicative.

Vous pouvez également suivre ce guide de démarrage rapide en utilisant le portail Azure.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Si vous choisissez d’installer et d’utiliser PowerShell en local, vous devez exécuter le module Azure PowerShell version 1.0.0 ou ultérieure pour les besoins de cet article. Pour connaître la version de l’interface, exécutez Get-Module -ListAvailable Az. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, vous devez également exécuter Login-AzAccount pour créer une connexion avec Azure.

Régions et disponibilité

Application Gateway IPv6 est disponible pour toutes les régions de cloud public où la référence SKU Application Gateway v2 est prise en charge. Elle est également disponible dans Microsoft Azure géré par 21Vianet et Azure Government

Limites

  • Seule la référence SKU v2 prend en charge un front-end avec des adresses IPv4 et IPv6
  • Actuellement, les back-ends IPv6 ne sont pas pris en charge
  • La liaison privée IPv6 n’est actuellement pas prise en charge
  • Application Gateway uniquement IPv6 n’est actuellement pas pris en charge. Application Gateway doit être double pile (IPv6 et IPv4)
  • Application Gateway Ingress Controller (AGIC) ne prend pas en charge la configuration IPv6
  • Les instances d’Application Gateway IPv4 existantes ne peuvent pas être mises à niveau vers des passerelles applicatives à double pile
  • Les règles personnalisées du pare-feu d’applications web avec une condition de correspondance IPv6 ne sont actuellement pas prises en charge

Créer un groupe de ressources

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Créez un groupe de ressources Azure à l’aide de New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Configurer un sous-réseau à double pile et un sous-réseau de back-end

Configurez les sous-réseaux nommés myBackendSubnet et myAGSubnet à l’aide de 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

Créer un réseau virtuel à double pile

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

Créer des adresses IP publiques de front-end Application Gateway

$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

Créer les configurations IP et les ports

Associez myAGSubnet créé précédemment à la passerelle d’application à l’aide de New-AzApplicationGatewayIPConfiguration. Affectez myAGPublicIPAddress à la passerelle d’application à l’aide de 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

Créer le pool principal et les paramètres

Créez le pool back-end nommé appGatewayBackendPool pour la passerelle d’application à l’aide de New-AzApplicationGatewayBackendAddressPool. Configurez les paramètres pour les pools d’adresses back-end à l’aide de New-AzApplicationGatewayBackendHttpSettings.

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

Créer l’écouteur et la règle par défaut

Un écouteur est requis pour permettre à la passerelle d’application d’acheminer le trafic de manière appropriée vers le pool principal. Dans cet exemple, vous créez un écouteur de base qui écoute le trafic vers l’URL racine.

Créez un écouteur nommé mydefaultListener à l’aide de New-AzApplicationGatewayHttpListener avec la configuration front-end et le port front-end que vous avez créés précédemment. Une règle est requise pour que l’écouteur sache quel pool principal utiliser pour le trafic entrant. Créez une règle de base nommée rule1 à l’aide de 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

Créer la passerelle Application Gateway

Maintenant que vous avez créé les ressources nécessaires pour la prise en charge, vous pouvez spécifier les paramètres de la passerelle applicative à l’aide de New-AzApplicationGatewaySku. La passerelle d’application est créée à l’aide de New-AzApplicationGateway. La création de la passerelle d’application prend quelques minutes.

$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

Serveurs principaux

Maintenant que vous avez créé la passerelle applicative, vous pouvez créer les machines virtuelles back-end pour héberger les sites web. Un back-end peut se composer de cartes d’interface réseau, de groupes de machines virtuelles identiques, d’adresses IP publiques, d’adresses IP internes, de noms de domaine complets (FQDN) et de back-ends multilocataires comme Azure App Service.

Créer deux machines virtuelles

Dans cet exemple, vous allez créer deux machines virtuelles à utiliser comme serveurs back-end pour la passerelle d’application. IIS est installé sur les machines virtuelles pour vérifier qu’Azure a créé la passerelle d’application. Le groupe identique est attribué au pool de back-end lorsque vous configurez les paramètres d’adresse IP.

Pour créer les machines virtuelles, procurez-vous la configuration du pool de back-end Application Gateway récemment créé avec Get-AzApplicationGatewayBackendAddressPool. Ces informations sont utilisées pour les opérations suivantes :

  • Créez une interface réseau à l’aide de New-AzNetworkInterface.
  • Créez une configuration de machine virtuelle à l’aide de New-AzVMConfig.
  • Créez les machines virtuelles avec New-AzVM.

Remarque

Quand vous exécutez l’exemple de code suivant pour créer les machines virtuelles, Azure vous invite à entrer les informations d’identification. Entrez votre nom d’utilisateur et votre mot de passe. La création des machines virtuelles prend quelques minutes.

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

Trouver l’adresse IP publique de votre Application Gateway

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Attribuer un nom DNS à l’adresse IPv6 front-end

Un nom DNS facilite les tests pour la passerelle d’application IPv6. Vous pouvez attribuer un nom DNS public à l’aide de votre propre domaine et bureau d’enregistrement ou vous pouvez créer un nom dans azure.com.

Utilisez les commandes suivantes pour attribuer un nom dans azure.com. Le nom est défini sur l’étiquette que vous spécifiez + la région + cloudapp.azure.com. Dans cet exemple, l’enregistrement AAAA myipv6appgw est créé dans l’espace de noms eastus.cloudapp.azure.com :

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

Tester la passerelle d’application

Auparavant, nous avons attribué le nom DNS myipv6appgw.eastus.cloudapp.azure.com à l’adresse IPv6 publique de la passerelle d’application. Pour tester cette connexion :

  1. À l’aide de l’applet de commande Invoke-WebRequest, émettez une requête au front-end IPv6.
  2. Vérifiez la réponse. Une réponse valide de myVM1 ou de myVM2 vérifie que la passerelle d’application a été créée et peut se connecter au back-end. Si vous émettez la commande plusieurs fois, la charge de la passerelle équilibre et répond aux requêtes suivantes à partir d’un autre serveur principal.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Important

Si la connexion au nom DNS ou à l’adresse IPv6 échoue, cela peut être dû au fait que vous ne pouvez pas parcourir les adresses IPv6 à partir de votre appareil. Pour vérifier s’il s’agit de votre problème, testez également l’adresse IPv4 de la passerelle d’application. Si l’adresse IPv4 se connecte correctement, il est probable que vous n’ayez pas d’adresse IPv6 publique affectée à votre appareil. Si tel est le cas, vous pouvez essayer de tester la connexion avec une machine virtuelle à double pile.

Nettoyer les ressources

Quand vous n’en avez plus besoin, supprimez le groupe de ressources, la passerelle d’application et toutes les ressources associées à l’aide de Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Étapes suivantes