Промена јавне IP адресе Azure VPN мрежног пролаза и премештање претплате
Упутство за замену јавне IP адресе VPN пролаза и његово премештање између претплата, са инвентаром, враћањем и проверама контекста које држе тунеле активним.
У Azureу три различита објекта носе назив адреса пролаза. Приватна адреса долази из GatewaySubnet. Јавна адреса је засебан ресурс јавне IP адресе на који показује IP конфигурација пролаза. Претплата и облачно окружење су контекст којим љуска проналази једно или друго. Промените једно, а друга два остају на месту — зато рад на адресама тако често стане на пола.
Ове промене радим у четири фазе: инвентар објеката, одлука да ли се јавна IP адреса сели на постојећи пролаз или се пролаз обнавља, примена промене док је стара адреса још при руци, па провера сваког тунела са обе стране пре брисања. Фаза коју људи прескачу јесте инвентар.
Који од три објекта заиста мењате
Именујте објекат пре отварања портала. VPN пролаз узима приватну адресу из подмреже која се мора звати тачно GatewaySubnet и Azure је додељује из тог префикса; не постоји опште поље за њено причвршћивање. Адреса изгледа стабилно само зато што је подмрежа стабилна. Промените адресу подмреже или обновите пролаз и она се сели с њима.
Јавна адреса је изменљива, али правила SKU-а одлучују да ли је измена дозвољена. Basic пролаз иде са динамичком јавном IP адресом Basic, VpnGw SKU-ови траже статичку Standard, а зонски редундантан пролаз тражи јавну IP адресу Standard са истим зонама. Погрешан SKU се одбија пре него што тунел падне.
| 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 |
Инвентар пре било каквог померања
Најпре докажите претплату, јер без ње остатак инвентара ништа не вреди. Забележите пролаз, његове IP конфигурације и сваку везу која се завршава на њему, а испис сачувајте уз запис о промени.
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-ови ресурса важнији су од назива. Веза држи референце на пролаз и на локални мрежни пролаз, а ти ID-ови се појављују у скриптама, упозорењима и доделама правила које нико не памти. Пописшите и оно изван Azureа: DNS назив који води на адресу, листу дозвола партнера, огранковни заштитни зид који причвршћује стару IP адресу.
Замена јавне IP адресе на пролазу у раду
Прво направите заменску адресу, у истој регији и са скупом зона који одговара пролазу, а стари ресурс оставите на месту. Затим обновите IP конфигурацију и пошаљите ажурирање једним позивом. Тај позив замењује целу збирку конфигурација, па активно-активном пролазу требају обе, иначе задржавате један тунел и губите други.
$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
Тунели падају док се пролаз поново опрема. Удаљена страна треба план: партнеров заштитни зид нуди стару адресу док је неко не уреди, а веза чији удаљени крај очекује претходну IP адресу остаје доле колико год Azure изгледао здраво. Спустите DNS TTL пре прозора.
Point-to-site клијентима треба нови профил јер преузети пакет носи крајњу тачку. Прилагођени DNS назив испред пролаза штеди вам редистрибуцију: задржите назив, промените запис.
Премештање пролаза у другу претплату
Премештање ресурса сели скуп, а пролаз је сам његов најмање корисни члан. Виртуелна мрежа, ресурси јавне IP адресе, локални мрежни пролази и везе путују заједно јер сваки држи референцу на другога. Циљна претплата мора бити у истом станару, Microsoft.Network мора бити тамо регистрован, а ви требате право писања на обе стране.
Валидација се врти пре икакве промене, па одбијено премештање оставља ресурсе на месту. Зато премештање вреди покушати пре обнове: успешно премештање носи јавну IP адресу са собом, па партнери и листе дозвола настављају да раде, док обновљени пролаз ретко враћа исту адресу.
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
Прочитајте неуспех валидације уместо да га понављате. Уобичајени узроци су заостала зависност, врста ресурса која се не може преместити или закључавање на некој од група ресурса. Ако премештање није могуће, обновите у циљу и пређите: потврдите рутирање и аутентификацију из тестне подмреже, зауставите старе везе уместо да их бришете, па уклоните стари пут у каснијем прозору.
Кад пролаз изгледа као да недостаје, проверите контекст
Грешка није пронађено обично је грешка опсега. Налог са више претплата усмери cmdlet на погрешну, а порука окриви ресурс. Потражите објекат по пуном ID-у ресурса: ID носи сопствену претплату, па ако се разреши, ништа не недостаје и ваш подразумевани контекст је погрешан.
Још два несклада читају се исто. Пролаз комерцијалног облака не постоји у сесији усмереној на владино или кинеско окружење, а старије верзије модула промашују облике ресурса које API већ враћа. Причврстите претплату, ускладите окружење, па отворите захтев.
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
Проверите са обе стране пре чишћења
Повезано је стање, не доказ. Проверите стање тунела по вези, стање BGP суседа ако користите динамичко рутирање и ефективне руте на радној подмрежи. Затим пропустите један стварни захтев кроз апликацију која зависи од тунела. Веза се може пријавити као повезана док префикс који вам треба није у табели рута.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Држите стару јавну IP адресу одспојену, а не избрисану, док се прозор повратка не затвори, и запишите измене партнера и заштитног зида да се могу обрнути редом.
- Контекст причвршћен на претплату која поседује пролаз
- Стара јавна IP адреса задржана, њене зависности записане
- Свака веза зелена и један стварни захтев кроз њу
- Point-to-site корисници пребачени на освежени профил
- DNS запис промењен и претходна вредност забележена