Mengganti IP publik gateway VPN Azure dan memindahkan langganan
Panduan mengganti IP publik gateway VPN dan memindahkannya antar langganan, lengkap dengan inventaris, rollback, dan pemeriksaan konteks yang menjaga terowongan tetap hidup.
Di Azure ada tiga objek berbeda yang disebut alamat gateway. Alamat privat dialokasikan dari GatewaySubnet. Alamat publik adalah resource IP publik terpisah yang dituju konfigurasi IP gateway. Langganan dan lingkungan cloud adalah konteks yang dipakai shell Anda untuk menemukan salah satunya. Ubah satu, dua lainnya tetap di tempatnya, itulah sebabnya pekerjaan alamat sering berhenti di tengah jalan.
Saya menjalankan perubahan ini dalam empat tahap: inventaris objek, putuskan apakah IP publik pindah ke gateway yang ada atau gateway dibangun ulang, terapkan perubahan selagi alamat lama masih di tangan, lalu verifikasi setiap terowongan dari kedua ujung sebelum menghapus apa pun. Tahap yang dilewatkan orang adalah inventaris.
Objek mana dari ketiganya yang benar-benar Anda ubah
Namai objeknya sebelum membuka portal. Gateway VPN mengambil alamat privatnya dari subnet yang harus bernama tepat GatewaySubnet, dan Azure mengalokasikannya dari prefiks itu; tidak ada kolom umum untuk memakukannya. Alamat tampak stabil hanya karena subnetnya stabil. Ubah alamat subnet atau bangun ulang gateway dan alamatnya ikut berpindah.
Alamat publik bisa diedit, tetapi aturan SKU menentukan apakah editan itu sah. Gateway Basic berpasangan dengan IP publik dinamis Basic, SKU VpnGw memerlukan Standard statis, dan gateway redundan zona memerlukan IP publik Standard dengan zona yang sama. SKU yang salah ditolak sebelum terowongan 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 |
Inventaris sebelum ada yang bergerak
Buktikan langganannya dulu, karena tanpa itu inventaris selebihnya tidak berguna. Catat gateway, konfigurasi IP-nya, dan setiap koneksi yang berakhir di sana, lalu simpan keluarannya di samping catatan 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 resource lebih penting daripada nama. Sebuah koneksi menyimpan referensi ke gateway dan ke gateway jaringan lokal, dan ID itu muncul di skrip, alarm, dan penetapan kebijakan yang tidak diingat siapa pun. Daftarkan juga yang berada di luar Azure: nama DNS yang mengarah ke alamat, daftar izin mitra, dan firewall cabang yang memaku IP lama.
Menukar IP publik pada gateway yang berjalan
Buat alamat pengganti lebih dulu, di wilayah yang sama dan dengan kumpulan zona yang cocok dengan gateway, lalu biarkan resource lama tetap ada. Setelah itu bangun ulang konfigurasi IP dan kirim pembaruan dalam satu panggilan. Panggilan itu mengganti seluruh kumpulan konfigurasi, jadi gateway aktif-aktif memerlukan keduanya, jika tidak Anda menyimpan satu terowongan 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
Terowongan putus saat gateway disediakan ulang. Sisi lawan memerlukan jadwal: firewall mitra terus menawarkan alamat lama sampai seseorang mengeditnya, dan koneksi yang ujung jauhnya mengharapkan IP sebelumnya tetap mati seberapa sehat pun Azure terlihat. Turunkan TTL DNS sebelum jendelanya.
Klien point-to-site memerlukan profil baru, karena paket yang diunduh membawa endpoint. Nama DNS kustom di depan gateway menghemat redistribusi: pertahankan namanya, ubah record-nya.
Memindahkan gateway ke langganan lain
Pemindahan resource memindahkan satu set, dan gateway sendirian adalah anggotanya yang paling tidak berguna. Jaringan virtual, resource IP publik, gateway jaringan lokal, dan koneksi bepergian bersama karena masing-masing menyimpan referensi ke yang lain. Langganan tujuan harus berada di tenant yang sama, Microsoft.Network harus terdaftar di sana, dan Anda perlu akses tulis di kedua sisi.
Validasi berjalan sebelum apa pun berubah, jadi pemindahan yang ditolak membiarkan resource tetap di tempatnya. Karena itu pemindahan layak dicoba sebelum membangun ulang: pemindahan yang berhasil membawa IP publiknya, sehingga mitra dan daftar izin tetap bekerja, sedangkan gateway yang dibangun ulang 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 validasi alih-alih mengulanginya. Penyebab umumnya adalah dependensi yang tertinggal, jenis resource yang tidak bisa dipindahkan, atau kunci pada salah satu grup resource. Jika pemindahan mustahil, bangun ulang di tujuan dan potong: pastikan perutean dan autentikasi dari subnet uji, hentikan koneksi lama alih-alih menghapusnya, lalu hapus jalur lama di jendela berikutnya.
Saat gateway tampak hilang, periksa konteksnya
Galat tidak ditemukan biasanya galat cakupan. Akun dengan beberapa langganan mengarahkan cmdlet ke yang salah, dan pesannya menyalahkan resource. Cari objeknya lewat ID resource lengkap: ID itu membawa langganannya sendiri, jadi jika berhasil diselesaikan, tidak ada yang hilang dan konteks default Anda salah.
Dua ketidakcocokan lain terbaca sama. Gateway cloud komersial tidak ada dalam sesi yang diarahkan ke lingkungan pemerintah atau Tiongkok, dan versi modul lama melewatkan bentuk resource yang sudah dikembalikan API. Pakukan langganan, cocokkan lingkungannya, lalu buka kasus.
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
Verifikasi dari kedua ujung sebelum membersihkan
Terhubung adalah status, bukan bukti. Periksa status terowongan per koneksi, status peer BGP jika memakai perutean dinamis, dan rute efektif pada subnet beban kerja. Lalu lewatkan satu permintaan nyata melalui aplikasi yang bergantung pada terowongan. Koneksi bisa melaporkan terhubung selagi prefiks yang Anda butuhkan tidak ada di tabel rute.
Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app
Biarkan IP publik lama terlepas, bukan terhapus, sampai jendela fallback ditutup, dan catat editan mitra serta firewall agar bisa dibalik sesuai urutan.
- Konteks dipakukan ke langganan pemilik gateway
- IP publik lama disimpan dan dependensinya dicatat
- Setiap koneksi hijau dan satu permintaan nyata melaluinya
- Pengguna point-to-site dipindahkan ke profil terbaru
- Record DNS diubah dan nilai sebelumnya dicatat