Alamat IP dan port

Halaman ini menjelaskan cara gateway Cloud NAT menggunakan alamat IP dan cara mereka mengalokasikan port sumber ke instance virtual machine (VM) Compute Engine dan node Google Kubernetes Engine (GKE) yang menggunakan gateway tersebut.

Sebelum meninjau informasi ini, pahami ringkasan Cloud NAT.

Alamat IP NAT publik

Public NAT IP address adalah alamat IP eksternal regional yang dapat dirutekan di internet. VM tanpa alamat IP eksternal, yang ada di subnetwork (subnet) yang disalurkan oleh gateway NAT Publik, menggunakan alamat IP NAT Publik saat mengirimkan paket ke tujuan di internet.

Untuk menetapkan alamat IP penafsiran alamat jaringan (NAT) ke gateway NAT Publik, gunakan salah satu metode berikut:

  • Alokasi alamat IP NAT otomatis. Saat Anda memilih metode ini, atau memilih setelan default Google Cloud, Public NAT akan otomatis menambahkan alamat IP eksternal regional ke gateway Anda berdasarkan hal berikut:

    • Tingkat jaringan yang Anda pilih
    • Jumlah VM yang menggunakan gateway
    • Jumlah port yang dicadangkan untuk setiap VM

    NAT Publik juga otomatis menghapus alamat IP NAT jika tidak lagi memerlukan port sumber di alamat IP NAT tersebut.

    Berikut adalah karakteristik alokasi alamat IP NAT otomatis:

    • Ketika gateway NAT Publik menambahkan alamat IP NAT, gateway tersebut akan membuat alamat IP eksternal regional statis (dicadangkan) di tingkat jaringan yang telah Anda pilih pada saat mengonfigurasi gateway. Misalnya, jika Anda memilih Paket Premium, gateway NAT Publik akan membuat alamat IP di tingkat tersebut. Tingkat jaringan yang didukung adalah Paket Premium (opsi default) dan Paket Standar.

      Alamat IP NAT yang ditambahkan secara otomatis dapat dilihat di daftar alamat IP eksternal statis. Alamat ini tidak diperhitungkan dalam kuota per project.

    • Jika Anda mengubah tingkat jaringan gateway NAT Publik, alamat IP yang ada untuk gateway tersebut akan dirilis, dan kumpulan alamat IP baru dari tingkat yang dipilih akan ditetapkan.
    • Dengan alokasi otomatis, Anda tidak dapat memprediksi alamat IP berikutnya yang dialokasikan. Jika Anda ingin mengetahui kumpulan kemungkinan alamat IP NAT sebelum waktunya (misalnya, untuk membuat daftar yang diizinkan), Anda harus menggunakan penetapan alamat IP NAT manual.
    • Jika alamat IP NAT yang ditambahkan secara otomatis tidak lagi digunakan, alamat tersebut akan dihapus. Namun, Public NAT hanya membatalkan alokasi alamat saat VM terakhir yang ditetapkan ke alamat tersebut tidak lagi menggunakan port mana pun. Oleh karena itu, saat jumlah VM yang menggunakan NAT Publik menurun, Anda mungkin tidak melihat penurunan IP . Alasannya adalah Cloud NAT tidak mengalokasikan ulang VM secara dinamis dari satu alamat IP ke alamat IP lainnya karena alokasi ulang akan mengganggu koneksi yang ada. Selama minimal ada satu VM yang menggunakan alamat IP, alamat IP akan tetap aktif dan VM baru dapat ditetapkan ke alamat IP tersebut.

      Jika Anda ingin dapat mengalokasikan ulang VM secara manual dari satu alamat IP ke alamat IP lainnya untuk meminimalkan penggunaan alamat IP, gunakan penetapan alamat IP NAT secara manual. Penetapan alamat IP NAT manual memungkinkan pengurangan alamat IP NAT Publik.

    • Jika nanti Anda beralih ke penetapan alamat IP NAT manual, alamat IP eksternal regional yang dicadangkan secara otomatis akan dihapus. Untuk informasi selengkapnya, lihat Beralih metode tugas.

  • Penetapan alamat IP NAT manual. Jika memilih opsi ini, Anda akan membuat dan menetapkan alamat IP eksternal regional statis (dicadangkan) secara manual ke gateway NAT Publik Anda. Anda dapat menetapkan alamat IP secara manual dari Paket Premium, dari Paket Standar, atau dari keduanya, dengan tunduk kepada conditions.

    • Anda dapat menambah atau mengurangi jumlah alamat IP NAT yang ditetapkan secara manual dengan mengedit gateway Cloud NAT.
    • Saat menggunakan penetapan alamat IP NAT manual, Anda harus menghitung jumlah alamat IP eksternal regional yang diperlukan untuk gateway NAT Publik. Jika gateway Anda kehabisan alamat IP NAT, NAT Publik akan menghapus paket. Paket yang dilepaskan akan dicatat ke dalam log saat Anda menggunakan Cloud NAT logging untuk mengaktifkan logging error.
    • Untuk contoh penghitungan, lihat contoh reservasi port.

Untuk jumlah maksimum alamat IP NAT yang dialokasikan secara otomatis atau ditetapkan secara manual, lihat Batas Cloud NAT.

Menetapkan campuran alamat IP Paket Premium dan Tingkat Standar secara manual

Saat membuat gateway NAT Publik dengan metode penetapan alamat IP NAT manual, Anda dapat menetapkan campuran alamat IP Paket Premium dan Tingkat Standar selama alamat IP tingkat jaringan yang berbeda tidak termasuk dalam aturan yang sama (termasuk aturan default).

Di dalam aturan (termasuk aturan default), semua alamat IP yang ditetapkan ke rentang aktif harus berasal dari tingkat jaringan yang sama. Jika Anda mencoba menggunakan alamat IP dari level yang berbeda sebagai bagian dari aturan yang sama, Google Cloud akan menolak konfigurasi.

Beralih metode penetapan

Anda dapat mengalihkan gateway NAT Publik dari alokasi alamat IP NAT otomatis ke penetapan alamat IP NAT manual; tetapi, alamat IP NAT tidak dapat dipertahankan. Meskipun alamat IP NAT yang dialokasikan secara otomatis bersifat statis, alamat tersebut tidak dapat dipindahkan ke penetapan alamat IP NAT manual. Misalnya, Anda tidak dapat mulai menggunakan gateway NAT Publik dengan alamat IP NAT yang dialokasikan secara otomatis, dan kemudian menggunakan alamat yang sama saat Anda beralih ke alamat IP NAT yang ditetapkan secara manual.

Kumpulan alamat IP eksternal regional yang digunakan Public NAT untuk alokasi alamat IP NAT otomatis berbeda dengan kumpulan alamat IP eksternal regional yang dapat Anda pilih secara manual.

Mengosongkan alamat IP NAT Publik

Saat mengonfigurasi gateway NAT Publik dengan penetapan alamat IP NAT manual, Anda dapat memilih tindakan yang perlu dilakukan jika perlu mengurangi jumlah alamat IP NAT yang digunakan gateway:

  • Jika Anda menghapus alamat IP NAT yang ditetapkan secara manual, koneksi NAT yang dibuat akan langsung terputus.

  • Sebagai gantinya, Anda dapat memilih untuk mengosongkan alamat IP NAT yang ditetapkan secara manual. Pengosongan akan memerintahkan gateway NAT Publik agar berhenti menggunakan alamat IP NAT untuk koneksi baru, tetapi terus menggunakannya untuk koneksi yang ada. Koneksi yang ada diizinkan untuk ditutup secara normal, bukan dihentikan secara tiba-tiba. Untuk menghabiskan alamat IP yang terkait dengan gateway NAT Publik yang tidak menggunakan aturan NAT, lihat Mengosongkan alamat IP eksternal yang terkait dengan NAT. Untuk menghabiskan alamat IP yang terkait dengan gateway NAT yang menggunakan aturan NAT, lihat Memperbarui aturan NAT.

Alamat IP NAT pribadi

NAT Pribadi memerlukan dua jaringan Virtual Private Cloud (VPC), masing-masing dikonfigurasikan sebagai VPC spoke pada hub Network Connectivity Center yang sama. Untuk mengetahui informasi lebih lanjut tentang spoke VPC dan Network Connectivity Center, lihat ringkasan spoke VPC.

Alamat NAT pribadi adalah alamat IPv4 internal regional yang berasal dari rentang alamat IPv4 utama subnet NAT Pribadi yang terletak di region dan jaringan VPC yang sama dengan gateway NAT Pribadi. Alamat IP NAT Pribadi tidak dapat dirutekan di internet. Alamat IP dari rentang alamat IPv4 utama subnet NAT Pribadi hanya dapat digunakan oleh {i>gateway NAT pribadi<i}. Untuk membuat subnet NAT Pribadi, tambahkan subnet khusus IPv4 menggunakan Google Cloud CLI dan tanda --purpose=PRIVATE_NAT.

Setelah Anda mengonfigurasi gateway NAT Pribadi guna menyediakan layanan NAT untuk subnet di jaringan VPC yang terhubung ke hub Network Connectivity Center, VM dengan antarmuka jaringan di subnet tersebut dapat mengirim paket ke resource yang terletak di jari-jari VPC lain dari hub. Saat traffic keluar, Google Cloud akan mengubah alamat IP sumber menjadi alamat IP dari subnet NAT Pribadi yang terkait dengan gateway.

Berikut adalah karakteristik alamat IP NAT Pribadi:

  • Anda tidak dapat menetapkan alamat IP NAT Pribadi secara otomatis ke gateway NAT Pribadi. Sebagai gantinya, saat membuat aturan di gateway NAT Pribadi, Anda menentukan secara manual subnet atau subnet NAT Pribadi. Subnet NAT pribadi harus ditempatkan di jaringan dan region VPC yang sama dengan gateway. Gateway menggunakan alamat IP hanya dari rentang alamat IPv4 utama subnet NAT Pribadi.
  • Untuk menentukan berapa banyak alamat IP NAT yang dapat disediakan oleh setiap subnet Private NAT, gunakan formula berikut: 2(32 - PREFIX_LENGTH) - 4, dengan PREFIX_LENGTH adalah panjang subnet mask dari rentang alamat IPv4 utama subnet Private NAT. Empat alamat IP tidak dapat digunakan di setiap rentang alamat IPv4 utama subnet.

Port

Setiap alamat IP NAT pada gateway Cloud NAT (baik Public NAT maupun NAT Pribadi) menawarkan 64.512 port sumber TCP dan 64.512 port sumber UDP. Masing-masing TCP dan UDP mendukung 65.536 port per alamat IP, tetapi Cloud NAT tidak menggunakan 1.024 port pertama yang dikenal (hak istimewa).

Saat gateway Cloud NAT melakukan penafsiran alamat jaringan sumber (SNAT) pada paket yang dikirim oleh VM, gateway tersebut mengubah alamat IP sumber dan port sumber NAT paket.

Saat membuat gateway Cloud NAT, Anda dapat memilih apakah akan menggunakan alokasi port statis atau penetapan port dinamis. Saat Anda mengubah mode penetapan port, semua koneksi yang ada yang menggunakan gateway NAT Publik akan ditutup dan harus terhubung kembali.

Jika Anda telah menetapkan beberapa alamat IP eksternal regional statis (dicadangkan) secara manual ke gateway NAT Publik Anda, satu VM yang menggunakan gateway tersebut bisa mendapatkan port yang diperlukan dari alamat IP NAT mana pun yang ditetapkan, bahkan dari beberapa alamat IP NAT secara bersamaan.

Alokasi port statis

Saat mengonfigurasi alokasi port statis, Anda harus menentukan jumlah minimum port per instance VM. Jika Anda tidak menentukan jumlah minimum port Ver VM, Google Cloud akan menggunakan nilai default.

Alokasi port statis diaktifkan, secara default, untuk NAT Publik. Di sisi lain, NAT Pribadi menggunakan alokasi port dinamis secara default.

Karena semua VM mendapatkan jumlah port yang sama, alokasi port statis akan berfungsi optimal jika semua VM memiliki penggunaan traffic keluar yang serupa. Jika beberapa VM menggunakan lebih banyak port daripada yang lain, port di gateway Cloud NAT mungkin kurang banyak digunakan. Jika penggunaan traffic keluar bervariasi, pertimbangkan untuk mengonfigurasi alokasi port dinamis.

Jika ingin mengonfigurasi Endpoint-Independent Mapping di gateway NAT Publik, Anda harus menggunakan alokasi port statis. Pemetaan Independen Endpoint tidak tersedia untuk gateway NAT Pribadi.

Alokasi port dinamis

Saat mengonfigurasi alokasi port dinamis, Anda menentukan jumlah minimum port per instance VM dan jumlah maksimum port per instance VM.

Alokasi port dinamis diaktifkan, secara default, untuk NAT Pribadi. Untuk NAT Publik, Anda perlu mengonfigurasi alokasi port dinamis secara manual.

Dengan mengonfigurasi alokasi port dinamis, gateway Cloud NAT yang sama dapat mengalokasikan jumlah port yang berbeda per VM, berdasarkan penggunaan VM. Awalnya, VM diberi jumlah minimum port per instance VM. Jika VM hampir menghabiskan semua port yang dialokasikan untuknya, jumlah port yang ditetapkan ke VM akan bertambah dua kali lipat. VM dapat berulang kali meminta lebih banyak port hingga jumlah maksimum port per instance VM. Jika penggunaan port mengalami penurunan secara signifikan, port tersebut akan dibatalkan alokasinya dan dapat dialokasikan ke VM lain yang menggunakan gateway NAT yang sama.

Alokasi port dinamis memiliki manfaat berikut:

  • Jumlah port yang dialokasikan tetapi tidak digunakan akan dikurangi.

  • Gateway NAT memantau setiap penggunaan port VM dan mengubah jumlah port yang dialokasikan ke setiap VM, berdasarkan kebutuhan. Anda tidak perlu memantau penggunaan port atau menyesuaikan konfigurasi gateway NAT.

Sebelum menggunakan alokasi port dinamis, pertimbangkan hal berikut:

  • Jika Pemetaan Independen Endpoint diaktifkan di gateway Cloud NAT, Anda tidak dapat mengonfigurasi alokasi port dinamis. Jika Anda memerlukan Pemetaan Independen Endpoint, gunakan alokasi port statis.

  • Saat port tambahan dialokasikan ke VM, Anda mungkin melihat waktu tunggu koneksi atau latensi. Untuk mengetahui strategi guna membantu mencegah penurunan koneksi, baca Mengurangi koneksi yang terputus dengan alokasi port dinamis

Beralih metode alokasi port

Anda dapat beralih antara alokasi port statis dan alokasi port dinamis untuk gateway Cloud NAT tertentu.

Beralih ke metode alokasi port dinamis akan memutus koneksi NAT yang ada hanya jika salah satu kondisi berikut terpenuhi:

  • Anda menetapkan jumlah maksimum port per VM ke nilai yang kurang dari jumlah minimum port per VM yang ditentukan dalam konfigurasi NAT sebelumnya (dengan alokasi port statis).

    Jika dalam konfigurasi sebelumnya, jumlah minimum port per VM ditetapkan ke lebih dari 1024, dan jika Anda menentukan 1024 sebagai jumlah maksimum port per VM dalam konfigurasi baru, koneksi yang ada akan terputus karena kondisi pertama lebih diutamakan.

  • Anda menetapkan jumlah maksimum port per VM ke nilai yang kurang dari 1024.

Kecuali jika salah satu kondisi sebelumnya terpenuhi, peralihan ke alokasi port dinamis tidak memutus koneksi NAT yang ada.

Menonaktifkan alokasi port dinamis dan beralih ke alokasi port statis akan mengganggu, dan memutus semua koneksi NAT yang aktif.

Prosedur reservasi port

Cloud NAT menggunakan prosedur berikut untuk menyediakan alamat IP sumber NAT dan tuple port sumber untuk setiap VM yang dilayani gateway Cloud NAT (baik Publik NAT maupun NAT Pribadi).

  1. Cloud NAT menentukan alamat IP internal VM yang NAT-nya harus dilakukan. Alamat IP internal VM ditentukan oleh rentang alamat IP subnet yang telah dikonfigurasi untuk ditayangkan oleh gateway.

    • Jika gateway NAT Publik dikonfigurasi guna menjalankan NAT untuk rentang alamat IP utama subnet yang digunakan oleh antarmuka jaringan VM, gateway tersebut akan menjalankan NAT untuk kedua alamat IP internal utama VM dan semua rentang IP alias VM dari rentang alamat IP utama subnet.

    • Jika gateway NAT Publik dikonfigurasi guna melakukan NAT untuk rentang alamat IP sekunder dari subnet yang digunakan oleh antarmuka jaringan VM, gateway tersebut akan menjalankan NAT untuk setiap rentang IP alias dari rentang alamat IP sekunder subnet tersebut.

    Karena gateway NAT Pribadi dikonfigurasi guna melakukan NAT untuk semua rentang alamat IP subnet yang digunakan oleh antarmuka jaringan VM, gateway melakukan NAT untuk semua rentang IP dari subnet tersebut.

  2. Cloud NAT menyesuaikan port minimum per instance VM jika diperlukan. Jika alokasi port statis dikonfigurasi, dan gateway menjalankan NAT untuk rentang IP alias yang memiliki lebih dari satu alamat (netmask lebih kecil dari /32), Cloud NAT akan menyesuaikan port minimum per VM menjadi nilai maksimum dari kedua nilai ini:

    • Port minimum per instance VM yang Anda tentukan

    • Angka 1.024

    Dalam semua situasi lainnya, termasuk ketika alokasi port dinamis dikonfigurasi, gateway Cloud NAT akan melanjutkan ke langkah berikutnya dengan menggunakan port minimum yang ditentukan per instance VM sebagai input. Jika Anda tidak menentukan port minimum per instance VM, nilai default akan digunakan: 64 untuk alokasi port statis dan 32 untuk alokasi port dinamis.

  3. Cloud NAT mencadangkan alamat IP sumber NAT dan tuple port sumber untuk setiap VM. Gateway Cloud NAT menggunakan port minimum yang ditentukan atau disesuaikan per instance VM dari langkah sebelumnya untuk menghitung jumlah tuple port sumber dan alamat IP sumber NAT yang akan ditetapkan ke VM.

    Untuk Public NAT, Google Cloud mengalokasikan tuple alamat IP sumber NAT dan tuple port sumber menggunakan kelipatan dua pangkat, sehingga jumlah tuple port sumber dan alamat IP sumber NAT lebih besar dari atau sama dengan port minimum per instance VM yang Anda tentukan.

    Untuk NAT Pribadi, Google Cloud mengalokasikan dua kali jumlah port minimum yang diperlukan per VM demi keandalan. Pastikan subnet tempat Private NAT menetapkan alamat IP dan port berukuran tepat.

    • Jika gateway Cloud NAT menggunakan dua atau lebih alamat IP NAT, kemungkinan alamat IP sumber NAT dan tuple port sumber dapat menjangkau lebih dari satu alamat IP NAT. Satu alamat IP NAT mungkin tidak memiliki cukup port sumber untuk mengakomodasi jumlah alamat IP sumber NAT dan tuple port sumber yang diperlukan VM.

    • Gateway Cloud NAT mengalokasikan tuple alamat IP sumber dan port sumber ke setiap VM.

      • Jika Anda telah mengonfigurasi alokasi port statis, jumlah alamat IP sumber dan tuple port sumber akan tetap. Setiap VM dapat menggunakan jumlah tuple alamat IP sumber dan tuple port sumber yang dialokasikan, bahkan selama burst traffic.

      • Jika Anda telah mengonfigurasi alokasi port dinamis, jumlah alamat IP sumber dan tupel port sumber dapat berubah berdasarkan permintaan. Jika VM hampir menghabiskan alokasi port saat ini, Cloud NAT akan mengalokasikan port tambahan, hingga nilai port maksimum per instance VM yang ditentukan. Setelah penggunaan port VM berkurang hingga di bawah nilai minimum, port akan dirilis dan dapat dialokasikan ke VM lain.

Meningkatkan port per VM

Jika Anda telah mengonfigurasi gateway Cloud NAT dengan alokasi port statis, saat Anda meningkatkan port minimum per VM di gateway, tidak akan ada gangguan traffic.

Jika Anda telah mengonfigurasi gateway Cloud NAT dengan alokasi port dinamis, meningkatkan jumlah port minimum, maksimum, atau kedua per VM tidak akan memutus koneksi NAT yang ada atau mengganggu traffic yang mengalir melalui gateway NAT.

Pertimbangkan hal berikut saat Anda meningkatkan jumlah port dibandingkan VM:

  • Saat menggunakan Public NAT dengan penetapan alamat IP NAT manual, Anda harus menghitung jumlah alamat IP sumber NAT yang dibutuhkan. Sebelum meningkatkan port minimum per VM, tetapkan setidaknya sejumlah alamat IP NAT tersebut ke gateway NAT Publik.

  • Saat menggunakan NAT Publik dengan alokasi alamat IP NAT otomatis, meningkatkan jumlah minimum port per VM akan menyebabkan gateway NAT Publik memperoleh dan mengalokasikan lebih banyak alamat IP eksternal regional secara otomatis.

  • Saat menggunakan Private NAT, pastikan subnet tempat gateway mengalokasikan alamat IP memiliki jumlah alamat IP yang memadai.

Mengurangi port per VM

Jika Anda telah mengonfigurasi gateway Cloud NAT dengan alokasi port statis, dan mengurangi port minimum per VM di gateway, maka tidak akan ada pengosongan koneksi. Koneksi NAT yang sudah ada akan langsung terputus dan klien harus membuat koneksi TCP baru.

Jika Anda telah mengonfigurasi gateway Cloud NAT dengan alokasi port dinamis, pernyataan berikut benar:

  • Mengurangi jumlah minimum port per VM tidak memutus koneksi NAT yang ada atau mengganggu traffic yang mengalir melalui gateway NAT.
  • Mengurangi jumlah maksimum port per VM akan langsung menghentikan semua koneksi NAT yang ada, dan jumlah port yang dialokasikan untuk semua VM akan direset sementara ke nilai yang ditentukan untuk jumlah minimum port per VM.

Porta dan koneksi

Jumlah alamat IP sumber NAT dan tuple port sumber yang dicadangkan oleh gateway Cloud NAT untuk VM membatasi jumlah koneksi yang dapat dibuat VM ke tujuan unik:

  • Tujuan unik berarti 3 tuple unik yang terdiri dari alamat IP tujuan, port tujuan, dan protokol IP (seperti TCP atau UDP).

  • Koneksi berarti 5-tuple unik yang terdiri dari alamat IP sumber NAT dan tuple port sumber yang digabungkan dengan 3-tuple tujuan unik. Karena protokol UDP tidak memiliki koneksi, konsep koneksi disederhanakan menjadi 5-tuple yang terkait dengan datagram UDP unik.

Misalkan gateway Cloud NAT menghitung 1.024 untuk jumlah port tetap untuk VM dengan mengikuti prosedur reservasi port. Gateway Cloud NAT mencadangkan 1.024 kombinasi unik alamat IP sumber NAT dan tuple port sumber untuk VM. Gateway Cloud NAT dapat memproses 1.024 koneksi simultan ke setiap 3 tuple tujuan yang unik. Namun, Cloud NAT menganggap koneksi tertutup tidak dapat digunakan selama 120 detik setelah koneksi ditutup, yang dapat memengaruhi jumlah koneksi yang digunakan pada satu waktu.

Contoh:

  • Gateway mendukung 1.024 koneksi simultan ke alamat IP tujuan 203.0.113.99 pada port 80 menggunakan protokol TCP.

  • Gateway mendukung 1.024 koneksi simultan lainnya ke alamat IP tujuan yang sama pada port 443, yang juga menggunakan protokol TCP.

  • Gateway mendukung 1.024 koneksi simultan lainnya ke alamat IP tujuan yang berbeda pada port 80, yang juga menggunakan protokol TCP.

Penggunaan ulang port secara bersamaan dan Pemetaan Independen Endpoint

Selama setidaknya satu informasi dalam 3-tuple tujuan berubah—alamat IP tujuan, port tujuan, protokol—alamat IP sumber NAT dan tuple port sumber yang sama dapat digunakan secara bersamaan untuk berbagai koneksi.

NAT Publik menggunakan Endpoint-Independent Mapping, seperti yang dijelaskan di Bagian 2.3 RFC 5128. Akibatnya, jumlah koneksi simultan yang dapat dibuat oleh VM klien ke 3-tuple tujuan unik dapat berkurang jika Public NAT menetapkan alamat IP sumber dan tuple port sumber NAT yang sama ke lebih dari satu alamat IP internal dan port sumber efemeral VM klien. Kemungkinan terjadinya hal ini meningkat jika VM klien memiliki banyak alamat IP sumber internal dan membuat banyak koneksi ke 3-tuple tujuan yang sama. Saat pertama kali VM klien mengirimkan paket dari alamat IP internal dan port sumber efemeral, Public NAT akan membuat Pemetaan Independen Endpoint banyak-ke-satu antara hal berikut:

  • Alamat IP internal dan tuple port sumber ephemeral
  • Alamat IP sumber NAT yang unik dan tuple port sumber

Misalnya, saat VM klien mengirimkan paket dari alamat IP internalnya 10.0.0.2 menggunakan port sumber efemeral 10001, NAT Publik akan menetapkan 10.0.0.2:10001. Alamat IP sumber NAT dan tuple port sumber ini kemudian digunakan untuk semua koneksi berikutnya dari 10.0.0.2:10001 ke 3-tuple tujuan mana pun.

Jika VM yang sama menggunakan port sumber efemeral yang berbeda untuk mengirim paket, misalnya 10.0.0.2:20002, Public NAT juga menetapkan alamat IP sumber NAT dan tuple port sumber untuk semua koneksi berikutnya dari 10.0.0.2:20002 ke tujuan 3-tuple mana pun. Ada kemungkinan bahwa Public NAT dapat menetapkan alamat IP sumber NAT dan tuple port sumber yang sama ke kedua alamat IP internal dan tuple port sumber ephemeral yang menyebabkan konflik independen endpoint dalam situasi tertentu.

Untuk contoh yang lebih detail, lihat contoh konflik Pemetaan Independen Endpoint.

Mengurangi konflik independen endpoint

Anda dapat membuat perubahan konfigurasi untuk mengurangi konflik independen endpoint. Untuk mengetahui informasi selengkapnya, lihat Paket yang dihapus dengan alasan konflik independen endpoint.

Penundaan untuk penggunaan kembali port sumber TCP

Setelah gateway Cloud NAT menutup koneksi TCP, Google Cloud memberlakukan penundaan sebelum gateway dapat menggunakan kembali alamat IP sumber NAT dan tuple port sumber yang sama dengan tujuan yang sama (alamat IP tujuan, port tujuan, dan protokol). Durasi penundaan dikontrol oleh setelan TCP TIME_WAIT Timeout.

Jika perlu, Anda dapat mengurangi penundaan ini dengan mengubah nilai default Waktu Tunggu TCP TIME_WAIT. Untuk mengetahui informasi tentang cara mengubah waktu tunggu NAT, lihat Mengubah waktu tunggu NAT. Atau, Anda dapat membuat salah satu perubahan berikut:

  • Tingkatkan jumlah minimum port per instance VM sehingga prosedur reservasi port menetapkan lebih banyak alamat IP sumber NAT dan tuple port sumber ke VM.

  • Jika VM perlu membuka dan menutup koneksi TCP dengan cepat ke alamat IP dan port tujuan tujuan yang sama dengan menggunakan protokol yang sama, tetapkan alamat IP eksternal ke VM dan gunakan aturan firewall untuk membatasi koneksi masuk yang tidak diminta.

Port dan keamanan sumber

Jika Anda bergantung pada pengacakan port sumber sebagai langkah keamanan, Anda perlu mempertimbangkan hal berikut:

  • Tingkatkan jumlah minimum port per instance VM sehingga prosedur reservasi port menetapkan lebih banyak alamat IP sumber NAT dan tuple port sumber ke VM. Peningkatan jumlah minimum port per instance VM akan menetapkan rentang port secara acak ke setiap VM, tetapi port sumber yang dipilih dari rentang tersebut bersifat berurutan.

  • Tetapkan alamat IP eksternal ke VM, bukan menggunakan NAT Publik.

Contoh

Contoh berikut menunjukkan cara Cloud NAT mencadangkan alamat IP sumber NAT dan port sumber untuk VM dan cara Cloud NAT menjalankan NAT untuk paket yang dikirim ke internet.

Reservasi port

Contoh berikut menunjukkan penerapan prosedur reservasi port.

Misalkan Anda mengonfigurasi gateway NAT Publik guna menyediakan NAT untuk rentang alamat IP utama subnet, dan VM yang menggunakan subnet tersebut tidak memiliki rentang IP alias dari rentang alamat IP utama subnet. Bulatkan hasil operasi pembagian ke bilangan bulat terdekat. ⌊⌋ adalah fungsi floor (bilangan bulat terbesar), yang berarti menghapus hasil pembagian pecahan.

  • Jika Anda mengonfigurasi gateway NAT Publik dengan satu alamat IP NAT menggunakan penetapan manual, dan menetapkan jumlah minimum port per instance VM menjadi 64, gateway tersebut dapat menyediakan layanan NAT untuk hingga 1.008 VM:

    ⌊(1 alamat IP NAT) × (64.512 port per alamat) / (64 port per VM)⌋ = 1.008 VM

  • Jika perlu mendukung lebih dari 1.008 VM, Anda dapat menetapkan alamat IP NAT kedua ke gateway Cloud NAT. Dengan dua alamat IP NAT, dengan mempertahankan jumlah minimum port per VM adalah 64, Anda dapat mendukung 2.016 VM:

    ⌊(2 alamat IP NAT) × (64.512 port per alamat) / (64 port per VM)⌋ = 2.016 VM

  • Jika Anda menetapkan jumlah minimum port per VM ke 4.096, setiap alamat IP NAT dapat mendukung 15 VM. Penghitungan ini dibulatkan ke bawah ke bilangan bulat terdekat:

    ⌊(1 alamat IP NAT) × (64.512 port per alamat) / (4.096 port per VM)⌋ = 15 VM

Misalkan Anda mengonfigurasi gateway NAT Pribadi guna menyediakan NAT untuk semua alamat IP subnet:

  • Ukuran subnet minimum yang dapat Anda buat adalah delapan alamat IPv4, yang merupakan subnet mask dari /29. Jika Anda mengonfigurasi gateway NAT Pribadi dengan subnet NAT dengan ukuran minimum, dan menetapkan jumlah minimum port per instance VM ke 64, gateway dapat menyediakan layanan NAT untuk hingga 2.016 VM:

    ⌊(2(32-29) - 4) Alamat IP NAT × (64.512 port per alamat) / (64 port per VM × 2)⌋ = 2.016 VM

    Pada contoh sebelumnya, jika Anda menetapkan jumlah minimum port per instance VM ke 1024, gateway dapat menyediakan layanan NAT untuk hingga 126 VM:

    ⌊(2(32-29) - 4) Alamat IP NAT × (64.512 port per alamat) / (1.024 port per VM × 2)⌋ = 126 VM

  • Jika Anda mengonfigurasi gateway NAT Pribadi dengan subnet mask NAT /28, dan menetapkan jumlah minimum port per instance VM ke 64, gateway tersebut dapat menyediakan layanan NAT untuk hingga 6.048 VM:

    ⌊(2(32-28) - 4) Alamat IP NAT × (64.512 port per alamat) / (64 port per VM × 2)⌋ = 6.048 VM

Konflik Pemetaan Independen Endpoint

Contoh berikut menggambarkan bagaimana Pemetaan Independen Endpoint dapat mengurangi jumlah koneksi simultan dari VM klien ke 3-tuple tujuan yang sama, meskipun ada cukup banyak tuple alamat IP sumber NAT gratis dan tuple port sumber yang tersedia untuk VM klien.

Misalkan Anda telah mengonfigurasi gateway NAT Publik guna menyediakan NAT untuk rentang alamat IP utama subnet. Anda telah membuat VM klien dengan satu antarmuka jaringan yang alamat IP internal utamanya adalah 10.0.0.2 di subnet tersebut. Contoh VM tidak memiliki alamat IP eksternal yang ditetapkan ke antarmuka jaringannya.

  1. VM akan membuka koneksi dengan karakteristik berikut:

    • Port dan alamat IP internal sumber: 10.0.0.2:10001
    • 3-tuple tujuan: 203.0.113.1:80 menggunakan TCP
    • NAT Publik menggunakan alamat IP sumber NAT dan tuple port sumber berikut: 192.0.2.10:30009
  2. VM membuka koneksi kedua dengan karakteristik berikut:

    • Port dan alamat IP internal sumber: 10.0.0.2:10002
    • 3-tuple tujuan: 203.0.113.2:80 menggunakan TCP
    • NAT publik dapat memilih untuk menggunakan alamat IP sumber NAT yang sama dan tuple port sumber,192.0.2.10:30009, untuk koneksi ini juga. Penggunaan alamat IP sumber NAT dan tuple port sumber yang sama untuk alamat IP klien dan port sumber efemeral yang berbeda dapat dilakukan.
  3. Meskipun koneksi pertama dan kedua aktif, Public NAT tidak dapat membuka koneksi TCP ketiga dengan karakteristik berikut:

    • Port dan alamat IP internal sumber yang sama seperti koneksi pertama: 10.0.0.2:10001
    • 3-tuple tujuan yang sama dengan koneksi kedua: 203.0.113.2:80 menggunakan TCP

    Upaya koneksi ketiga ini dihentikan dengan error konflik independen endpoint karena Pemetaan Independen Endpoint yang dibuat oleh koneksi pertama mewajibkan semua koneksi dari 10.0.0.2:10001 harus menggunakan alamat IP sumber NAT dan tuple port sumber yang sama, 192.0.2.10:30009. Namun, 192.0.2.10:30009 sudah digunakan oleh koneksi TCP kedua ke 203.0.113.2:80.

  4. Untuk mencegah ambiguitas, upaya koneksi berikutnya dalam contoh ini akan berhasil selama salah satu hal berikut berlaku:

    • Koneksi TCP pertama telah ditutup. Menutup koneksi akan menghapus Pemetaan Independen Endpoint antara 10.0.0.2:10001 dan 192.0.2.10:30009, sehingga koneksi ketiga dapat dipetakan ke alamat IP sumber NAT dan tuple port sumber yang berbeda untuk berkomunikasi dengan 203.0.113.2:80 menggunakan TCP.
    • Koneksi TCP kedua telah ditutup. Menutup koneksi akan membebaskan 10.0.0.2:10001 agar dapat menggunakan alamat IP sumber NAT dan port sumber 192.0.2.10:30009 untuk berkomunikasi dengan 203.0.113.2:80 menggunakan TCP.
    • Upaya koneksi ketiga memilih port sumber efemeral (internal) yang berbeda. Dalam contoh ini, Pemetaan Independen Endpoint membuat pemetaan many-to-one untuk alamat IP sumber NAT internal dan port sumber 10.0.0.2:10001 dan 10.0.0.2:10002 untuk menggunakan 192.0.2.10:30009 saat berkomunikasi dengan 203.0.113.2:80 menggunakan TCP. Jika upaya koneksi ketiga menggunakan port sumber efemeral yang berbeda dengan 10001 dan 10002, ada kemungkinan alamat IP sumber NAT dan port sumber yang berbeda dapat digunakan untuk berkomunikasi dengan 203.0.113.2:80 menggunakan TCP.
    • Menonaktifkan independensi endpoint. Pengalihan memungkinkan koneksi baru dari 10.0.0.2:10001 tidak perlu menggunakan 192.0.2.10:30009, sehingga memungkinkannya menggunakan port dan alamat IP sumber NAT yang berbeda.

Guna mengetahui teknik untuk menghindari konflik, lihat Mengurangi konflik independen endpoint.

Langkah selanjutnya