Cloud DNS ResourceRecordSets API'si

1. Giriş

64e18005b6cdcd83.png

Son Güncelleme Tarihi: 06.01.2021

Cloud DNS nedir?

Ana sayfamıza göz atın.

Oluşturacaklarınız

Bu Codelab'de bazı sanal makine örneklerinde ad çözümlemesini yönetmek için gcloud'u kullanarak Cloud DNS ManagedZone ve ilgili ResourceRecordSet'leri oluşturacaksınız.

Neler öğreneceksiniz?

Bireysel ResourceRecordset'leri OLUŞTURMA, OKUMA, SİLME ve GÜNCELLEME.

Gerekenler

2. Kurulum

Google Cloud Platform Projenizi oluşturun

gcloud'a giriş yapın

gcloud auth login

Proje oluşturma

gcloud projects create my-codelab-project

Cloud DNS API'yi etkinleştirme

gcloud services enable dns.googleapis.com

Bunun geçerli olması 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 varsayın.

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

4. ResourceRecordSet'leri Yönetme

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

Örneğin sanal makinenizin IP adresi "1.2.3.4" ise "my-domain.com" adresini tercih edebilirsiniz. çözmek için bir "A kaydı" oluşturmanız gerekir.

A kaydı OLUŞTURUN

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. 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 gösterir.
  • -rrdatas: Sorgunun asıl yanıtını barındırır.
  • -zone: Bu kaydın hangi ManagedZone'da oluşturulması gerektiğini yönlendirmek için gereklidir.

DNS kavramları hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

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

SSH kullanarak makinenize bağlayın. Bu örnekte "dns-codelab" adlı bir sanal makine örneği kullanıyoruz. "us-central1-a" bölgesinde

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

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

sudo apt install dnsutils

alanınızı sorgulayın

dig my-domain.com.

şuna benzer bir çıktı üretmesi gerekir:

...
;; 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ŞTUR, YAMA ve ALMA

artık my-domain.com'u eşlediğinize göre. 1.2.3.4 olarak değiştirmek istiyorsanız, www.alanadim.com adresinin 1.2.3.4 olarak çözümlenir. "www." kayıtları önekler otomatik olarak oluşturulmaz.

www.alanadim.com.

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

o alan adı 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, farklı bir IP adresi kullanmak istediğimizde her iki kaydı da değiştirmek zorunda kalmamızı önler.

sanal makine hesabınızdan çıkın

exit

CNAME kaydı oluştur

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 DNS çözümlemesini test edebilmeniz gerekir.

Makinenize SSH ile tekrar bağlanın

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

alanınızı sorgulayın

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" alanında CNAME kaydımızı oluştururken bir yazım hatası olduğu anlaşılıyor. tıklayın. Kaydı silip yeniden oluşturmak yerine doğru değişikliğe yama uygulayabiliriz.

sanal makine örneğinizden çıkın

exit

CNAME kaydına yama uygulama

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

"–ttl" atlayabiliriz. işaretini kullanın. Ancak, diğer tüm flag'ler, ResourceRecordSet'in evrensel olarak benzersiz tanımlayıcısının bir parçası olduğundan eklenmelidir.

Ayrıca gcloud kullanarak kaydın beklendiği gibi olduğunu doğrulayabiliriz

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

Bu da çıktı sağlayacak

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

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

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 İçin SİL

Bir ManagedZone'un silinebilmesi için önce ManagedZone içindeki tüm ResourceRecordSet'lerin silinmesi gerekir (otomatik olarak oluşturulan ve her zaman ManagedZone'da bulunması gereken NS ve SOA kayıtları hariç).

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ı silme

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 belgeler