Canvi de la IP pública d'una passarel·la VPN d'Azure i trasllat de subscripció
Guia per canviar la IP pública d'una passarel·la VPN i moure-la entre subscripcions, amb l'inventari, la reversió i les comprovacions de context que mantenen els túnels actius.
A Azure, tres objectes diferents responen al nom d'adreça de la passarel·la. L'adreça privada s'assigna des de GatewaySubnet. L'adreça pública és un recurs d'IP pública a part cap on apunta la configuració IP de la passarel·la. La subscripció i l'entorn de núvol són el context amb què l'intèrpret troba una o l'altra. Canvieu-ne una i les altres dues es queden on eren, i per això la feina amb adreces s'atura tan sovint a mig camí.
Faig aquests canvis en quatre etapes: inventariar els objectes, decidir si la IP pública es mou a la passarel·la existent o si es reconstrueix la passarel·la, aplicar el canvi mentre encara tenim l'adreça antiga, i després verificar cada túnel des dels dos extrems abans d'esborrar res. L'etapa que la gent salta és l'inventari.
Quin dels tres objectes canvieu realment
Poseu nom a l'objecte abans d'obrir el portal. Una passarel·la VPN pren l'adreça privada d'una subxarxa que s'ha de dir exactament GatewaySubnet, i Azure l'assigna des d'aquell prefix; no hi ha cap camp general per fixar-la. L'adreça sembla estable només perquè la subxarxa és estable. Readreceu la subxarxa o reconstrueu la passarel·la i es mou amb elles.
L'adreça pública és editable, però les regles d'SKU decideixen si l'edició és legal. Una passarel·la Basic s'empareixa amb una IP pública dinàmica Basic, les SKU VpnGw necessiten una Standard estàtica i una passarel·la amb redundància de zona necessita una IP pública Standard amb les mateixes zones. L'SKU incorrecta es rebutja abans que caigui cap túnel.
| 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 |
Inventari abans que res es mogui
Primer demostreu la subscripció, perquè la resta de l'inventari no val res sense ella. Captureu la passarel·la, les seves configuracions IP i cada connexió que hi acaba, i guardeu la sortida al costat del registre del canvi.
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
Els ID de recurs importen més que els noms. Una connexió conté referències a la passarel·la i a una passarel·la de xarxa local, i aquests ID surten en scripts, alertes i assignacions de polítiques que ningú no recorda. Lliste també el que queda fora d'Azure: el nom DNS que resol a l'adreça, la llista de permisos del soci, el tallafoc de la seu que fixa l'IP antiga.
Canviar la IP pública a la passarel·la en funcionament
Creeu primer l'adreça de substitució, a la mateixa regió i amb el conjunt de zones que encaixa amb la passarel·la, i deixeu el recurs antic al seu lloc. Després reconstruïu la configuració IP i envieu l'actualització en una sola crida. Aquesta crida substitueix tota la col·lecció de configuracions, així que una passarel·la actiu-actiu necessita les dues o us quedeu amb un túnel i perdeu l'altre.
$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
Els túnels cauen mentre la passarel·la es rearma. El costat remot necessita planificació: un tallafoc del soci continua oferint l'adreça antiga fins que algú l'editi, i una connexió l'extrem remot de la qual espera l'IP anterior queda caiguda per molt sa que sembli Azure. Baixeu el TTL del DNS abans de la finestra.
Els clients punt a lloc necessiten un perfil nou, perquè el paquet descarregat porta el punt final. Un nom DNS propi davant de la passarel·la us estalvia la redistribució: manteniu el nom, canvieu el registre.
Moure la passarel·la a una altra subscripció
Moure recursos trasllada un conjunt, i la passarel·la sola n'és el membre menys útil. La xarxa virtual, els recursos d'IP pública, les passarel·les de xarxa locals i les connexions viatgen juntes perquè cadascun té una referència a un altre. La subscripció de destinació ha de ser al mateix inquilí, Microsoft.Network hi ha d'estar registrat i necessiteu accés d'escriptura als dos costats.
La validació s'executa abans que res canviï, així que un trasllat rebutjat deixa els recursos al seu lloc. Per això el trasllat mereix un intent abans de reconstruir: un trasllat correcte s'emporta la IP pública, de manera que els socis i les llistes de permisos continuen funcionant, mentre que una passarel·la reconstruïda poques vegades retorna la mateixa adreça.
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
Llegiu l'error de validació en lloc de reintentar-lo. Les causes habituals són una dependència que s'ha deixat enrere, un tipus de recurs que no es pot moure o un bloqueig en qualsevol dels dos grups de recursos. Si el trasllat és impossible, reconstruïu a la destinació i feu el canvi: confirmeu l'encaminament i l'autenticació des d'una subxarxa de prova, atureu les connexions antigues en lloc d'esborrar-les i traieu el camí antic en una finestra posterior.
Quan la passarel·la sembla que falta, comproveu el context
L'error de no trobat sol ser un error d'abast. Un compte amb diverses subscripcions apunta un cmdlet a la que no toca, i el missatge culpa el recurs. Cerqueu l'objecte pel seu ID de recurs complet: l'ID porta la seva pròpia subscripció, així que si es resol, no falta res i el vostre context per defecte és incorrecte.
Dos desajustaments més es llegeixen igual. Una passarel·la de núvol comercial no existeix en una sessió adreçada a un entorn governamental o de la Xina, i les versions antigues dels mòduls no veuen formes de recurs que l'API ja retorna. Fixeu la subscripció, feu coincidir l'entorn i després obriu un cas.
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
Verifiqueu des dels dos extrems abans de netejar
Connectat és un estat, no una prova. Comproveu l'estat del túnel per connexió, l'estat del veí BGP si feu encaminament dinàmic i les rutes efectives en una subxarxa de càrrega. Després passeu una petició real per una aplicació que depengui del túnel. Una connexió pot informar que està connectada mentre el prefix que necessiteu falta a la taula de rutes.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Mantingueu l'IP pública antiga desassociada en lloc d'esborrada fins que es tanqui la finestra de reversió, i anoteu les edicions del soci i del tallafoc perquè es puguin desfer en ordre.
- Context fixat a la subscripció que posseeix la passarel·la
- IP pública antiga conservada i les seves dependències anotades
- Cada connexió en verd i una petició real a través seu
- Usuaris punt a lloc passats al perfil actualitzat
- Registre DNS canviat i el seu valor anterior anotat