system-design-bangla

DNS Query Types

DNS এ তিন প্রকারের query থাকে, যার মাধ্যমে DNS সার্ভার রিকোয়েস্ট কে প্রসেস করতে পারে।

DNS Queries

DNS Cache

উপরের পুরো প্রক্রিয়াটা (Root → TLD → Authoritative Server পর্যন্ত যাওয়া) প্রতিবার করলে অনেক সময় লাগবে এবং DNS Server-গুলোর উপর প্রচুর load পড়বে। এই সমস্যা সমাধানের জন্য ব্যবহার হয় DNS Cache - মানে একবার কোনো ডোমেইনের উত্তর পাওয়ার পর সেটা কিছুক্ষণের জন্য মনে (store) রাখা হয়, যাতে বারবার একই query না পাঠাতে হয়।

DNS Cache মূলত কয়েক জায়গায় হতে পারে:

প্রতিটা DNS Record-এর সাথে একটা TTL (Time To Live) ভ্যালু থাকে, যা নির্ধারণ করে সেই record কতক্ষণ পর্যন্ত cache-এ রাখা যাবে। TTL শেষ হয়ে গেলে cache থেকে সেই এন্ট্রি মুছে যায়, এবং পরের বার query আসলে আবার পুরো resolution প্রক্রিয়া (Root থেকে শুরু করে) নতুন করে চালাতে হয়।

সংক্ষেপে: DNS Cache-এর মূল উদ্দেশ্য হলো বারবার একই resolution প্রক্রিয়া না চালিয়ে দ্রুত উত্তর দেওয়া, যার ফলে ওয়েবসাইট লোড হতে কম সময় লাগে এবং DNS infrastructure-এর উপর চাপও কমে।

TTL-এর Example

ধরা যাক, example.com ডোমেইনের A Record-এর TTL সেট করা আছে 3600 সেকেন্ড (১ ঘণ্টা)। এখন ঘটনাটা এভাবে ঘটবে:

লক্ষ্যণীয় বিষয়: যদি কোনো ডোমেইনের IP Address ঘন ঘন পরিবর্তন হয় (যেমন load balancing বা failover-এর জন্য), তাহলে সাধারণত TTL-এর মান কম রাখা হয় (যেমন ৬০-৩০০ সেকেন্ড), যাতে পরিবর্তনটা দ্রুত সবার কাছে পৌঁছায়। আর যেসব ডোমেইনের IP প্রায় কখনো বদলায় না, সেখানে TTL-এর মান বেশি (যেমন ২৪ ঘণ্টা বা তার বেশি) রাখা হয়, যাতে বারবার query না করতে হয় এবং resolution দ্রুত হয়।

DNS Cache Practical (নিজের কম্পিউটারে চেক করুন)

আপনি চাইলে নিজের কম্পিউটারেই OS-Level DNS Cache দেখতে এবং পরীক্ষা করতে পারেন।

Windows-এ:

# বর্তমান DNS Cache-এর সব এন্ট্রি দেখতে
ipconfig /displaydns

# DNS Cache ক্লিয়ার করতে (flush)
ipconfig /flushdns

macOS-এ:

macOS-এ Windows-এর মতো ipconfig /displaydns এর সরাসরি কোনো equivalent নেই - অর্থাৎ পুরো DNS cache-এর লিস্ট এক কমান্ডে দেখার সহজ উপায় নেই।

Linux-এ (systemd-resolved ব্যবহারকারী হলে):

# DNS Cache-এর statistics দেখতে
sudo systemd-resolve --statistics

# DNS Cache ক্লিয়ার করতে
sudo systemd-resolve --flush-caches

একটা ছোট experiment করে দেখতে পারেন

  1. প্রথমে ipconfig /flushdns (বা আপনার OS অনুযায়ী কমান্ড) চালিয়ে cache খালি করুন।
  2. এরপর একটা নতুন ডোমেইন visit করুন (যেমন ব্রাউজারে টাইপ করে), বা টার্মিনালে nslookup example.com চালান।
  3. প্রথমবার resolution-এ সামান্য বেশি সময় লাগবে, কারণ পুরো Root → TLD → Authoritative প্রক্রিয়া চলবে।
  4. একই কমান্ড আবার চালালে দেখবেন উত্তর প্রায় সাথে সাথে চলে আসছে — কারণ এবার এটা cache থেকে সার্ভ হচ্ছে।

সংক্ষেপে: DNS Cache কোনো abstract concept না, বরং আপনার নিজের ডিভাইসেই সক্রিয়ভাবে কাজ করছে। উপরের কমান্ডগুলো দিয়ে আপনি হাতে-কলমে দেখতে পারবেন কীভাবে TTL শেষ হওয়ার আগ পর্যন্ত রেসপন্স দ্রুত আসে, আর flush করার পর আবার নতুন করে resolution প্রক্রিয়া শুরু হয়।

ডোমেইন নেইম সিস্টেম(DNS) এর রেকর্ড টাইপ

যখন আমরা একটি ডোমেইন রেজিস্টার করতে যাই, তখন আমাদের DNS সেটআপ করে দিতে হয়। মানে কোন IP তে ডোমেইন পয়েন্ট করা থাকবে। সেটআপ করার সময় কিছু DNS টাইপ থাকে, আমাদের প্রয়োজন অনুযায়ী নির্বাচন করব।

মনে করি, আমাদের ডোমেইন google.com। এখন আমরা এতে সরাসরি কোনো IP Address সেট না করে facebook.com-কে CNAME হিসেবে সেট করলাম। তখন কেউ google.com-এ প্রবেশ করলে DNS প্রথমে facebook.com-কে resolve করবে এবং এরপর facebook.com-এর A বা AAAA Record থেকে IP Address বের করে সেই সার্ভারে নিয়ে যাবে।

Record Type

DNS Zone

DNS Zone হলো DNS এর একটি portion যেখানে একটি নির্দিষ্ট ডোমেইন এবং সাবডোমাইন একটি administrator দ্বারা নিয়ন্ত্রিত হয়ে থাকে। উদাহরণ

localhost এবং 127.0.0.1 এর পার্থক্য কি?

দুটির মূলত একটি কাজ, আপনার নিজের ল্যাপটপ কে পয়েন্ট করা। তবে পার্থক্য আছে,