Migrera Azure Application Gateway och Web Application Firewall från v1 till v2
Azure Application Gateway och Web Application Firewall (WAF) v2 är nu tillgängligt och erbjuder ytterligare funktioner som automatisk skalning och redundans i tillgänglighetszonen. Befintliga v1-gatewayer uppgraderas inte automatiskt till v2. Om du vill migrera från v1 till v2 följer du stegen i den här artikeln.
Det finns två steg i en migrering:
- Migrera konfigurationen
- Migrera klienttrafiken
Den här artikeln beskriver konfigurationsmigrering. Klienttrafikmigreringen varierar beroende på din specifika miljö. Vissa allmänna rekommendationer på hög nivå ges dock.
Översikt över migrering
Det finns ett Azure PowerShell skript som gör följande:
- Skapar en ny Standard_v2 eller WAF_v2 gateway i ett virtuellt nätverksundernät som du anger.
- Kopierar sömlöst konfigurationen som är associerad med v1 Standard- eller WAF-gatewayen till den nyligen skapade Standard_V2 eller WAF_V2 gateway.
Varningar\Begränsningar
- Den nya v2-gatewayen har nya offentliga och privata IP-adresser. Det går inte att flytta IP-adresserna som är associerade med den befintliga v1-gatewayen sömlöst till v2. Du kan dock allokera en befintlig (oallokerad) offentlig eller privat IP-adress till den nya v2-gatewayen.
- Du måste ange ett IP-adressutrymme för ett annat undernät i ditt virtuella nätverk där din v1-gateway finns. Skriptet kan inte skapa v2-gatewayen i befintliga undernät som redan har en v1-gateway. Men om det befintliga undernätet redan har en v2-gateway kan det fortfarande fungera förutsatt att det finns tillräckligt med IP-adressutrymme.
- Om du har en nätverkssäkerhetsgrupp eller användardefinierade vägar kopplade till v2-gatewayundernätet kontrollerar du att de följer NSG-kraven och UDR-kraven för en lyckad migrering
- Principer för tjänstslutpunkter för virtuella nätverk stöds för närvarande inte i ett Application Gateway undernät.
- Om du vill migrera en TLS/SSL-konfiguration måste du ange alla TLS/SSL-certifikat som används i din v1-gateway.
- Om FIPS-läget är aktiverat för din V1-gateway migreras det inte till din nya v2-gateway. FIPS-läget stöds inte i v2.
- v2 stöder inte IPv6, så IPv6-aktiverade v1-gatewayer migreras inte. Om du kör skriptet kanske det inte slutförs.
- Om v1-gatewayen bara har en privat IP-adress skapar skriptet en offentlig IP-adress och en privat IP-adress för den nya v2-gatewayen. v2-gatewayer stöder för närvarande inte bara privata IP-adresser.
- Rubriker med namn som innehåller något annat än bokstäver, siffror och bindestreck skickas inte till ditt program. Detta gäller endast rubriknamn, inte rubrikvärden. Detta är en icke-bakåtkompatibel ändring från v1.
- NTLM- och Kerberos-autentisering stöds inte av Application Gateway v2. Skriptet kan inte identifiera om gatewayen betjänar den här typen av trafik och kan utgöra en icke-bakåtkompatibel ändring från v1 till v2-gatewayer om den körs.
Ladda ned skriptet
Ladda ned migreringsskriptet från Galeria programu PowerShell.
Använda skriptet
Det finns två alternativ för dig beroende på din lokala Installation och inställningar för PowerShell-miljön:
- Om du inte har installerat Azure Az-modulerna eller inte har något emot att avinstallera Azure Az-modulerna är det bästa alternativet att använda
Install-Script
alternativet för att köra skriptet. - Om du behöver behålla Azure Az-modulerna är det bästa valet att ladda ned skriptet och köra det direkt.
Kör för att avgöra om du har Azure Az-modulerna installerade Get-InstalledModule -Name az
. Om du inte ser några installerade Az-moduler kan du använda Install-Script
metoden .
Installera med metoden Install-Script
Om du vill använda det här alternativet får du inte ha Azure Az-modulerna installerade på datorn. Om de är installerade visas ett fel i följande kommando. Du kan antingen avinstallera Azure Az-modulerna eller använda det andra alternativet för att ladda ned skriptet manuellt och köra det.
Kör skriptet med följande kommando för att hämta den senaste versionen:
Install-Script -Name AzureAppGWMigration -Force
Det här kommandot installerar även nödvändiga Az-moduler.
Installera med skriptet direkt
Om du har vissa Azure Az-moduler installerade och inte kan avinstallera dem (eller inte vill avinstallera dem) kan du manuellt ladda ned skriptet med hjälp av fliken Manuell nedladdning i skriptnedladdningslänken. Skriptet laddas ned som en rå nupkg-fil. Information om hur du installerar skriptet från den här nupkg-filen finns i Manuell nedladdning av paket.
Kör skriptet så här:
Använd
Connect-AzAccount
för att ansluta till Azure.Använd
Import-Module Az
för att importera Az-modulerna.Kör
Get-Help AzureAppGWMigration.ps1
för att undersöka de obligatoriska parametrarna:AzureAppGwMigration.ps1 -resourceId <v1 application gateway Resource ID> -subnetAddressRange <subnet space you want to use> -appgwName <string to use to append> -AppGwResourceGroupName <resource group name you want to use> -sslCertificates <comma-separated SSLCert objects as above> -trustedRootCertificates <comma-separated Trusted Root Cert objects as above> -privateIpAddress <private IP string> -publicIpResourceId <public IP name string> -validateMigration -enableAutoScale
Parametrar för skriptet:
resourceId: [String]: Krävs – Det här är Azure-resurs-ID:t för din befintliga Standard v1- eller WAF v1-gateway. Du hittar strängvärdet genom att gå till Azure-Portal, välja din programgateway eller WAF-resurs och klicka på länken Egenskaper för gatewayen. Resurs-ID:t finns på den sidan.
Du kan också köra följande Azure PowerShell kommandon för att hämta resurs-ID:t:
$appgw = Get-AzApplicationGateway -Name <v1 gateway name> -ResourceGroupName <resource group Name> $appgw.Id
subnetAddressRange: [String]: Krävs – det här är det IP-adressutrymme som du har allokerat (eller vill allokera) för ett nytt undernät som innehåller din nya v2-gateway. Detta måste anges i CIDR-notationen. Exempel: 10.0.0.0/24. Du behöver inte skapa det här undernätet i förväg, men CIDR måste vara en del av VNET-adressutrymmet. Skriptet skapar det åt dig om det inte finns och om det finns använder det befintliga (se till att undernätet antingen är tomt, endast innehåller v2 Gateway om det finns och har tillräckligt med tillgängliga IP-adresser).
appgwName: [String]: Valfritt. Det här är en sträng som du anger som namn på den nya Standard_v2 eller WAF_v2 gateway. Om den här parametern inte anges används namnet på din befintliga v1-gateway med suffixet _v2 läggs till.
AppGwResourceGroupName: [String]: Valfritt. Namnet på resursgruppen där du vill att v2 Application Gateway resurser ska skapas (standardvärdet är
<v1-app-gw-rgname>
)sslCertificates: [PSApplicationGatewaySslCertificate]: Valfritt. En kommaavgränsad lista över PSApplicationGatewaySslCertificate-objekt som du skapar för att representera TLS/SSL-certifikaten från v1-gatewayen måste laddas upp till den nya v2-gatewayen. För vart och ett av dina TLS/SSL-certifikat som konfigurerats för din Standard v1- eller WAF v1-gateway kan du skapa ett nytt PSApplicationGatewaySslCertificate-objekt via kommandot
New-AzApplicationGatewaySslCertificate
som visas här. Du behöver sökvägen till TLS/SSL-certifikatfilen och lösenordet.Den här parametern är bara valfri om du inte har HTTPS-lyssnare konfigurerade för din v1-gateway eller WAF. Om du har minst en HTTPS-lyssnarkonfiguration måste du ange den här parametern.
$password = ConvertTo-SecureString <cert-password> -AsPlainText -Force $mySslCert1 = New-AzApplicationGatewaySslCertificate -Name "Cert01" ` -CertificateFile <Cert-File-Path-1> ` -Password $password $mySslCert2 = New-AzApplicationGatewaySslCertificate -Name "Cert02" ` -CertificateFile <Cert-File-Path-2> ` -Password $password
Du kan skicka in
$mySslCert1, $mySslCert2
(kommaavgränsade) i föregående exempel som värden för den här parametern i skriptet.trustedRootCertificates: [PSApplicationGatewayTrustedRootCertificate]: Valfritt. En kommaavgränsad lista över PSApplicationGatewayTrustedRootCertificate-objekt som du skapar för att representera betrodda rotcertifikat för autentisering av dina serverdelsinstanser från v2-gatewayen.
$certFilePath = ".\rootCA.cer" $trustedCert = New-AzApplicationGatewayTrustedRootCertificate -Name "trustedCert1" -CertificateFile $certFilePath
Information om hur du skapar en lista över PSApplicationGatewayTrustedRootCertificate-objekt finns i New-AzApplicationGatewayTrustedRootCertificate.
privateIpAddress: [String]: Valfritt. En specifik privat IP-adress som du vill associera med din nya v2-gateway. Detta måste vara från samma virtuella nätverk som du allokerar för din nya v2-gateway. Om detta inte anges allokerar skriptet en privat IP-adress för din v2-gateway.
publicIpResourceId: [String]: Valfritt. ResourceId för befintlig offentlig IP-adressresurs (standard-SKU) i din prenumeration som du vill allokera till den nya v2-gatewayen. Om detta inte anges allokerar skriptet en ny offentlig IP-adress i samma resursgrupp. Namnet är v2-gatewayens namn med -IP som läggs till.
validateMigration: [switch]: Valfritt. Använd den här parametern om du vill att skriptet ska utföra några grundläggande konfigurationsjämförelsevalideringar när v2-gatewayen har skapats och konfigurationskopian. Som standard görs ingen validering.
enableAutoScale: [switch]: Valfritt. Använd den här parametern om du vill att skriptet ska aktivera autoskalning på den nya v2-gatewayen när den har skapats. Som standard är AutoSkalning inaktiverat. Du kan alltid aktivera den manuellt senare på den nyligen skapade v2-gatewayen.
Kör skriptet med lämpliga parametrar. Det kan ta fem till sju minuter att avsluta.
Exempel
AzureAppGWMigration.ps1 ` -resourceId /subscriptions/8b1d0fea-8d57-4975-adfb-308f1f4d12aa/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway ` -subnetAddressRange 10.0.0.0/24 ` -appgwname "MynewV2gw" ` -AppGwResourceGroupName "MyResourceGroup" ` -sslCertificates $mySslCert1,$mySslCert2 ` -trustedRootCertificates $trustedCert ` -privateIpAddress "10.0.0.1" ` -publicIpResourceId "/subscriptions/8b1d0fea-8d57-4975-adfb-308f1f4d12aa/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/MyPublicIP" ` -validateMigration -enableAutoScale
Migrera klienttrafik
Kontrollera först att skriptet har skapat en ny v2-gateway med den exakta konfigurationen som migrerats från din v1-gateway. Du kan kontrollera detta från Azure-Portal.
Skicka även en liten mängd trafik via v2-gatewayen som ett manuellt test.
Här följer några scenarier där din aktuella programgateway (Standard) kan ta emot klienttrafik och våra rekommendationer för var och en:
En anpassad DNS-zon (till exempel contoso.com) som pekar på klientdelens IP-adress (med hjälp av en A-post) som är associerad med din Standard v1- eller WAF v1-gateway.
Du kan uppdatera DNS-posten så att den pekar på klientdelens IP- eller DNS-etikett som är associerad med din Standard_v2 application gateway. Beroende på vilken TTL som konfigurerats för DIN DNS-post kan det ta en stund innan all klienttrafik migreras till din nya v2-gateway.
En anpassad DNS-zon (till exempel contoso.com) som pekar på DNS-etiketten (till exempel : myappgw.eastus.cloudapp.azure.com med hjälp av en CNAME-post) som är associerad med din v1-gateway.
Du har två alternativ:
Om du använder offentliga IP-adresser på programgatewayen kan du utföra en kontrollerad, detaljerad migrering med hjälp av en Traffic Manager-profil för att stegvis dirigera trafik (viktad trafikroutningsmetod) till den nya v2-gatewayen.
Du kan göra detta genom att lägga till DNS-etiketterna för både v1- och v2-programgatewayerna i Traffic Manager-profilen och CNAMEing din anpassade DNS-post (till exempel
www.contoso.com
) i Traffic Manager-domänen (till exempel contoso.trafficmanager.net).Eller så kan du uppdatera dns-posten för din anpassade domän så att den pekar på DNS-etiketten för den nya v2-programgatewayen. Beroende på vilken TTL som konfigurerats för DIN DNS-post kan det ta en stund innan all klienttrafik migreras till din nya v2-gateway.
Klienterna ansluter till klientdels-IP-adressen för din programgateway.
Uppdatera dina klienter så att de använder de IP-adresser som är associerade med den nyligen skapade v2-programgatewayen. Vi rekommenderar att du inte använder IP-adresser direkt. Överväg att använda DNS-namnetiketten (till exempel yourgateway.eastus.cloudapp.azure.com) som är associerad med din programgateway som du kan använda CNAME till din egen anpassade DNS-zon (till exempel contoso.com).
Vanliga frågor
Finns det några begränsningar med skriptet Azure PowerShell för att migrera konfigurationen från v1 till v2?
Ja. Se Varningar/begränsningar.
Gäller den här artikeln och Azure PowerShell skriptet även för Application Gateway WAF-produkt?
Ja.
Växlar Azure PowerShell skriptet även över trafiken från min v1-gateway till den nyligen skapade v2-gatewayen?
Nej. Det Azure PowerShell skriptet migrerar bara konfigurationen. Den faktiska trafikmigreringen är ditt ansvar och din kontroll.
Har den nya v2-gatewayen skapats av Azure PowerShell skriptstorlek på rätt sätt för att hantera all trafik som för närvarande hanteras av min v1-gateway?
Skriptet Azure PowerShell skapar en ny v2-gateway med lämplig storlek för att hantera trafiken på din befintliga v1-gateway. Autoskalning är inaktiverat som standard, men du kan aktivera autoskalning när du kör skriptet.
Jag har konfigurerat min v1-gateway för att skicka loggar till Azure Storage. Replikerar skriptet även den här konfigurationen för v2?
Nej. Skriptet replikerar inte den här konfigurationen för v2. Du måste lägga till loggkonfigurationen separat till den migrerade v2-gatewayen.
Stöder det här skriptet certifikat som laddats upp till Azure KeyVault?
Nej. Skriptet stöder för närvarande inte certifikat i KeyVault. Detta övervägs dock för en framtida version.
Jag stötte på några problem med att använda det här skriptet. Hur kan jag få hjälp?
Du kan kontakta Azure-supporten under avsnittet "Konfiguration och installation/Migrera till V2 SKU". Mer informasjon om pomoc techniczna platformy Azure här.