1. Pengantar
Terakhir diperbarui: 06-01-2021
Apa itu Cloud DNS?
Lihat halaman beranda kami.
Yang akan Anda bangun
Dalam Codelab ini, Anda akan membuat Cloud DNS ManagedZone dan ResourceRecordSets yang relevan menggunakan gcloud untuk mengelola resolusi nama ke beberapa instance VM.
Yang akan Anda pelajari
Cara MEMBUAT, MEMBACA, MENGHAPUS, dan MEMPERBARUI ResourceRecordSets satu per satu.
Yang Anda butuhkan
2. Mempersiapkan
Menyiapkan Project Google Cloud Platform
Login ke gcloud
gcloud auth login
Membuat project
gcloud projects create my-codelab-project
Mengaktifkan Cloud DNS API
gcloud services enable dns.googleapis.com
Mungkin perlu waktu beberapa menit untuk menerapkan perubahan ini
3. Membuat ManagedZone pribadi
ManagedZone berisi ResourceRecordSets.
Catat nama domain yang ingin Anda tambahkan data DNS-nya. Dalam contoh ini, kita akan menggunakan "domain-saya.com" dan menganggap instance VM Anda berada di jaringan default.
gcloud dns managed-zones create my-zone \
--description="ManagedZone for Cloud DNS ResourceRecordSets codelab." \
--dns-name=my-domain.com. \
--networks=default \
--visibility=private
4. Mengelola ResourceRecordSets
Pada akhir bagian ini, permintaan DNS melalui virtual private network untuk domain Anda akan ditetapkan ke alamat IP VM.
Misalnya, jika alamat IP VM Anda adalah "1.2.3.4", dan Anda ingin memasukkan "domain-saya.com". untuk menyelesaikan alamat IP tersebut, Anda harus membuat "data A".
BUAT data A
gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
- Argumen posisi "domain-saya.com". , alias {i>dnsName<i}, adalah nama yang ingin kita tentukan resolusi DNS-nya.
- –type: menunjukkan jenis data DNS yang coba kita buat.
- –ttl: menunjukkan waktu aktif untuk data ini.
- –rrdatas: menyimpan jawaban sebenarnya atas kueri.
- –zone: diperlukan untuk mengarahkan ManagedZone tempat data ini harus dibuat.
Baca selengkapnya tentang konsep DNS di sini.
Sekarang setelah Anda membuat catatan A, Anda seharusnya dapat menguji resolusi DNS.
SSH ke komputer Anda. Dalam contoh ini, kita menggunakan instance VM dengan nama "dns-codelab" di "us-central1-a"
gcloud compute ssh codelab --zone=us-central1-a
Instal dnsutils sehingga Anda dapat menggunakan perintah 'dig' perintah
sudo apt install dnsutils
buat kueri domain Anda
dig my-domain.com.
ini akan menghasilkan output yang mirip dengan
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19979
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;my-domain.com. IN A
;; ANSWER SECTION:
my-domain.com. 60 IN A 1.2.3.4
...
BUAT, PATCH, dan DAPATKAN data CNAME
Anda telah memetakan domain-saya.com. ke 1.2.3.4, Anda mungkin ingin memastikan bahwa {i>www.my-domain.com<i}. juga ditetapkan ke 1.2.3.4. Kumpulan data untuk "www." awalan tidak dibuat secara otomatis.
Jika Anda membuat kueri www.domain-saya.com.
dig www.my-domain.com.
Anda akan mendapatkan {i>output<i} yang mirip dengan
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
yang menunjukkan bahwa tidak ada data DNS untuk domain tersebut
Daripada membuat catatan A lain, kita harus membuat catatan CNAME yang merupakan penunjuk ke catatan lain. Hal ini akan mencegah kita mengubah kedua kumpulan data jika kita ingin menggunakan alamat IP yang berbeda.
keluar dari instance VM Anda
exit
Buat data CNAME
gcloud dns record-sets create "www.my-domain.com." --type="CNAME" --ttl="60" --rrdatas="my-domin.com." --zone="my-zone"
Setelah membuat data CNAME, Anda seharusnya dapat menguji resolusi DNS.
SSH ke komputer Anda lagi
gcloud compute ssh codelab --zone=us-central1-a
buat kueri domain Anda
dig www.my-domain.com.
Anda akan menerima output yang mirip dengan
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
Astaga! Sepertinya ada kesalahan ketik saat membuat data CNAME di "–rrdatas" penanda. Daripada menghapus dan membuat ulang data, kita dapat menerapkan patch pada perubahan yang benar.
keluar dari instance VM Anda
exit
Tambahkan patch data CNAME
gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"
Perhatikan bahwa kita dapat menghilangkan "–ttl" karena kita tidak mengubahnya, tetapi semua tanda lain harus disertakan karena merupakan bagian dari pengenal unik universal ResourceRecordSet.
Kita juga dapat memverifikasi bahwa data tersebut seperti yang diharapkan menggunakan gcloud
gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"
yang akan menghasilkan output
NAME TYPE TTL DATA
www.my-domain.com. CNAME 60 "my-domain.com."
memverifikasi bahwa data CNAME diperbaiki dengan benar
gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.
Anda seharusnya telah menerima output yang mirip dengan
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7471
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;www.my-domain.com. IN A
;; ANSWER SECTION:
www.my-domain.com. 60 IN CNAME my-domain.com..
...
HAPUS untuk Membersihkan
Sebelum ManagedZone dapat dihapus, semua ResourceRecordSet dalam ManagedZone harus dihapus terlebih dahulu (kecuali data NS dan SOA, yang dibuat secara otomatis dan harus selalu ada di ManagedZone).
keluar dari instance VM Anda
exit
Hapus data CNAME
gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"
Menghapus data A
gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"
Menghapus ManagedZone
gcloud dns managed-zones delete "my-zone"
5. Selamat
Selamat, Anda telah berhasil mempelajari cara mengelola ResourceRecordSets.