Aturan Cloud NAT

Fitur aturan NAT dapat digunakan untuk 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 kecocokan dan tindakan terkait. Setelah Anda menentukan aturan NAT, setiap paket 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 menggambarkan 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 ke sumber NAT 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 pada jaringan VPC test:

  • VM harus menggunakan alamat IP NAT 203.0.113.20 untuk mengirim traffic ke tujuan 198.51.100.20/30.
  • VM harus menggunakan alamat IP NAT 203.0.113.30 untuk mengirim traffic ke tujuan 198.51.100.30 atau 198.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.

Konfigurasi Cloud NAT dengan dua gateway Cloud NAT.
Konfigurasi Cloud NAT dengan dua gateway Cloud NAT (klik untuk memperbesar).

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:

  1. Buat gateway bernama Cloud NAT Gateway 1 untuk Subnet-1 dengan alamat IP NAT 203.0.113.40, lalu tambahkan aturan berikut:
    1. Aturan NAT 1 di Cloud NAT Gateway 1: Jika tujuannya adalah 198.51.100.20/30, gunakan NAT sumber dengan 203.0.113.20.
    2. Aturan 2 NAT di Cloud NAT Gateway 1: Jika tujuannya adalah 198.51.100.30 atau 198.51.100.31, gunakan NAT sumber dengan 203.0.113.30.
  2. Buat gateway yang disebut Cloud NAT Gateway 2 untuk subnet lain di region tersebut dan tetapkan alamat IP NAT sebagai 203.0.113.10. Tidak ada aturan NAT yang diperlukan pada langkah ini.

Spesifikasi aturan NAT

Sebelum menggunakan aturan NAT, perhatikan spesifikasi berikut:

  • Nomor aturan secara unik mengidentifikasi aturan NAT. Tidak ada dua aturan yang bisa memiliki nomor aturan yang sama.
  • Setiap konfigurasi NAT memiliki aturan default:
    • Aturan default diterapkan jika tidak ada aturan NAT lain yang cocok dengan konfigurasi NAT yang sama.
    • Nomor aturan dari aturan default adalah 65001.
    • Rentang CIDR IP tujuan dari 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 memiliki tingkat yang sama.

    Anda tidak dapat menggunakan campuran alamat IP Paket Premium dan Tingkat Standar dalam aturan yang sama (termasuk aturan default).

  • Rentang CIDR IP tujuan dalam kondisi pencocokan tidak boleh tumpang-tindih di seluruh aturan NAT. Hanya boleh ada maksimal satu aturan yang bisa cocok dengan paket apa pun yang diberikan.

    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 Active yang tidak kosong atau alamat IP Drain yang tidak kosong. Jika aturan memiliki alamat IP Active kosong, koneksi baru yang cocok dengan aturan NAT akan dihapus.

  • Aturan NAT tidak dapat ditambahkan ke gateway NAT yang mengaktifkan Pemetaan Independen Endpoint. Anda tidak dapat mengaktifkan Pemetaan Independen Endpoint pada gateway NAT yang memiliki aturan NAT di dalamnya.

Selain itu, semua VM mendapatkan port yang ditetapkan kepadanya dari nilai 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 serta memiliki 16 VM dan 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 tersebut 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 melalui rule1 mungkin akan dihapus dan menunjukkan tanda-tanda keluar dari resource karena traffic tidak menggunakan aturan default.

Bahasa ekspresi aturan

Aturan NAT ditulis menggunakan sintaksis Common Expression Language.

Sebuah 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 menampilkan benar 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 bersama atribut untuk menentukan ekspresi aturan.

Operasi Deskripsi
inIpRange(string, string) -> bool inIpRange(X, Y) menampilkan nilai benar jika rentang CIDR IP Y berisi alamat IP X.
|| Operator logika. x || y menampilkan nilai benar jika x atau y benar.
== Operator sama dengan. x == y akan menampilkan nilai benar jika x sama dengan y.

Contoh ekspresi

Cocokkan traffic dengan alamat IP tujuan 198.51.100.20.

"destination.ip == '198.51.100.20'"

Cocokkan 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