क्लाउड DNS ResourceRecordSets एपीआई

1. परिचय

64e18005b6cdcd83.png

पिछली बार अपडेट किए जाने की तारीख: 06-01-2021

Cloud DNS क्या है?

हमारा होम पेज देखें.

आपको क्या बनाना होगा

इस कोडलैब में, gcloud का इस्तेमाल करके Cloud DNS ManagedZone और काम के ResourceRecordSets बनाए जा सकते हैं, ताकि कुछ वीएम इंस्टेंस के नाम का रिज़ॉल्यूशन मैनेज किया जा सके.

आपको इनके बारे में जानकारी मिलेगी

अलग-अलग ResourceRecordSet बनाने, पढ़ने, मिटाने, और अपडेट करने का तरीका जानें.

आपको इन चीज़ों की ज़रूरत होगी

2. सेट अप किया जा रहा है

Google Cloud Platform प्रोजेक्ट सेट अप करना

gcloud में लॉगिन करें

gcloud auth login

प्रोजेक्ट बनाना

gcloud projects create my-codelab-project

Cloud DNS API चालू करना

gcloud services enable dns.googleapis.com

इस सुविधा को लागू होने में कुछ मिनट लग सकते हैं

3. निजी ManagedZone बनाने के लिए

ManagedZone में ResourceRecordSets शामिल होता है.

उस डोमेन नेम को नोट करें जिसके लिए आपको डीएनएस रिकॉर्ड जोड़ना है. इस उदाहरण में, हम "my-domain.com" का इस्तेमाल करेंगे और मान लें कि आपका वीएम इंस्टेंस डिफ़ॉल्ट नेटवर्क पर है.

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 प्रबंधित करें

इस सेक्शन के आखिर तक, आपके डोमेन के लिए आपके वर्चुअल प्राइवेट नेटवर्क पर डीएनएस के अनुरोध, वर्चुअल मशीन के आईपी पते को स्वीकार कर लेंगे.

उदाहरण के लिए, अगर आपकी वर्चुअल मशीन (वीएम) का आईपी पता "1.2.3.4" है और आपको "my-domain.com" चाहिए. का समाधान करने के लिए, आपको "A रिकॉर्ड" बनाना होगा.

'रिकॉर्ड' बनाएं

gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
  • पोज़िशनल आर्ग्युमेंट "my-domain.com." , यानी dnsName, वह नाम है जिसके लिए हम डीएनएस रिज़ॉल्यूशन तय करना चाहते हैं.
  • –type: इससे उस डीएनएस रिकॉर्ड टाइप का पता चलता है जिसे हम बनाने की कोशिश कर रहे हैं.
  • –ttl: इस रिकॉर्ड के लिए बने रहने का समय दिखाता है.
  • –rrdatas: इसमें क्वेरी का सही जवाब होता है.
  • –zone: यह निर्देश देने के लिए ज़रूरी होता है कि यह रिकॉर्ड किस ManagedZone पर बनाया जाना चाहिए.

डीएनएस के सिद्धांतों के बारे में ज़्यादा जानने के लिए, यहां क्लिक करें.

अब आपने अपना A रिकॉर्ड बना लिया है, इसलिए आपको डीएनएस रिज़ॉल्यूशन की जांच करनी चाहिए.

एसएसएच की मदद से अपनी मशीन में साइन इन करें. इस उदाहरण में, हमने "dns-codelab" नाम के एक वीएम इंस्टेंस का इस्तेमाल किया है "us-central1-a" में

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

dnsutils इंस्टॉल करें, ताकि आप ‘dig’ का इस्तेमाल कर सकें निर्देश

sudo apt install dnsutils

अपने डोमेन के लिए क्वेरी करें

dig my-domain.com.

इससे इसके जैसा आउटपुट मिलेगा

...
;; 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 रिकॉर्ड बनाना, पैच करना, और पाना

अब जब आपने my-domain.com को मैप कर लिया है. 1.2.3.4 तक, आप संभवतः यह सुनिश्चित करना चाहेंगे कि www.my-domain.com. भी 1.2.3.4 तक सीमित हो जाता है. "www." प्रीफ़िक्स अपने-आप नहीं बने होते.

अगर आप www.my-domain.com पर क्वेरी करते हैं.

dig www.my-domain.com.

तो आपको इससे मिलता-जुलता आउटपुट मिलेगा

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

यह बताता है कि उस डोमेन के लिए कोई डीएनएस रिकॉर्ड नहीं है

एक और A रिकॉर्ड बनाने के बजाय, हमें एक CNAME रिकॉर्ड बनाना चाहिए जो किसी दूसरे रिकॉर्ड का पॉइंटर हो. ऐसा करने पर, अगर हमें किसी दूसरे आईपी पते का इस्तेमाल करना है, तो हमें दोनों रिकॉर्ड नहीं बदलने पड़ेंगे.

वीएम इंस्टेंस से बाहर निकलें

exit

CNAME रिकॉर्ड बनाएं

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

अब आपने अपना CNAME रिकॉर्ड बना लिया है, तो अब आप डीएनएस रिज़ॉल्यूशन की जांच कर सकते हैं.

अपनी मशीन में फिर से एसएसएच जोड़ें

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

अपने डोमेन के लिए क्वेरी करें

dig www.my-domain.com.

तो आपको इससे मिलता-जुलता आउटपुट मिला होगा

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

अरे नहीं! ऐसा लगता है कि "–rrdatas" पर हमारा CNAME रिकॉर्ड बनाते समय, टाइप करने में कोई गड़बड़ी हुई थी फ़्लैग करें. रिकॉर्ड को मिटाने और फिर से बनाने के बजाय, हम उसे सही तरीके से जोड़ सकते हैं.

वीएम इंस्टेंस से बाहर निकलें

exit

CNAME रिकॉर्ड को पैच करें

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

ध्यान दें कि हम "–ttl" को छोड़ सकते हैं फ़्लैग करें क्योंकि हम इसे बदल नहीं रहे हैं, लेकिन अन्य सभी फ़्लैग शामिल किए जाने चाहिए, क्योंकि वे ResourceRecordSet के यूनिवर्सल यूनीक आइडेंटिफ़ायर का हिस्सा होते हैं.

हम gcloud का इस्तेमाल करके यह भी पुष्टि कर सकते हैं कि रिकॉर्ड उम्मीद के मुताबिक है या नहीं

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

जिससे आउटपुट

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

पुष्टि करें कि CNAME रिकॉर्ड सही तरीके से हल हो रहा है

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

तो आपको इससे मिलता-जुलता आउटपुट मिला होगा

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

मिटाने के लिए मिटाएं

किसी ManagedZone को मिटाने से पहले, ManagedZone में मौजूद सभी ResourceRecordSets को मिटाया जाना ज़रूरी है. हालांकि, NS और SOA रिकॉर्ड को छोड़कर, ये अपने-आप जनरेट होते हैं और ये हमेशा ManagedZone पर भी मौजूद होने चाहिए.

वीएम इंस्टेंस से बाहर निकलें

exit

CNAME रिकॉर्ड मिटाना

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

A रिकॉर्ड मिटाएं

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

ManagedZone को मिटाएं

gcloud dns managed-zones delete "my-zone"

5. बधाई हो

बधाई हो, आपने अपने ResourceRecordSets को मैनेज करना सफलतापूर्वक सीख लिया है!

आगे पढ़ें

रेफ़रंस के लिए दस्तावेज़