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 :
- Configurer un réseau à double pile
- Créer une passerelle d’application avec front-end IPv6
- Créer un groupe de machines virtuelles identiques avec le pool de backend par défaut
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 :
- À l’aide de l’applet de commande Invoke-WebRequest, émettez une requête au front-end IPv6.
- 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