1. Pengantar

Codelab ini akan memandu Anda menyiapkan zona penerusan keluar Cloud DNS menggunakan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) sebagai target penerusan. Fitur ini memungkinkan Anda mengarahkan traffic DNS ke alamat IP yang di-resolve dari nama DNS, bukan meng-hardcode alamat IP dalam konfigurasi zona penerusan. Hal ini sangat berguna saat alamat IP resolver DNS backend Anda berubah, karena Anda dapat memperbarui data DNS untuk FQDN, dan Cloud DNS akan otomatis mengambil perubahan tersebut.
Di akhir codelab ini, Anda akan dapat mengonfigurasi zona penerusan Cloud DNS yang menggunakan hal berikut:
- Target FQDN yang cocok dengan zona pribadi dengan data A/AAAA.
- Target FQDN yang didukung oleh kebijakan perutean Cloud DNS (geolokasi atau round robin berbobot) untuk afinitas regional atau distribusi traffic.
Ringkasan penerusan FQDN
Penerusan Cloud DNS memungkinkan Anda me-resolve nama DNS pribadi yang dihosting di luar Google Cloud Platform (misalnya, di lokal atau cloud lain) dari resource Google Cloud Platform. Secara tradisional, fitur ini mendukung penerusan ke daftar alamat IP target. Penerusan FQDN memperluas hal ini dengan memungkinkan Anda menentukan FQDN sebagai target penerusan di zona penerusan.
Jika FQDN ditentukan, Cloud DNS akan me-resolvenya ke alamat IP menggunakan pencarian internal, yang menggunakan logika resolusi jaringan sumber. Artinya, target FQDN dapat cocok dengan zona pribadi, kebijakan pemilihan rute DNS (geolocation atau round robin berbobot), atau bahkan nama domain publik Internet. Kemudian, Cloud DNS meneruskan kueri ke IP tujuan yang telah di-resolve.
Yang akan Anda bangun
Penerusan FQDN regional dengan zona pribadi baru
Anda akan membuat penyiapan yang mencapai afinitas regional untuk traffic DNS. Hal ini melibatkan pembuatan zona DNS pribadi dan konfigurasi kebijakan pemilihan rute geolokasi di dalamnya, lalu menautkan zona penerusan ke target FQDN ini. Hal ini memastikan bahwa traffic dari region tertentu (misalnya, us-east1) diteruskan ke server DNS regional yang sesuai.
Penerusan FQDN dengan zona pribadi yang ada
Anda akan mempelajari cara membuat zona penerusan yang menargetkan FQDN yang didukung oleh data A/AAAA dalam zona DNS pribadi yang ada. Contoh ini menunjukkan penerusan kueri ke alamat IP yang ditentukan secara statis yang di-resolve menggunakan target penerusan FQDN.
Yang akan Anda pelajari
Konsep penerusan FQDN
Anda akan memahami bahwa penerusan FQDN memperluas penerusan DNS dengan memungkinkan Anda menentukan target penerusan FQDN, bukan hanya alamat IP sebagai target penerusan untuk kueri keluar.
Manfaat penerusan FQDN
Anda akan mengetahui bahwa fitur ini menghilangkan kebutuhan untuk melakukan update manual saat alamat IP DNS resolver backend berubah, karena Cloud DNS secara otomatis mengambil perubahan dari data DNS FQDN. Fitur ini juga memungkinkan penskalaan infrastruktur DNS yang lebih fleksibel dengan mengizinkan server DNS berada di belakang nama bersama atau menskalakan secara dinamis.
Integrasi dengan kebijakan perutean Cloud DNS
Anda akan mempelajari cara menggabungkan penerusan FQDN dengan kebijakan perutean Cloud DNS (geolokasi atau round robin berbobot) untuk mencapai afinitas regional, mengoptimalkan performa untuk deployment yang beragam secara geografis, dan mendistribusikan traffic berdasarkan bobot yang dikonfigurasi.
Sintaksis perintah Google Cloud CLI
Anda akan memahami perintah gcloud dns managed-zones create dan flag yang relevan (--forwarding-targets, --private-forwarding-targets) untuk menyiapkan zona penerusan FQDN.
Prasyarat
Untuk menyelesaikan codelab ini, Anda memerlukan hal berikut:
- Akun Google
- Project Google Cloud yang mengaktifkan penagihan
- Alat command line gcloud telah diinstal dan dikonfigurasi
- Pemahaman dasar tentang Cloud DNS dan konsep DNS
2. Mempersiapkan
Memahami skenario penerusan FQDN
Penerusan FQDN Cloud DNS mendukung beberapa skenario penggunaan:
- Zona pribadi dengan data A/AAAA: Jika FQDN cocok dengan data A/AAAA di zona pribadi, alamat IP yang di-resolve akan ditambahkan ke daftar penerusan, dan perilakunya identik dengan penerusan ke alamat IP target secara langsung.
- Zona pribadi dengan kebijakan geolokasi: Kebijakan geolokasi memungkinkan Anda menentukan geolokasi sumber dan memberikan jawaban yang sesuai, memverifikasi distribusi traffic berdasarkan geografi. Hal ini penting untuk penerusan dan afinitas DNS regional.
- Zona pribadi dengan kebijakan round robin berbobot (WRR): Kebijakan WRR memungkinkan penentuan bobot yang berbeda per alamat IP untuk nama DNS, yang memverifikasi bahwa traffic didistribusikan sesuai dengan bobot yang dikonfigurasi.
- Zona publik dengan data A/AAAA: Jika FQDN tidak cocok dengan nama pribadi yang terlihat oleh jaringan yang sama, Cloud DNS akan mencoba menyelesaikannya menggunakan internet publik.
Memahami perintah Google Cloud CLI untuk penerusan FQDN
Untuk membuat zona penerusan dengan target penerusan FQDN menggunakan perintah gcloud CLI, Anda akan menggunakan perintah gcloud dns managed-zones create. Flag utama untuk menentukan target FQDN adalah --forwarding-targets atau --private-forwarding-targets. Lihat dokumen untuk mengetahui detail tentang metode perutean standar dan pribadi.
--forwarding-targets: Daftar alamat IPv4/IPv6 atau satu nama domain server nama target yang akan meneruskan kueri zona. Diabaikan untuk visibilitas publik. Alamat non-RFC1918 akan diteruskan ke target melalui Internet. Alamat RFC1918 akan diteruskan melalui VPC.--private-forwarding-targets: Daftar alamat IPv4/IPv6 atau satu nama domain server nama target yang akan meneruskan kueri zona. Diabaikan untuk visibilitas publik. Semua alamat yang ditentukan untuk parameter ini akan dijangkau melalui VPC.
Contoh sintaksis:
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
Perhatikan bahwa Anda dapat menentukan --private-forwarding-targets, bukan --forwarding-targets.
Menyiapkan project Google Cloud Platform
Login ke gcloud CLI.
gcloud auth login
Membuat project.
gcloud projects create my-codelab-project
Aktifkan Cloud DNS API. Mungkin perlu waktu beberapa menit agar perubahan ini diterapkan.
gcloud services enable dns.googleapis.com
Codelab ini menggunakan jaringan VPC default yang dibuat dengan project baru. Anda juga dapat membuat jaringan baru untuk digunakan.
3. Menyiapkan penerusan FQDN regional (dengan zona pribadi baru)
Skenario ini menunjukkan cara mencapai penerusan DNS regional, yang memastikan traffic dari region tertentu diteruskan ke server DNS dalam region yang sama.
Membuat zona DNS pribadi
Pertama, buat zona DNS pribadi (misalnya, foo.com.) yang akan menghosting FQDN Anda dan kebijakan pemilihan rute geolokasi terkait. Zona ini harus terlihat oleh jaringan default Anda.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
Buat set data kebijakan pemilihan rute geolokasi dalam zona pribadi
Selanjutnya, buat set data (misalnya, geo.foo.com.) dalam my-zone dan terapkan kebijakan pemilihan rute geolokasi. Contoh ini mengonfigurasi alamat IP untuk asia-east1 dan asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
Catatan: Jika geofencing dinonaktifkan (default dan direkomendasikan), kueri akan diarahkan ke region responsif terdekat jika target di region asli tidak responsif.
Membuat zona penerusan dengan target FQDN
Buat zona penerusan (geo.test.com.) yang terlihat di jaringan default yang sama, dan tetapkan geo.foo.com. (FQDN dengan kebijakan pemilihan rute geolokasi) sebagai target penerusannya.
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
Setiap kueri DNS yang cocok dengan geo.test.com kini diteruskan ke IP yang di-resolve (misalnya, 192.168.0.1 atau 192.168.0.2) dari geo.foo.com, berdasarkan wilayah sumber kueri.
4. Menyiapkan penerusan FQDN (dengan zona pribadi yang ada)
Memiliki zona DNS pribadi yang sudah ada
Asumsikan Anda sudah memiliki zona DNS pribadi bernama my-zone (foo.com.) yang terlihat oleh jaringan default.
Buat data resource DNS dalam zona pribadi ini
Buat data jenis A untuk a.foo.com. dalam my-zone yang ada.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Membuat zona penerusan dan menentukan target FQDN
Mirip dengan skenario FQDN regional, buat zona penerusan dan tentukan a.foo.com. sebagai target penerusan.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
Setiap kueri DNS yang cocok dengan a.test.com. akan diteruskan ke alamat IP 1.2.3.4 yang di-resolve dari a.foo.com.
5. Pembersihan
Sebelum zona pribadi dapat dihapus, semua ResourceRecordSet dalam zona pribadi harus dihapus terlebih dahulu (kecuali data NS dan SOA, yang dibuat secara otomatis dan harus selalu ada di zona pribadi).
Hapus kebijakan pemilihan rute geolokasi di zona pribadi.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Hapus data A di zona pribadi.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
Hapus zona pribadi.
gcloud dns managed-zones delete "my-zone"
Hapus zona penerusan untuk kebijakan pemilihan rute geolokasi.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Hapus zona penerusan untuk data A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Selamat
Selamat, Anda telah berhasil mempelajari cara menggunakan penerusan DNS keluar FQDN.