Terjemahan Alamat Jaringan Sumber (SNAT) dengan Azure NAT Gateway

Source Network Address Translation (SNAT) memungkinkan lalu lintas dari jaringan virtual privat untuk terhubung ke internet sambil tetap sepenuhnya privat. SNAT menulis ulang IP sumber dan port paket asal ke IP publik dan kombinasi port. Port digunakan sebagai pengidentifikasi unik untuk membedakan koneksi yang berbeda satu sama lain. Internet menggunakan hash lima tuple (protokol, IP sumber/port, IP/port tujuan) untuk memberikan perbedaan ini.

SNAT juga memungkinkan beberapa instans privat dalam jaringan virtual untuk menggunakan satu alamat IP publik atau set alamat IP (awalan) yang sama untuk terhubung ke internet.

Gateway NAT memungkinkan kemampuan SNAT banyak ke satu. Banyak instans privat dalam subnet dapat SNAT ke alamat IP publik yang dilampirkan ke gateway NAT untuk terhubung ke internet. Saat gateway NAT membuat beberapa koneksi ke titik akhir tujuan yang sama, setiap koneksi baru menggunakan port SNAT yang berbeda sehingga koneksi dapat dibedakan satu sama lain.

Kelelahan port SNAT terjadi ketika titik akhir sumber kehabisan port SNAT yang tersedia untuk membedakan antara sambungan baru. Ketika kelelahan port SNAT terjadi, koneksi gagal.

Menskalakan SNAT untuk gateway NAT

Penskalaan NAT gateway terutama merupakan fungsi pengelolaan inventaris port SNAT bersama yang tersedia.

Inventaris port SNAT disediakan oleh alamat IP publik, awalan IP publik, atau keduanya dilampirkan ke gateway NAT. Inventori port SNAT tersedia sesuai permintaan untuk semua instans dalam subnet yang dilampirkan ke gateway NAT. Saat beban kerja skala instans privat subnet, gateway NAT mengalokasikan port SNAT sesuai kebutuhan.

Ketika beberapa subnet dalam jaringan virtual dilampirkan ke sumber daya gateway NAT yang sama, inventarisasi port SNAT yang disediakan oleh gateway NAT dibagikan di semua subnet.

Satu gateway NAT dapat menskalakan hingga 16 alamat IP. Setiap alamat IP publik gateway NAT menyediakan 64.512 port SNAT untuk membuat koneksi keluar. Gateway NAT dapat meningkatkan hingga lebih dari 1 juta port SNAT. TCP dan UDP adalah inventaris port SNAT terpisah dan tidak terkait dengan gateway NAT.

NAT gateway secara dinamis mengalokasikan port SNAT

Gateway NAT secara dinamis mengalokasikan port SNAT di seluruh sumber daya privat subnet, seperti komputer virtual. Semua port SNAT yang tersedia digunakan sesuai permintaan oleh komputer virtual apa pun di subnet yang dikonfigurasi dengan gateway NAT.

Diagram alokasi port SNAT.

Gambar: Alokasi port SNAT

Pra-alokasi port SNAT ke setiap komputer virtual diperlukan untuk metode SNAT lainnya. Pra-alokasi port SNAT ini dapat menyebabkan kelelahan port SNAT pada beberapa komputer virtual sementara yang lain masih memiliki port SNAT yang tersedia untuk menyambungkan keluar.

Dengan gateway NAT, praalokasi port SNAT tidak diperlukan, yang berarti port SNAT tidak dibiarkan tidak digunakan oleh komputer virtual yang tidak membutuhkannya secara aktif.

Setelah port SNAT dirilis, port tersedia untuk digunakan oleh komputer virtual apa pun dalam subnet yang dikonfigurasi dengan gateway NAT. Alokasi sesuai permintaan memungkinkan beban kerja yang dinamis dan berbeda pada subnet untuk menggunakan port SNAT sesuai kebutuhan. Selama port SNAT tersedia, alur SNAT berhasil.

Diagram kelelahan port SNAT.

Gambar: Kelelahan port SNAT

Pemilihan dan penggunaan kembali port SNAT gateway NAT

Gateway NAT memilih port SNAT secara acak dari inventaris port yang tersedia untuk membuat koneksi keluar baru. Jika gateway NAT tidak menemukan port SNAT yang tersedia, maka menggunakan kembali port SNAT. Port SNAT yang sama dapat digunakan untuk menyambungkan ke beberapa tujuan yang berbeda secara bersamaan.

Port SNAT dapat digunakan kembali untuk menyambungkan ke titik akhir tujuan yang sama. Sebelum port digunakan kembali, gateway NAT menempatkan timer penggunaan kembali port SNAT untuk pendinginan pada port setelah koneksi ditutup.

Timer penggunaan kembali port SNAT membantu mencegah port dipilih terlalu cepat untuk menyambungkan ke tujuan yang sama. Proses ini sangat membantu ketika titik akhir tujuan memiliki firewall atau layanan lain yang dikonfigurasi yang menempatkan timer pendinginan pada port sumber. Timer penggunaan kembali port SNAT bervariasi berdasarkan bagaimana alur koneksi ditutup. Untuk mempelajari selengkapnya, lihat Timer Penggunaan Kembali Port.

Diagram penggunaan kembali port SNAT.

Gambar: Penggunaan kembali port SNAT

Contoh alur SNAT untuk NAT gateway

Banyak ke satu SNAT dengan gateway NAT

Gateway NAT menyediakan banyak untuk satu konfigurasi di mana beberapa instans privat dalam subnet yang dikonfigurasi gateway NAT dapat menggunakan alamat IP publik yang sama untuk menyambungkan keluar.

Dalam tabel berikut, dua komputer virtual yang berbeda (10.0.0.1 dan 10.2.0.1) membuat koneksi ke https://microsoft.com IP tujuan 23.53.254.142. Saat gateway NAT dikonfigurasi dengan alamat IP publik 65.52.1.1, setiap IP sumber komputer virtual diterjemahkan ke dalam alamat IP publik gateway NAT dan port SNAT:

Alur Tuple sumber Tuple sumber setelah SNAT Tuple tujuan
1 10.0.0.1:4283 65.52.1.1:1234 23.53.254.142:80
2 10.0.0.1:4284 65.52.1.1:1235 23.53.254.142:80
3 10.2.0.1:5768 65.52.1.1:1236 23.53.254.142:80

IP masquerading atau port masquerading adalah tindakan mengganti IP privat dan port dengan IP publik dan port sebelum terhubung ke internet. Beberapa sumber daya privat dapat disaring di belakang IP publik gateway NAT yang sama.

Gateway NAT menggunakan kembali port SNAT untuk menyambungkan ke tujuan baru

Seperti disebutkan sebelumnya, gateway NAT dapat menggunakan kembali port SNAT yang sama untuk terhubung secara bersamaan ke titik akhir tujuan baru. Dalam tabel berikut, gateway NAT menerjemahkan alur 4 ke port SNAT yang sudah digunakan untuk tujuan lain (lihat alur 1 dari tabel sebelumnya).

Alur Tuple sumber Tuple sumber setelah SNAT Tuple tujuan
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

Port SNAT gateway NAT didinginkan untuk digunakan kembali ke tujuan yang sama

Dalam skenario di mana gateway NAT menggunakan kembali port SNAT untuk membuat koneksi baru ke titik akhir tujuan yang sama, port SNAT pertama kali ditempatkan dalam fase penggunaan kembali port SNAT untuk pendinginan. Periode penggunaan kembali port SNAT membantu memastikan bahwa port SNAT tidak digunakan kembali terlalu cepat saat menyambungkan ke tujuan yang sama. Penggunaan kembali port SNAT ini untuk pendinginan di gateway NAT bermanfaat dalam skenario di mana titik akhir tujuan memiliki firewall dengan timer port sumbernya sendiri untuk pendinginan di tempat.

Untuk menunjukkan port SNAT ini menggunakan kembali perilaku cool down, mari kita lihat lebih dekat alur 4 dari tabel sebelumnya. Alur 4 menyambungkan ke titik akhir tujuan yang dihadapkan oleh firewall dengan timer pendinginan port sumber 20 detik.

Alur Tuple sumber Tuple sumber setelah SNAT Tuple tujuan Koneksi jenis paket ditutup dengan Timer firewall tujuan untuk pendinginan untuk port sumber
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 TCP FIN 20 detik

Koneksi alur 4 ditutup dengan paket TCP FIN. Karena koneksi ditutup dengan paket TCP FIN, gateway NAT menempatkan port SNAT 1234 dalam pendinginan selama 65 detik sebelum dapat digunakan kembali. Karena port 1234 dalam pendinginan lebih lama dari durasi timer pendinginan port sumber firewall 20 detik, alur koneksi 5 dilanjutkan dengan menggunakan kembali port SNAT 1234 tanpa masalah.

Alur Tuple sumber Tuple sumber setelah SNAT Tuple tujuan
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

Perlu diingat bahwa gateway NAT menempatkan port SNAT di bawah port SNAT yang berbeda menggunakan kembali timer pendinginan tergantung pada bagaimana koneksi sebelumnya ditutup. Untuk informasi selengkapnya tentang timer penggunaan kembali port SNAT, lihat Timer Penggunaan Kembali Port.

Jangan mengambil dependensi pada cara tertentu port sumber ditetapkan dalam contoh di atas. Sebelumnya adalah ilustrasi dari konsep dasar saja.