Aturan Cloud NAT
Halaman ini memberikan ringkasan aturan Cloud NAT untuk NAT Publik. Aturan ini memungkinkan Anda menentukan cara Cloud NAT digunakan untuk terhubung ke internet.
Aturan Cloud NAT untuk NAT Publik mendukung penafsiran alamat jaringan sumber (SNAT) berdasarkan alamat sumber atau tujuan.
Aturan NAT
Secara default, saat Anda mengonfigurasi gateway Cloud NAT untuk NAT Publik, paket yang diterjemahkan oleh gateway NAT tersebut menggunakan set alamat IP NAT yang sama untuk menjangkau semua alamat internet. Jika memerlukan kontrol lebih besar atas paket yang diterjemahkan oleh Cloud NAT, Anda dapat menambahkan aturan NAT.
Aturan NAT menentukan kondisi kecocokan dan tindakan yang sesuai. Setelah Anda menentukan aturan NAT, setiap paket akan dicocokkan dengan setiap aturan NAT. Jika paket cocok dengan kondisi yang ditetapkan dalam aturan, maka tindakan yang sesuai dengan kecocokan tersebut akan terjadi.
Aturan NAT untuk NAT Publik mendukung pencocokan alamat sumber dan tujuan:
- Dalam aturan berbasis sumber, paket dicocokkan berdasarkan alamat IP sumbernya. Hanya alamat sumber IPv4 yang didukung.
- Dalam aturan berbasis tujuan, paket dicocokkan berdasarkan alamat IP tujuannya. Hanya alamat tujuan IPv4 yang didukung.
Menggabungkan kondisi berbasis sumber dan tujuan dalam satu aturan NAT tidak diizinkan. Untuk mengetahui informasi selengkapnya, lihat spesifikasi aturan NAT.
Contoh konfigurasi aturan Cloud NAT
Bagian ini memberikan contoh konfigurasi untuk aturan NAT berbasis sumber dan tujuan.
Aturan berbasis sumber
Anda dapat menggunakan aturan NAT berbasis sumber untuk traffic apa pun yang didukung oleh NAT Publik. Bagian ini menunjukkan contoh konfigurasi untuk instance VM dengan penerusan IP diaktifkan.
Secara default, saat gateway Cloud NAT dikonfigurasi untuk traffic IPv4 di subnet, gateway menyediakan NAT untuk alamat IP internal utama dan rentang IP alias dari instance VM apa pun di subnet tersebut. Dengan menggunakan aturan NAT berbasis sumber, Anda juga dapat mengonfigurasi NAT untuk instance VM yang meneruskan paket dengan alamat sumber lain.
Dalam contoh ini, Cloud NAT dikonfigurasi di Subnet A. Di subnet,
instance VM dengan alamat IP internal utama 10.1.1.2 dan rentang IP alias 10.2.1.0/24 mengirim traffic ke internet. Pertimbangkan persyaratan berikut untuk instance VM:
- Jika paket berasal dari rentang IP
192.168.1.0/24, VM harus menggunakan alamat IP NAT203.0.113.10untuk mengirim traffic ke tujuan internet mana pun. - Jika paket berasal dari rentang IP
192.168.2.0/24, VM harus menggunakan alamat IP NAT203.0.113.20untuk mengirim traffic ke tujuan internet mana pun. - Jika paket berasal dari alamat IP
10.1.1.2(alamat IP internal utama VM) atau rentang IP10.2.1.0/24(rentang IP alias VM), VM harus menggunakan alamat IP NAT203.0.113.30untuk mengirim traffic ke tujuan internet mana pun.
Untuk memenuhi persyaratan ini, Anda membuat dua aturan NAT berbasis sumber untuk paket yang diteruskan dan aturan default untuk paket dari alamat IP internal utama dan rentang IP alias instance VM:
- Aturan berbasis sumber 1: jika alamat sumbernya adalah
192.168.1.0/24, gunakan203.0.113.10untuk mengirim traffic ke internet. - Aturan berbasis sumber 2: jika alamat sumbernya adalah
192.168.2.0/24, gunakan203.0.113.20untuk mengirim traffic ke internet. - Aturan default: untuk semua paket lainnya, gunakan
203.0.113.30untuk mengirim traffic ke internet.
Jika alamat sumber paket yang diteruskan oleh instance VM tidak cocok dengan aturan 1 atau aturan 2, paket akan dihentikan. Untuk mengetahui informasi tentang cara Cloud NAT mengalokasikan port untuk VM dengan penerusan IP diaktifkan, lihat Alokasi port untuk penerusan IP.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan aturan NAT berbasis sumber, lihat Cloud WAN di balik layar: Melihat lebih dekat kapabilitas jaringan yang berbeda.
Aturan berbasis tujuan
Contoh berikut menunjukkan cara menggunakan aturan NAT saat tujuan Anda mengizinkan akses hanya dari beberapa alamat IP. Sebaiknya traffic ke tujuan tersebut dari VM Google Cloud Anda di subnet pribadi diterjemahkan dengan SNAT hanya dengan alamat IP yang diizinkan. Sebaiknya Anda tidak menggunakan alamat IP ini untuk tujuan lain.
Pertimbangkan persyaratan berikut untuk VM di Subnet-1 (10.10.10.0/24),
yang berada di Region A dari jaringan VPC test:
- VM harus menggunakan alamat IP NAT
203.0.113.20untuk mengirim traffic ke tujuan198.51.100.20/30. - VM harus menggunakan alamat IP NAT
203.0.113.30untuk mengirim traffic ke tujuan198.51.100.30atau198.51.100.31. - VM harus menggunakan alamat IP NAT
203.0.113.40untuk mengirim traffic ke tujuan internet lainnya.
Jaringan VPC ini juga berisi dua subnet tambahan di region yang sama. VM ini harus menggunakan alamat IP NAT 203.0.113.10 untuk mengirim traffic ke tujuan mana pun.
Anda dapat menggunakan aturan NAT untuk contoh ini, tetapi Anda memerlukan dua gateway NAT karena
Subnet-1 (10.10.10.0/24) memiliki aturan NAT yang berbeda dari subnet
lainnya. Untuk membuat konfigurasi ini, ikuti langkah-langkah berikut:
- Buat gateway bernama
Cloud NAT Gateway 1untukSubnet-1dengan alamat IP NAT203.0.113.40dan tambahkan aturan berikut:- Aturan NAT 1 di
Cloud NAT Gateway 1: saat tujuannya adalah198.51.100.20/30, gunakan203.0.113.20untuk NAT. - Aturan NAT 2 di
Cloud NAT Gateway 1: saat tujuannya adalah198.51.100.30atau198.51.100.31, gunakan203.0.113.30untuk NAT.
- Aturan NAT 1 di
- Buat gateway bernama
Cloud NAT Gateway 2untuk subnet lain di region tersebut dan tetapkan alamat IP NAT sebagai203.0.113.10. Tidak ada aturan NAT yang diperlukan pada langkah ini.
Spesifikasi aturan NAT
- Cloud NAT mendukung aturan berbasis sumber dan tujuan. Setiap aturan menentukan kondisi yang didasarkan pada alamat sumber atau tujuan, tetapi tidak keduanya.
- Prioritas aturan secara unik mengidentifikasi aturan NAT, dari 0 (prioritas tertinggi) hingga 65.000 (prioritas terendah). Tidak ada dua aturan yang dapat memiliki prioritas yang sama.
- Setiap konfigurasi NAT memiliki aturan default (prioritas aturan 65.001):
- Aturan default diterapkan jika paket tidak cocok dengan aturan NAT berbasis sumber atau tujuan dalam konfigurasi NAT yang sama. Pengecualian: aturan default tidak diterapkan ke paket yang diteruskan. Untuk menggunakan NAT bagi paket ini, konfigurasi NAT Anda harus menyertakan aturan berbasis sumber yang cocok. Untuk mengetahui informasi selengkapnya, lihat Aturan berbasis sumber dan Alokasi port untuk penerusan IP.
- Rentang CIDR IP aturan default adalah
0.0.0.0/0. Jika konfigurasi NAT memiliki aturan berbasis sumber dan tujuan, semua traffic yang memenuhi syarat untuk aturan default dan tidak cocok dengan aturan kustom Anda akan diproses oleh aturan default ini, menggunakan alamat IP NAT yang ditetapkan untuknya.
- Aturan Cloud NAT hanya didukung jika nilai opsi alokasi IP NAT adalah
MANUAL_ONLY. Semua alamat IP yang dikonfigurasi dalam aturan tertentu harus memiliki tingkat yang sama.
Anda tidak dapat menggunakan campuran alamat IP Paket Premium dan Paket Standar dalam aturan yang sama (termasuk aturan default).
Rentang CIDR IP dalam kondisi pencocokan tidak boleh tumpang-tindih di seluruh aturan NAT. Paling banyak, satu aturan dapat diterapkan ke paket tertentu. Jika paket cocok dengan aturan berbasis sumber dan tujuan, Cloud NAT akan menerapkan aturan yang memiliki prioritas lebih tinggi.
Anda tidak dapat membuat aturan NAT dengan
0.0.0.0/0sebagai rentang sumber atau tujuan karena digunakan oleh aturan default.Alamat IP NAT di seluruh aturan NAT tidak boleh tumpang-tindih.
Aturan harus memiliki alamat IP
Activeyang tidak kosong atauDrainyang tidak kosong. Jika aturan memiliki alamat IPActivekosong, koneksi baru yang cocok dengan aturan NAT akan dihentikan.Aturan NAT tidak dapat ditambahkan ke gateway NAT yang mengaktifkan pemetaan independen endpoint (EIM). Anda tidak dapat mengaktifkan EIM di gateway NAT yang memiliki aturan NAT di dalamnya.
Alokasi port
Gateway Cloud NAT menggunakan setelan port minimum per VM (minPortsPerVm) untuk menentukan jumlah port sumber yang akan dialokasikan untuk setiap VM.
Karena satu alamat IP NAT menyediakan 64.512 port yang dapat digunakan, nilai
minPortsPerVm menentukan jumlah maksimum VM yang dapat didukung oleh satu alamat IP NAT. Misalnya, jika minPortsPerVm adalah 1.024 port, satu alamat IP dapat mendukung hingga 63 VM (64.512 ÷ 1.024).
Nilai minPortsPerVm digunakan untuk menghitung alokasi port secara independen untuk setiap aturan NAT yang dikonfigurasi, termasuk aturan default. Jika VM kehabisan
port yang dialokasikan dari aturan tertentu, koneksi baru yang cocok dengan aturan tersebut
akan dihapus.
Jenis aturan dan alokasi port
Cloud NAT mengalokasikan port untuk aturan NAT berdasarkan jenisnya:
- Aturan default. Port dialokasikan ke setiap VM yang alamat IP internal utamanya atau rentang IP aliasnya ditayangkan oleh gateway Cloud NAT, meskipun VM mengaktifkan penerusan IP. Aturan default hanya memproses traffic yang berasal dari alamat IP internal utama atau rentang IP alias dan tidak memproses traffic yang diteruskan.
Aturan berbasis sumber. Port dialokasikan ke VM hanya jika alamat IP internal utamanya atau rentang IP alias cocok dengan alamat sumber yang ditentukan dalam aturan NAT. Misalnya, asumsikan gateway Cloud NAT dikonfigurasi untuk melayani rentang alamat IP utama yang berisi
10.1.1.1dan10.1.1.2. Jika aturan berbasis sumber menentukan10.1.1.1untuk kondisi kecocokan, tetapi VM mengirim paket menggunakan alamat IP internal utamanya10.1.1.2, Cloud NAT tidak akan mengalokasikan port ke VM dari aturan tertentu tersebut.Batasan: jika VM mengaktifkan penerusan IP, alokasi port beroperasi secara berbeda. Dalam hal ini, Cloud NAT mengalokasikan port ke VM dari aturan default dan semua aturan berbasis sumber dalam konfigurasi NAT secara bersamaan. Untuk mengetahui informasi selengkapnya, lihat Alokasi port untuk penerusan IP.
Aturan berbasis tujuan. Untuk setiap aturan, port dialokasikan ke setiap VM yang alamat IP internal utamanya atau rentang IP aliasnya ditayangkan oleh gateway Cloud NAT. Setiap VM menerima port dari aturan default dan dari setiap aturan berbasis tujuan.
Misalnya, jika gateway dikonfigurasi dengan 1.024 port per VM dan memiliki dua aturan NAT berbasis tujuan selain aturan NAT default, setiap VM akan dialokasikan 1.024 port dari setiap aturan.
Alokasi port untuk penerusan IP
Untuk mendukung VM dengan penerusan IP yang diaktifkan, pencocokan aturan untuk VM ini beroperasi secara berbeda selama alokasi port dan pemrosesan paket:
Alokasi port. Karena VM penerusan dapat mengeluarkan paket dengan alamat IP sumber arbitrer, Cloud NAT memperlakukan VM ini sebagai kecocokan untuk aturan default dan semua aturan NAT berbasis sumber dalam konfigurasi NAT. Oleh karena itu, untuk setiap VM penerusan, gateway Cloud NAT mengalokasikan nilai
minPortsPerVmdari aturan default dan setiap aturan berbasis sumber secara bersamaan.Misalnya, pertimbangkan gateway Cloud NAT yang dikonfigurasi dengan
minPortsPerVmsebesar 1.024, satu aturan NAT berbasis sumber dengan satu alamat IP NAT, dan aturan NAT default dengan 10 alamat IP NAT. Setiap VM penerusan dialokasikan 1.024 port dari kedua aturan. Karena aturan berbasis sumber hanya memiliki satu alamat IP NAT, aturan tersebut dapat mendukung hingga 63 VM penerusan. Gateway Cloud NAT juga mencadangkan 64.512 port (63 VM × 1.024 port) untuk VM tersebut dari aturan default.Pemrosesan paket. Untuk terjemahan alamat sebenarnya, aturan berbasis sumber memproses paket hanya jika alamat IP sumber paket cocok dengan alamat sumber yang ditentukan dalam kondisi aturan. Aturan default tidak memproses traffic yang diteruskan dari VM yang mengaktifkan penerusan IP. Paket dengan alamat IP sumber arbitrer akan dihapus jika tidak cocok dengan aturan berbasis sumber.
Untuk mencegah kelelahan port yang mengakibatkan error dalam konfigurasi NAT yang mencakup VM dengan penerusan IP diaktifkan, pastikan aturan NAT Anda dikonfigurasi dengan kapasitas port yang memadai:
- Aturan default harus memiliki alamat IP NAT yang cukup untuk mendukung semua VM penerusan yang dilayani oleh gateway Cloud NAT, selain setiap VM yang menggunakan aturan default untuk traffic dari alamat IP internal utama atau rentang IP aliasnya.
- Setiap aturan berbasis sumber harus memiliki alamat IP NAT yang cukup untuk mendukung semua VM penerusan yang dilayani oleh gateway. Aturan juga harus memiliki jumlah alamat IP NAT yang cukup untuk mendukung setiap VM yang menggunakan aturan berbasis sumber tertentu untuk traffic dari alamat IP internal utama atau rentang IP aliasnya.
Kapasitas port
Aturan NAT dapat kehabisan port yang tersedia jika alamat IP aturan tidak dapat mendukung alokasi port yang diperlukan.
Pertimbangkan subnet dengan 16 VM dan gateway Cloud NAT yang dikonfigurasi dengan 4.096 port per VM. Gateway memiliki tiga aturan:
- Aturan NAT default dengan dua alamat IP NAT
- Berbasis tujuan
rule-1dengan satu alamat IP NAT - Berbasis tujuan
rule-2dengan dua alamat IP NAT
Karena alokasi port dihitung secara independen per aturan, setiap aturan harus menyediakan 65.536 port (16 VM × 4.096 port).
Aturan default dan rule-2 memiliki kapasitas yang cukup. Namun, rule-1 hanya memiliki satu alamat IP (64.512 port yang dapat digunakan), yang tidak cukup untuk menyediakan alokasi penuh bagi ke-16 VM. Akibatnya, traffic yang cocok dengan rule-1
mungkin dihapus untuk VM yang tidak menerima alokasi port penuhnya.
Untuk memeriksa apakah aturan NAT memerlukan lebih banyak alamat IP, Anda dapat menggunakan kolom
minExtraIpsNeeded.
Kolom ini menampilkan jumlah alamat IP yang harus Anda alokasikan jika alamat IP yang ada dalam aturan NAT tidak dapat memenuhi persyaratan port untuk semua VM yang dikonfigurasi.
Perencanaan kapasitas port
Saat merencanakan kapasitas port aturan NAT, pertimbangkan cara Cloud NAT mengalokasikan port untuk aturan NAT:
- Alokasi port
- Jenis aturan dan alokasi port
- Alokasi port untuk penerusan IP (untuk konfigurasi NAT yang mencakup VM dengan penerusan IP diaktifkan)
Bahasa ekspresi aturan
Aturan NAT ditulis menggunakan sintaksis Common Expression Language.
Ekspresi memerlukan dua komponen:
- Atribut yang dapat diperiksa dalam ekspresi aturan.
- Operasi yang dapat dilakukan pada atribut sebagai bagian dari ekspresi.
Misalnya, ekspresi berikut menggunakan atribut destination.ip dan
198.51.100.0/24 dalam operasi inIpRange(). Dalam hal ini, ekspresi
akan menampilkan true jika destination.ip berada dalam rentang alamat IP 198.51.100.0/24.
inIpRange(destination.ip, '198.51.100.0/24')
Aturan NAT hanya mendukung atribut dan operasi berikut:
Atribut
Atribut merepresentasikan informasi dari paket keluar, seperti alamat IP sumber dan tujuan.
| Nama atribut | Deskripsi |
|---|---|
source.ip |
Alamat IP sumber paket |
destination.ip |
Alamat IP tujuan paket |
Operasi
Referensi berikut menjelaskan operator yang dapat Anda gunakan dengan atribut untuk menentukan ekspresi aturan.
| Operasi | Deskripsi |
|---|---|
inIpRange(string, string) -> bool |
inIpRange(x, y) menampilkan true
jika rentang CIDR IP y berisi alamat IP
x. |
|| |
Operator logika. x || y menampilkan
true jika x atau y adalah
true. |
== |
Operator sama dengan. x == y menampilkan
true jika x sama dengan
y. |
Contoh ekspresi
Anda dapat mencocokkan paket berdasarkan alamat sumber atau tujuan, tetapi tidak keduanya.
Contoh pencocokan berbasis sumber
Mencocokkan paket dengan alamat IP sumber 10.0.0.25:
"source.ip == '10.0.0.25'"
Mencocokkan paket dengan alamat IP sumber 10.0.0.25 atau 10.0.0.26:
"source.ip == '10.0.0.25' || source.ip == '10.0.0.26'"
Mencocokkan paket dengan rentang alamat IP sumber 10.0.2.0/24:
"inIpRange(source.ip, '10.0.2.0/24')"
Mencocokkan paket dengan alamat IP sumber 10.0.0.25 atau rentang alamat IP sumber 10.0.2.0/24:
"source.ip == '10.0.0.25' || inIpRange(source.ip, '10.0.2.0/24')"
Contoh pencocokan berbasis tujuan
Mencocokkan paket dengan alamat IP tujuan 198.51.100.20:
"destination.ip == '198.51.100.20'"
Mencocokkan paket dengan alamat IP tujuan 198.51.100.20 atau
198.51.100.21:
"destination.ip == '198.51.100.20' || destination.ip == '198.51.100.21'"
Mencocokkan paket dengan rentang alamat IP tujuan 198.51.100.10/30:
"inIpRange(destination.ip, '198.51.100.10/30')"
Mencocokkan paket dengan alamat IP tujuan 198.51.100.20 atau
rentang alamat IP tujuan 198.51.100.10/30:
"destination.ip == '198.51.100.20' || inIpRange(destination.ip, '198.51.100.10/30')"