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.

ObjectWhere it livesWhat a change forces
Private addressGatewaySubnet prefix, assigned at deploymentSubnet resize or rebuild, then routes, NSGs and peer review
Public addressPublic IP resource referenced by the IP configurationGateway reprovision, peer and allowlist edits, new client profiles
Subscription contextYour PowerShell or CLI sessionNothing 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

Susiję straipsniai