1. Giriş

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.