DHCP چیست؟ نحوه اجرای آن در شبکه
در این مقاله میخوانید
اگر به دنبال راهی برای پیادهسازی شبکهای هستید که بدون هیچ تنظیمات دستی، به همه دستگاهها IP یکتا اختصاص دهد، DHCP پروتکلی است که باید به شما معرفی کنیم. DHCP در دنیای پیچیدهی شبکههای مدرن، میتواند مغز متفکر تخصیص خودکار آدرسهای IP و مدیریت ارتباطات شبکهای باشد. در این راهنما از بخش آموزش شبکه در بلاگ پارسپک به اعماق شبکههای تحت DHCP میروید و نحوهی عملکرد آن در زیرساخت شبکه، اجزای آن، معایب و مزایا و مراحل تصویری پیادهسازی این پروتکل را در ویندوز میبینید.
تعریف DHCP
پروتکل DHCP یا Dynamic host configuration protocol یا «پروتکل پیکربندی پویای میزبان»، در یک شبکه (Network)، آدرس IP یا IP Address را بهصورت خودکار و مرکزی برای دستگاهها ساخته و به آنها اختصاص میدهد. بر این اساس دیگر نیازی نیست که مدیران شبکه هنگام ساخت شبکهی جدید یا بعد از جابهجایی دستگاهها، تخصیص IPهای جدید یا تنظیماتشان را بهصورت دستی انجام دهند.
خوشبختانه نسخههای مختلفی برای DHCP طراحی شده تا علاوه بر IP نسخهی 4 (IPv4) در IP نسخهی 6 (IPv6) هم قابل استفاده باشد. «DHCPv6» نام نسخهای است که برای پروتکل اینترنتی IPv6 طراحی شدهاست. این امر از این جهت حائز اهمیت است که IPv6 از سال 2017 به یک استاندارد صنعتی تبدیل شدهاست.
DHCP یا Dynamic host configuration protocol یک پروتکل گیرنده-سرویسدهنده (Client-server) است که در آن سرور DHCP یا DHCP server، مجموعهای از آدرسهای IP منحصربهفرد را بههمراه پارامترهای پیکربندی، بهصورت خودکار به کلاینتها اختصاص میدهد. این تخصیص IP میتواند بهصورت استاتیک، داینامیک یا خودکار (شباهت زیاد به داینامیک) انجام شود. پروتکل را میتوان در شبکههای محلی کوچک یا شبکههای بزرگ سازمانی پیاده کرد.
DHCP Server چیست؟
Server DHCP (سرور DHCP) یک سرویسدهنده شبکه است که میتواند IPهای کلاینتها را به طور خودکار به آنها اختصاص داده و در صورت نیاز، آنها را بهروزرسانی کند. خودکار بودن این فرایند، مدیریت شبکه را بهمراتب راحتتر و اشتباهات احتمالی را کمتر کردهاست.
تنظیمات DHCP قبل از شروع کار توسط مدیر شبکه (Network administrator) تعیین میشود. این که آیا IPها تصادفی انتخاب شود یا خیر، IPهای تصادفی دقیقاً در چه رنجی باشد، هر IP تا چه مدتزمانی معتبر باشد و… همگی از قبل مشخص میشود. سپس سرور بر اساس این تنظیمات، وظایفش را بهصورت خودکار انجام میدهد.
برای مطالعه بیشتر در زمینه DHCP و پیکربندی آن، مقاله زیر از سایت پارسپک را بخوانید.
اجزای DHCP
پروتکل DHCP در لایه Application (کاربردی) مدل TCP/IP اجرا میشود. این فرایند شامل چند مرحله است که مکانیسم کلی آنها، ارسال پیامهای درخواست و پاسخ بین کلاینت و سرور است.
عوامل مختلفی مانند مخزن آدرس IP، زیرشبکه و… در این فرایند دخالت دارد. اما مهمترین اجزای این پروتکل را میتوان در سه مورد زیر خلاصه کرد.
سرور DHCP
سرور DHCP یا DHCP Server که آدرسهای IP و تنظیمات پیکربندی را در خود نگه داشته و مدیریت میکند.
Client DHCP
کلاینت DHCP یا DHCP Client که دستگاهی مانند رایانه یا تلفن است که به شبکه متصل شده و با سرور DHCP ارتباط برقرار میکند.
Relay DHCP
پروتکل DHCP بهصورت پیشفرض، از پیامهای پخشی (Broadcast) برای ارتباط بین کلاینتها و سرور استفاده میکند. این پیام فقط در یک شبکهی محلی (LAN) قابل دریافت است و نمیتواند از روتر (Router) عبور کند. بنابراین در شبکههای بزرگتر، باید از تکنیک DHCP Relay کمک گرفت تا پیامهای پخشی کلاینت بهصورت یکبهیک (Unicast) به سرور DHCP ارسال شود.
DHCP Relay Agent نیز به نرمافزار یا سرویسی اشاره دارد که وظیفهی مدیریت درخواستها و پاسخهای DHCP بین کلاینت و سرور را به عهده دارد. این دستگاه میتواند یک روتر یا سوئیچ باشد.
سازوکار DHCP
تنظیمات اولیه که توسط مدیر شبکه روی دستگاهها اعمال میشود تا این دستگاه به عضوی از پروتکل DHCP تبدیل شود، بههمراه تنظیماتی که روی سرور اعمال میشود تا بتواند وظایف خود را متناسب با نیازهای شبکه انجام دهد.
بعد از انجام این تنظیمات، سرور برای تخصیص IP خودکار به کلاینتها آماده است. این فرایند شامل چهار مرحله اصلی است که بهاختصار با نام «DORA» شناختهمیشود. در ادامه این مراحل را میبینید.
گام اول: Discover
کلاینتی که به شبکه متصل و بوت (Boot) شده، هنوز هیچ آدرسی ندارد. پس در مرحلهی Discover (کشف)، یک پیام DHCP Discover بهصورت پخش (Broadcast) به کل شبکه ارسال میکند. این پیام شامل اطلاعات اولیهای مانند MAC Address (آدرس کنترل دسترسی رسانه) کلاینت است. هدف آن نیز پیدا کردن یک سرور DHCP است که بتواند تنظیمات شبکه را به کلاینت اختصاص و ارائه دهد.
گام دوم: Offer
سرور DHCP که در شبکه موجود است، پیام Discover را دریافت کرده و یک پیام Offer (پیشنهاد) به کلاینت (Client) ارسال میکند. این پیام بهصورت یکبهیک مستقیم به کلاینت ارسال شده و شامل موارد زیر است:
- یک آدرس IP موقت: این آدرس را سرور به همان کلاینت اختصاص میدهد.
- Subnet Mask (ماسک زیرشبکه): پارامتری عددی است که شبکه را به چند زیرشبکه تقسیم کرده و تعیین میکند که چند آدرس IP در شبکه محلی (Subnet) قابلاستفاده است. برای کلاینتها نیز مشخص میکند که آدرسهای IP موردنظر در همان شبکهی محلی (Subnet) قرار دارد یا به شبکهای دیگر تعلق دارد. اگر آدرس مقصد در همین شبکه محلی باشد، کلاینت مستقیماً با دستگاه مقصد ارتباط برقرار میکند. اما اگر آدرس مقصد خارج از شبکهی محلی باشد، کلاینت بسته را به Default Gateway ارسال میکند.
- آدرس IP متعلق به Default Gateway (دروازه پیشفرض): اگر کلاینت بخواهد به یک IP وصل شود که داخل همان Subnet Mask نیست، بسته را به Default Gateway ارسال میکند. این دروازه نیز بسته را به مقصدی خارج از Subnet Mask میفرستد. به عبارت دیگر، Default Gateway یک دستگاه یا روتر است که وظیفهی هدایت ترافیک شبکه به خارج از محدودهی شبکهی محلی به عهده دارد.
- اطلاعات DNS Server (سیستم نام دامنه): اطلاعات Domain Name System شامل آدرس IP سرورهای DNS است که کلاینت از آنها برای ترجمهی نام دامنه (مانند www.google.com) به آدرسهای IP (مانند 8.8.8.8) استفاده میکند.
- Lease Time (مدتزمان اجاره): به مدتزمان اعتبار IP اشاره دارد که پایان یافتن آن، اختصاص IP باید رفرش (Refresh) شود.
گام سوم: Request
کلاینت پیام Offer را دریافت میکند. اگر چند سرور DHCP در شبکه موجود باشد، طبیعتاً چند پیام Offer ارسال شدهاست. در این صورت معمولاً کلاینت اولین پیام را انتخاب میکند. سپس پیام Request (درخواست) را به سرور ارسال میکند تا موافقت خود را اعلام کند.
گام چهارم: Acknowledge
سرور انتخابشده، بعد از دریافت پیام Request، پیام Acknowledge (تأیید) یا بهاختصار ACK را ارسال میکند. این پیام تأیید میکند که این کلاینت از این به بعد میتواند از آن آدرس IP که در پیام Offer گرفته، استفاده کند.
نکته: در طول فرایند DORA، ممکن است مراحل دیگری برای تمدید اجاره، انتشار اجاره و تشخیص تضاد IPها اجرا شود.
روشهای مختلف تخصیص IP در DHCP
با شیوهی کلی کار DHCP آشنا شدید. اما تخصیص IP در این مراحل، میتواند با روشهای مختلفی انجام شود. مهمترین این روشها را در ادامه میبینید.
روش اول: تخصیص IP استاتیک
در روش تخصیص ثابت یا همان استاتیک (Static allocation)، مدیر شبکه یک جدول تخصیص را روی سرور DHCP پیکربندی میکند. مدیر در این جدول آدرسهای MAC همه کلاینتها را اضافه کرده و یک IP به هر کلاینت اختصاص میدهد.
وقتی کلاینت درخواست دریافت IP را برای سرور DHCP میفرستد، سرور آدرس MAC کلاینت را از روی جدول پیدا کرده و IP تعیینشده برای او را تحویلش میدهد. این روش برای دستگاههایی کاربردی است که به IP ثابت نیاز دارد؛ مانند بعضی سرورها، چاپگرها، دستگاههای دستگاههای VoIP و… .
روش دوم: تخصیص IP داینامیک
در تخصیص پویا یا داینامیک (Dynamic allocation) روش کار به این صورت است که IP کلاینتها توسط مدیر مشخص نمیشود. در عوض مجموعهای از آدرسهای IP یا در واقع یک محدوده توسط او در سرور پیکربندی میشود. سرور نیز بعداً یک IP تصادفی منحصربهفرد را از این محدوده به کلاینت متقاضی اختصاص میدهد.
در این روش است که مفهوم مدتزمان اجاره (Lease Time) معنی پیدا میکند. بهاینترتیب اعتبار این IP فقط تا پایان مدت اجاره است. بعد از آن کلاینت باید درخواست IP جدید را به سرور بفرستد.
روش سوم: تخصیص IP خودکار
این روش مشابه روش داینامیک است. در این روش نیز مدیر شبکه مجموعهای از آدرسهای IP را روی سرور DHCP پیکربندی میکند. سرور هم یک IP را از این محدوده به کلاینت مدنظر اختصاص میدهد. اما با یک تفاوت مهم! اینجا دیگر مدتزمان اجاره محدود نیست و روی بینهایت تنظیم میشود. در واقع این IP برخلاف روش پویا موقتی نبوده و دائمی است.
امنیت در DHCP
پروتکل DHCP جزو پروتکلهای امن محسوب نمیشود! مهمترین نقاط ضعف این سرور عبارت است از:
- بهرهمند نبودن از قابلیت مسیریابی (Routing capability): DHCP فقط در همان شبکهی محلی (LAN) که در آن قرار دارد، کار میکند. درخواستهای DHCP نمیتواند بهصورت مستقیم بین شبکههای مختلف (Subnetهای مختلف) ارسال شود؛ مگر این که از فناوریهایی مثل DHCP Relay استفاده کند.
- DHCP هیچ مکانیسمی برای Authentication (احراز هویت) کلاینتها یا سرورها ندارد: این امر میتواند باعث حملات DHCP Spoofing (ساخت سرور جعلی) شود که سرور تقبلی اطلاعات اشتباه را برای کلاینتها میفرستد. حتی میتواند در قالب کلاینت جعلی نیز درخواستهای تقبلی ارسال کند.
- ارسال اطلاعات در قالب متن ساده: اطلاعات بستههای DHCP (مانند IP، Subnet Mask و…) در قالب Clear Text (متن ساده) است. بنابراین مهاجمان میتوانند با شنود، این اطلاعات را به سرقت ببرند.
خوشبختانه با تکنیکهایی مانند DHCP Snooping (پایش امنیتی) میتوان این نقاط ضعف را تا حدودی پوشش داد. تکنیکی که یک ویژگی امنیتی در تجهیزات شبکه (مانند سوئیچها) محسوب میشود.
DHCP Snooping میتواند خرابکاریهایی مانند ارسال آدرس اشتباه به کلاینتها، جاسوسی از ترافیک کاربران و… را مهار کند. این تکنولوژی این کار را با تقسیم شبکه به دو نوع پورت انجام میدهد: Trusted Ports (پورتهای مورداعتماد) و Untrusted Ports (پورتهای غیرمجاز). بهاینترتیب فقط درخواستهای پورتهای مورداعتماد مجوز دارد و درخواستهای پورتهای غیرمجاز مسدود میشود.
مزایای و معایب DHCP
با نگاهی به جدول زیر، به دیدگاهی کلی نسبت به مزایا و معایب این پروتکل میرسید.
مزایای DHCP | معایب DHCP |
سهولت در مدیریت شبکه با تخصیص IP خودکار | وابستگی بالا به سرور برای دریافت IP |
کاهش درصد خطاهایی مانند تضاد آدرسهای IP | ریسکهای امنیتی |
مقیاسپذیری بالا | محدود بودن به داخل زیرشبکه (Subnet) بدون کمک گرفتن از DHCP Relay |
انعطاف بالا و امکان همگام شدن با تنظیماتی مانند Subnet Mask، Gateway و DNS | آسیبپذیری در برابر حملات DDoS |
در مقاله زیر از سایت پارسپک، درباره حملات دیداس توضیح دادهایم. برای مطالعه بیشتر در این زمینه، روی لینک کلیک کنید:
نصب DHCP Server در ویندوز
آموزش DHCP، در وهلهی اول شامل نصب سرور DHCP است. در ادامه مراحل نصب این سرور را میبینید.
گام اول: تعیین نوع سرور
کلیک کردن روی آیکون Start ویندوز (پایین و سمت چپ) برای پیدا کردن Server Manager. البته میتوانید کلید Windows کیبورد را بزنید و نام Server Manager را تایپ کنید. بعد از باز کردن این برنامه، روی تب Manage و بعد گزینهی Add Roles and Features کلیک کنید.
در پنجرهای که باز شده، اطلاعات را مرور کنید و تا جایی روی Next کلیک کنید که به صفحهی Server Roles برسید. اینجا تیک گزینهی DHCP Server را بزنید.
در پنجرهی پاپآپی که پیش رویتان است، باید تنظیمات موردنیاز DHCP را وارد کنید. روی Add Features کلیک کرده و بعد Next را بزنید تا به صفحهی Install برسید.
گام دوم: نصب سرور
در این صفحه روی گزینهی Install کلیک کرده و صبر کنید تا فرایند نصب کامل شود. در این فاصله پنجرهها را نبندید تا بتوانید بهراحتی به تنظیماتِ بعد از نصب، دسترسی داشته باشید.
بعد از تمام شدن نصب، روی Complete DHCP configuration کلیک کنید.
قوانین و گزینهها را بخوانید و تا جایی روی Next کلیک کنید که به صفحهی Authorization برسید. گزینههای پیشفرضی که اینجا دیده میشود، در اغلب موارد نیازی به تغییری ندارد. اینجا از اعتبار ادمین دامنه استفاده شدهاست. پس ابتدا گزینهی اول انتخاب شده، نام کاربری وارد شده و حالا کافی است روی گزینهی Commit پایین صفحه کلیک شود.
در نهایت روی Close کلیک کنید تا پنجرههای نصب DHCP بسته شود.
پیکربندی سرور DHCP
در ادامه نحوهی اعمال پیکربندی تنظیمات سرور را میبینید.
گام اول: پیکربندی محدودهی آدرسهای IP
از مهمترین تنظیمات DHCP، پیکربندی یک محدوده (Scope) است که سرور بعداً بتواند IPها را بر اساس این محدوده به کلاینتها اختصاص دهد. تا وقتی که این محدوده را تعیین نکردهاید، سرور هنوز هیچ کاری انجام نمیدهد.
برای تعیین این محدوده، در Server Manager روی تب Tools و بعد DHCP کلیک کنید.
در گزینههای سمت چپ، روی DHCP کلیک کنید تا زیرمجموعههایش را ببینید. روی IPv4 راستکلیک کرده و New Scope… را انتخاب کنید.
روی Next کلیک کنید تا به صفحهی Scope Name برسید. در این صفحه، باید یک نام برای این محدوده انتخاب کنید.
در کادر Start IP address آدرس مدنظرتان را برای شروع IPها و در کادر End IP address، آدرس مدنظرتان را برای پایان محدودهی IPها وارد کنید. اینجا محدودهی 10.1.0.100 – 10.1.0.200 در نظر گرفته شدهاست.
اگر میخواهید یک آدرس IP را بهعنوان استثنا تعریف کنید تا بعداً سرور آن را به کلاینتی اختصاص ندهد، آن را بهصورت یک بازه یا فقط یک IP وارد کنید.
در کادر Subnet delay in millisecond نیز میتوانید زمانی را مشخص کنید که طول میکشد تا سرور پیام Offer یا پیشنهاد خود را (شامل آدرس IP) برای کلاینت بفرستد. کاربرد این گزینه زمانی است که چند سرور DHCP دارید و میخواهید با تعریف زمان Delay (تأخیر)، از پاسخگویی همزمان آنها جلوگیری کنید. اما اگر به این تنظیمات نیاز نداشتید، روی Next کلیک کنید.
گام دوم: تنظیم مدتزمان اجاره
Lease Time یا مدتزمان اجاره، تعیین میکند که یک آدرس IP تا چه مدتزمانی به یک کلاینت تعلق داشته باشد. این قابلیت میتواند در موبایل و لپتاپ کاربردی باشد. چون ممکن است یکی از این دستگاهها یک IP از سرور دریافت کرده و بعد شبکه را ترک کند. دراین صورت، سرور میتواند آن IP را دوباره وارد چرخه کرده و به کاربر دیگری اختصاص دهد.
مدتزمان پیشفرض اجاره، 8 روز است که معمولاً زمان مناسبی است.
گام سوم: پیکربندی Default gateway
باقی تنظیمات DHCP چیست؟ اگر در صفحهی بعدی گزینهی Yes I want to configure these options now را تیک بزنید، میتوانید تنظیمات زیر را پیکربندی کنید:
- Default gateway
- DNS server
- AD domain
اینجا میتوانید IP دستگاه Default gateway را وارد کرده و Add را بزنید.
اگر این آدرس را نمیدانید، میتوانید CMD را باز کرده و آن را در خط ipconfig /all ببینید.
گام چهارم: پیکربندی DNS Server
در صفحهی بعدی میتوانید دامنهی اصلی (Parent Domain) و DNS serverها را تعریف کنید. اگر این اطلاعات از قبل پر شده، آنها را بررسی کرده و روی Next کلیک کنید.
گام پنجم: پیکربندی WINS Servers
در این مرحلهی اختیاری، میتوانید WINS یا Windows Internet Name Service یا سرویس نام اینترنت ویندوز را مشخص کنید. تنظیمات DNS جایگزین این بخش شده و معمولاً نیازی به وارد کردن اطلاعات آن نیست. پس روی Next کلیک کنید.
در نهایت اگر میخواهید تنظیمات محدوده یا اسکوپ همین حالا فعال شود، گزینهی Yes را انتخاب کنید.
با انتخاب Finish، پنجرهی نصب بسته شده و تنظیمات نهایی میشود.
جمعبندی
پروتکل DHCP تخصیص آدرسهای IP و تعریف پارامترهای شبکه را بهصورت خودکار انجام میدهد. اما آسیبپذیریهای آن نسبتاً بالا است. با وجود این، کارایی بالای آن و ویژگیهایی مانند DHCP Snooping ،Lease Time و مدیریت دقیق آدرسهای IP یا IP Addresses، آن را به یکی از مهمترین فناوریهای شبکه تبدیل کردهاست. از مقیاسپذیری بالای این پروتکل نیز نمیتوان چشمپوشی کرد که آن را در کنار سیستمعامل ویندوز، برای لینوکس و حتی شبکههای خانگی هم مناسب کردهاست.
سؤالات متداول
چگونه DHCP در لینوکس فعال میشود؟
با نصب نرمافزارهایی مانند isc-dhcp-server و تنظیم فایلهای پیکربندی (مانند dhcpd.conf).
آیا میتوان DHCP را در شبکههای خانگی استفاده کرد؟
بله، روترهای خانگی معمولاً DHCP را بهصورت پیشفرض فعال دارد. کاربران میتوانند محدودهی IP و تنظیمات اضافی مانند Subnet Mask و Gateway را از طریق رابط وب روتر تنظیم کنند.
آیا استفاده از DHCP برای همه شبکهها مناسب است؟
این پروتکل برای شبکههای پویا با دستگاههای متصلشونده متعدد (مانند Wi-Fi عمومی) بسیار مناسب است. اما برای شبکههای بسیار حساس یا کوچک ممکن است بهترین انتخاب نباشد.