চলুন একটা সহজ উদাহরণ দিয়ে শুরু করি, যেটা আমরা রোজকার জীবনে ফেস করি।
ধরুন, আপনি প্রথমবার আপনার বন্ধুর বাসায় যাচ্ছেন। তখন আপনি কী বলবেন — “আমি আমার বন্ধু Leo-র বাসায় যেতে চাই”? না, আপনি Google Map-এ লিখবেন সুনির্দিষ্ট ঠিকানা — যেমন “House 69, Road 09, New Street, NY”। কারণ শুধু নাম দিয়ে কখনো নির্দিষ্ট লোকেশন খুঁজে পাওয়া যায় না, এজন্য দরকার হয় exact লোকেশন অ্যাড্রেস।
ইন্টারনেটের DNS সিস্টেমও ঠিক একই প্রসেস অনুসরণ করে। আপনি যখন Instagram অ্যাপ ওপেন করেন, আপনার ফোন জানে না Instagram-এর সার্ভার আসলে কোথায়। এখানেও দরকার হয় একটা exact লোকেশন — অর্থাৎ IP Address।
IP Address কী?
IP Address হলো ইন্টারনেটে থাকা প্রতিটা ডিভাইস/সার্ভারের একটা ইউনিক লোকেশন। যেমন — 142.250.183.14 (IPv4)। এটা দেখতে অনেকটা আপনার বন্ধুর বাসার ঠিকানার মতোই — শুধু সংখ্যায় লেখা।
IP Address মূলত দুই ভাগে ভাগ করা — IPv4 আর IPv6। চলুন এই দুটো তুলনা করে দেখি:
-
IPv4:
142.250.183.14— এই ফরম্যাটে চারটা সংখ্যা ব্যবহার হয়, প্রতিটা সংখ্যা 0-255 এর মধ্যে। এভাবে মোট ৪.৩ বিলিয়ন ইউনিক অ্যাড্রেস তৈরি করা সম্ভব। কিন্তু এখন পৃথিবী একটা critical সমস্যার মুখোমুখি — মানুষ আর ডিভাইসের (ফোন, ল্যাপটপ, স্মার্ট টিভি, IoT ডিভাইস) সংখ্যা এই ৪.৩ বিলিয়নকে ছাড়িয়ে গেছে, তাই IPv4 অ্যাড্রেস প্রায় শেষ হয়ে যাওয়ার পথে। -
IPv6:
2001:0db8:85a3:0000:0000:8a2e:0370:7334— এই ফরম্যাট অনেক বেশি লম্বা, তাই সম্ভাব্য combination-ও অনেক বেশি (340 undecillion!)। এটা হাজার হাজার বছরেও শেষ হবে না।
একটা সহজ analogy দিয়ে বোঝা যায় — IPv4 হলো পৃথিবীর মতো, যেখানে জনসংখ্যা দিন দিন বাড়ছে কিন্তু জমি বাড়ছে না, জমি বরং দিন দিন কমছে। আর IPv6 হলো গ্যালাক্সির মতো — গবেষকরা প্রতিদিন নতুন নতুন গ্যালাক্সি আবিষ্কার করছেন, এটা প্রায় অসীম।
System design-এ আরেকটা গুরুত্বপূর্ণ বিষয় হলো Public আর Private IP — এটা সহজ, সবাই বোঝে পাবলিক আর প্রাইভেট বলতে কী বোঝায়।
তাহলে DNS কেন দরকার?
মূল পয়েন্ট হলো — আমরা মানুষরা কখনোই IP মুখস্থ রাখি না। আমরা 142.250.183.14 ব্রাউজ করি না, আমরা লিখি google.com।
তাহলে প্রশ্ন হলো, Google কীভাবে তার IP Address-এ পয়েন্ট করে? এই জায়গা থেকেই আসে DNS।
DNS (Domain Name System) কী?
DNS হলো ইন্টারনেটের ফোনবুকের মতো। ঠিক যেমন আমরা আমাদের মোবাইলে বন্ধুর ফোন নাম্বার নাম দিয়ে সেভ করে রাখি — ফোন করার সময় পেছনে নাম্বার দিয়েই কাজ হয়, কিন্তু আমরা দেখি নাম।
DNS-ও একই দর্শন নিয়ে ইন্টারনেটে কাজ করে —
instagram.com → DNS → 157.240.22.35 (IP Address)
আপনি শুধু সহজে মনে রাখার মতো নাম (Domain) লিখেন, DNS সেটাকে IP Address-এ কনভার্ট করে দেয় — এই পুরো প্রসেসটাকে বলা হয় DNS Resolution।
DNS Resolution কীভাবে কাজ করে (যখন আপনি instagram.com লেখেন)
- আপনি ব্রাউজারে
instagram.comলিখলেন - আপনার ডিভাইস প্রথমে চেক করে এই নামটা আগে থেকেই ব্রাউজার ক্যাশে আছে কিনা
- না থাকলে request পাঠানো হয় DNS Resolver-এর কাছে (এটা সাধারণত আপনার ISP-র সার্ভার)
- Resolver root server-কে জিজ্ঞেস করে, এই ডোমেইনের তথ্য কোথায় পাওয়া যাবে
- Root server তাকে বলে দেয় TLD Server (
.com)-এর লোকেশন - TLD Server তাকে বলে দেয় ডোমেইনের মূল তথ্য কোন Authoritative Server-এ আছে
- Authoritative Server সত্যিকারের IP Address রিটার্ন করে
- Resolver এই IP আপনার ব্রাউজারকে দিয়ে দেয়
- ব্রাউজার এখন এই IP address-এ request পাঠায় এবং Instagram লোড হয়
দেখতে অনেকটা লম্বা প্রসেসের মতো মনে হচ্ছে, কিন্তু বাস্তবে পুরো ব্যাপারটা ঘটে মাত্র কয়েক মিলিসেকেন্ডে।
DNS Record Types
DNS অনেক ধরনের ডেটা হোস্ট করে, প্রতিটা ডেটা একেবারে আলাদা কাজ করে —
- A Record: Domain → IPv4 Address — অনেকটা আপনার বন্ধুর বাসার ঠিকানার মতো
- CNAME: Domain → আরেকটা Domain (Alias) — একটা নামকে আরেকটা নামের সাথে যুক্ত করে দেয়
- MX Record: এটা ঠিক করে কোন ইমেইল কোথায় যাবে — অনেকটা আপনার চিঠি কোন পোস্ট অফিসে যাবে সেটার মতো
DNS Caching ও TTL
আপনি প্রতিবার ব্রাউজারে instagram.com লিখলে যদি প্রতিবারই এই পুরো প্রসেস ফলো করতে হতো, তাহলে শুধু ডোমেইন খুঁজতেই অনেক সময় চলে যেত। এই কারণে ব্রাউজার DNS ক্যাশ করে রাখে —
- একবার IP খুঁজে পেলে, ব্রাউজার সেটা কিছু সময়ের জন্য মনে রাখে
- TTL (Time To Live) ঠিক করে দেয় এই ক্যাশ কতক্ষণ পর্যন্ত valid থাকবে — যেমন ১-২ ঘণ্টা বা কয়েক মিনিট
DNS Load Balancing (GeoDNS)
এটা বেশ ইন্টারেস্টিং একটা টপিক — Instagram-এর মতো বিশাল প্ল্যাটফর্ম কখনোই একটা মাত্র সার্ভার দিয়ে চলে না, সারা পৃথিবী জুড়ে অনেকগুলো আলাদা সার্ভার ব্যবহার হয়।
GeoDNS আপনার লোকেশন অনুযায়ী আপনার সবচেয়ে কাছের সার্ভারের IP রিটার্ন করে, যখন আপনি instagram.com ব্রাউজ করেন — এই কারণেই আপনার experience এত দ্রুত আর নির্ভরযোগ্য হয়।
