ডি এন এস ক্যাশ ( DNS Cache ) কি এবং কিভাবে কাজ করে
এর আগের আর্টিকেলে আমি এক্সপ্লেইন করেছিলাম ডি এন এস ( DNS ) কিভাবে কাজ করে। অনেকেই আর্টিকেল টা পড়েছেন এবং জানার ইচ্ছে প্রকাশ করেছেন কিভাবে ডি এন এস ক্যাশ ( DNS Cache ) কাজ করে । তবে ডি এন এস ক্যাশ আসলে খুব বিশাল কিছু নয়, তাই ভাবলাম লিখতে লিখতে হাতের ১২ টা যখন বাজাবো, তখন আর কিছু জিনিস নিয়ে আলোচনা করি।
অনেকক্ষণ ধরে খুঁজে ডি এন এস ক্যাশের ওপর ভালো কোন ছবি পেলাম না যে আর্টিকেল এ দেবো, শেষ পর্যন্ত নিজের চাঁদ মুখের ছবি লাগায়ে রাখলাম।
## ডি এন এস ক্যাশ
যদি আমার আগের লেখাটা মনোযোগ দিয়ে পড়ে থাকেন, তাহলে আপনি অলরেডি জানেন ডি এন এস কিভাবে কাজ করে। আপনি আপনার কম্পিউটার থেকে google.com এ ঢুকতে চান। এরপর ধাপে ধাপে রুট সার্ভার (Root Server ) থেকে টি এল ডি সার্ভার ( TLD Server ), সেখান থেকে অথরেটেটিভ নেম সার্ভার ( authoritative nameserver ) এবং সব শেষে সেখান থেকে সেই ডোমেইন এর সার্ভার এর আইপি ফেরত আসে রিসলভার ( Resolver ) হয়ে আপনার কম্পিউটার এ।
এবার আমরা জানবো এই পুরো প্রসেস এ ডি এন এস ক্যাশ কিভাবে অবদান রাখে। এর জন্য আগে আমাদের একটা ফান্ডামেন্টাল জিনিস জানতে হবে, যাকে বলে TTL বা Time To Live.
আপনারা যদি ওয়েব ডেভেলপমেন্ট এর সাথে সম্পৃক্ত থাকেন, তাহলে নতুন কোন ডোমেইন নিয়ে কাজ করার সময় নেম সার্ভার সেটিংস এ অনেক সময় এই জিনিসটা দেখে থাকবেন। TTL মানে হল, যখন আপনি প্রথমবারের মতো ডি এন এস রেকর্ড সেট করছেন, তার ঠিক কতো সময় পর পর অথোরেটেটিভ নেম সার্ভার রেকর্ডটা চেঞ্জ হয়েছে কিনা সেটা চেক করবে।
এই প্রসেসটা আরেকটু জটিল ভাবে হয়। ধরুন আপনি TTL দিয়েছেন ৩৬০০। মানে হল ১ ঘণ্টা। আপনি প্রথম যখন সাইটে প্রবেশ করবেন, তখন অথরেটেটিভ নেম সার্ভার আপনার রিসলভার কে জানিয়েঃ
-> বৎস, এক ঘণ্টা পরে আমারে একবার নক করিস। কে জানে এর মধ্যে ডোমেইন এর সার্ভার চেঞ্জ হইছে কিনা। ঠিক এক ঘণ্টা পরেই একবার চেক দিস। আগে দিলে কানের উপড়ে দিবো।
আগের পর্বে লিখেছিলাম কিভাবে রিসলভার ধাপে ধাপে আপনার কাঙ্ক্ষিত ওয়েবসাইট আপনাকে খুঁজে এনে দেয়। তবে এর মধ্যে আর কয়েকটা ধাপ আছে যেগুলো উহ্য ছিল। আপনার কম্পিউটার এর রিসলভারই একমাত্র রিসলভার নয়। আপনার আই এস পির ও নিজস্ব রিসলভার এবং ডি এন এস সার্ভার আছে। তারা যদি অন্য কোন আই এস পি থেকে কানেকশন নেয়, সেখানেও একটা রিসলভার এবং ডি এন এস সার্ভার আছে।
টাইম টু লাইভ এই কারণেই অনেক বেশি গুরুত্বপূর্ন। সব গুলো রিসলভারই যখন জানবে যে এক ঘণ্টা পর পর যোগাযোগ করে ডি এন এস আপডেট করে নিতে হবে, তখন সবার কাছেই একদম ফ্রেস রেকর্ড থাকবে। কোন কারণে আইপি চেঞ্জ হলে সেটা নিয়ে ঝামেলায় পড়তে হবে না।
—- আপডেট ৩ঃ৪৫ পি এম, ২৯ জুন ২০১৫ —-
সারিম খান এর কমেন্ট থেকে আরেকটা জিনিস মনে পড়লো, আই এস পির যে লোকাল রিসলভার থাকে, সেখানে DNS এর ডিফল্ট TTL ওভাররাইট করার সুবিধে থাকে। লোড কমানোর জন্য অনেক আই এস পি TTL ভ্যালূ্যর মান অনেক বেশী বাড়িয়ে দিয়ে থাকে। ফলে কিছু দিন আগ পর্যন্তও সাইটের ডি এন এস চেঞ্জ করার অনেক সময় পরেও আপনার কম্পিউটার থেকে পুরাতন ডি এন এস ভ্যালূতেই যাচ্ছে।
————–
ওহ, কথায় কথায় অনেক দূর চলে আসলাম। আসল কাজের কথা তো বললাম না। ধরুন আপনি মাজাভাঙ্গা ইন্টারনেট কোম্পানির লাইন ব্যবহার করেন। মাজাভাঙ্গা আবার ঘাড়ভাঙ্গা কোম্পানীর কাছ থেকে ইন্টারনেট ব্যান্ডউইথ কিনে আনে। ঘাড়ভাঙ্গা যুক্ত আছে মাথামোটা আই আই জি বা ইন্টারন্যাশনাল ইন্টারনেট গেটওয়ে কোম্পানির সাথে।
এখন আপনি যখন google.com এ ঢুকবেন, আপনার রিসলভার জিজ্ঞেস করবে মাজাভাঙ্গার রিসলভারকে। সে জিজ্ঞেস করবে ঘাড়ভাঙ্গার রিসলভারকে। ঘাড়ভাঙ্গার রিসলভার এরপর আগের আর্টিকেল এ দেওয়া বাকি ধাপ গুলো সম্পন্ন করবে।
এরকম ১-২ টা রিসলভিং করা কোন ব্যাপার না। কিন্তু যখন আপনার হাজার হাজার কানেকশন, আপনার রিসলভার এর নাক কান মুখ দিয়ে ধোঁয়া বের হয়ে যাবে। আপনার আই এস পির রিসলভার কিন্তু মূলত একটা কম্পিউটার। সে স্রেফ একটা প্রোগ্রাম রান করছে যে রিসলভিং এর কাজ করছে।
তবে চিন্তার কিছু নেই। সব কিছুরই সমাধান আছে।
ডি এন এস ক্যাশ ( DNS Cache) আসছে সেখানেই। ক্যাশকে আমরা একটা অংকের পাকা খাতা হিসাবে চিন্তা করতে পারি। ফাঁকিবাজ স্টুডেন্ট বার বার অংশ করার ঝামেলায় না গিয়ে, পাকা খাতা থেকে দেখে নেয় অংকটা কিভাবে করা আছে। ডি এন এস ক্যাশ এর এই পাকা খাতায়, এই পর্যন্ত যতোগুলো অ্যাড্রেস সে রিসলভ করেছে, সেগুলোর সমস্ত তথ্য লিপিবদ্ধ আছে। যখন নতুন করে কেউ আবার google.com এ ঢুকতে চায়, তখন ঘটনাটা ঘটে এমন
-> বস, google.com এ একবার যাওয়া লাগতো যে। হেতের আইপিটা একটু খুঁজে দেন না ভাই।
ডি এন এস ক্যাশঃ আমারে কি পাইছো তোমরা? রিসলভ করতে পারতাম না। খাতায় লেখা আছে, এই নাও। যাও, আমারে বিরক্ত করবানা।
ব্যাস, এরপর আপনি আইপি পেয়ে গেলেন ডি এন এস ক্যাশ এর খাতা থেকে।
তবে এই ক্যাশ কিন্তু শুধু আই এস পি লেভেল এ হয় না। আপনার কম্পিউটার এ ডি এন এস ক্যাশ হচ্ছে প্রতিমূহূর্তে। টাইম টু লাইভ আসছে এই কাজে।
ধরুন আপনি রাত ১২ টা ১০ এ একবার গুগল এ ঢুকলেন। এখন গুগল এর নেম সার্ভার এর টাইম টু লাইভ দেওয়া আছে ১ ঘণ্টা। এর ফলে রাত ১ টা ১০ এর আগে আপনি যতবার ঢুকবেন, ততবার আপনার রিসলভার ক্যাশ থেকে আইপি নিয়ে আসবে, নতুন করে রিসলভ করবে না। এর ফলে অনেক বড় একটা প্রসেস সংক্ষিপ্ত করে ফেলা হয়। ঠিক ১ টা ১০ এর পর আপনি যখন আবার ঢুকবেন, তখন আপনার রিসলভার আরেকবার রিসলভ করে আইপি আবার এক ঘণ্টার জন্য ক্যাশ করে রাখবে।
## ডি এন এস ক্যাশ কিভাবে ক্লিয়ার করবেন?
নানা কারণে আপনার ডি এন এস ক্যাশ ক্লিয়ার করার দরকার হতে পারে। তাই শর্টকাটে লিখে দিলাম কিভাবে ক্যাশে ক্লিয়ার করতে পারেন,
ipconfig /flushdns
উপরের কোডটা উইন্ডোজ ব্যবহারকারীদের জন্য। Windows Key + R চাপুন। টাইপ করুন cmd এবং এন্টার দিন, কমান্ড প্রম্পট চালু হবে। সেখানে এই কোডটি কপি পেস্ট করে গায়ের জোরে এন্টার মারুন, কাজ হয়ে যাবে।
উবুন্টু ইউজারদের জন্য একটু ভেজাল হবে, কারণ উবুন্টুর ডি এন এস রিসলভার ডিফল্ট ভাবে ক্যাশ করে না। তবে ফায়ারফক্স এবং গুগল ক্রোম নিজ উদ্যোগ এ ডি এন এস ক্যাশ করে। আগের লাইনের লিংক গুলো থেকে এ ব্যাপারে আপনি আরও বিস্তারিত জানতে পারবেন। আর উবুন্টু ব্যবহারকারীদের জন্য এই লিংকটা বেশ কাজে আসবে। তবে প্রথমেই সতর্কবানী, আগে পুরো থ্রেডটা ভালো করে পড়ুন, এরপর সিদ্ধান্ত নিন।
যাদের এখনও জানার ক্ষুধা মেটেনি, তাদের জন্য কিছু রিসোর্স দিয়ে রাখলাম। যাদের ক্ষুধা মিটে গেছে, পানি খেয়ে ঘুম দিন।
http://www.tech-faq.com/dns-cache.html
https://technet.microsoft.com/en-us/library/cc775637(v=ws.10).aspx
http://cr.yp.to/djbdns/intro-dns.html
http://www.howtogeek.com/161808/htg-explains-what-is-dns-cache-poisoning/
আশা করি বোঝাতে সক্ষম হলাম। যদি নাই হয়, তাহলে প্রতিবারের মতো, মুড়ি খান 🙂 [ কোন প্রশ্ন থাকলে কমেন্ট করুন ]