API Cloud DNS ResourceRecordSets

1. Pengantar

64e18005b6cdcd83.png

Terakhir Diperbarui: 06-01-2021

Apa itu Cloud DNS?

Lihat halaman beranda kami.

Yang akan Anda bangun

Dalam Codelab ini, Anda akan membuat ManagedZone Cloud DNS dan ResourceRecordSet yang relevan menggunakan gcloud untuk mengelola resolusi nama ke beberapa instance VM.

Yang akan Anda pelajari

Cara MEMBUAT, MEMBACA, MENGHAPUS, dan MEMPERBARUI ResourceRecordSet 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

Aktifkan Cloud DNS API

gcloud services enable dns.googleapis.com

Mungkin perlu waktu beberapa menit agar perubahan ini diterapkan

3. Membuat ManagedZone pribadi

ManagedZone berisi ResourceRecordSets.

Catat nama domain yang ingin Anda tambahi data DNS. Dalam contoh ini, kita akan menggunakan "my-domain.com" dan mengasumsikan 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 diselesaikan ke alamat IP VM.

Misalnya, jika alamat IP VM Anda adalah "1.2.3.4", dan Anda ingin "my-domain.com." di-resolve ke 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 "my-domain.com." , alias dnsName, adalah nama yang ingin kita tentukan resolusi DNS-nya.
  • –type: menunjukkan jenis data DNS yang akan kita buat.
  • –ttl: menunjukkan time to live untuk data ini.
  • –rrdatas: menyimpan jawaban sebenarnya untuk kueri.
  • –zone: diperlukan untuk mengarahkan ManagedZone tempat catatan ini harus dibuat.

Baca selengkapnya tentang konsep DNS di sini.

Setelah membuat data A, Anda akan 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 agar Anda dapat menggunakan perintah 'dig'

sudo apt install dnsutils

mengirimkan 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
...

MEMBUAT, MEMPERBARUI, dan MENDAPATKAN data CNAME

Setelah memetakan my-domain.com. ke 1.2.3.4, Anda mungkin ingin memastikan bahwa www.my-domain.com. juga di-resolve ke 1.2.3.4. Data untuk awalan "www." tidak dibuat secara otomatis.

Jika Anda membuat kueri www.my-domain.com.

dig www.my-domain.com.

Anda akan mendapatkan 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
...

menunjukkan bahwa tidak ada data DNS untuk domain tersebut

Daripada membuat data A lain, kita harus membuat data CNAME yang merupakan penunjuk ke data lain. Hal ini akan mencegah kita harus mengubah kedua data jika kita ingin menggunakan alamat IP yang berbeda.

keluar dari instans 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 akan dapat menguji resolusi DNS.

Lakukan SSH ke komputer Anda lagi

gcloud compute ssh codelab --zone=us-central1-a

mengirimkan 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
...

Maaf. Sepertinya ada kesalahan ketik saat kami membuat data CNAME di tanda "–rrdatas". Daripada menghapus dan membuat ulang data, kita dapat menerapkan perubahan yang benar.

keluar dari instance VM Anda

exit

Membuat 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 tanda "–ttl" karena kita tidak mengubahnya, tetapi semua tanda lainnya harus disertakan karena merupakan bagian dari ID unik universal ResourceRecordSet.

Kita juga dapat memverifikasi bahwa data sudah sesuai dengan 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."

memastikan bahwa data CNAME diselesaikan dengan benar

gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.

Anda akan 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"

Hapus catatan 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.

Bacaan lebih lanjut

Dokumen referensi