Menukar IP awam gateway VPN Azure dan memindahkan langganan
Panduan menukar IP awam gateway VPN dan memindahkannya antara langganan, dengan inventori, rollback dan pemeriksaan konteks yang mengekalkan terowong.
Dalam Azure tiga objek berbeza dipanggil alamat gateway. Alamat persendirian diperuntukkan daripada GatewaySubnet. Alamat awam ialah sumber IP awam berasingan yang dituju oleh konfigurasi IP gateway. Langganan dan persekitaran awan ialah konteks yang digunakan shell anda untuk mencari salah satunya. Tukar satu dan dua yang lain kekal di tempatnya, sebab itu kerja alamat sering berhenti di tengah jalan.
Saya melakukan perubahan ini dalam empat peringkat: inventori objek, putuskan sama ada IP awam berpindah pada gateway sedia ada atau gateway dibina semula, laksanakan perubahan semasa alamat lama masih di tangan, kemudian sahkan setiap terowong dari kedua-dua hujung sebelum memadam apa-apa. Peringkat yang orang langkau ialah inventori.
Antara tiga objek itu, yang mana sebenarnya anda tukar
Namakan objek sebelum membuka portal. Gateway VPN mengambil alamat persendiriannya daripada subnet yang mesti dinamakan tepat GatewaySubnet, dan Azure memperuntukkannya daripada awalan itu; tiada medan umum untuk memakukannya. Alamat kelihatan stabil hanya kerana subnet stabil. Alamatkan semula subnet atau bina semula gateway dan ia bergerak bersama.
Alamat awam boleh diedit, tetapi peraturan SKU menentukan sama ada editan itu sah. Gateway Basic berpasangan dengan IP awam dinamik Basic, SKU VpnGw memerlukan Standard statik, dan gateway berlebihan zon memerlukan IP awam Standard dengan zon yang sama. SKU yang salah ditolak sebelum terowong putus.
| 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 |
Inventori sebelum apa-apa bergerak
Buktikan langganan dahulu, kerana tanpanya inventori selebihnya tidak berguna. Catat gateway, konfigurasi IPnya dan setiap sambungan yang berakhir di situ, dan simpan output di sebelah rekod perubahan.
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 sumber lebih penting daripada nama. Sambungan menyimpan rujukan kepada gateway dan kepada gateway rangkaian tempatan, dan ID itu muncul dalam skrip, amaran dan penetapan dasar yang tiada siapa ingat. Senaraikan juga apa yang di luar Azure: nama DNS yang menuju ke alamat, senarai kebenaran rakan kongsi, dan firewall cawangan yang memaku IP lama.
Menukar IP awam pada gateway yang berjalan
Cipta alamat pengganti dahulu, di rantau yang sama dan dengan set zon yang sepadan dengan gateway, dan biarkan sumber lama di tempatnya. Kemudian bina semula konfigurasi IP dan hantar kemas kini dalam satu panggilan. Panggilan itu menggantikan seluruh koleksi konfigurasi, jadi gateway aktif-aktif memerlukan kedua-duanya, jika tidak anda menyimpan satu terowong dan kehilangan yang lain.
$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
Terowong putus semasa gateway disediakan semula. Sisi jauh memerlukan jadual: firewall rakan kongsi terus menawarkan alamat lama sehingga seseorang mengeditnya, dan sambungan yang hujung jauhnya menjangkakan IP sebelumnya kekal mati walau seberapa sihat Azure kelihatan. Turunkan TTL DNS sebelum tetingkap.
Klien titik-ke-tapak memerlukan profil baharu, kerana pakej yang dimuat turun membawa titik akhir. Nama DNS tersuai di hadapan gateway menjimatkan pengagihan semula: kekalkan nama, tukar rekod.
Memindahkan gateway ke langganan lain
Pemindahan sumber memindahkan satu set, dan gateway sendirian ialah ahlinya yang paling tidak berguna. Rangkaian maya, sumber IP awam, gateway rangkaian tempatan dan sambungan bergerak bersama kerana setiap satu memegang rujukan kepada yang lain. Langganan sasaran mesti berada dalam penyewa yang sama, Microsoft.Network mesti didaftarkan di sana, dan anda memerlukan akses tulis pada kedua-dua belah.
Pengesahan berjalan sebelum apa-apa berubah, jadi pemindahan yang ditolak membiarkan sumber di tempatnya. Sebab itu pemindahan wajar dicuba sebelum membina semula: pemindahan berjaya membawa IP awam bersama, jadi rakan kongsi dan senarai kebenaran terus berfungsi, manakala gateway yang dibina semula jarang mengembalikan alamat yang sama.
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
Baca kegagalan pengesahan daripada mengulanginya. Punca biasa ialah kebergantungan yang ditinggalkan, jenis sumber yang tidak boleh dipindahkan, atau kunci pada mana-mana kumpulan sumber. Jika pemindahan mustahil, bina semula di sasaran dan tukar: sahkan penghalaan dan pengesahan daripada subnet ujian, hentikan sambungan lama daripada memadamnya, kemudian buang laluan lama dalam tetingkap kemudian.
Apabila gateway kelihatan hilang, semak konteks
Ralat tidak ditemui biasanya ralat skop. Akaun dengan beberapa langganan menghala cmdlet ke yang salah, dan mesej menyalahkan sumber. Cari objek itu melalui ID sumber penuhnya: ID membawa langganannya sendiri, jadi jika ia diselesaikan, tiada apa yang hilang dan konteks lalai anda salah.
Dua lagi ketidakpadanan dibaca sama. Gateway awan komersial tidak wujud dalam sesi yang ditujukan kepada persekitaran kerajaan atau China, dan versi modul lama terlepas bentuk sumber yang sudah dikembalikan API. Pakukan langganan, padankan persekitaran, kemudian buka kes.
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
Sahkan dari kedua-dua hujung sebelum membersihkan
Bersambung ialah keadaan, bukan bukti. Semak status terowong bagi setiap sambungan, status rakan BGP jika menggunakan penghalaan dinamik, dan laluan berkesan pada subnet beban kerja. Kemudian hantar satu permintaan sebenar melalui aplikasi yang bergantung pada terowong. Sambungan boleh melaporkan bersambung sedangkan awalan yang anda perlukan tiada dalam jadual laluan.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Biarkan IP awam lama terlepas dan bukan dipadam sehingga tetingkap fallback ditutup, dan catat editan rakan kongsi serta firewall supaya boleh diterbalikkan mengikut urutan.
- Konteks dipakukan pada langganan pemilik gateway
- IP awam lama disimpan, kebergantungannya dicatat
- Setiap sambungan hijau dan satu permintaan sebenar melaluinya
- Pengguna titik-ke-tapak dipindahkan ke profil yang dikemas kini
- Rekod DNS diubah dan nilai sebelumnya dicatat