Azure VPN Gateway publik IP dəyişikliyi və abunəlik köçürülməsi
VPN şlüzünün publik IP-sini dəyişmək və onu abunəliklər arasında köçürmək üçün runbook: inventar, geri qaytarma və tunelləri işlək saxlayan kontekst yoxlamaları.
Azure-da şlüz ünvanı adlanan üç fərqli obyekt var. Şəxsi ünvan GatewaySubnet-dən ayrılır. Publik ünvan şlüzün IP konfiqurasiyasının göstərdiyi ayrıca publik IP resursudur. Abunəlik və bulud mühiti isə qabığınızın hər ikisini tapmaq üçün istifadə etdiyi kontekstdir. Birini dəyişin, digər ikisi yerində qalır — ünvan işlərinin yarıda qalmasının səbəbi budur.
Bu dəyişiklikləri dörd mərhələdə edirəm: obyektləri inventarlaşdırıram, publik IP-nin mövcud şlüzdə qalıb-qalmayacağına və ya şlüzün yenidən qurulacağına qərar verirəm, dəyişikliyi köhnə ünvan hələ əlimdə ikən tətbiq edirəm, sonra heç nəyi silməzdən əvvəl hər tuneli iki tərəfdən yoxlayıram. İnsanların atladığı mərhələ inventardır.
Əslində üç obyektdən hansını dəyişirsiniz
Portalı açmazdan əvvəl obyektin adını deyin. VPN şlüzü şəxsi ünvanını mütləq GatewaySubnet adlanan şəbəkədən alır və Azure onu həmin prefiksdən ayırır; onu bərkitmək üçün ümumi sahə yoxdur. Ünvan yalnız şəbəkə sabit olduğu üçün sabit görünür. Şəbəkəni yenidən ünvanlaşdırın və ya şlüzü yenidən qurun — ünvan onlarla birlikdə dəyişir.
Publik ünvan redaktə olunur, lakin SKU qaydaları redaktənin qanuni olub-olmadığını həll edir. Basic şlüz Basic dinamik publik IP ilə uyğunlaşır, VpnGw SKU-ları Standard statik tələb edir, zona-ehtiyatlı şlüz isə eyni zonaları daşıyan Standard publik IP tələb edir. Səhv SKU tunel düşməzdən əvvəl rədd edilir.
| 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 |
Heç nə tərpənməzdən əvvəl inventar
Əvvəlcə abunəliyi sübut edin, çünki onsuz inventarın qalanı dəyərsizdir. Şlüzü, onun IP konfiqurasiyalarını və orada bitən hər bağlantını qeyd edin, çıxışı dəyişiklik qeydinin yanında saxlayın.
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
Resurs ID-ləri adlardan daha vacibdir. Bağlantı şlüzə və yerli şəbəkə şlüzünə istinadlar saxlayır və bu ID-lər heç kimin xatırlamadığı skriptlərdə, xəbərdarlıqlarda və siyasət təyinatlarında görünür. Azure-dan kənarda olanları da siyahıya alın: ünvana çevrilən DNS adı, tərəfdaşın icazə siyahısı, köhnə IP-ni bərkidən filial firewall-u.
İşləyən şlüzdə publik IP-nin dəyişdirilməsi
Əvəzedici ünvanı əvvəlcə eyni regionda və şlüzə uyğun zona dəsti ilə yaradın, köhnə resursu yerində saxlayın. Sonra IP konfiqurasiyasını yenidən qurun və yeniləməni bir çağırışla göndərin. Həmin çağırış bütün konfiqurasiya toplusunu əvəz edir, ona görə aktiv-aktiv şlüz hər iki konfiqurasiyanı tələb edir; əks halda bir tunel qalır, digəri itir.
$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
Şlüz yenidən təmin edilərkən tunellər düşür. Uzaq tərəf cədvələ ehtiyac duyur: tərəfdaş firewall köhnə ünvanı kiminsə redaktəsinə qədər təklif edir və uzaq ucu əvvəlki IP-ni gözləyən bağlantı Azure nə qədər sağlam görünsə də düşmüş qalır. Pəncərədən əvvəl DNS TTL-ni aşağı salın.
Nöqtə-üzbəüz müştərilər təzə profil tələb edir, çünki endirilən paket son nöqtəni daşıyır. Şlüzün qarşısında fərdi DNS adı sizi yenidən paylamadan xilas edir: adı saxlayın, qeydi dəyişin.
Şlüzün başqa abunəliyə köçürülməsi
Resurs köçürülməsi bir dəsti yerini dəyişir və tək şlüz onun ən az faydalı üzvüdür. Virtual şəbəkə, publik IP resursları, yerli şəbəkə şlüzləri və bağlantılar birlikdə gedir, çünki hər biri digərinə istinad saxlayır. Hədəf abunəlik eyni kirayəçidə olmalı, Microsoft.Network orada qeydiyyatdan keçməli və hər iki tərəfdə yazma icazəniz olmalıdır.
Validasiya hər şey dəyişməzdən əvvəl işləyir, ona görə rədd edilən köçürmə resursları yerində qoyur. Buna görə köçürmə yenidən qurmadan əvvəl cəhdə layiqdir: uğurlu köçürmə publik IP-ni özü ilə aparır, tərəfdaşlar və icazə siyahıları işləməyə davam edir; yenidən qurulmuş şlüz isə eyni ünvanı nadir hallarda qaytarır.
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
Validasiya uğursuzluğunu yenidən cəhd etmək əvəzinə oxuyun. Adi səbəblər geridə qalmış asılılıq, köçürülə bilməyən resurs növü və ya resurs qruplarından birindəki kiliddir. Köçürmə mümkün deyilsə, hədəfdə yenidən qurun və keçid edin: test şəbəkəsindən marşrutlaşdırma və autentifikasiyanı təsdiqləyin, köhnə bağlantıları silmək əvəzinə dayandırın, sonra köhnə yolu sonrakı pəncərədə çıxarın.
Şlüz itmiş görünəndə kontekstə baxın
Tapılmadı xətası adətən əhatə xətasıdır. Bir neçə abunəliyi olan hesab cmdlet-i səhv abunəliyə yönəldir və mesaj resursu günahlandırır. Obyekti tam resurs ID-si ilə axtarın: ID öz abunəliyini daşıyır, ona görə həll olunursa, heç nə itməyib və defolt kontekstiniz səhvdir.
Daha iki uyğunsuzluq eyni cür oxunur. Kommersiya bulud şlüzü hökumət və ya Çin mühitinə yönəlmiş sessiyada mövcud deyil, köhnə modul versiyaları isə API-nin artıq qaytardığı resurs formalarını qaçırır. Abunəliyi bərkidin, mühiti uyğunlaşdırın, sonra dəstək müraciəti açın.
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
Təmizləmədən əvvəl iki tərəfdən yoxlayın
Qoşulub statusu bir vəziyyətdir, sübut deyil. Hər bağlantı üzrə tunel statusunu, dinamik marşrutlaşdırma işlədirsinizsə BGP peer statusunu və iş yükü şəbəkəsində effektiv marşrutları yoxlayın. Sonra tuneldən asılı tətbiqdən bir real sorğu keçirin. Bağlantı qoşulub bildirə bilər, halbuki lazım olan prefiks marşrut cədvəlində yoxdur.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Köhnə publik IP-ni geri qaytarma pəncərəsi bağlanana qədər silmək əvəzinə əlaqəsiz saxlayın və tərəfdaş və firewall redaktələrini sıra ilə geri qaytarıla biləcək şəkildə yazın.
- Kontekst şlüzü sahiblənən abunəliyə bərkidilib
- Köhnə publik IP saxlanılıb, asılılıqları yazılıb
- Hər bağlantı yaşıl və ondan keçən bir real sorğu
- Nöqtə-üzbəüz istifadəçilər yenilənmiş profilə keçirilib
- DNS qeydi dəyişdirilib və əvvəlki dəyəri qeyd olunub