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.

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

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

Artikel terkait