ধরুন আপনি কোনো একটা কোম্পানির সাপোর্ট ইঞ্জিনিয়ার এবং সেই কোম্পানির প্রায় দুই শত ইউজার আছে। আপনাকে প্রতিনিয়ত ইউজারদের মাঝে IP/DNS/GW/DNS domain ইত্যাদি কনফিগার করতে হয়। বিভিন্ন পিসিতে/সিস্টেমের কাছে গিয়ে এই কাজ করা বেশ সময় স্বাপেক্ষ এবং ঝামেলার ব্যাপার। সে ক্ষেত্রে আপনার নেটওয়ার্কে যদি একটা DHCP সার্ভার থাকে এবং DHCP সার্ভার ক্লায়েন্টের/ইউজারদের (PC) মাঝে কি কি সার্ভিস (IP/MASK/GW/DNS/Domain) প্রদান করবে, এই বিষয় গুলো যদি DHCP সার্ভারে উল্লেখ করে দেওয়া হয়, তাহলে আপনার নেটওয়ার্কের ক্লায়েন্ট গুলো অটোমেটিক ভাবে IP/MASK/GW/DNS/Domain ইত্যাদি কনফিগারেশন পেয়ে যাবে। ফলে, নেটওয়ার্কের এক হোস্ট থেকে হোস্টের আইপি (IP) কনফিগারেশন আলাদা হবে। উল্লেখও যে আপনি যদি কোনো হোস্টের ক্ষেত্রে আইপি (IP) অ্যাড্রেস নির্দিষ্ট করে উল্লেখ করতে চান, তাহলে সেটাও আমরা MAC bind এর মাধ্যমে নির্দিষ্ট করে দিতে পারি।
এই পোস্টে DHCP কিভাবে কাজ করে, DHCP প্রটোকল, DHCP ক্লায়েন্ট-সার্ভার-এজেন্ট কমিউনিকেশন পদ্ধতি, DHCP প্যাকেট ক্যাপচার এবং এনালাইসিস ইত্যাদি বিষয় নিয়ে আলোচনা করা হবে।
How does DHCP work?
DHCP এর পূর্ণ অর্থ হচ্ছে Dynamic Host Configuration Protocol, DHCP OSI মডেলের Application লেয়ারে কাজ করে। DHCP প্রটোকলের মাধ্যমে নেটওয়ার্কের বিভিন্ন হোস্ট (PC/Server/Smartphone/Wi-Fi Device/IP Phone/Network Printer/CC Camera/IoT Devices ও নেটওয়ার্কের অন্যান্য একটিভ ডিভাইস সমূহের মধ্যে IP/Subnetmask/gateway/dns ইত্যাদি প্রেরণ করে। DHCP ক্লায়েন্ট-সার্ভার আর্কিটেকচারে কাজ করে যেটা OSI মডেলের Transport লেয়ারের UDP প্রোটোকল ব্যবহার করে। DHCP সার্ভার-ক্লায়েন্ট কমিউনিকেশনের জন্য দুইটি পোর্ট (UDP 67 & 68) ব্যবহার। যখন নেটওয়ার্কের কোনো ক্লায়েন্ট DHCP সার্ভারের নিকট কোনো মেসেজ পাঠায় তখন ‘68’ পোর্ট ব্যবহার হয়, আবার সার্ভার যখন ক্লায়েন্টের সাথে যোগাযোগ করে তখন ‘67’ পোর্ট ব্যবহার করে। সার্ভার, ক্লায়েন্ট ছাড়াও DHCP এর কমিউনেকেশন মডেলে আরেকটি রোল (Role) আছে সেটার নাম ‘DHCP Relay Agent’ যেটা DHCP সার্ভার এবং ক্লায়েন্টের মাঝে Relay Agent হিসেবে কাজ করে সার্ভার-ক্লায়েন্ট মধ্যে যোগযোগ রাখে। সুতরাং আমরা বলে পারি DHCP প্রটোকলের তিনটি কম্পোনেন্টঃ
- DHCP Client
- DHCP Server22
- DHCP Relay Agent
DHCP Working Procedures
ধরুন সকালে অফিসে এসে আপনি আপনার PC/Laptop চালু করলেন। আপনার PC/Laptop -এ যদি DHCP ক্লায়েন্ট হিসেবে কনফিগার করা থাকে, তাহলে সেটা IP/Mask/GW/DNS এর জন্য ওই নেটওয়ার্কে একটা ব্রডকাস্ট (Discover) মেসেজ পাঠাবে। সেই নেটওয়ার্কে যদি কোনো DHCP সার্ভার থেকে থাকে তাহলে সেটা রেসপন্স করবে এবং DHCP এর ডাটাবেজ থেকে ফ্রি আইপি অফার (Offer) করবে। আর এই কাজটি কয়েকটি ধাপে সম্পন্ন হবে। DHCP সার্ভার-ক্লায়েন্ট মোট চারটি (০৪) ধাপে কাজ করে, আর এই ক্লায়েন্ট-সার্ভার কমিউনিকেশন পদ্ধতিকে আমরা ছোট করে ‘DORA’ বলতে পারি। নিচে ‘DORA’ পদ্ধতি ব্যবহার করে কিভাবে ক্লায়েন্ট-সার্ভার কমিউনিকেশন এই ব্যপারে আলোচনা করা হয়েছেঃ
- Discover (D) – DHCP ক্লায়েন্ট ‘68’ পোর্ট ব্যবহার করে একটি ব্রডকাস্ট করবে “Hello Everbody! any DHCP Server in this network?”, এটাকে বলা হয় ‘DHCP Discover (D)’
- Offer (O) – যদি ওই নেটওয়ার্কে DHCP সার্ভার থাকে, তাহলে ক্লায়েন্ট কে DHCP সার্ভিস দেওয়ার জন্য ‘67’ পোর্ট ব্যবহার করে (আইপি এড্রেস সহ) Reply মেসেজ দিবে, এটাকে বলা হয় ‘DHCP Offer (O)’
- Request (R) – পরবর্তী রিপ্লাইয়ে DHCP ক্লায়েন্ট DHCP সার্ভারের নিকট DHCP সার্ভিস লিজ (Lease) নেওয়ার জন্য ‘Request (R)’ করবে, এটাকে বলা হয় ‘DHCP Request (R)’
- Acknowledgement (A) – সবশেষে DHCP সার্ভার DHCP ক্লায়েন্ট কে যাবতীয় সার্ভিস (IP/Netmask/Gateway/DNS) করবে এবং ACK মেসেজ দিবে। এটাকে বলা হয় ‘DHCP ACK (A)’
DHCP Traffic Capture in Wireshark
Wireshak সফটওয়্যার দিয়ে DHCP ট্রাফিক ক্যাপচার করে খুব সহজেই ‘DHCP’ প্রটোকলের কাজের পদ্ধতি ধাপ গুলা অনুধাবন করা যাবে। এই ক্ষেত্রে প্রথমে ‘Wireshark’ সফটওয়্যার টি নিচের সাইট থেকে ডাউনলোড (https://www.wireshark.org) এবং ইন্সটল করে নিতে হবে। তারপরে DHCP Traffic ক্যাপচার করার জন্য নিচের ধাপ সমূহ অনুসরণ করতে হবেঃ
1. প্রথমে Windows অপারেটিং সিস্টেম থেকে ‘Wireshark’ সফটওয়্যারটি রান করতে হবে। তারপরে নিচের স্ক্রিনশুট অনুযায়ী (Option 1) হতে ইন্টারফেস সিলেক্ট করতে হবে, তারপর (Option 2) অনুযায়ী ‘Capture’ বাটন প্রেস করে প্যাকেট Capture শুরু করতে হবে।
2. DHCP Server থেকে নতুন আইপি পাওয়ার জন্য Windows অপারেটিং সিস্টেমের ‘Command Prompt’ (CMD) ওপেন করে নিচের স্ক্রিন সুটের মত ‘ipconfig /renew’, ‘ipconfig /release’, ‘ipconfig /renew’ প্রেস করতে হবে।
3. কমান্ড এবং এন্টার প্রেস শেষে ‘Command Prompt’ টি কেটে (Close) দিতে হবে।
4. সবশেষে ‘Wireshark’ সফটওয়্যার থেকে ‘Capture’ বন্ধ করতে হবে।
এরপরে নিচের ‘Wireshark’ স্ক্রিনসুটের অপশন (1) অনুযায়ী ‘Packet List Panel’ থেকে ‘udp.port==68’ টাইপ করে এন্টার প্রেস করলে শুধু ‘68’ পোর্টের Frame গুলা এখানে দেখাবে। স্ক্রিনসুটের অপশন (2)তে DHCP এর DORA প্রসেসের চারটি (০৪) ফ্রেম (Frame) দেখা যাবে এবং স্ক্রিনসুটের অপশন (3)তে ক্লায়েন্টের আইপি অ্যাড্রেস (IPv4) পাওয়া যাবে।