How Does DNS Server Work

How Does DNS Server Work

DNS সার্ভার, একজন আই.টি/নেটওয়ার্ক প্রফেশনালের নিকট একটি অতি পরিচিত নাম। একজন সাধারণ ইন্টারনেট ব্যবহারকারী তার দৈনন্দিন প্রয়োজনে যতটুকু সময় ইন্টারনেট ব্যবহার করে থাকে তার পুরোটা সময়জুড়েই সে এই DNS সার্ভারের সাথে ইন্টার‌্যাক্ট করে থাকে যা সে কখনোই বুঝতে পারে না। কিন্তু একজন নেটওয়ার্ক প্রফেশনাল হিসেবে এই DNS সার্ভারের কার্যক্রম সম্পর্কে পরিষ্কার ধারণা থাকা আমাদের জন্য খুবই জরুরী।
শুরুতেই জেনে নিই, DNS সার্ভার কি এবং কেন দরকার। আমাদের ইন্টারনেট ব্যবহারকালীন সময়ের অধিকাংশ ক্ষেত্রেই আমরা কোন না কোন ওয়েবসাইট ব্রাউজ করে থাকি। যখন আমরা আমাদের বাসায় বা অফিসে বসে একটি ওয়েব পেজের জন্য কোন ওয়েব সার্ভারের নিকট রিকোয়েষ্ট পাঠাই তখন ঐ ওয়েব সার্ভার সেই কাঙ্খিত ওয়েব পেজটি আমাদের ব্রাউজারে সরবরাহ করে। আমাদের কম্পিউটার ও ওয়েব সার্ভারের মধ্যে যে যোগাযোগ সংঘটিত হয় তার মূলে হলো নিজ নিজ প্রান্তের আই.পি এ্যাড্রেস। এই আই.পি এ্যাড্রেস হলো ইন্টারনেটের সাথে সংযুক্ত প্রতিটি নেটওয়ার্ক হোষ্টের একটি স্বতন্ত্র নাম। কিন্তু আমরা ৯৯.৯৯% বা তার বেশিরভাগ ক্ষেত্রেই ব্রাউজারে আই.পি এ্যাড্রেস লিখে ইন্টারনেট ব্রাউজ করি না। যদি করি তাতে কোন সমস্যা নেই, সমস্যা অন্য জায়গায় আর সে সমস্যাটি হলো আমরা ঠিক কতগুলো ওয়েব সাইটের আই.পি এ্যাড্রেস মনে রাখবো? আর আই.পি এ্যাড্রেস মনে রাখার ক্ষেত্রে মানুষ হিসেবে আমাদের স্মরণশক্তিই বা কতটা বেশি? আমরা প্রতিদিন অসংখ্য ওয়েব সাইট ব্রাউজ করি, আর এই সব ওয়েব সাইটের আই.পি এ্যাড্রেস মনের রাখার মতো কাজ আমাদের ক’জনকে দিয়েই সম্ভব? প্রকৃতপক্ষে এই উদ্ভট সমস্যা থেকে আমাদের মুক্তি দেয়ার জন্য ইন্টারনেটে DNS সার্ভারের আবির্ভাব হয়েছে। এই DNS সার্ভার প্রদত্ত সুবিধার কারণেই কষ্ট করে আমাদেরকে শত শত ওয়েব সাইটের আই.পি এ্যাড্রেস কাগজে লিখে রেখে সাথে নিয়ে ঘুরতে হয় না। এর বদলে আমরা শুধু মনে রাখি www.googgle.com, www.yahoo.com, www.facebook.com সহ প্রয়োজনীয় সকল ওয়েব সাইটের নাম (ডোমেইন নেম), যা আমাদের জন্য অপেক্ষাকৃত অনেক সহজ।
আসলে DNS সার্ভার হলো এমন একটি সার্ভার যা ব্রাউজারে লিখে দেওয়া কোন একটি ডোমেইন নেমকে তার সংশ্লিষ্ট আই.পি এ্যাড্রেসে রূপান্তর করে সঠিক সার্ভারের কাছে রিকোয়েষ্ট পাঠায়। এজন্য আমাদেরকে কম্পিউটারের নেটওয়ার্ক সেটিংস-এ একটি DNS সার্ভারের আই.পি এ্যাড্রেস লিখে দিতে হয়, যে সার্ভারটি ব্যাকগ্রাউন্ডে থেকে সমস্ত DNS অপারেশন সম্পন্ন করে। DNS হলো বর্তমান ইন্টারনেটের একটি অতীব গুরুত্বপূর্ণ ও জটিল সার্ভিস যা ছাড়া ইন্টারনেট প্রায় অচল। ডোমেইন নেম রিসল্ভ করা ছাড়াও DNS সার্ভারের মাধ্যমে আরো কিছু কাজ করা হয়। যেমনঃ কোন একটি সার্ভিস প্রোভাইডারের নেটওয়ার্ক ডিজাইন, ক্লাষ্টারিং, লোড ব্যালান্সিং সহ আরো বিভিন্ন কাজে DNS ব্যবহৃত হয়।
এতক্ষন আমরা আলোচনা করলাম DNS কি, এখন আমরা দেখবো DNS কিভাবে কাজ করে। এজন্য DNS সংক্রান্ত বেশ কিছু Terms সম্পর্কে আমাদের আগে থেকেই পরিষ্কার ধারণা থাকা আবশ্যক।
একটি ওয়েব এ্যাড্রেস সাধারণত তিনটি অংশে বিভক্ত। যেমনঃ www.example.com ।

এই তিনটি অংশ নিজেদের মধ্যে ডট (.) দিয়ে পৃথক থাকে। সবচেয়ে ডানের অংশটিকে (com) বলা হয় Top Level Domain (TLD) । TLD এর বামে যে অংশটি (example) থাকে তাকে বলা হয় Domain Name । আর সবচেয়ে বামে যে অংশটি (www) থাকে তাকে বলা হয় Hostname । অর্থাৎ একটি সম্পূর্ণ ওয়েব এ্যাড্রেস (www.example.com) এই তিনটি অংশ তথা Hostname, Domain Name ও TLD নিয়ে গঠিত। এই সম্পূর্ন ওয়েব এ্যাড্রেসটিকে আবার Fully Qualified Domain Name (FQDN) ও বলা হয়ে থাকে।
এখন আমরা এই FQDN এর অংশগুলো সম্পর্কে সংক্ষেপে জানবো।
Top Level Domain (TLD): আমরা আগেই জেনেছি TLD হলো একটি FQDN এর সবচেয়ে ডানের অংশ। যেমন: .com । ইন্টারনেটে এরকম আরো অনেক TLD রয়েছে। যেমন: .org, .net, .gov, .mil, .tv ইত্যাদি। এছাড়া বিভিন্ন দেশের জন্য তাদের নিজস্ব কিছু TLD রয়েছে। যেমন: .au (অস্ট্রেলিয়া), .us (আমেরিকা), .bd (বাংলাদেশ) ইত্যাদি। এগুলোকে বলা হয় Country Code Top Level Domain (ccTLD) যা প্রতিটি দেশের জন্য আলাদাভাবে সংরক্ষিত। সমস্ত TLD সমূহের ব্যবস্থপনা Root Zone এর মাধ্যমে সম্পন্ন হয়ে থাকে।
Domain Name: একটি Domain Name হলো একটি স্বতন্ত্র নাম যা একটি নির্দিষ্ট TLD এর অধীনে রেজিষ্টার্ড হয়ে থকে। যেমন: facebook.com । এখানে facebook নামক ডোমেইনটি .com নামক TLD এর অধীনে রেজিষ্টার্ড করা আছে। কোন একটি TLD এর অধীনে রেজিষ্ট্রিকৃত Domain এর রিসোর্স রেকর্ডসমূহ একটি নির্দিষ্ট Authoritative Name Server এর মাধ্যমে মেইনটেইন করা হয়ে থাকে।
Hostname: Hostname হলো একটি FQDN এর সবচেয়ে বামের অংশ। Hostname হলো কোন একটি ডোমেইনের অধীনে অবস্থিত একটি সার্ভারের নাম। যেমন: www.google.com, mail.google.com, drive.google.com ইত্যাদি। এখানে www, mail, drive হলো এক একটি আলাদা সার্ভার যাতে আলাদা সার্ভিস চলমান থাকে।
Root Zone and Root Server: Root Zone হলো ইন্টারনেটের DNS Hierarchical Name Space এর মূল। Root Zone এর মাধ্যমে ইন্টারনেটের সকল TLD সমূহ নিয়ন্ত্রন করা হয়। এই Root Zone কে ইন্টারনেটে তেরটি (১৩) Root Server এর মাধ্যমে হোষ্ট করা হয়েছে। এই তেরটি Root Server হলো A.ROOT-SERVER.NET, B.ROOT-SERVER.NET, C.ROOT-SERVER.NET……………… এভাবে M.ROOT-SERVER.NET পর্যন্ত।

প্রতিটি Root Server আবার একটি ফিজিক্যাল মেশিনের মধ্যে সীমাবদ্ধ নয়। কাজের সুবিধার জন্য একেকটি Root Server এর বিভিন্ন Instance সমূহকে বিভিন্ন লোকেশনে রাখা হয়েছে। বিভিন্ন লোকেশনে ছড়িয়ে থাকা Instance সমূহ ক্লাষ্টারিং এর মাধ্যমে পরষ্পর সংযুক্ত যা Fault Tolerance ও Redundancy সুবিদা প্রদান করে। এই Root Server সমূহ হলো ইন্টারনেটে DNS রিসল্ভের প্রথম ধাপ। DNS রিসল্ভের সময় একটি লোকাল/আই.এস.পি এর DNS সার্ভার এই তেরটি Root Server এর যেকোন একটির কাছে Query পাঠায়। লোকাল/আই.এস.পি এর DNS সার্ভারে এই তেরটি Root Server এর FQDN ও IP Address লিপিবদ্ধ থাকে। আমরা এই লিংক থেকে এই Root Server সমূহের বিস্তারিত দেখে নিতে পারি। http://www.internic.net/domain/named.root
একটি Root Server কিন্তু কোন ওয়েব এ্যাড্রেসের আই.পি রিসল্ভ করে না। Root Server লোকাল/আই.এস.পি এর DNS সার্ভার থেকে প্রাপ্ত Query এর Domain Name ও TLD এর উপর ভিত্তি করে সংশ্লিষ্ট Authoritative Name Server এর আই.পি টি কে লোকাল/আই.এস.পি এর DNS সার্ভারের কাছে পাঠায়। অতঃপর লোকাল/আই.এস.পি এর DNS সার্ভার উক্ত Authoritative Name Server এর কাছে DNS Query পাঠায়।
Authoritative Name Server: DNS অপারেশনের ক্ষেত্রে Authoritative Name Server হলো এমন একটি সার্ভার যা কোন একটি ডোমেইনের রিসোর্স রেকর্ডসমূহ সংরক্ষন করে। রিসোর্স রেকর্ড সমূহ হলো একটি DNS Query এর উত্তর যা Authoritative Name Server এর Zone File এর মধ্যে উল্লেখ থাকে। এই Authoritative Name Server ই নির্দিষ্ট FQDN এর বিপরীতে নির্দিষ্ট আই.পি এ্যাড্রেসটি ক্লায়েন্ট কম্পিউটারকে প্রদান করে।

How does DNS query work

এখন আমরা দেখবো, কোন ক্লায়েন্ট কম্পিউটার থেকে যখন কোন ওয়েব পেজের জন্য রিকোয়েষ্ট করা হয় তখন ব্যাকগ্রাউন্ডে DNS রিসল্ভ অপারেশনটি কিভাবে সম্পন্ন হয়। এখানে উদাহরণস্বরূপ www.example.com ব্যবহার করা হলো।

১. ক্লায়েন্ট কম্পিউটার সর্বপ্রথম নিজের লোকাল DNS Cache এর মধ্যে সংশ্লিষ্ট ডোমেইন নেম (FQDN) এর আই.পি টি খোঁজ করে। যদি FQDN এর বিপরীতে আই.পি টি পাওয়া যায় তাহলে ক্লায়েন্ট কম্পিউটার সেই আই.পি এ্যাড্রেস ব্যবহার করে নির্দিষ্ট ওয়েব সার্ভারের কাছে HTTP রিকোয়েষ্ট পাঠায়। আর যদি আই.পি টি না পাওয়া যায় তাহলে ক্লায়েন্ট কম্পিউটার ডোমেইন নেম রিসল্ভের প্রক্রিয়া শুরু করে এবং ইহার Preferred DNS Server এর কাছে Query পাঠায়।
২. Preferred DNS Server হিসেবে ক্লায়েন্ট কম্পিউটার যদি তার লোকাল DNS (গেটওয়ে/রাউটার) এর আই.পি ব্যবহার করে তাহলে লোকাল DNS সার্ভার নিজের Cache এর মধ্যে আই.পি টি খোঁজ করে। যদি আই.পি টি পাওয়া যায় তাহলে লোকাল DNS সার্ভার তা ক্লায়েন্ট কম্পিউটারের কাছে পাঠায়, আর যদি না পাওয়া যায় তাহলে ইহা Query টি আই.এস.পি এর DNS সার্ভারের কাছে ফরওয়ার্ড করে।
৩. যখন একটি আই.এস.পি DNS সার্ভারের নিকট কোন DNS Query আসে তখন ইহা প্রথমেই এর লোকাল Zone File এর মধ্যে Address (A) রেকর্ডটি খুঁজে, যদি পাওয়া যায় তাহলে তা লোকাল DNS (গেটওয়ে/রাউটার) এর মাধ্যমে ক্লায়েন্ট কম্পিউটারের কাছে পাঠিয়ে দেয়। আর যদি না পাওয়া যায় তাহলে ইহা নিজের Cache এর মধ্যে খুঁজে দেখে যে রেকর্ডটি আছে কিনা, যদি থাকে তাহলে তা লোকাল DNS (গেটওয়ে/রাউটার) এর মাধ্যমে ক্লায়েন্ট কম্পিউটারের কাছে পাঠিয়ে দেয়।
যদি কোন কারণে আই.এস.পি DNS সার্ভার নিজের Zone File বা Cache এর মধ্যে Address (A) রেকর্ডটি খুঁজে না পায় তাহলে ইহা ঐ Query টি রিসল্ভের জন্য অন্যান্য DNS সার্ভারের সাথে যোগাযোগ করে। একে Recursion বলা হয়। আই.এস.পি DNS সার্ভারে বাই ডিফল্ট Recursion প্রসেস এনাবল থাকে।
(যদি কোন কারণে এই Recursion প্রসেস এনাবল না থাকে তাহলে আই.এস.পি DNS সার্ভার ক্লায়েন্ট কম্পিউটারের DNS Query রিসল্ভ করতে পারে না। তখন ক্লায়েন্ট কম্পিউটার ইহার Alternate DNS Server এর কাছে নতুন করে DNS Query পাঠায়।)
আই.এস.পি DNS সার্ভার যদি Recursion প্রসেস শুরু করতে চায় তাহলে ইহার DNS Namespace এ এমন কিছু তথ্যের প্রয়োজন হয় যার ভিত্তিতে ইহা ইন্টারনেটের DNS Namespace Tree এর Root Server সমূহের সাথে যোগাযোগ করতে পারে।
৪. যখন আই.এস.পি DNS সার্ভার সংশ্লিষ্ট TLD (com) এর ভিত্তিতে Root Server এর সাথে যোগায়োগ করে তখন Root Server আই.এস.পি DNS সার্ভারকে example.com এর সংশ্লিষ্ট Authoritative Name Server এর আই.পি প্রদান করে।
৫. এরপর আই.এস.পি DNS সার্ভার সংশ্লিষ্ট Authoritative Name Server এর কাছে ডোমেইন নেম রিসল্ভের জন্য Query পাঠায়।
৬. Authoritative Name Server এর Zone File এর মধ্যে example.com এর সকল Address (A) রেকর্ড বিদ্যমান। এসময় Authoritative Name Server মূল DNS Query এর প্রতিউত্তরে কাঙ্খিত Address (A) রেকর্ডটি আই.এস.পি DNS সার্ভারকে প্রদান করে।
৭. আই.এস.পি DNS সার্ভার প্রাপ্ত রেকর্ডটিকে নিজের Cache এ সরক্ষন করার পাশাপাশি লোকাল DNS সার্ভারের কাছে পাঠিযে দেয়।
৮. অতঃপর লোকাল DNS সার্ভার প্রাপ্ত রেকর্ডটি নিজের Cache এর সংরক্ষন করতঃ ক্লায়েন্ট কম্পিউটারের কাছে পাঠায়। অতঃপর ক্লায়েন্ট কম্পিউটার প্রাপ্ত আই.পি এ্যাড্রেসটি ব্যবহার করে নির্দিষ্ট ওয়েব সার্ভারের কাছে HTTP রিকোয়েষ্ট পাঠায়।

How does .bd DNS query work

আমরা আগেই জেনেছি যে, ইন্টারনেটে বিভিন্ন দেশের জন্য আলাদাভাবে সংরক্ষিত বিভিন্ন Country Code Top Level Domain (ccTLD) রয়েছে। এখন আমরা বাংলাদেশের জন্য সংরক্ষিত .bd ccTLD সম্পর্কে জানবো।
.bd ccTLD টির মূল অথরিটি হলো বাংলাদেশের ডাক ও টেলিযোগাযোগ মন্ত্রনালয়। ডাক ও টেলিযোগাযোগ মন্ত্রনালয়ের পক্ষ হয়ে Bangladesh Telecommunications Company Ltd (BTCL) এই .bd ডোমেইনের রেজিস্ট্রেশন সহ যাবতীয় টেকনিক্যাল কাজগুলো করে থাকে। লিংকঃ http://www.iana.org/domains/root/db/bd.html
ইন্টারনেটে যে ১৩টি Root Server আছে সেগুলোর মধ্যে .bd ডোমেইনের জন্য Authoritative Name Server হিসেবে নিচের সার্ভার গুলোর এন্ট্রি দেওয়া আছে।
dns.bd. (IP: 209.58.24.3)
surma.btcl.net.bd. (IP: 203.112.194.232)
jamuna.btcl.net.bd. (IP: 203.112.194.231)
এই তিনটি Name Server এর মধ্যে .bd ডোমেইনের সকল রেজিষ্ট্রেশন সংক্রান্ত তথ্য বিদ্যমান। মূল লিংকঃ http://www.internic.net/domain/root.zone
এই .bd ccTLD এর অধীনে বেশ কিছু Second Level Domain আছে। যেমনঃ .com.bd, .org.bd, .net.bd, .gov.bd, .mil.bd ইত্যাদি। যে কেউ চাইলে BTCL এর নির্ধরিত ফরম পূরণ করে ও নির্ধারিত ফি জমা দিয়ে যেকোন .bd ডোমেইন রেজিষ্ট্রেশন করতে পারেন। তবে .gov.bd ও .mil.bd ডোমেইন দুইটি যথাক্রমে সরকারী বিভাগ ও সামরিক বাহিনীর জন্য সংরক্ষিত। শুধুমাত্র সরকার ও সামরিক বাহিনীর বিভিন্ন বিভাগগুলোকেই এই দুইটি ডোমেইন বরাদ্দ দেওয়া হয়। BTCL এ কোন .bd ডোমেইনের জন্য আবেদন করলে আবেদনের সাথে অন্ততপক্ষে একটি Name Server এর আই.পি উল্লেখ করতে হয়। এই Name Server টি সংশ্লিষ্ট ডোমেইনের জন্য Authoritative Name Server হিসেবে কাজ করে এবং এই Name Server এর Zone File এর মধ্যেই সংশ্লিষ্ট ডোমেইনের Address (A) Record সহ সকল Resource Record এর এন্ট্রি দেওয়া থাকে। এই Name Server টি হতে পারে রেজিষ্ট্রেশনকারীর নিজের DNS সার্ভার বা কোন আই.এস.পি এর DNS সার্ভার। কারণ BTCL এর সার্ভারে কোন ডোমেইনের জন্য কোন ধরণের Resource Record এন্ট্রি দেওয়া হয় না।
নিচের লিংক থেকে আপনারা .bd ডোমেইনের whois lookup করতে পারেন, তবে সব সময় আপডেটেড তথ্য না ও পাওয়া যেতে পারে। .bd whois lookup: http://whois.btcl.net.bd/
এখন আমরা দেখবো, যখন একজন ইন্টারনেট ব্যবহারকারী কোন .bd ডোমেইনের ওয়েব সাইট ব্রাউজ করার জন্য ব্রাউজারে ডোমেইন নেম লিখে এন্টার প্রেস করেন (উদাহরণস্বরূপঃ www.example.com.bd) তখন ব্যাকগ্রাউন্ডে কিভাবে ডোমেইন রিসল্ভ প্রক্রিয়াটি সম্পন্ন হয়।

১. প্রথমে ক্লায়েন্ট কম্পিউটার থেকে DNS Query টি লোকাল DNS সার্ভার হয়ে আই.এস.পি এর DNS সার্ভারের কাছে আসে।
২. আই.এস.পি DNS সার্ভারের Cache বা Zone File এর মধ্যে যদি কোন তথ্য না থাকে তাহলে আই.এস.পি DNS সার্ভার Root Server সমূহের সাথে যোগাযোগ করে। তখন Root Server আই.এস.পি DNS সার্ভারকে এই .bd ডোমেইনের জন্য নির্ধারিত Name Server এর আই.পি প্রদান করে। যেমনঃ surma.btcl.net.bd (IP: 203.112.194.232)
৩. পরবর্তীতে আই.এস.পি DNS সার্ভার যখন surma.btcl.net.bd এর সাথে যোগাযোগ করে তখন surma.btcl.net.bd আই.এস.পি DNS সার্ভারকে সংশ্লিষ্ট example.com.bd এর জন্য নির্ধারিত Authoritative Name Server এর আই.পি প্রদান করে।
৪. আই.এস.পি DNS সার্ভার যখন Authoritative Name Server এর কাছে Query পাঠায় তখন Authoritative Name Server নিজের Zone File থেকে সংশ্লিষ্ট Address (A) Record টি আই.এস.পি DNS সার্ভারকে প্রদান করে।
৫. আই.এস.পি DNS সার্ভার তখন প্রাপ্ত রেকর্ডটি নিজের Cache এর সংরক্ষনের পাশাপাশি ক্লায়েন্ট কম্পিউটারের কাছে পাঠিয়ে দেয়।
৬. ক্লায়েন্ট কম্পিউটার তখন প্রাপ্ত আই.পি এ্যাড্রেস ব্যবহার করে কাঙ্খিত ওয়েব পেজটির জন্য নির্দিষ্ট সার্ভারের কাছে রিকোয়েষ্ট পাঠায়।

No comments

Theme images by enot-poloskun. Powered by Blogger.