DNS தீர்வு, தொடக்கத்தில் இருந்து முடிவு வரை
ஒரு URL ஐ தட்டச்சு செய்ததிலிருந்து பதிலைப் பெறுவது வரை உண்மையில் என்ன நடக்கிறது என்பதற்கான நடைமுறைக் கூற்று, stub resolver இலிருந்து authoritative server வரை.
ஒவ்வொரு முறை நீங்கள் ஒரு டொமைனை ப்ரவுசரில் தட்டச்சு செய்கிறீர்கள், நீங்கள் விரும்பும் தளத்தில் ஒரு பாக்கெட்டும் சேர்ந்திட முன்பு தேடல்களின் ஒரு சங்கிலி தொடங்குகிறது. அந்த சங்கிலியின் பெரும்பாலான பகுதி தெரியாதது, மேலும் அதைப் பற்றிய பெரும்பாலான விளக்கங்கள் "இது ஒரு தொலைபேசி புத்தகத்தைப் போல" என்பதில் நின்றுவிடும். உண்மையில் என்ன நடக்கிறது, படிப்படியாக, மக்கள் பொதுவாக தவிர்க்கும் பாகங்கள் உட்பட.
stub resolver ஆனது புத்திமதி இல்லை
আपके অপারेটिং সিস্टम তার নিজের ওপর আসল DNS தীর்ণা করে না. এটি একটি stub resolver চালায়, শুধুমাত্র আপনার অনুসন্ধানকে কোনো DNS সার्வर তে পাঠাবে যা Linux এ /etc/resolv.conf এ বা Windows এ আপনার নেटওয়र্ক অ্যাডাপ্টার সেটিংসে কনফিগার করা আছে। আপনার সহ যাচাই করুন:
cat /etc/resolv.conf
সেই ফাইলটি সাধারণত আপনার রাউটারের দিকে নির্দেশ করে (192.168.1.1 এর মতো), আপনার ISP এর resolver, বা 1.1.1.1 বা 8.8.8.8 এর মতো একটি public। stub resolver এর নিজস্ব cache logic নেই, শুধুমাত্র OS বা systemd-resolved এর মতো local daemon যা প্রদান করে তার বাইরে।
recursive resolver আসল কাজ করে
আপনার অনুসন্ধান একটি recursive resolver কে হিট করার পরে, সেই সার্ভার উত্তর খোঁজার কাজ নিয়ে নেয়, এমনকি যদি এটি সেখানে যেতে অন্য একাধিক সার্ভারকে জিজ্ঞাসা করতে হয়। যদি উত্তর ইতিমধ্যে আগের অনুসন্ধান থেকে ক্যাশ করা থাকে, আপনি এটি অবিলম্বে পান। TTL যাচাই করুন:
dig example.com
ANSWER SECTION দেখুন — রেকর্ড প্রকারের আগে সংখ্যা (যেমন A এর আগে 300) হল TTL সেকেন্ডে। সেটি হল যতক্ষণ resolver রেকর্ড ক্যাশ করতে পারে আবার জিজ্ঞাসা করার আগে।
যদি কোনো cache নেই, recursive resolver DNS hierarchy এর root থেকে একটি হাঁটা শুরু করে।
Root, TLD, এবং authoritative servers
13টি root server ঠিকানা রয়েছে (a.root-servers.net থেকে m.root-servers.net), প্রতিটি anycast routing এর মাধ্যমে অনেক ফিজিকাল মেশিন দ্বারা সমর্থিত। root server জানে না example.com কোথায় থাকে, কিন্তু এটি জানে কোন সার্ভারগুলি .com পরিচালনা করে, তাই এটি একটি referral ফেরত দেয়।
resolver তারপর একটি .com TLD সার্ভারকে জিজ্ঞাসা করে, যা আবার চূড়ান্ত উত্তর জানে না কিন্তু জানে কোন nameserver গুলি example.com এর জন্য authoritative। আপনি নিজেই এই delegation দেখতে পারেন:
dig +trace example.com
সেই কমান্ড প্রতিটি hop দেখায়: root, তারপর TLD, তারপর ডোমেইনের জন্য authoritative nameserver, প্রকৃত A বা AAAA রেকর্ড দিয়ে শেষ। এটি DNS বুঝতে তাত্ত্বিকভাবে না বরং visually এর জন্য একক সেরা কমান্ড।
authoritative nameserver হল শেষ থামা। এটি সার্ভার যা ডোমেইন মালিক আসলে কনফিগার করেছে, প্রায়শই একটি registrar এর DNS panel এর মাধ্যমে বা Route 53 বা Cloudflare DNS এর মতো একটি সেবার মাধ্যমে। এটি সমগ্র সংখ্যায় একমাত্র সার্ভার যার আসল, canonical উত্তর রয়েছে একটি ক্যাশ করা কপি বা referral এর পরিবর্তে।
রেকর্ড প্রকার আপনি প্রকৃতপক্ষে সামলাবেন
একটি A রেকর্ড একটি নাম কে একটি IPv4 ঠিকানায় ম্যাপ করে, AAAA IPv6 এর জন্য একই করে। CNAME একটি নাম কে একটি IP এর পরিবর্তে অন্য নামের দিকে নির্দেশ করে, যা কীভাবে CDN গুলি Cloudflare বা Fastly এর মতো raw IP এ উন্মোচন না করে ট্রাফিক রুট করে। MX রেকর্ড মেইল routing পরিচালনা করে, এবং TXT রেকর্ড arbitrary text বহন করে, এখন সবচেয়ে সাধারণভাবে SPF, DKIM, এবং ডোমেইন verification strings এর জন্য ব্যবহৃত। NS রেকর্ড বিশ্বকে বলে কোন সার্ভারগুলি একটি zone এর জন্য authoritative, এবং এটি সেই রেকর্ড প্রকার যা প্রথম জায়গায় delegation সম্ভব করে।
ক্যাশ প্রকৃতপক্ষে কোথায় থাকে
ক্যাশিং একাধিক স্তরে simultaneously ঘটে: ব্রাউজার নিজেই (Chrome এর নিজের DNS cache আছে chrome://net-internals/#dns এ দেখা যায়), OS resolver cache, local router, এবং upstream recursive resolver। এটাই কেন একটি DNS পরিবর্তন এক ডিভাইসে তাৎক্ষণিক কাজ করতে পারে এবং অন্যটিতে ঘণ্টা নিতে পারে — আপনি একই cache হিট করছেন না।
যখন আপনি পরিকল্পিত migration এর আগে একটি রেকর্ডের TTL কম করেন, আপনি তাৎক্ষণিক কিছু গতি দিচ্ছেন না। আপনি শুধু window shrink করছেন যার মধ্যে stale data persist হতে পারে একবার পরিবর্তন প্রকৃতপক্ষে ঘটলে। এটি cutover এর কমপক্ষে একটি TTL cycle আগে করুন, পাঁচ মিনিট আগে না।
কেন এটি troubleshooting এর জন্য গুরুত্বপূর্ণ
যখন একটি সাইট unreachable, dig +trace আপনাকে ঠিক বলে কোন স্তর broken: একটি root/TLD সমস্যা একটি misconfigured authoritative server বা আপনার নিজের মেশিনে stale cache এর মতো সম্পূর্ণ ভিন্ন দেখায়। dig example.com কে একটি known-good resolver, যেমন dig example.com @1.1.1.1, এর বিরুদ্ধে তুলনা করা isolate করে সমস্যা আপনার local resolver এ বা ডোমেইনের আসল DNS setup এ আছে কিনা।
DNS বাইরে থেকে সহজ দেখায় কারণ এটি সাধারণত 100ms এর অধীনে resolves এবং কেউ এটি সম্পর্কে চিন্তা করে না। অন্তর্গতভাবে, এটি একটি distributed, cached, hierarchical query system যা 1980s এর পর থেকে বৃহত্তর অংশে অপরিবর্তিত কাঠামোয় চলছে, যা আসল ডিজাইন কত ভালো হয়েছিল তা নিয়ে একটি ভালো যুক্তি।
যদি আপনি এটির সাথে আরও এগিয়ে যেতে চান, Korra Studio এর DEFENSE_GRID এ সম্পর্কিত segments রয়েছে DNS নিরাপত্তা extensions, DNS tunneling একটি exfiltration কৌশল হিসাবে, এবং Python এ আপনার নিজের resolver তৈরি করা নিয়ে।
AI உதவியுடன் எழுதப்பட்டது, Michal Pilch (CISSP), Korra Studio ஆல் மறுஆய்வு செய்யப்பட்டு வெளியிடப்பட்டது.
இது Korra Studio அறிவுத் தளத்தில் இருந்து ஒரு குறிப்பு — மேடை ஒவ்வொரு தலைப்பையும் 1-க்கு-1 மாற்றுச் சொற்களுடன் இணைக்கிறது.
இலவசமாக தொடங்கவும்arrow_forward