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

1. परिचय

64e18005b6cdcd83.png

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

Cloud DNS क्या है?

हमारे होम पेज पर जाएं.

आपको क्या बनाने को मिलेगा

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

आपको क्या सीखने को मिलेगा

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

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

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 में बनाया जाना चाहिए.

डीएनएस के कॉन्सेप्ट के बारे में ज़्यादा जानने के लिए, यहां क्लिक करें.

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

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

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 your VM inst

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"

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

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

ManagedZone मिटाएं

gcloud dns managed-zones delete "my-zone"

5. बधाई हो

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

इस बारे में और पढ़ें

रेफ़रंस दस्तावेज़