Změna veřejné IP brány VPN v Azure a přesun předplatného
Runbook pro výměnu veřejné IP adresy brány VPN a její přesun mezi předplatnými, s inventurou, návratem zpět a kontrolami kontextu, které drží tunely v provozu.
V Azure odpovídají na název adresa brány tři různé objekty. Privátní adresa se přiděluje z GatewaySubnet. Veřejná adresa je samostatný prostředek veřejné IP, na který ukazuje IP konfigurace brány. Předplatné a cloudové prostředí jsou kontext, kterým vaše konzole nachází jedno i druhé. Změňte jedno a zbylá dvě zůstanou na místě, proto práce s adresami tak často skončí v polovině.
Tyto změny dělám ve čtyřech fázích: inventura objektů, rozhodnutí, zda se veřejná IP přesune na stávající bránu, nebo se brána přestaví, provedení změny, dokud je stará adresa ještě k dispozici, a pak ověření každého tunelu z obou stran před smazáním. Fáze, kterou lidé přeskakují, je inventura.
Který ze tří objektů vlastně měníte
Pojmenujte objekt dřív, než otevřete portál. Brána VPN bere privátní adresu z podsítě, která se musí jmenovat přesně GatewaySubnet, a Azure ji přiděluje z tohoto prefixu; obecné pole pro její připnutí neexistuje. Adresa vypadá stabilně jen proto, že podsíť je stabilní. Přečíslujte podsíť nebo přestavte bránu a adresa se s nimi posune.
Veřejná adresa je upravitelná, ale pravidla SKU rozhodují, zda je úprava přípustná. Brána Basic se páruje s dynamickou veřejnou IP Basic, SKU VpnGw potřebují statickou Standard a zónově redundantní brána potřebuje veřejnou IP Standard se stejnými zónami. Špatné SKU se odmítne dřív, než tunel spadne.
| Object | Where it lives | What a change forces |
|---|---|---|
| Private address | GatewaySubnet prefix, assigned at deployment | Subnet resize or rebuild, then routes, NSGs and peer review |
| Public address | Public IP resource referenced by the IP configuration | Gateway reprovision, peer and allowlist edits, new client profiles |
| Subscription context | Your PowerShell or CLI session | Nothing in Azure, and it clears most not-found errors |
Inventura, než se něco pohne
Nejprve prokažte předplatné, protože bez něj je zbytek inventury bezcenný. Zaznamenejte bránu, její IP konfigurace a každé připojení, které na ní končí, a výstup uložte vedle záznamu o změně.
Get-AzContext | Select-Object Subscription, Tenant, Environment
Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub |
Select-Object Name, Sku, EnableActiveActive, IpConfigurations
Get-AzVirtualNetworkGatewayConnection -ResourceGroupName rg-hub |
Select-Object Name, ConnectionStatus, ConnectionType
ID prostředků jsou důležitější než názvy. Připojení drží odkazy na bránu a na místní síťovou bránu a tato ID se objevují ve skriptech, upozorněních a přiřazeních zásad, která si nikdo nepamatuje. Vypište i to, co je mimo Azure: jméno DNS, které se překládá na adresu, seznam povolení partnera, pobočkový firewall, který drží starou IP.
Výměna veřejné IP na běžící bráně
Nejprve vytvořte náhradní adresu, ve stejné oblasti a se sadou zón odpovídající bráně, a starý prostředek nechte na místě. Pak přestavte IP konfiguraci a odešlete aktualizaci jedním voláním. To nahrazuje celou kolekci konfigurací, takže aktivně-aktivní brána potřebuje obě, jinak si ponecháte jeden tunel a o druhý přijdete.
$gw = Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub
$pip = New-AzPublicIpAddress -Name pip-gw-hub-2 -ResourceGroupName rg-hub `
-Location westeurope -AllocationMethod Static -Sku Standard
$conf = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 `
-SubnetId $gw.IpConfigurations[0].Subnet.Id -PublicIpAddressId $pip.Id
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -IpConfigurations $conf
Tunely padnou, zatímco se brána znovu zprovozňuje. Vzdálená strana potřebuje plán: partnerský firewall nabízí starou adresu, dokud ji někdo neupraví, a připojení, jehož vzdálený konec očekává předchozí IP, zůstane dole, ať Azure vypadá jakkoli zdravě. Před oknem snižte TTL DNS.
Klienti point-to-site potřebují nový profil, protože stažený balíček nese koncový bod. Vlastní jméno DNS před bránou vás ušetří redistribuce: ponechte jméno, změňte záznam.
Přesun brány do jiného předplatného
Přesun prostředků stěhuje sadu a samotná brána je její nejméně užitečný člen. Virtuální síť, prostředky veřejných IP, místní síťové brány a připojení cestují spolu, protože každý drží odkaz na jiný. Cílové předplatné musí být ve stejném tenantovi, Microsoft.Network v něm musí být zaregistrován a na obou stranách potřebujete právo zápisu.
Validace běží před jakoukoli změnou, takže odmítnutý přesun nechá prostředky na místě. Proto si přesun zaslouží pokus před přestavbou: úspěšný přesun nese veřejnou IP s sebou, takže partneři a seznamy povolení fungují dál, zatímco přestavěná brána málokdy vrátí stejnou adresu.
az resource move --destination-group rg-hub `
--destination-subscription-id 00000000-0000-0000-0000-000000000000 `
--ids /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub
Čtěte selhání validace, místo abyste ho opakovali. Obvyklé příčiny jsou ponechaná závislost, typ prostředku, který nelze přesunout, nebo zámek na některé ze skupin prostředků. Pokud je přesun nemožný, přestavte v cíli a přepněte: potvrďte směrování a ověřování z testovací podsítě, stará připojení zastavte, místo abyste je mazali, a starou cestu odstraňte v pozdějším okně.
Když brána vypadá jako chybějící, zkontrolujte kontext
Chyba nenalezeno je obvykle chyba rozsahu. Účet s několika předplatnými namíří cmdlet na špatné a zpráva obviní prostředek. Hledejte objekt podle plného ID prostředku: ID nese vlastní předplatné, takže pokud se vyřeší, nic nechybí a váš výchozí kontext je špatný.
Dvě další neshody se čtou stejně. Brána komerčního cloudu neexistuje v relaci zaměřené na vládní nebo čínské prostředí a starší verze modulů přehlížejí tvary prostředků, které API už vrací. Připněte předplatné, srovnejte prostředí a pak otevřete případ.
Set-AzContext -SubscriptionId 11111111-1111-1111-1111-111111111111
Get-AzResource -ResourceId /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub
Ověřte z obou stran před úklidem
Připojeno je stav, ne důkaz. Zkontrolujte stav tunelu po připojení, stav BGP peeru, pokud používáte dynamické směrování, a efektivní trasy v pracovní podsíti. Pak protlačte jeden skutečný požadavek aplikací, která na tunelu závisí. Připojení se může hlásit jako připojené, zatímco potřebný prefix v tabulce tras chybí.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Držte starou veřejnou IP odpojenou, ne smazanou, dokud se neuzavře okno návratu, a zapište úpravy partnera a firewallu, aby je šlo vrátit v pořadí.
- Kontext připnutý k předplatnému, které bránu vlastní
- Stará veřejná IP zachována, její závislosti zapsány
- Každé připojení zelené a jeden skutečný požadavek skrz
- Uživatelé point-to-site přesunuti na obnovený profil
- Záznam DNS změněn a jeho předchozí hodnota zaznamenána