এই পোস্টটি DNS
অন্বেষণ করতে উপরের প্রশ্নটি ব্যবহার করবে , dig
, A
রেকর্ড, CNAME
রেকর্ড, এবং ALIAS/ANAME
একটি শিক্ষানবিস দৃষ্টিকোণ থেকে রেকর্ড। তো চলুন শুরু করা যাক।
প্রথম, কিছু সংজ্ঞা
- ডোমেন নেম সিস্টেম (DNS):একটি মানুষের স্মরণীয় ডোমেইন নাম (example.com) একটি IP ঠিকানায় (93.184.216.34) রূপান্তর করার সামগ্রিক ব্যবস্থা। IP ঠিকানা একটি সার্ভারের, সাধারণত একটি ওয়েব সার্ভার, যেখানে একটি ওয়েবপৃষ্ঠা প্রদর্শনের জন্য প্রয়োজনীয় ফাইলগুলি সংরক্ষণ করা হয়৷
- DNS সার্ভার (একটি নাম সার্ভার বা নাম সার্ভার নামেও পরিচিত):ডোমেন ঠিকানা সম্পর্কে তথ্য সংরক্ষণ করতে DNS সফ্টওয়্যার ব্যবহার করে। বিভিন্ন স্তর রয়েছে — যেগুলি প্রতিটি ISP-এর অন্তর্গত, রুট (বিশ্বব্যাপী মোট 13), শীর্ষ স্তরের ডোমেন (TLD, যেমন '.com'), এবং ডোমেন স্তরের DNS সার্ভার৷
- ডোমেন নাম :ডোমেইন (উদাহরণ) TLD (.com) এর সাথে মিলিত। 'ডোমেন' শব্দটি প্রায়শই ডোমেন নামের সাথে সমার্থকভাবে ব্যবহৃত হয়, যদিও তারা ভিন্ন। আপনি যখন একজন রেজিস্ট্রার বা রিসেলারের কাছ থেকে একটি 'ডোমেন' কিনবেন, আপনি একটি নির্দিষ্ট ডোমেন নামের (example.com) এবং আপনি তৈরি করতে চান এমন যেকোনো সাবডোমেনের অধিকার কিনবেন (my-site.example.com, mail.example.com, ইত্যাদি)।
উচ্চ স্তরের প্রশ্ন প্রবাহ
আপনি যখন আপনার ব্রাউজারে “example.com” টাইপ করেন তখন কী ঘটে তার উচ্চ-স্তরের প্রবাহ নিম্নরূপ ISP, রুট, এবং TLD DNS সার্ভারগুলিতে হপগুলি সরানোর জন্য সরলীকৃত করা যেতে পারে:
একটি ডোমেনে সাধারণত দুই বা ততোধিক নাম সার্ভার থাকে, যাতে ডোমেন নামের (example.com) সম্পর্কিত রেকর্ড থাকে।
অনেক ধরনের রেকর্ড সংরক্ষণ করা যেতে পারে, যার বেশিরভাগের প্রতি টাইপের একাধিক এন্ট্রি থাকতে পারে:
A
:ঠিকানা রেকর্ড যা একটি আইপি ঠিকানাতে ডোমেন নাম ম্যাপ করেCNAME
:ক্যানোনিকাল নাম রেকর্ড। একটি ডোমেন নাম (বা সাবডোমেন নাম) অন্য ডোমেন নামে পরিচিত করতে ব্যবহৃত হয়। আমরা পরে আরও বিস্তারিতভাবে এটি দেখব।MX
:মেল এক্সচেঞ্জ রেকর্ড যা ইমেল ডেলিভারি এজেন্টদের বলে যে তারা আপনার ইমেল কোথায় পৌঁছে দেবেTXT
:নমনীয় টেক্সট রেকর্ড, বিভিন্ন ব্যবহারের জন্য স্ট্রিং সংরক্ষণের জন্যSOA
:একক স্টার্ট অফ অথরিটি রেকর্ড ডোমেনের শীর্ষ স্তরে রাখা হয়। ডোমেন সম্পর্কে নির্দিষ্ট প্রয়োজনীয় তথ্য রয়েছে, উদাহরণস্বরূপ এর প্রাথমিক নাম সার্ভারNS
:ডোমেনের সাথে যুক্ত নাম সার্ভারগুলি
যখন আপনার ডিভাইস একটি কোয়েরি পাঠায় যা একটি নাম সার্ভারে পৌঁছায়, সার্ভারটি একটি A
এর জন্য ডোমেনের রেকর্ড নোডে দেখায় রেকর্ড, এবং সংশ্লিষ্ট সংরক্ষিত IP ঠিকানা (example.com:93.184.216.34)। অনুরোধ করা ওয়েবপৃষ্ঠা বা সংস্থান পুনরুদ্ধার করার জন্য সঠিক ওয়েব সার্ভারে একটি অনুরোধ পাঠানোর জন্য এটিকে ডিভাইসে ফেরত দেওয়া হয়।
'dig' ব্যবহার করা
dig
(ডোমেন তথ্য গ্রপার ) DNS সার্ভারের অনুসন্ধানের জন্য একটি কমান্ড-লাইন টুল। এই কমান্ডটি সাধারণত সমস্যা সমাধানের জন্য ব্যবহার করা হয়, বা এখনকার মতো একটি সিস্টেমের সেটআপ সম্পর্কে আরও বোঝার জন্য৷
$ dig example.com
টার্মিনালে প্রিন্ট করা একটি দীর্ঘ প্রতিক্রিয়ার ফলাফল, ডিফল্ট আউটপুট এখানে বিস্তারিত আছে, যার মধ্যে আমরা ANSWER SECTION
এ আগ্রহী .
;; ANSWER SECTION:
example.com. 72703 IN A 93.184.216.34
এবং আমরা সেখানে যাই, আমরা দেখতে পাচ্ছি যে example.com
একটি A
প্রদান করে 93.184.216.34
এর রেকর্ড . কখনও কখনও ডোমেনে একাধিক A
থাকবে রেকর্ড করুন, যদি একাধিক ওয়েব সার্ভার প্রয়োজনীয় তথ্য প্রদান করতে পারে।
আরো আছে! আমরা যদি অন্য কিছু উদাহরণ চেষ্টা করে দেখি, আমরা শীঘ্রই দেখতে পাব যে আরেকটি সাধারণ রেকর্ড প্রদর্শিত হবে:CNAME
.
$ dig www.skyscanner.net
:
;; ANSWER SECTION:
www.skyscanner.net. 169 IN CNAME www.skyscanner.net.edgekey.net.
www.skyscanner.net.edgekey.net. 5639 IN CNAME e11316.a.akamaiedge.net.
e11316.a.akamaiedge.net. 20 IN A 23.217.6.192
www.skyscanner.net.edgekey.net. 5639 IN CNAME e11316.a.akamaiedge.net.
e11316.a.akamaiedge.net. 20 IN A 23.217.6.192
+short
ব্যবহার করে পতাকা আমাদের পরিষ্কারভাবে গঠিত পথ দেখতে দেয়:
$ dig www.skyscanner.net +short
www.skyscanner.net.edgekey.net.
e11316.a.akamaiedge.net.
23.217.6.192
CNAME
৷
একটি CNAME
রেকর্ড একটি ডোমেন নামকে অন্য ক্যানোনিকাল (সত্য) ডোমেনের উপনাম হিসাবে ব্যবহার করার অনুমতি দেয়৷
যখন DNS সার্ভার একটি CNAME
ফেরত দেয় রেকর্ড করুন, এটি ক্লায়েন্টকে ফেরত দেবে না। বরং এটি আবার প্রত্যাবর্তিত ডোমেন নামটি সন্ধান করবে এবং এর পরিবর্তে A
রেকর্ডের আইপি ঠিকানা। এই চেইনটি অনেকগুলি CNAME
চালিয়ে যেতে পারে স্তর গভীর, কিন্তু তারপর ক্যাশিং সঞ্চালিত হওয়ার আগে একাধিক লুকআপ থেকে সামান্য পারফরম্যান্স হিট ভোগ করে৷
এটির একটি সাধারণ উদাহরণ হতে পারে যদি আপনার কাছে এমন একটি সার্ভার থাকে যেখানে আপনি আপনার সমস্ত ফটো রাখেন৷ আপনি সাধারণত photos.example.com
এর মাধ্যমে এটি অ্যাক্সেস করতে পারেন . যাইহোক, আপনি এটি photographs.example.com
এর মাধ্যমে অ্যাক্সেসের অনুমতি দিতে চাইতে পারেন . এটি সম্ভব করার একটি উপায় হল একটি CNAME
যোগ করা photographs
পয়েন্টগুলি রেকর্ড করুন photos
এ . এর মানে হল যখন কেউ photographs.example.com
ভিজিট করে তাদের photos.example.com
এর মতো একই সামগ্রী দেওয়া হবে .
প্রশ্ন $ dig photographs.example.com
ব্যবহার করে আমরা দেখতে পাব:
photographs.example.com IN CNAME photos.example.com
photos.example.com IN A xx.xxx.x.xxx
এটা মনে রাখা গুরুত্বপূর্ণ যে CNAME
ডান হাতের যে টুকরা. বাম দিকের উপনাম নাম বা লেবেল।
আরেকটি সাধারণ ব্যবহার হল www
এর জন্য সাবডোমেন example.com
কেনা আপনি সম্ভবত এমন ব্যবহারকারীদেরও চান যারা www.example.com
টাইপ করুন একই বিষয়বস্তু দেখতে।
এখানে উল্লেখ্য যে example.com
শীর্ষস্থানীয়, রুট বা নগ্ন ডোমেইন নাম বলা যেতে পারে।
একটি বিকল্প হল আরেকটি A
সেট আপ করা রেকর্ড, example.com
-এর মতো একই IP ঠিকানায় নির্দেশ করে . এটি সম্পূর্ণ বৈধ, এবং এটিই আসল example.com
করে, কিন্তু এটা ভালোভাবে পরিমাপ করে না। আপনি যদি example.com
IP ঠিকানা আপডেট করতে চান তাহলে কি হবে পয়েন্ট? আপনাকে www
-এর জন্যও এটি আপডেট করতে হবে সাবডোমেন, এবং অন্য যেকোন আপনি ব্যবহার করতে পারেন।
যদি একটি CNAME
রেকর্ডটি www.example.com
নামে ব্যবহৃত হয়েছিল example.com
নির্দেশ করতে তারপর শুধুমাত্র রুট ডোমেইন আপডেট করতে হবে, যেহেতু অন্য সব নোড এটিকে নির্দেশ করে।
CNAME সীমাবদ্ধতা
৷যে সময়ে ডিএনএস মানগুলি লেখা হয়েছিল, সেগুলির ব্যবহার পরিচালনা করার জন্য কিছু নিয়ম নির্ধারণ করা হয়েছিল। RFC 1912 এবং RFC 2181 সেট করেছে যে:
SOA
এবংNS
রেকর্ডগুলি রুট ডোমেনে উপস্থিত থাকা বাধ্যতামূলক৷CNAME
রেকর্ডগুলি শুধুমাত্র একক রেকর্ড হিসাবে বিদ্যমান থাকতে পারে এবং অন্য কোন সম্পদ রেকর্ডের সাথে একত্রিত করা যাবে না ( DNSSECSIG
,NXT
, এবংKEY RR
রেকর্ড ব্যতীত)
এটি একটি CNAME
বাদ দেয় রুট ডোমেনে ব্যবহার করা হচ্ছে, কারণ দুটি নিয়ম একে অপরের বিপরীত হবে।
এখানে যা গুরুত্বপূর্ণ তা হল এটি একটি চুক্তিভিত্তিক সীমাবদ্ধতা, প্রযুক্তিগত নয়। একটি CNAME
ব্যবহার করা সম্ভব মূলে, কিন্তু এটি অপ্রত্যাশিত ত্রুটির কারণ হতে পারে, কারণ এটি আচরণের প্রত্যাশিত চুক্তি ভঙ্গ করছে৷
এটির একটি উদাহরণ ক্লাউডফ্লেয়ার দ্বারা বলা হয়েছে, একটি CNAME
ব্যবহার করার পরে মাইক্রোসফ্ট এক্সচেঞ্জ মেল সার্ভারগুলির সাথে তারা যে সমস্যার সম্মুখীন হয়েছিল তা বর্ণনা করে। তাদের রুট ডোমেনে:
ডোমেনগুলি সাধারণত সার্ভারগুলিকে মনোনীত করে যেগুলি একটি MX রেকর্ড হিসাবে পরিচিত এর মাধ্যমে তাদের ইমেল পরিচালনা করে৷ সমস্যাটি ছিল যে এক্সচেঞ্জ সার্ভারগুলি ... রুট রেকর্ডে CNAME নিতে পারে এবং তারপর MX রেকর্ডে CNAME সেটটিকে যথাযথভাবে সম্মান করতে পারে না। আপনি সত্যিই এক্সচেঞ্জকে দোষ দিতে পারবেন না। তারা DNS স্পেসিফিকেশন দ্বারা নির্ধারিত অনুমানের অধীনে কাজ করছিল৷
এখানে আপনি খারাপ দিকগুলি দেখতে পাচ্ছেন যা বিভিন্ন সার্ভার সফ্টওয়্যার বা লাইব্রেরিতে প্রদর্শিত হতে পারে। কারণ একটি CNAME
এর জন্য একটি স্ট্যান্ডার্ড রয়েছে৷ শুধু হতে একটি নোডে রেকর্ড করুন, অন্য কোনো রেকর্ডের সন্ধান করা হয় না। অন্যান্য সমস্ত রেকর্ড সতর্কতা বা ত্রুটি বার্তা ছাড়াই নীরবে উপেক্ষা করা হবে। এমনকি যদি একটি MX
ইমেল পাওয়ার জন্য রেকর্ড সেট করা হয়েছিল, MX
উপেক্ষা করা হবে যেন এটি বিদ্যমান নেই কারণ CNAME
প্রথমে মূল্যায়ন করা হয়। যদি একটি A
থাকে তবে একই কথা সত্য রেকর্ড:CNAME
অগ্রাধিকার পাবে এবং A
রেকর্ড পড়া হবে না।
আধুনিক ইন্টারনেট
তাহলে এই সমস্যা কেন? কেন আপনি কখনও একটি CNAME
ব্যবহার করতে চান যাইহোক আপনার রুট ডোমেনের জন্য? আপনার বিষয়বস্তু হোস্টিং ওয়েব সার্ভারের IP ঠিকানা খোঁজার সময় নিশ্চয় এটাই পথের শেষ?
আধুনিক ইন্টারনেট ল্যান্ডস্কেপে, এটি আর হয় না। যখন DNS মানগুলি লেখা হয়েছিল তখন থেকে পৃথিবী অনেক আলাদা৷
৷
আপনি Heroku এর মতো একটি পরিষেবা (PaaS) প্রদানকারী হিসাবে একটি প্ল্যাটফর্ম ব্যবহার করতে এবং তাদের ওয়েব সার্ভারে সামগ্রী সংরক্ষণ করতে পারেন৷ আপনি বিষয়বস্তু নিয়ন্ত্রণ করেন, কিন্তু পরিকাঠামো নয়, এবং PaaS প্রদানকারী নেটওয়ার্ক রক্ষণাবেক্ষণের ভারী উত্তোলন করে। তারা সাধারণত আপনাকে একটি URL প্রদান করে (my-app.herokuapp.com
) যেটি তাদের রুট ডোমেনের একটি সাবডোমেন, এবং আপনি আপনার বিষয়বস্তু চালু থাকা ওয়েব সার্ভারের আইপি ঠিকানা দেখতে পারেন। কিন্তু এগুলো সম্পূর্ণভাবে PaaS প্রদানকারীর নিয়ন্ত্রণে, এবং সতর্কতা ছাড়াই পরিবর্তন হবে।
PaaS প্রদানকারীর দ্বারা করা ব্যাকএন্ড পরিবর্তনের স্কেল এবং ফ্রিকোয়েন্সি আপনার রুট ডোমেন A
বজায় রাখা কঠিন করে তুলতে পারে একটি একক আইপি ঠিকানায় নির্দেশ করে রেকর্ড করুন। আদর্শভাবে আপনি এটি করতে চান:
example.com IN CNAME my-app.herokuapp.com.www.example.com IN CNAME my-app.herokuapp.com.example.com IN CNAME my-app.herokuapp.com.
www.example.com IN CNAME my-app.herokuapp.com.
হেরোকুকে (বা আপনার নির্বাচিত হোস্ট প্রদানকারীকে) A
আপডেট করার অনুমতি দেওয়ার জন্য রেকর্ড করুন যে CNAME
আপনার পক্ষের কোন পরিবর্তন ছাড়াই নির্দেশ করে। যাইহোক, আমরা এখন জানি, এটি DNS স্পেসিফিকেশনকে ভঙ্গ করে, তাই এটি একটি খুব খারাপ ধারণা৷
example.com
থেকে একটি 301/302 পুনঃনির্দেশ বাস্তবায়ন করা সম্ভব www.example.com.
এ যাইহোক, সেই নির্দেশটি হয় ওয়েব সার্ভারে সঞ্চালিত হয় (তাই এখনও একটি নির্দিষ্ট A
ব্যবহার করার প্রয়োজনের সমস্যা হচ্ছে সেই ওয়েব সার্ভারের দিকে নির্দেশ করার জন্য DNS-এ রেকর্ড করুন, অথবা একটি কাস্টম DNS প্রদানকারী পুনঃনির্দেশ (যেটি HTTPS-এর সাথে জটিলতার সম্মুখীন হয়)।
আপনি URL বারে যে ডোমেইনটি দেখতে পাচ্ছেন সেটি পরিবর্তন করারও এটির পার্শ্ব প্রতিক্রিয়া রয়েছে, যা আপনি নাও চাইতে পারেন। এই পদ্ধতিটি যখন আপনার ওয়েবসাইট স্থায়ীভাবে স্থানান্তরিত হয়, অথবা যখন আপনি এসইও র্যাঙ্কিং সংরক্ষণ করার চেষ্টা করছেন, একটি পরিমাপযোগ্য উপায়ে জটিল পরিবর্তনের ব্যাকএন্ডের দিকে নির্দেশ করার আমাদের সমস্যার সমাধান করার জন্য।
সমাধান
বেশ কিছু DNS প্রদানকারী এখন এই সমস্যার সমাধান করার জন্য কাস্টম সমাধান তৈরি করেছে, যার মধ্যে রয়েছে:
ALIAS
DNSimple এANAME
DNS মেড ইজিতেANAME
easyDNS
এ CNAME
(ভার্চুয়াল) ক্লাউডফ্লেয়ারে
এগুলো সব ভার্চুয়াল রেকর্ডের ধরন যা CNAME
প্রদান করে আচরণের মতো, কোনো খারাপ দিক নেই। সঠিক বাস্তবায়ন ভিন্ন হতে পারে, কিন্তু উচ্চ স্তরে যখন DNS সার্ভার এই ভার্চুয়াল রেকর্ডের ধরনগুলির মধ্যে একটি দেখে, এটি একটি DNS সমাধানকারী হিসাবে কাজ করে। এটি একটি A
এ সমাধান না হওয়া পর্যন্ত উপনাম দ্বারা তৈরি চেইন অনুসরণ করে৷ রেকর্ড (বা রেকর্ড) এবং এই A
প্রদান করে DNS সার্ভারে রেকর্ড। এটি CNAME
কে 'সমতল' করে A
এ চেইন করুন রেকর্ড(গুলি) ফিরে এসেছে, এবং প্রেরিত ক্যোয়ারী থেকে আলাদা করা যায় না। ক্যোয়ারী শুধুমাত্র একটি বিশুদ্ধ A
দেখে রেকর্ড, যা DNS স্পেসিফিকেশন ভঙ্গ করে না এবং CNAME
এর কোনো অসুবিধা নেই .
এই ভার্চুয়াল রেকর্ডগুলি অনাকাঙ্ক্ষিত আচরণের ভয় ছাড়াই মূলে অন্যান্য রেকর্ডগুলির সাথে বসতে পারে। CNAME
অনুসরণ করার সময় DNS রেজোলিউশন প্রদানকারীর পদ্ধতির উপর নির্ভর করে চেইন, তাদের পূর্ববর্তী লুকআপগুলি ক্যাশে করার কার্যক্ষমতার সুবিধাও থাকতে পারে৷
একটি ডিএনসিম্পল সেটআপের জন্য, আমরা নীচের মত কনফিগার করব। এই সমাধানটিতে ডোমেন নাম এলিয়াসিংয়ের সমস্ত সুবিধা রয়েছে এবং এটি রুট স্তরে ব্যবহার করার ঝুঁকিগুলির কোনওটিই নেই৷
example.com IN ALIAS my-app.herokuapp.com.www.example.com IN CNAME my-app.herokuapp.com.
পড়ার জন্য ধন্যবাদ! ?
সর্বদা হিসাবে, যেকোনো সংশোধন বা অতিরিক্ত পয়েন্টের জন্য উন্মুক্ত।
সম্পদ
- DNS সার্ভার কি
- একটি DNS নাম সার্ভার সেট আপ করুন
- DNSসাধারণ সমর্থন পৃষ্ঠা এবং ALIAS ব্লগ
- ক্লাউডফ্লেয়ার সমর্থন এবং CNAME ব্লগ
dig
কিভাবে- বেশ কিছু দুর্দান্ত স্ট্যাক ওভারফ্লো বা স্ট্যাকএক্সচেঞ্জ পোস্ট
- উইকিপিডিয়া এন্ট্রিগুলি ভাল লেখা
- Netlify ব্লগ ‘www বা না www’