Menggunakan Public NAT dengan Compute Engine
Halaman ini menampilkan demonstrasi gateway NAT Publik yang menyediakan layanan penafsiran alamat jaringan untuk instance VM Compute Engine. Sebelum memulai, baca Ringkasan NAT Publik.
Prasyarat
Anda harus melakukan hal berikut sebelum menyiapkan Public NAT.
Mendapatkan izin IAM
Peran roles/compute.networkAdmin memberi Anda izin untuk membuat gateway NAT di Cloud Router, mencadangkan dan menetapkan alamat IP NAT, serta menentukan subnetwork (subnet) yang traffic-nya harus menggunakan penafsiran alamat jaringan oleh gateway NAT.
Menyiapkan Google Cloud
Sebelum memulai, siapkan item berikut di Google Cloud.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Contoh
Berikut adalah contoh menyeluruh yang menunjukkan contoh gateway NAT Publik dan contoh VM Compute Engine yang menggunakan gateway NAT Publik.
Langkah 1: Membuat jaringan dan subnet VPC
Jika sudah memiliki jaringan dan subnet, Anda dapat melewati langkah ini.
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Masukkan Nama
custom-network1
.Di bagian Subnets, tetapkan Subnet creation mode ke Custom.
Di bagian Subnet baru, masukkan Nama
subnet-us-east-192
.Di Region, pilih us-east4.
Masukkan rentang alamat IP
192.168.1.0/24
.Klik Selesai, lalu klik Buat.
gcloud
Buat jaringan VPC mode kustom baru dalam project Anda:
gcloud compute networks create custom-network1 \ --subnet-mode custom
Tentukan awalan subnet untuk region pertama Anda. Dalam contoh ini, kami menetapkan
192.168.1.0/24
ke wilayahus-east4
.gcloud compute networks subnets create subnet-us-east-192 \ --network custom-network1 \ --region us-east4 \ --range 192.168.1.0/24
Terraform
Anda dapat menggunakan modul Terraform untuk membuat jaringan dan subnet Virtual Private Cloud (VPC) kustom.
Langkah 2: Buat instance VM tanpa alamat IP eksternal
Konsol
Di Konsol Google Cloud, buka halaman VM instances.
Klik Create instance.
Tentukan Name (Nama)
nat-test-1
untuk instance Anda.Tetapkan Region ke us-east4.
Tetapkan Zone ke us-east4-c.
Klik link Pengelolaan, keamanan, disk, jaringan, tenancy tunggal.
Klik tab Networking.
Di bagian Network interfaces, klik
Edit untuk antarmuka default VM.- Setel Network ke
custom-network1
. - Setel Subnetwork ke
subnet-us-east-192
. - Setel External IP ke None.
- Klik Done.
- Setel Network ke
Untuk membuat dan memulai instance, klik Buat.
gcloud
gcloud compute instances create nat-test-1 \ --image-family debian-9 \ --image-project debian-cloud \ --network custom-network1 \ --subnet subnet-us-east-192 \ --zone us-east4-c \ --no-address
Terraform
Anda dapat menggunakan resource Terraform untuk membuat instance VM.
Langkah 3: Buat aturan firewall yang mengizinkan koneksi SSH
Konsol
Pada konsol Google Cloud, buka halaman Kebijakan Firewall.
Klik Create firewall rule.
Masukkan Nama
allow-ssh
.Tentukan Jaringan dari
custom-network1
.Tetapkan Arah traffic ke Ingress.
Tetapkan Tindakan pada kecocokan ke Izinkan.
Tetapkan Targets ke Semua instance dalam jaringan.
Tetapkan Filter sumber ke rentang IPv4.
Setel Rentang IP sumber ke
35.235.240.0/20
.Tetapkan Protocols and ports ke Specified protocols and ports.
Centang kotak tcp, lalu masukkan port
22
.Klik Create.
gcloud
gcloud compute firewall-rules create allow-ssh \ --network custom-network1 \ --source-ranges 35.235.240.0/20 \ --allow tcp:22
Terraform
Anda dapat menggunakan resource Terraform untuk membuat aturan firewall.
Langkah 4: Buat izin SSH IAP untuk instance pengujian Anda
Pada langkah berikutnya, gunakan Identity-Aware Proxy (IAP) untuk terhubung ke instance pengujian Anda.
Konsol
Di konsol Google Cloud, buka halaman Identity-Aware Proxy.
Pilih tab Resource SSH dan TCP.
Untuk memperbarui izin anggota pada resource, pilih kotak centang di samping All Tunnel Resources > us-east4-c > nat-test-1.
Di panel kanan, klik Add member.
Untuk memberi pengguna, grup, atau akun layanan akses ke resource, di kolom Anggota baru, tentukan alamat email mereka.
Jika hanya ingin menguji fitur ini, Anda dapat memasukkan alamat email Anda sendiri.
Untuk memberikan akses kepada anggota ke resource tersebut melalui fitur penerusan TCP Cloud IAP, pada menu drop-down Role, pilih Cloud IAP > IAP-secured Tunnel User.
Klik Save.
gcloud
Perintah ini memberikan akses SSH dengan menggunakan IAP ke semua instance VM di project Anda. Jika Anda ingin memberikan akses SSH dengan menggunakan IAP ke setiap VM, gunakan petunjuk Konsol Google Cloud.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER_INFO \ --role=roles/iap.tunnelResourceAccessor
Ganti kode berikut:
PROJECT_ID
: project ID AndaMEMBER_INFO
: daftar yang dipisahkan koma untuk pasangantype:email
anggota. Contoh:- Untuk pengguna perorangan:
user:test-user@example.com
- Untuk grup:
group:admins@example.com
- Untuk akun layanan:
serviceAccount:test123@example.domain.com
- Untuk pengguna perorangan:
Terraform
Anda dapat menggunakan resource Terraform untuk membuat izin SSH IAP untuk instance pengujian Anda.
Langkah 5: Login ke nat-test-1
dan konfirmasi bahwa koneksi tidak dapat terhubung ke internet
Konsol
Di Konsol Google Cloud, buka halaman VM instances.
Untuk
nat-test-1
, di kolom Connect, klik panah drop-down SSH, lalu pilih Open in browser window.Di command prompt VM, masukkan
curl example.com
, lalu tekan Enter.Anda seharusnya tidak mendapatkan hasil. Jika Anda melakukannya, Anda mungkin telah membuat
nat-test-1
dengan alamat IP eksternal, atau mungkin ada masalah lainnya. Untuk memecahkan masalah, lihat VM dapat menjangkau internet secara tiba-tiba tanpa Cloud NAT.Untuk mengakhiri perintah, Anda mungkin harus memasukkan
Ctrl+C
.
gcloud
Tambahkan kunci SSH Compute Engine ke host lokal Anda:
ssh-add ~/.ssh/google_compute_engine
Hubungkan ke
nat-test-1
dan jalankan perintah:gcloud compute ssh nat-test-1 \ --zone us-east4-c \ --command "curl example.com" \ --tunnel-through-iap
Anda seharusnya tidak mendapatkan hasil. Jika Anda melakukannya, Anda mungkin telah membuat
nat-test-1
dengan alamat IP eksternal, atau mungkin ada masalah lainnya. Untuk memecahkan masalah, lihat VM dapat menjangkau internet secara tiba-tiba tanpa Cloud NAT.Untuk mengakhiri perintah, Anda mungkin harus memasukkan
Ctrl+C
.
Langkah 6: Buat konfigurasi NAT menggunakan Cloud Router
Anda harus membuat Cloud Router di region yang sama dengan instance yang menggunakan NAT Publik. Cloud Router hanya digunakan untuk menempatkan informasi NAT ke VM. NAT tidak digunakan sebagai bagian dari {i>gateway NAT<i} yang sebenarnya.
Konfigurasi ini memungkinkan semua instance di region menggunakan NAT Publik untuk semua rentang IP alias dan primer. NAT juga secara otomatis mengalokasikan alamat IP eksternal untuk gateway NAT. Untuk mengetahui opsi lainnya, lihat dokumentasi Google Cloud CLI.
Konsol
Di Konsol Google Cloud, buka halaman Cloud NAT.
Klik Mulai atau Create Cloud NAT gateway.
Masukkan Nama Gateway
nat-config
.Setel VPC network ke
custom-network1
.Tetapkan Region ke us-east4.
Di bagian Cloud Router, pilih Create new router.
- Masukkan Nama
nat-router
. - Klik Create.
- Masukkan Nama
Klik Create.
gcloud
Membuat cloud router
gcloud compute routers create nat-router \ --network custom-network1 \ --region us-east4
Tambahkan konfigurasi ke router:
gcloud compute routers nats create nat-config \ --router-region us-east4 \ --router nat-router \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Terraform
Anda dapat menggunakan resource Terraform untuk membuat Cloud Router.
Anda dapat menggunakan modul Terraform untuk membuat konfigurasi NAT.
Langkah 7: Coba hubungkan kembali ke internet
Mungkin perlu waktu hingga tiga menit agar konfigurasi NAT diterapkan ke VM, jadi tunggu minimal satu menit sebelum mencoba mengakses internet lagi.
Konsol
Di Konsol Google Cloud, buka halaman VM instances.
Untuk
nat-test-1
, di kolom Connect, klik panah drop-down SSH, lalu pilih Open in browser window.Di command prompt VM, masukkan
curl example.com
, lalu tekan Enter.
gcloud
Hubungkan ke nat-test-1
dan jalankan perintah:
gcloud compute ssh nat-test-1 \ --zone us-east4-c \ --command "curl example.com" \ --tunnel-through-iap
Anda akan melihat output yang berisi konten berikut:
<html> <head> <title>Example Domain</title> ... ... ... </head> <body> <div> <h1>Example Domain</h1> <p>This domain is established to be used for illustrative examples in documents. You can use this domain in examples without prior coordination or asking for permission.</p> <p><a href="http://www.iana.org/domains/example">More information...</a></p> </div> </body> </html>
Langkah selanjutnya
- Siapkan gateway NAT Publik.
- Buat contoh penyiapan Google Kubernetes Engine (GKE).