Cloud DNS ResourceRecordSets API'si

1. Giriş

64e18005b6cdcd83.png

Son Güncelleme: 2021-01-06

Cloud DNS nedir?

Ana sayfamızı ziyaret edin.

Ne oluşturacaksınız?

Bu Codelab'de, ad çözümlemesini bir sanal makine örneğine yönetmek için gcloud'u kullanarak bir Cloud DNS ManagedZone ve ilgili ResourceRecordSet'ler oluşturacaksınız.

Neler öğreneceksiniz?

Tek tek ResourceRecordSet'leri nasıl OLUŞTURABİLİR, OKUYABİLİR, SİLEBİLİR ve GÜNCELLEYEBİLİRSİNİZ?

Gerekenler

2. Hazırlanma

Google Cloud Platform projenizi oluşturun

gcloud'a giriş yapma

gcloud auth login

Proje oluşturma

gcloud projects create my-codelab-project

Cloud DNS API'yi etkinleştirme

gcloud services enable dns.googleapis.com

Bu işlemin geçerlilik kazanması birkaç dakika sürebilir.

3. Özel ManagedZone oluşturma

ManagedZone, ResourceRecordSets içerir.

DNS kayıtlarını eklemek istediğiniz alan adını not edin. Bu örnekte "my-domain.com" alanını kullanacağız ve sanal makine örneğinizin varsayılan ağda olduğunu varsayacağız.

gcloud dns managed-zones create my-zone \
    --description="ManagedZone for Cloud DNS ResourceRecordSets codelab." \
    --dns-name=my-domain.com. \
    --networks=default \
    --visibility=private

4. ResourceRecordSets'i yönetme

Bu bölümün sonunda, alanınız için sanal özel ağınız üzerinden yapılan DNS istekleri VM'nin IP adresine çözümlenir.

Örneğin, sanal makinenizin IP adresi "1.2.3.4" ise ve "alanım.com" adresinin bu IP adresine çözümlenmesini istiyorsanız bir "A kaydı" oluşturmanız gerekir.

A kaydı OLUŞTURMA

gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
  • "my-domain.com" konum bağımsız değişkeni. , diğer adıyla dnsName, DNS çözümlemesini tanımlamak istediğimiz addır.
  • –type: Oluşturmaya çalıştığımız DNS kaydı türünü belirtir.
  • –ttl: Bu kaydın geçerlilik süresini belirtir.
  • –rrdatas: Sorguya verilen gerçek yanıtı içerir.
  • –zone: Bu kaydın hangi ManagedZone'da oluşturulacağını yönlendirmek için gereklidir.

DNS kavramları hakkında daha fazla bilgiyi burada bulabilirsiniz.

A kaydınızı oluşturduğunuza göre artık DNS çözümlemesini test edebilirsiniz.

Makinenize SSH uygulayın. Bu örnekte, "us-central1-a" bölgesinde "dns-codelab" adlı bir sanal makine örneği kullanıyoruz.

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

"dig" komutunu kullanabilmek için dnsutils'i yükleyin.

sudo apt install dnsutils

alanınızla ilgili sorgu gönderme

dig my-domain.com.

Bu komut, aşağıdakine benzer bir çıkış üretir:

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

CNAME kaydı OLUŞTURMA, YAMA YAPMA ve GET işlemi

my-domain.com alanını 1.2.3.4 ile eşlediğinize göre, www.my-domain.com alanının da 1.2.3.4 ile çözümlendiğinden emin olmak isteyebilirsiniz. "www." önekleri için kayıtlar otomatik olarak oluşturulmaz.

www.my-domain.com adresini sorgularsanız.

dig www.my-domain.com.

şuna benzer bir çıkış alırsınız:

...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...

Bu alan için DNS kaydı olmadığını gösterir.

Başka bir A kaydı oluşturmak yerine, başka bir kayda işaret eden bir CNAME kaydı oluşturmalıyız. Bu sayede, farklı bir IP adresi kullanmak istediğimizde her iki kaydı da değiştirmemiz gerekmez.

exit your VM inst

exit

CNAME kaydı oluşturma

gcloud dns record-sets create "www.my-domain.com." --type="CNAME" --ttl="60" --rrdatas="my-domin.com." --zone="my-zone"

CNAME kaydınızı oluşturduğunuza göre artık DNS çözümlemesini test edebilirsiniz.

Makinenize tekrar SSH uygulama

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

alanınızla ilgili sorgu gönderme

dig www.my-domain.com.

şuna benzer bir çıkış almış olmanız gerekir:

...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...

Olamaz! "–rrdatas" işaretinde CNAME kaydımızı oluştururken yazım hatası yapılmış. Kaydı silip yeniden oluşturmak yerine doğru değişikliği yamalayabiliriz.

sanal makine örneğinizden çıkın

exit

CNAME kaydını düzeltme

gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"

Değiştirmediğimiz için "–ttl" işaretini atlayabileceğimizi ancak diğer tüm işaretlerin, ResourceRecordSet'in evrensel olarak benzersiz tanımlayıcısının bir parçası oldukları için dahil edilmesi gerektiğini unutmayın.

Kaydın beklendiği gibi olduğunu gcloud ile de doğrulayabiliriz.

gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"

Bu, aşağıdaki gibi bir çıkış üretmelidir:

NAME                    TYPE    TTL  DATA
www.my-domain.com.      CNAME   60  "my-domain.com."

CNAME kaydının doğru şekilde çözümlendiğini doğrulayın

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

şuna benzer bir çıkış almış olmanız gerekir:

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

Temizlemek için SİL

Bir ManagedZone silinmeden önce ManagedZone içindeki tüm ResourceRecordSet'lerin silinmesi gerekir (NS ve SOA kayıtları hariç. Bu kayıtlar otomatik olarak oluşturulur ve her zaman ManagedZone'da bulunmalıdır).

sanal makine örneğinizden çıkın

exit

CNAME kaydını silme

gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"

A kaydını silin.

gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"

ManagedZone'u silme

gcloud dns managed-zones delete "my-zone"

5. Tebrikler

Tebrikler, ResourceRecordSet'lerinizi yönetmeyi başarıyla öğrendiniz.

Daha fazla bilgi

Referans belgeleri