Azure VPN šliuzo viešojo IP keitimas ir prenumeratos perkėlimas
Vadovas, kaip pakeisti VPN šliuzo viešąjį IP ir perkelti jį tarp prenumeratų, su inventorizacija, atsukimu ir konteksto patikromis, kurios palaiko tunelius.
Azure trys skirtingi objektai vadinami šliuzo adresu. Privatusis adresas priskiriamas iš GatewaySubnet. Viešasis adresas yra atskiras viešojo IP išteklius, į kurį nurodo šliuzo IP konfigūracija. Prenumerata ir debesijos aplinka yra kontekstas, kuriuo jūsų shell randa vieną ar kitą. Pakeiskite vieną, o kiti du lieka savo vietose, todėl adresų darbas taip dažnai sustoja pusiaukelėje.
Šiuos pakeitimus atlieku keturiais etapais: objektų inventorizacija, sprendimas, ar viešasis IP keliasi esamame šliuze, ar šliuzas perstatomas, pakeitimo taikymas, kol senasis adresas dar po ranka, ir po to kiekvieno tunelio patikra iš abiejų pusių prieš ką nors trinant. Etapas, kurį žmonės praleidžia, yra inventorizacija.
Kurį iš trijų objektų jūs iš tikrųjų keičiate
Įvardykite objektą prieš atidarydami portalą. VPN šliuzas privatųjį adresą ima iš potinklio, kuris turi būti vadinamas tiksliai GatewaySubnet, ir Azure jį priskiria iš to prefikso; bendro lauko jam prisegti nėra. Adresas atrodo stabilus tik todėl, kad potinklis stabilus. Peradresuokite potinklį arba perstatykite šliuzą, ir jis judės kartu.
Viešąjį adresą galima redaguoti, bet SKU taisyklės sprendžia, ar redagavimas teisėtas. Basic šliuzas dera su Basic dinaminiu viešuoju IP, VpnGw SKU reikia Standard statinio, o zonų atsparus šliuzas reikalauja Standard viešojo IP su tomis pačiomis zonomis. Netinkamas SKU atmetamas prieš tuneliui krentant.
| 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 |
Inventorizacija prieš ką nors judinant
Pirmiausia įrodykite prenumeratą, nes be jos likusi inventorizacija bevertė. Užfiksuokite šliuzą, jo IP konfigūracijas ir kiekvieną jungtį, kuri juo baigiasi, o išvestį laikykite šalia pakeitimo įrašo.
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
Išteklių ID svarbesni už pavadinimus. Jungtis laiko nuorodas į šliuzą ir į vietinį tinklo šliuzą, o šie ID pasirodo scenarijuose, įspėjimuose ir strategijų priskyrimuose, kurių niekas neatsimena. Išvardykite ir tai, kas yra už Azure ribų: DNS vardą, vedantį į adresą, partnerio leidimų sąrašą, filialo užkardą, kuri fiksuoja senąjį IP.
Viešojo IP keitimas veikiančiame šliuze
Pirmiausia sukurkite pakaitinį adresą tame pačiame regione ir su šliuzui tinkančiu zonų rinkiniu, o senąjį išteklių palikite vietoje. Tada perstatykite IP konfigūraciją ir vienu kvietimu išsiųskite atnaujinimą. Tas kvietimas pakeičia visą konfigūracijų rinkinį, todėl aktyviam-aktyviam šliuzui reikia abiejų, kitaip liks vienas tunelis, o kitas bus prarastas.
$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
Tuneliai krenta, kol šliuzas ruošiamas iš naujo. Nuotolinei pusei reikia grafiko: partnerio užkarda siūlo senąjį adresą, kol kas nors jį paredaguos, o jungtis, kurios nuotolinis galas laukia ankstesnio IP, lieka žemai, kad ir kaip sveikai atrodytų Azure. Prieš langą sumažinkite DNS TTL.
Point-to-site klientams reikia naujo profilio, nes atsisiųstas paketas neša galinį tašką. Pasirinktinis DNS vardas prieš šliuzą sutaupo perskirstymą: palikite vardą, pakeiskite įrašą.
Šliuzo perkėlimas į kitą prenumeratą
Išteklių perkėlimas perkelia rinkinį, o šliuzas vienas yra mažiausiai naudinga jo dalis. Virtualusis tinklas, viešojo IP ištekliai, vietiniai tinklo šliuzai ir jungtys keliauja kartu, nes kiekvienas laiko nuorodą į kitą. Tikslinė prenumerata turi būti tame pačiame nuomininke, Microsoft.Network turi būti ten registruotas, o jums reikia rašymo prieigos abiejose pusėse.
Validacija vykdoma prieš bet kokį pakeitimą, todėl atmestas perkėlimas palieka išteklius vietoje. Todėl perkėlimą verta išbandyti prieš perstatymą: sėkmingas perkėlimas nusineša viešąjį IP, tad partneriai ir leidimų sąrašai veikia toliau, o perstatytas šliuzas retai grąžina tą patį adresą.
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
Skaitykite validacijos klaidą, o ne kartokite ją. Įprastos priežastys yra palikta priklausomybė, neperkeliamas ištekliaus tipas arba užraktas vienoje iš išteklių grupių. Jei perkėlimas neįmanomas, perstatykite tikslą ir perjunkite: patvirtinkite maršrutizavimą ir autentifikavimą iš bandomojo potinklio, sustabdykite senas jungtis, o ne trinkite jas, tada pašalinkite seną kelią vėlesniame lange.
Kai šliuzas atrodo dingęs, patikrinkite kontekstą
Nerasta klaida paprastai yra aprėpties klaida. Paskyra su keliomis prenumeratomis nukreipia cmdlet į neteisingą, o pranešimas kaltina išteklių. Ieškokite objekto pagal visą ištekliaus ID: ID neša savo prenumeratą, tad jei jis išsprendžiamas, nieko netrūksta ir jūsų numatytasis kontekstas neteisingas.
Dar du neatitikimai skaitomi taip pat. Komercinės debesijos šliuzo nėra sesijoje, nukreiptoje į vyriausybės ar Kinijos aplinką, o senesnės modulių versijos praleidžia išteklių formas, kurias API jau grąžina. Užfiksuokite prenumeratą, suderinkite aplinką, tada atidarykite atvejį.
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
Patikrinkite iš abiejų pusių prieš tvarkydami
Prijungta yra būsena, ne įrodymas. Patikrinkite tunelio būseną kiekvienai jungčiai, BGP kaimyno būseną, jei naudojate dinaminį maršrutizavimą, ir efektyvius maršrutus darbo krūvio potinklyje. Tada praleiskite vieną tikrą užklausą per programą, kuri priklauso nuo tunelio. Jungtis gali pranešti esanti prijungta, kai reikiamo prefikso maršrutų lentelėje nėra.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Laikykite senąjį viešąjį IP atjungtą, o ne ištrintą, kol atsukimo langas neužsidarys, ir užrašykite partnerio bei užkardos pakeitimus, kad juos būtų galima atšaukti eilės tvarka.
- Kontekstas užfiksuotas prenumeratoje, kuriai priklauso šliuzas
- Senas viešasis IP išsaugotas, jo priklausomybės užrašytos
- Kiekviena jungtis žalia ir viena tikra užklausa per ją
- Point-to-site naudotojai perkelti į atnaujintą profilį
- DNS įrašas pakeistas, ankstesnė reikšmė užrašyta