09-07-2020, 10:41 PM
DHCP یکی از پروتکلهای موجود در لایهی کاربرد (Application) شبکه است که وظیفهی تخصیص آدرس IP خودکار به کلاینتهای موجود در شبکه را بر عهده دارد، DHCP از عبارت Dynamic Host Configuration Protocol تشکیل شده و همانطور که از نامش پیداست میزبانهای موجود در شبکه را به صورت پویا (داینامیک) آدرسدهی و پیکربندی میکند، در ادامهی این آموزش با همیار آیتی همراه باشید تا به زبان ساده با این پروتکل و نحوهی عملکرد آن آشنا شویم.
همانطور که میدانیم تمام دستگاههایی که در یک شبکه هستند الزاما باید دارای آدرسی جهت شناسایی باشند که آن را آدرس IP مینامیم، اما تا به حال به این نکته دقت کردهاید که چگونه دستگاهها به محض روشن شدن به صورت خودکار یک آیپی غیر تکراری و یکتا دریافت میکنند؟ همانطور که در ابتدای آموزش اشاره کردیم سرور DHCP این آیپی را به تکتک دستگاهها اختصاص میدهد.
نحوهی عملکرد دیاچسیپی به زبان ساده
سرور DHCP یک رنج آیپی در اختیار دارد که میتواند از بین آنها اقدام به تخصیص آدرس آیپی به کلاینتهای موجود در شبکه کند، به عنوان مثال رنج آدرس ۱ تا ۲۵ در اختیار DHCP قرار میگیرد (این اعداد کاملا فرضی بوده و آدرس آیپی نیستند)
حال دستگاهی در شبکه روشن میشود که به یک آدرس آیپی احتیاج دارد، این دستگاه از وجود سرور DHCP در این شبکه بیخبر است، به همین علت یک بسته تحت عنوان (Discovery) را به صورت Broadcast روی شبکه ارسال میکند (یعنی این بسته را برای تمام میزبانهای موجود در شبکه میفرستد)
در مرحلهی بعد سرور DHCP به عنوان پاسخ بستهی (Offer) را ارسال میکند، این بسته شامل IP و Default Gateway خواهد بود و به دست ماشین اول (دستگاهی که IP درخواست کرده بود) میرسد.
سپس ماشین اول با دریافت این بسته اقدام به بررسی آن میکند و درصورتی که امکان استفاده از آن IP را داشت یک بسته تحت عنوان (Request) برای سرور دیاچسیپی ارسال میکند و در نهایت سرور نیز با ارسال یک تاییدیه (ACK) به ماشین اول این آیپی را به آن تخصیص میدهد.
یک نمای بسیار ساده از نحوهی تخصیص آدرس آیپی توسط DHCP
هنگامی که یک IP توسط سرور DHCP به یک میزبان تحویل داده میشود، از لیست آیپیهای موجود حذف شده و تا مدت زمان خاصی که اصطلاحا آن را Lease duration مینامند در اختیار آن میزبان خواهد بود، در صورتی که این دستگاه برای مدت زمان بیشتری به آیپی احتیاج داشته باشد میتواند درخواست تمدید ارسال کرده و از انقضای زمان پس گرفتن آدرس آیپی جلوگیری کند، در غیر اینصورت DHCP این آیپی را پس گرفته و میتواند آن را در اختیار ماشین دیگری قرار دهد.
مزایا و معایب استفاده از سرور DHCP
از جمله مزایای به کارگیری از این سرویس عبارتند از:
[list]
[*]تخصیص آیپی خودکار به کلاینتها
[*]سرعت بالای تخصیص آیپیها
[*]کاهش تداخل میان آیپیها
[/list]همچنین به کارگیری این سرویس برای مکانهایی که افراد مختلفی در آن حضور داشته و ثابت نیستند بسیار عالیست، اما در کنار تمام مزایایی که دارد میتوند معایبی نیز به همراه داشته باشد، به عنوان مثال:
[list]
[*]عدم وجود یک آیپی ثابت و همیشگی برای کلاینتها
[*]افزایش احتمال حملهی DHCP Spoofing به شبکه
[*]هزینهی تهیه و نگهداری سرور مناسب برای DHCP
[/list]هرچند این سرویس تا حد بسیار زیادی از بروز تداخل IP جلوگیری میکند، اما این احتمال وجود دارد که خود DHCP نیز تحت شرایطی خاص (به عنوان مثال تنظیم و پیکربندی نادرست خود سرور) باعث بروز IP Conflict (تداخل آدرس آیپی) در شبکه شود، در چنین شرایطی کافیست یکبار دستگاه کلاینت را خاموش و مجددا روشن کنید تا این مشکل برطرف شود (هرچند اگر این کار را نیز انجام ندهید DHCP میتواند به صورت خودکار آن را برطرف کند) اما اگر این مشکل همچنان با ریاستارت حل نشد باید به فکر تعمیر سرور DHCP خود باشید!
ساختار و معماری پیامهای پروتکل DHCP
به دلیل نیاز به سرعت بالا، پیامهای این سرویس در قالب دیتاگرامهای UDP حمل میشوند، سرور از پورت ۶۷ و کلاینت از پورت ۶۸ برای ارسال و دریافت پیامها استفاده میکنند، در حقیقت این پروتکل جایگزینی برای پروتکل قدیمی BOOTP بود، پروتکل BOOTP امکان جمعآوری آدرس آیپیهای تخصیص داده شده را نداشت و به همین دلیل بعدها DHCP جایگزین آن شد، شما میتوانید ساختار بستههای DHCP را در تصویر زیر به خوبی مشاهده کنید.
ساختار یک بستهی DHCP
در تصویر بالا:
[list]
[*]OpCode نشاندهندهی نوع پیام است (درخواست یا پاسخ)
[*]Hardware Type نوع آدرس سختافزاری موجود در Client Hardware Address را مشخص میکند.
[*]Hardware Length طول آدرس سختافزاری موجود در Client Hardware Address را مشخص میکند.
[*]Hops تعداد روترهای میان سرور و کلاینت را مشخص میکند.
[*]Transaction ID نشاندهندهی شناسهی یکتای فرایند است.
[*]Seconds Elapsed مدت زمان گذشته از شروع تخصیص آیپی را نشان میدهد.
[*]Flags فلگهای بسته هستند.
[*]Client IP Address آیپی آدرس کلاینت را مشخص میکند (زمان دریافت آیپی مجدد)
[*]Your IP Address آیپی فعلی کلاینت شما را نشان میدهد (آیپی واگذار شده به شما)
[*]Server IP Address آدرس آیپی سرور بعدی را تعیین میکند.
[*]Gateway IP Address دربردارندهی آدرس آیپی واسطههاست (در صورت نیاز)
[*]Client Hardware Address حاوی آدرس سختافزاری کلاینت است.
[*]Server Host Name شامل نام سرور DHCP است.
[*]Boot File دربردارندهی فایل راهانداز برای کلاینتهای بدون دیسک.
[*]Option نیز فیلدی است که میتواند دربردارندهی گزینههای اختیاری برای بستهی DHCP باشد.
[/list]در ضمن اندازهی بستههای DHCP با توجه به طول فیلدها حدودا میتواند به اندازهی ۳۴۰ بایت باشد
همانطور که میدانیم تمام دستگاههایی که در یک شبکه هستند الزاما باید دارای آدرسی جهت شناسایی باشند که آن را آدرس IP مینامیم، اما تا به حال به این نکته دقت کردهاید که چگونه دستگاهها به محض روشن شدن به صورت خودکار یک آیپی غیر تکراری و یکتا دریافت میکنند؟ همانطور که در ابتدای آموزش اشاره کردیم سرور DHCP این آیپی را به تکتک دستگاهها اختصاص میدهد.
نحوهی عملکرد دیاچسیپی به زبان ساده
سرور DHCP یک رنج آیپی در اختیار دارد که میتواند از بین آنها اقدام به تخصیص آدرس آیپی به کلاینتهای موجود در شبکه کند، به عنوان مثال رنج آدرس ۱ تا ۲۵ در اختیار DHCP قرار میگیرد (این اعداد کاملا فرضی بوده و آدرس آیپی نیستند)
حال دستگاهی در شبکه روشن میشود که به یک آدرس آیپی احتیاج دارد، این دستگاه از وجود سرور DHCP در این شبکه بیخبر است، به همین علت یک بسته تحت عنوان (Discovery) را به صورت Broadcast روی شبکه ارسال میکند (یعنی این بسته را برای تمام میزبانهای موجود در شبکه میفرستد)
در مرحلهی بعد سرور DHCP به عنوان پاسخ بستهی (Offer) را ارسال میکند، این بسته شامل IP و Default Gateway خواهد بود و به دست ماشین اول (دستگاهی که IP درخواست کرده بود) میرسد.
سپس ماشین اول با دریافت این بسته اقدام به بررسی آن میکند و درصورتی که امکان استفاده از آن IP را داشت یک بسته تحت عنوان (Request) برای سرور دیاچسیپی ارسال میکند و در نهایت سرور نیز با ارسال یک تاییدیه (ACK) به ماشین اول این آیپی را به آن تخصیص میدهد.
یک نمای بسیار ساده از نحوهی تخصیص آدرس آیپی توسط DHCP
هنگامی که یک IP توسط سرور DHCP به یک میزبان تحویل داده میشود، از لیست آیپیهای موجود حذف شده و تا مدت زمان خاصی که اصطلاحا آن را Lease duration مینامند در اختیار آن میزبان خواهد بود، در صورتی که این دستگاه برای مدت زمان بیشتری به آیپی احتیاج داشته باشد میتواند درخواست تمدید ارسال کرده و از انقضای زمان پس گرفتن آدرس آیپی جلوگیری کند، در غیر اینصورت DHCP این آیپی را پس گرفته و میتواند آن را در اختیار ماشین دیگری قرار دهد.
مزایا و معایب استفاده از سرور DHCP
از جمله مزایای به کارگیری از این سرویس عبارتند از:
[list]
[*]تخصیص آیپی خودکار به کلاینتها
[*]سرعت بالای تخصیص آیپیها
[*]کاهش تداخل میان آیپیها
[/list]همچنین به کارگیری این سرویس برای مکانهایی که افراد مختلفی در آن حضور داشته و ثابت نیستند بسیار عالیست، اما در کنار تمام مزایایی که دارد میتوند معایبی نیز به همراه داشته باشد، به عنوان مثال:
[list]
[*]عدم وجود یک آیپی ثابت و همیشگی برای کلاینتها
[*]افزایش احتمال حملهی DHCP Spoofing به شبکه
[*]هزینهی تهیه و نگهداری سرور مناسب برای DHCP
[/list]هرچند این سرویس تا حد بسیار زیادی از بروز تداخل IP جلوگیری میکند، اما این احتمال وجود دارد که خود DHCP نیز تحت شرایطی خاص (به عنوان مثال تنظیم و پیکربندی نادرست خود سرور) باعث بروز IP Conflict (تداخل آدرس آیپی) در شبکه شود، در چنین شرایطی کافیست یکبار دستگاه کلاینت را خاموش و مجددا روشن کنید تا این مشکل برطرف شود (هرچند اگر این کار را نیز انجام ندهید DHCP میتواند به صورت خودکار آن را برطرف کند) اما اگر این مشکل همچنان با ریاستارت حل نشد باید به فکر تعمیر سرور DHCP خود باشید!
ساختار و معماری پیامهای پروتکل DHCP
به دلیل نیاز به سرعت بالا، پیامهای این سرویس در قالب دیتاگرامهای UDP حمل میشوند، سرور از پورت ۶۷ و کلاینت از پورت ۶۸ برای ارسال و دریافت پیامها استفاده میکنند، در حقیقت این پروتکل جایگزینی برای پروتکل قدیمی BOOTP بود، پروتکل BOOTP امکان جمعآوری آدرس آیپیهای تخصیص داده شده را نداشت و به همین دلیل بعدها DHCP جایگزین آن شد، شما میتوانید ساختار بستههای DHCP را در تصویر زیر به خوبی مشاهده کنید.
ساختار یک بستهی DHCP
در تصویر بالا:
[list]
[*]OpCode نشاندهندهی نوع پیام است (درخواست یا پاسخ)
[*]Hardware Type نوع آدرس سختافزاری موجود در Client Hardware Address را مشخص میکند.
[*]Hardware Length طول آدرس سختافزاری موجود در Client Hardware Address را مشخص میکند.
[*]Hops تعداد روترهای میان سرور و کلاینت را مشخص میکند.
[*]Transaction ID نشاندهندهی شناسهی یکتای فرایند است.
[*]Seconds Elapsed مدت زمان گذشته از شروع تخصیص آیپی را نشان میدهد.
[*]Flags فلگهای بسته هستند.
[*]Client IP Address آیپی آدرس کلاینت را مشخص میکند (زمان دریافت آیپی مجدد)
[*]Your IP Address آیپی فعلی کلاینت شما را نشان میدهد (آیپی واگذار شده به شما)
[*]Server IP Address آدرس آیپی سرور بعدی را تعیین میکند.
[*]Gateway IP Address دربردارندهی آدرس آیپی واسطههاست (در صورت نیاز)
[*]Client Hardware Address حاوی آدرس سختافزاری کلاینت است.
[*]Server Host Name شامل نام سرور DHCP است.
[*]Boot File دربردارندهی فایل راهانداز برای کلاینتهای بدون دیسک.
[*]Option نیز فیلدی است که میتواند دربردارندهی گزینههای اختیاری برای بستهی DHCP باشد.
[/list]در ضمن اندازهی بستههای DHCP با توجه به طول فیلدها حدودا میتواند به اندازهی ۳۴۰ بایت باشد
در آستانه پیری، گلایه از شب دنیا بد است مرد حسابی!
به احترام دیازپام، بدون قصه و بوسه، تلاش کن که بخوابی...
به احترام دیازپام، بدون قصه و بوسه، تلاش کن که بخوابی...