ক্লাউড DNS ResourceRecordSets API

১. ভূমিকা

64e18005b6cdcd83.png

সর্বশেষ হালনাগাদ: ২০২১-০১-০৬

ক্লাউড ডিএনএস কী?

আমাদের হোমপেজ দেখুন।

আপনি যা তৈরি করবেন

এই কোডল্যাবে আপনি কোনো ভিএম ইনস্ট্যান্সের নেম রেজোলিউশন পরিচালনা করার জন্য gcloud ব্যবহার করে একটি ক্লাউড ডিএনএস ম্যানেজড জোন এবং প্রাসঙ্গিক রিসোর্সরেকর্ডসেট তৈরি করবেন।

আপনি যা শিখবেন

স্বতন্ত্র ResourceRecordSet-গুলি কীভাবে তৈরি, পড়া, মুছে ফেলা এবং আপডেট করা যায়।

আপনার যা যা লাগবে

২. প্রস্তুতি গ্রহণ

আপনার গুগল ক্লাউড প্ল্যাটফর্ম প্রজেক্ট সেট আপ করুন

gcloud-এ লগইন করুন

gcloud auth login

একটি প্রকল্প তৈরি করুন

gcloud projects create my-codelab-project

ক্লাউড ডিএনএস এপিআই সক্রিয় করুন

gcloud services enable dns.googleapis.com

এটি কার্যকর হতে কয়েক মিনিট সময় লাগতে পারে।

৩. একটি ব্যক্তিগত পরিচালিত অঞ্চল তৈরি করা

একটি 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

৪. রিসোর্সরেকর্ডসেট পরিচালনা করুন

এই অংশের শেষে, আপনার ভার্চুয়াল প্রাইভেট নেটওয়ার্কের মাধ্যমে আপনার ডোমেইনের জন্য করা ডিএনএস অনুরোধগুলো ভিএম-এর আইপি অ্যাড্রেসে রেজোলভ হবে।

উদাহরণস্বরূপ, যদি আপনার VM-এর IP অ্যাড্রেস "1.2.3.4" হয় এবং আপনি চান যে "my-domain.com." সেই IP অ্যাড্রেসে রিজলভ হোক, তাহলে আপনাকে অবশ্যই একটি "A রেকর্ড" তৈরি করতে হবে।

একটি 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 : এটি সেই DNS রেকর্ডের ধরন নির্দেশ করে যা আমরা তৈরি করতে চাইছি।
  • –ttl : এই রেকর্ডটির অবশিষ্ট আয়ুষ্কাল নির্দেশ করে।
  • –rrdatas : কোয়েরির প্রকৃত উত্তর ধারণ করে।
  • –zone : এই রেকর্ডটি কোন ManagedZone-এ তৈরি করা হবে তা নির্দেশ করার জন্য এটি আবশ্যক।

DNS ধারণা সম্পর্কে আরও জানতে এখানে পড়ুন।

এখন যেহেতু আপনি আপনার A রেকর্ড তৈরি করেছেন, আপনি DNS রেজোলিউশন পরীক্ষা করতে পারবেন।

আপনার মেশিনে SSH করুন। এই উদাহরণে আমরা "us-central1-a"-তে "dns-codelab" নামের একটি VM ইনস্ট্যান্স ব্যবহার করছি।

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 রেকর্ড তৈরি, প্যাচ এবং GET করুন।

এখন যেহেতু আপনি 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
...

যা নির্দেশ করে যে ওই ডোমেইনের জন্য কোনো DNS রেকর্ড নেই।

আরেকটি 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 রেকর্ড তৈরি করেছেন, আপনি DNS রেজোলিউশন পরীক্ষা করতে পারবেন।

আপনার মেশিনে আবার SSH করুন

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

ওহ না! মনে হচ্ছে, আমাদের CNAME রেকর্ড তৈরি করার সময় "–rrdatas" ফ্ল্যাগটিতে একটি টাইপো হয়েছিল। রেকর্ডটি মুছে ফেলে আবার তৈরি করার পরিবর্তে, আমরা সঠিক পরিবর্তনটি প্যাচ করে দিতে পারি।

আপনার ভিএম ইনস্ট্যান্স থেকে প্রস্থান করুন

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

পরিষ্কার করতে ডিলিট করুন

একটি ম্যানেজডজোন মুছে ফেলার আগে, সেই ম্যানেজডজোনের মধ্যে থাকা সমস্ত রিসোর্সরেকর্ডসেট প্রথমে মুছে ফেলতে হবে (এনএস এবং এসওএ রেকর্ড ব্যতীত, যা স্বয়ংক্রিয়ভাবে তৈরি হয় এবং ম্যানেজডজোনে সর্বদা বিদ্যমান থাকতে হবে)।

আপনার ভিএম ইনস্ট্যান্স থেকে প্রস্থান করুন

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"

ম্যানেজড জোনটি মুছে ফেলুন

gcloud dns managed-zones delete "my-zone"

৫. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে আপনার ResourceRecordSet-গুলো পরিচালনা করতে শিখেছেন!

আরও পড়ুন

রেফারেন্স নথি