U Azureu tri različita objekta nose naziv adresa pristupnika. Privatna adresa dolazi iz GatewaySubnet. Javna adresa zaseban je resurs javne IP adrese na koji pokazuje IP konfiguracija pristupnika. Pretplata i oblak okruženje su kontekst kojim ljuska pronalazi jedno ili drugo. Promijenite jedno, a druga dva ostaju na mjestu — zato rad na adresama tako često stane na pola.

Te promjene radim u četiri faze: inventura objekata, odluka seli li se javna IP adresa na postojeći pristupnik ili se pristupnik obnavlja, primjena promjene dok je stara adresa još pri ruci, pa provjera svakog tunela s obje strane prije brisanja. Faza koju ljudi preskaču jest inventura.

Koji od tri objekta zapravo mijenjate

Imenujte objekt prije otvaranja portala. VPN pristupnik uzima privatnu adresu iz podmreže koja se mora zvati točno GatewaySubnet i Azure je dodjeljuje iz tog prefiksa; ne postoji opće polje za njezino prikvačivanje. Adresa izgleda stabilno samo zato što je podmreža stabilna. Promijenite adresu podmreže ili obnovite pristupnik i ona seli s njima.

Javna adresa može se uređivati, ali pravila SKU-a odlučuju je li to dopušteno. Basic pristupnik ide s dinamičnom javnom IP adresom Basic, VpnGw SKU-ovi traže statičnu Standard, a zonski redundantan pristupnik traži javnu IP adresu Standard s istim zonama. Pogrešan SKU odbija se prije nego tunel padne.

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

Inventura prije bilo kakvog pomicanja

Najprije dokažite pretplatu, jer bez nje ostatak inventure ništa ne vrijedi. Zabilježite pristupnik, njegove IP konfiguracije i svaku vezu koja završava na njemu, a ispis spremite uz zapis o promjeni.

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-ovi resursa važniji su od naziva. Veza drži reference na pristupnik i na lokalni mrežni pristupnik, a ti se ID-ovi pojavljuju u skriptama, alarmima i dodjelama pravila koje nitko ne pamti. Popišite i ono izvan Azurea: DNS naziv koji vodi na adresu, popis dopuštenja partnera, ogranak vatrozid koji prikvačuje staru IP adresu.

Zamjena javne IP adrese na pristupniku u radu

Prvo stvorite zamjensku adresu, u istoj regiji i sa skupom zona koji odgovara pristupniku, a stari resurs ostavite na mjestu. Zatim obnovite IP konfiguraciju i pošaljite ažuriranje jednim pozivom. Taj poziv zamjenjuje cijelu zbirku konfiguracija, pa aktivno-aktivni pristupnik treba obje, inače zadržavate jedan tunel i gubite drugi.

$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

Tuneli padaju dok se pristupnik ponovno osposobljava. Udaljena strana treba plan: partnerov vatrozid nudi staru adresu dok je netko ne uredi, a veza čiji udaljeni kraj očekuje prethodnu IP adresu ostaje dolje koliko god Azure izgledao zdrav. Spustite DNS TTL prije prozora.

Point-to-site klijenti trebaju novi profil jer preuzeti paket nosi krajnju točku. Prilagođeni DNS naziv ispred pristupnika štedi vam redistribuciju: zadržite naziv, promijenite zapis.

Premještanje pristupnika u drugu pretplatu

Premještanje resursa seli skup, a pristupnik je sam njegov najmanje koristan član. Virtualna mreža, resursi javne IP adrese, lokalni mrežni pristupnici i veze putuju zajedno jer svaki drži referencu na drugoga. Ciljna pretplata mora biti u istom klijentu, Microsoft.Network mora biti ondje registriran, a vi trebate pravo pisanja na obje strane.

Validacija se vrti prije ikakve promjene, pa odbijeno premještanje ostavlja resurse na mjestu. Zato premještanje vrijedi pokušati prije obnove: uspješno premještanje nosi javnu IP adresu sa sobom, pa partneri i popisi dopuštenja nastavljaju raditi, dok obnovljeni pristupnik rijetko vraća istu 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

Pročitajte neuspjeh validacije umjesto da ga ponavljate. Uobičajeni su uzroci zaostala ovisnost, vrsta resursa koja se ne može premjestiti ili zaključavanje na nekoj od grupa resursa. Ako premještanje nije moguće, obnovite u cilju i prijeđite: potvrdite usmjeravanje i autentifikaciju iz testne podmreže, zaustavite stare veze umjesto da ih brišete, pa uklonite stari put u kasnijem prozoru.

Kad pristupnik izgleda kao da nedostaje, provjerite kontekst

Pogreška nije pronađeno obično je pogreška opsega. Račun s više pretplata usmjeri cmdlet na pogrešnu, a poruka okrivi resurs. Potražite objekt po punom ID-u resursa: ID nosi vlastitu pretplatu, pa ako se razriješi, ništa ne nedostaje i vaš zadani kontekst je pogrešan.

Još dva nesklada čitaju se isto. Pristupnik komercijalnog oblaka ne postoji u sesiji usmjerenoj na vladino ili kinesko okruženje, a starije verzije modula promašuju oblike resursa koje API već vraća. Prikvačite pretplatu, uskladite okruženje, pa otvorite zahtjev.

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

Provjerite s obje strane prije čišćenja

Povezano je stanje, ne dokaz. Provjerite stanje tunela po vezi, stanje BGP susjeda ako koristite dinamičko usmjeravanje i efektivne rute na radnoj podmreži. Zatim propustite jedan stvarni zahtjev kroz aplikaciju koja ovisi o tunelu. Veza se može prijaviti kao povezana dok prefiks koji trebate nije u tablici ruta.

Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app

Držite staru javnu IP adresu odspojenu, a ne izbrisanu, dok se prozor povratka ne zatvori, i zapišite izmjene partnera i vatrozida da se mogu obrnuti redom.

  • Kontekst prikvačen na pretplatu koja posjeduje pristupnik
  • Stara javna IP adresa zadržana, njezine ovisnosti zapisane
  • Svaka veza zelena i jedan stvarni zahtjev kroz nju
  • Point-to-site korisnici prebačeni na osvježeni profil
  • DNS zapis promijenjen i prethodna vrijednost zabilježena

Povezani članci