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 hard code alamat IP dalam konfigurasi zona penerusan. Hal ini sangat berguna saat alamat IP DNS resolver 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
Dengan penerusan Cloud DNS, Anda dapat me-resolve nama DNS pribadi yang dihosting di luar Google Cloud Platform (misalnya, di infrastruktur lokal atau cloud lainnya) 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.
Saat FQDN ditentukan, Cloud DNS akan me-resolve-nya ke alamat IP menggunakan pencarian internal, yang menggunakan logika resolusi jaringan sumber. Artinya, target FQDN dapat cocok dengan zona pribadi, kebijakan perutean DNS (geolokasi atau round robin berbobot), atau bahkan nama domain publik Internet. Cloud DNS kemudian meneruskan kueri ke IP tujuan yang di-resolve.
Yang akan Anda build
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 mengonfigurasi 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. 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 mempelajari bahwa fitur ini menghilangkan kebutuhan untuk pembaruan manual saat alamat IP DNS resolver backend berubah, karena Cloud DNS otomatis mengambil perubahan dari data DNS FQDN. Hal ini juga memungkinkan penskalaan infrastruktur DNS yang lebih fleksibel dengan mengizinkan server DNS berada di belakang nama bersama atau diskalakan secara dinamis.
Integrasi dengan kebijakan perutean Cloud DNS
Anda akan mempelajari cara penerusan FQDN dapat digabungkan 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-nya 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 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, sehingga memverifikasi distribusi traffic berdasarkan geografi. Hal ini penting untuk penerusan dan afinitas DNS regional.
- Zona pribadi dengan kebijakan weighted round robin (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 me-resolve-nya 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 kunci untuk menentukan target FQDN adalah --forwarding-targets
atau --private-forwarding-targets
. Lihat dokumen untuk mengetahui detail tentang metode pemilihan rute standar dan khusus.
--forwarding-targets
: Daftar alamat IPv4/IPv6 atau satu nama domain server nama target yang akan menerima penerusan kueri dari 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 menerima penerusan kueri dari 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 hingga 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 perutean 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
Membuat kumpulan data kebijakan perutean geolokasi dalam zona pribadi
Selanjutnya, buat kumpulan 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 pembatasan wilayah 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 perutean 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
Serupa 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 yang di-resolve 1.2.3.4 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 perutean 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 perutean 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.