Aturan Cloud NAT
Fitur aturan NAT memungkinkan Anda membuat aturan akses yang menentukan cara Cloud NAT digunakan untuk terhubung ke internet. Aturan NAT mendukung NAT sumber berdasarkan alamat tujuan.
Saat Anda mengonfigurasi gateway NAT tanpa aturan NAT, VM yang menggunakan gateway NAT tersebut akan menggunakan kumpulan alamat IP NAT yang sama untuk menjangkau semua alamat internet. Jika memerlukan kontrol lebih besar atas paket yang melewati Cloud NAT, Anda dapat menambahkan aturan NAT. Aturan NAT menentukan kondisi pencocokan 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, tindakan yang sesuai dengan kecocokan tersebut akan terjadi.
Contoh konfigurasi aturan Cloud NAT
Contoh berikut mengilustrasikan cara menggunakan aturan NAT saat tujuan Anda hanya mengizinkan akses dari beberapa alamat IP. Sebaiknya traffic ke tujuan tersebut dari VM Google Cloud Anda di subnet pribadi diterjemahkan NAT sumber 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.20
untuk mengirim traffic ke tujuan198.51.100.20/30
. - VM harus menggunakan alamat IP NAT
203.0.113.30
untuk mengirim traffic ke tujuan198.51.100.30
atau198.51.100.31
. - VM harus menggunakan alamat IP NAT
203.0.113.40
untuk 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 dengan subnet
lainnya. Untuk membuat konfigurasi ini, ikuti langkah-langkah berikut:
- Buat gateway bernama
Cloud NAT Gateway 1
untukSubnet-1
dengan alamat IP NAT203.0.113.40
dan tambahkan aturan berikut:- Aturan NAT 1 di
Cloud NAT Gateway 1
: Jika tujuannya adalah198.51.100.20/30
, gunakan NAT sumber dengan203.0.113.20
. - Aturan NAT 2 di
Cloud NAT Gateway 1
: Jika tujuannya adalah198.51.100.30
atau198.51.100.31
, gunakan NAT sumber dengan203.0.113.30
.
- Aturan NAT 1 di
- Buat gateway bernama
Cloud NAT Gateway 2
untuk subnet lain di region tersebut dan tetapkan alamat IP NAT sebagai203.0.113.10
. Tidak diperlukan aturan NAT dalam langkah ini.
Spesifikasi aturan NAT
Sebelum menggunakan aturan NAT, perhatikan spesifikasi berikut:
- Nomor aturan mengidentifikasi aturan NAT secara unik. Tidak ada dua aturan yang dapat memiliki nomor aturan yang sama.
- Setiap konfigurasi NAT memiliki aturan default:
- Aturan default diterapkan jika tidak ada aturan NAT lain yang cocok dalam konfigurasi NAT yang sama.
- Nomor aturan untuk aturan default adalah
65001
. - Rentang CIDR IP tujuan aturan default adalah
0.0.0.0/0
.
- Aturan Cloud NAT hanya didukung jika nilai opsi alokasi IP NAT adalah
MANUAL_ONLY
. Semua alamat IP yang dikonfigurasi dalam aturan tertentu harus berada di 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 tujuan dalam kondisi kecocokan tidak boleh tumpang-tindih di seluruh aturan NAT. Maksimal satu aturan yang dapat cocok dengan paket tertentu.
Anda tidak dapat membuat aturan NAT dengan rentang CIDR IP tujuan
0.0.0.0/0
, karena rentang tersebut digunakan dalam aturan default.Alamat IP NAT di seluruh aturan NAT tidak boleh tumpang-tindih.
Aturan harus memiliki alamat IP
Active
atau alamat IPDrain
yang tidak kosong. Jika aturan memiliki alamat IPActive
kosong, koneksi baru yang cocok dengan aturan NAT akan dihapus.Aturan NAT tidak dapat ditambahkan ke gateway NAT yang telah mengaktifkan Pemetaan Independen Endpoint. Anda tidak dapat mengaktifkan Pemetaan Independen Endpoint di gateway NAT yang memiliki aturan NAT di dalamnya.
Selain itu, semua VM mendapatkan port yang ditetapkan dari nilai untuk port minimum per VM untuk setiap aturan Cloud NAT. Jika port yang dialokasikan ke VM dari aturan NAT habis, koneksi baru yang cocok dengan aturan NAT akan dihapus.
Misalnya, jika Anda mengonfigurasi 4.096 port per VM dan memiliki 16 VM serta 2 aturan NAT
(rule1
dengan 1 alamat IP dan rule2
dengan 2 alamat IP), bersama dengan aturan default
(default
) dengan 2 alamat IP, ke-16 VM akan mendapatkan 4.096 port di setiap paket
aturan NAT. Dalam contoh ini, tidak ada masalah di default
atau rule2
untuk
semua VM-nya, tetapi rule1
tidak dapat mengalokasikan port untuk semua VM-nya.
Oleh karena itu, traffic dari VM yang perlu melewati rule1
mungkin dihapus
dan menunjukkan tanda kehabisan resource karena traffic tidak menggunakan
aturan default.
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 mewakili informasi dari paket keluar, seperti alamat IP tujuan.
Nama atribut | Deskripsi |
---|---|
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 benar jika x atau y bernilai benar. |
== |
Operator sama dengan. x == y menampilkan benar jika x sama dengan y. |
Contoh ekspresi
Mencocokkan traffic dengan alamat IP tujuan 198.51.100.20
.
"destination.ip == '198.51.100.20'"
Mencocokkan traffic dengan alamat IP tujuan 198.51.100.10/30
atau 198.51.100.20
.
"inIpRange(destination.ip, '198.51.100.10/30') || destination.ip == '198.51.100.20'"
Langkah selanjutnya
- Pelajari cara mengonfigurasi aturan NAT.