1. Giriş
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.