Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Skenario tertentu memerlukan komputer virtual atau instans komputasi untuk memiliki konektivitas keluar ke internet. IP frontend dari load balancer publik dapat digunakan untuk menyediakan konektivitas keluar ke internet untuk instans backend. Konfigurasi ini menggunakan terjemahan alamat jaringan sumber (SNAT) untuk menerjemahkan IP privat komputer virtual ke alamat IP publik load balancer. SNAT memetakan alamat IP backend ke alamat IP publik load balancer Anda. SNAT mencegah sumber luar memiliki alamat langsung ke instans backend.
Metode konektivitas keluar Azure
Metode berikut adalah metode Azure yang paling umum digunakan untuk mengaktifkan konektivitas keluar, yang tercantum dalam urutan prioritas saat beberapa metode digunakan:
| # | Method | Jenis alokasi port | Production-grade? | Rating |
|---|---|---|---|---|
| 1 | Mengaitkan gateway NAT ke subnet | Dinamis, eksplisit | Yes | Best |
| 2 | Menetapkan IP publik ke komputer virtual | Statis, eksplisit | Yes | OK |
| 3 | Gunakan alamat IP frontend dari load balancer untuk keluar melalui aturan keluar | Statis, eksplisit | Ya, tetapi tidak dalam skala besar | OK |
| 4 | Menggunakan alamat IP frontend dari load balancer untuk keluar tanpa aturan keluar | Statis, Implisit | No | Worst |
| 5 | Akses keluar default | Implicit | No | Worst |
1. Kaitkan gateway NAT ke subnet
Azure NAT Gateway menyederhanakan konektivitas Internet khusus keluar untuk jaringan virtual. Saat dikonfigurasi pada subnet, semua konektivitas keluar menggunakan alamat IP publik statis yang ditentukan. Konektivitas keluar dimungkinkan tanpa load balancer atau alamat IP publik yang langsung dilampirkan ke komputer virtual. NAT Gateway dikelola sepenuhnya dan sangat tangguh.
Menggunakan gateway NAT adalah metode terbaik untuk konektivitas keluar. Gateway NAT sangat dapat diperluas, dapat diandalkan, dan tidak memiliki kekhawatiran yang sama tentang kelelahan port SNAT.
Gateway NAT lebih diutamakan daripada metode konektivitas keluar lainnya, termasuk load balancer, alamat IP publik tingkat instans, dan Azure Firewall.
Untuk informasi selengkapnya tentang Azure NAT Gateway, lihat Apa itu Azure NAT Gateway. Untuk detail tentang cara kerja perilaku SNAT dengan NAT Gateway, lihat SNAT dengan NAT Gateway.
2. Tetapkan IP publik ke komputer virtual
| Associations | Method | Protokol IP |
|---|---|---|
| IP Publik pada NIC VM | SNAT (Terjemahan Alamat Jaringan Sumber) tidak digunakan. |
TCP (Protokol Kontrol Transmisi) UDP (Protokol Datagram Pengguna) ICMP (Protokol Pesan Kontrol Internet) ESP (Merangkum Payload Keamanan) |
Lalu lintas kembali ke klien yang meminta dari alamat IP publik komputer virtual (IP Tingkat Instans).
Azure menggunakan IP publik yang ditetapkan ke konfigurasi IP NIC instans untuk semua alur keluar. Instans ini memiliki semua port ephemeral yang tersedia. Tidak masalah apakah VM diseimbangkan bebannya atau tidak. Skenario ini lebih diutamakan daripada yang lain, kecuali untuk NAT Gateway.
IP publik yang ditetapkan ke VM adalah hubungan 1:1 (bukan 1: banyak) dan diimplementasikan sebagai NAT 1:1 tanpa status.
3. Gunakan alamat IP frontend dari load balancer untuk keluar melalui aturan keluar
Aturan keluar memungkinkan Anda untuk secara eksplisit menentukan SNAT (terjemahan alamat jaringan sumber) untuk load balancer publik SKU standar. Konfigurasi ini memungkinkan Anda menggunakan IP publik atau IP load balancer Anda untuk konektivitas keluar instans backend.
Konfigurasi ini memungkinkan:
Masquerading IP
Menyederhanakan daftar izin Anda
Mengurangi jumlah sumber daya IP publik untuk penyebaran
Dengan aturan keluar, Anda memiliki kontrol deklaratif penuh atas konektivitas internet keluar. Aturan keluar memungkinkan Anda untuk menskalakan dan menyetel kemampuan ini dengan kebutuhan spesifik Anda melalui alokasi port manual. Mengalokasikan port SNAT secara manual berdasarkan ukuran kumpulan backend dan jumlah frontendIPConfigurations dapat membantu menghindari kelelahan SNAT.
Anda dapat mengalokasikan port SNAT secara manual baik dengan "port per instans" atau "jumlah maksimum instans backend". Jika Anda memiliki komputer virtual di backend, disarankan agar Anda mengalokasikan port dengan "port per instans" untuk mendapatkan penggunaan port SNAT maksimum.
Hitung port per instans sebagai berikut:
Jumlah IP frontend * 64K / Jumlah instans backend
Jika Anda memiliki Virtual Machine Scale Sets di backend, disarankan untuk mengalokasikan port dengan "jumlah maksimum instans backend". Jika lebih banyak VM ditambahkan ke backend daripada port SNAT yang tersisa yang diizinkan, peluasan skala Set Skala Komputer Virtual dapat diblokir, atau VM baru tidak akan menerima port SNAT yang memadai.
Note
Ketika beberapa IP frontend dikonfigurasi menggunakan aturan keluar, koneksi keluar dapat berasal dari SALAH SATU IP frontend yang dikonfigurasi ke instans backend. Kami tidak menyarankan untuk membangun dependensi apa pun di mana IP frontend dapat dipilih untuk koneksi.
Untuk informasi selengkapnya tentang aturan keluar, lihat Aturan keluar.
4. Gunakan alamat IP frontend dari load balancer untuk keluar tanpa aturan keluar
Opsi ini mirip dengan yang sebelumnya, kecuali ketika tidak ada aturan keluar yang dibuat. Dalam hal ini, frontend load balancer masih digunakan untuk keluar, tetapi ini dilakukan secara implisit tanpa aturan yang menentukan frontend mana yang akan digunakan. Tidak menggunakan aturan keluar juga mengurangi skalabilitas keluar, karena konektivitas keluar implisit memiliki jumlah port SNAT tetap per alamat IP frontend, yang dapat menyebabkan kelelahan port dalam skenario lalu lintas tinggi.
5. Akses keluar default
Di Azure, komputer virtual yang dibuat di jaringan virtual tanpa konektivitas keluar eksplisit yang ditentukan ditetapkan ke alamat IP publik keluar default. Alamat IP ini memungkinkan konektivitas keluar dari sumber daya ke Internet. Akses ini disebut sebagai akses keluar default. Metode akses ini tidak disarankan karena tidak aman dan alamat IP dapat berubah.
Important
Pada 31 Maret 2026, jaringan virtual baru akan default menggunakan subnet privat. Untuk informasi selengkapnya, lihat pengumuman resmi. Disarankan untuk menggunakan salah satu bentuk eksplisit konektivitas seperti yang ditunjukkan pada opsi 1-3 di atas.
Apa itu port SNAT?
Port digunakan untuk menghasilkan pengidentifikasi unik yang digunakan untuk mempertahankan alur yang berbeda. Internet menggunakan lima tuple untuk memberikan perbedaan ini.
Jika port digunakan untuk koneksi masuk, port memiliki pendengar untuk permintaan koneksi masuk pada port tersebut. Port tersebut tidak dapat digunakan untuk koneksi keluar. Untuk membuat koneksi keluar, port ephemeral digunakan untuk menyediakan tujuan dengan port untuk berkomunikasi dan mempertahankan arus lalu lintas yang berbeda. Ketika port ephemeral ini digunakan untuk SNAT, port tersebut disebut port SNAT.
Secara definisi, setiap alamat IP memiliki 65.535 port. Setiap port dapat digunakan untuk koneksi masuk atau keluar untuk TCP (Protokol Kontrol Transmisi) dan UDP (Protokol Datagram Pengguna). Ketika alamat IP publik ditambahkan sebagai IP frontend ke load balancer, 64.000 port memenuhi syarat untuk SNAT.
Setiap port yang digunakan dalam aturan NAT penyeimbangan beban atau masuk menggunakan rentang delapan port dari 64.000 port SNAT yang tersedia. Penggunaan ini mengurangi jumlah port yang memenuhi syarat untuk SNAT, jika IP frontend yang sama digunakan untuk konektivitas keluar. Jika aturan LOAD-balancing atau NAT masuk yang digunakan port berada di blok yang sama dari delapan port yang digunakan oleh aturan lain, aturan tidak memerlukan port tambahan.
Note
Jika Anda perlu menyambungkan ke layanan Azure PaaS yang didukung seperti Azure Storage, Azure SQL, atau Azure Cosmos DB, Anda dapat menggunakan Azure Private Link untuk menghindari SNAT sepenuhnya. Azure Private Link mengirim lalu lintas dari jaringan virtual Anda ke layanan Azure melalui jaringan backbone Azure alih-alih melalui internet.
Private Link adalah opsi yang direkomendasikan melalui titik akhir layanan untuk akses privat ke layanan yang dihosting Azure. Untuk informasi selengkapnya tentang perbedaan antara Private Link dan titik akhir layanan, lihat Membandingkan Titik Akhir Privat dan Titik Akhir Layanan.
Bagaimana cara kerja SNAT default?
Saat VM membuat alur keluar, Azure menerjemahkan alamat IP sumber ke alamat IP sementara. Terjemahan ini dilakukan melalui SNAT.
Jika menggunakan SNAT tanpa aturan keluar melalui load balancer publik, port SNAT telah dialokasikan sebelumnya seperti yang dijelaskan dalam tabel alokasi port SNAT default berikut:
Tabel alokasi port default
Ketika alokasi port default diaktifkan, port SNAT dialokasikan secara default berdasarkan ukuran kumpulan backend. Backend menerima jumlah port yang ditentukan oleh tabel, per IP frontend, hingga maksimum 1024 port. Alokasi port default TIDAK disarankan untuk beban kerja produksi, karena melakukannya mengalokasikan jumlah minimal port ke setiap instans backend dan meningkatkan risiko kelelahan port SNAT. Sebagai gantinya, pertimbangkan untuk menggunakan NAT Gateway atau mengalokasikan port secara manual pada aturan keluar load balancer Anda.
Ada beberapa cara alokasi port default dapat diaktifkan:
- Mengonfigurasi aturan penyeimbangan beban dengan disableOutboundSnat diatur ke false, atau dengan memilih opsi alokasi port default pada aturan load balancer di portal Microsoft Azure
- Mengonfigurasi aturan keluar tetapi mengatur properti allocatedOutboundPorts ke 0, atau dengan memilih "Aktifkan alokasi port default" di portal Microsoft Azure
Sebagai contoh, dengan 100 VM di kumpulan backend dan hanya satu IP frontend, setiap VM menerima 512 port. Jika IP frontend kedua ditambahkan, setiap VM menerima 512 port tambahan. Ini berarti setiap VM dialokasikan total 1.024 port. Akibatnya, menambahkan IP frontend ketiga TIDAK akan meningkatkan jumlah port SNAT yang dialokasikan di luar 1024 port.
Sebagai aturan praktis, jumlah port SNAT yang disediakan ketika alokasi port default diterapkan dapat dihitung sebagai: MIN(# port SNAT default yang disediakan berdasarkan ukuran kumpulan * jumlah IP frontend yang terkait dengan kumpulan, 1024)
Tabel berikut menunjukkan pra-alokasi port SNAT untuk SATU IP frontend, tergantung pada ukuran kumpulan backend:
| Ukuran kumpulan (instans VM) | Port SNAT default |
|---|---|
| 1-50 | 1,024 |
| 51-100 | 512 |
| 101-200 | 256 |
| 201-400 | 128 |
| 401-800 | 64 |
| 801-1,000 | 32 |
Kelelahan port
Setiap koneksi ke IP tujuan dan port tujuan yang sama menggunakan port SNAT. Koneksi ini mempertahankan arus lalu lintas yang berbeda dari instans backend atau klien ke server. Proses ini memberi server port yang berbeda untuk mengatasi lalu lintas. Tanpa proses ini, komputer klien tidak menyadari alur mana yang merupakan bagian dari paket.
Bayangkan memiliki beberapa browser yang akan https://www.microsoft.com, yaitu:
IP Tujuan = 23.53.254.142
Port Tujuan = 443
Protokol = TCP
Tanpa port SNAT untuk lalu lintas kembali, klien tidak memiliki cara untuk memisahkan satu hasil kueri dari yang lain.
Koneksi keluar dapat meledak. Instans backend dapat dialokasikan port yang tidak memadai. Gunakan fungsionalitas penggunaan kembali koneksi dalam aplikasi Anda. Tanpa penggunaan kembali koneksi, risiko kelelahan port SNAT meningkat.
Untuk informasi selengkapnya tentang pengumpulan koneksi dengan Azure App Service, lihat Memecahkan masalah kesalahan koneksi keluar terputus-terputus di Azure App Service
Koneksi keluar baru ke IP tujuan gagal ketika kelelahan port terjadi. Koneksi berhasil ketika port tersedia. Kelelahan ini terjadi ketika 64.000 port dari alamat IP tersebar tipis di banyak instans backend. Untuk panduan tentang mitigasi kelelahan port SNAT, lihat panduan pemecahan masalah.
Penggunaan kembali port
Untuk koneksi TCP, load balancer menggunakan satu port SNAT untuk setiap IP dan port tujuan. Untuk koneksi ke IP tujuan yang sama, satu port SNAT dapat digunakan kembali selama port tujuan berbeda. Penggunaan kembali tidak dimungkinkan ketika sudah ada koneksi ke IP dan port tujuan yang sama.
Untuk koneksi UDP, load balancer menggunakan algoritma NAT kerucut terbatas port , yang mengonsumsi satu port SNAT per IP tujuan, terlepas dari port tujuan.
Port individual dapat digunakan kembali untuk jumlah koneksi yang tidak terbatas di mana penggunaan kembali diizinkan (ketika IP tujuan atau port berbeda).
Dalam contoh dalam tabel berikut, instans backend dengan IP privat 10.0.0.1 membuat koneksi TCP ke IP tujuan 23.53.254.142 dan 26.108.254.155, sementara load balancer dikonfigurasi dengan alamat IP frontend 192.0.2.0. Karena IP tujuan berbeda, port SNAT yang sama dapat digunakan kembali untuk beberapa koneksi.
| Flow | Tuple sumber | Tuple sumber setelah SNAT | Tuple tujuan |
|---|---|---|---|
| 1 | 10.0.0.1:80 | 192.0.2.0:1 | 23.53.254.142:80 |
| 2 | 10.0.0.1:80 | 192.0.2.0:1 | 26.108.254.155:80 |
Constraints
Ketika koneksi tidak aktif tanpa paket baru yang dikirim, port akan dirilis setelah 4 - 120 menit.
Ambang ini dapat dikonfigurasi melalui aturan keluar.
Setiap alamat IP menyediakan 64.000 port yang dapat digunakan untuk SNAT.
Setiap port dapat digunakan untuk koneksi TCP dan UDP ke alamat IP tujuan
Port UDP SNAT diperlukan apakah port tujuan unik atau tidak. Untuk setiap koneksi UDP ke IP tujuan, satu port UDP SNAT digunakan.
Port SNAT TCP dapat digunakan untuk beberapa koneksi ke IP tujuan yang sama asalkan port tujuan berbeda.
Kelelahan SNAT terjadi ketika instans backend kehabisan Port SNAT yang diberikan. Load balancer masih dapat memiliki port SNAT yang tidak digunakan. Jika port SNAT yang digunakan instans backend melebihi port SNAT yang diberikan, instans backend tidak dapat membuat koneksi keluar baru.
Paket terfragmentasi dihilangkan kecuali keluar melalui IP publik tingkat instans pada NIC VM.
Konfigurasi IPv4 sekunder antarmuka jaringan tidak didukung dengan aturan keluar. Untuk konektivitas keluar pada konfigurasi IPv4 sekunder, lampirkan IP publik tingkat instans atau gunakan NAT Gateway sebagai gantinya.
Langkah selanjutnya
- Memecahkan masalah kegagalan koneksi keluar karena kelelahan SNAT
- Tinjau metrik SNAT dan biasakan diri Anda dengan cara yang benar untuk memfilter, memisahkan, dan melihatnya.
- Pelajari cara memigrasikan metode konektivitas keluar yang ada ke gateway NAT