آموزش CCNAآموزش شبکهسیسکو

آموزش CCNA : معرفی DHCP و پیاده سازی آن در سیسکو

40 درصد تخفیف ویژه تا یک هفته

DHCP یکی از پروتکل‌های موجود در لایه‌ی کاربرد (Application) شبکه است که وظیفه‌ی تخصیص آدرس IP خودکار به کلاینت‌های موجود در شبکه را بر عهده دارد، DHCP از عبارت Dynamic Host Configuration Protocol تشکیل شده و همانطور که از نامش پیداست میزبان‌های موجود در شبکه را به صورت پویا (داینامیک) آدرس‌دهی و پیکربندی می‌کند، در ادامه‌ی این آموزش با همیار آی‌تی همراه باشید تا به زبان ساده با این پروتکل و نحوه‌ی عملکرد آن آشنا شویم.

DHCP - آموزش CCNA : معرفی DHCP و پیاده سازی آن در سیسکو

همانطور که می‌دانیم تمام دستگاه‌هایی که در یک شبکه هستند الزاما باید دارای آدرسی جهت شناسایی باشند که آن را آدرس IP می‌نامیم، اما تا به حال به این نکته دقت کرده‌اید که چگونه دستگاه‌ها به محض روشن شدن به صورت خودکار یک آی‌پی غیر تکراری و یکتا دریافت می‌کنند؟ همانطور که در ابتدای آموزش اشاره کردیم سرور DHCP این آی‌پی را به تک‌تک دستگاه‌ها اختصاص می‌دهد.

نحوه‌ی عملکرد دی‌اچ‌سی‌پی به زبان ساده

سرور DHCP یک رنج آی‌پی در اختیار دارد که می‌تواند از بین آن‌ها اقدام به تخصیص آدرس آی‌پی به کلاینت‌های موجود در شبکه کند، به عنوان مثال رنج آدرس 1 تا 25 در اختیار DHCP قرار می‌گیرد (این اعداد کاملا فرضی بوده و آدرس آی‌پی نیستند)

حال دستگاهی در شبکه روشن می‌شود که به یک آدرس آی‌پی احتیاج دارد، این دستگاه از وجود سرور DHCP در این شبکه بی‌خبر است، به همین علت یک بسته تحت عنوان (Discovery) را به صورت Broadcast روی شبکه ارسال می‌کند (یعنی این بسته را برای تمام میزبان‌های موجود در شبکه می‌فرستد)

در مرحله‌ی بعد سرور DHCP به عنوان پاسخ بسته‌ی (Offer) را ارسال می‌کند، این بسته شامل IP و Default Gateway خواهد بود و به دست ماشین اول (دستگاهی که IP درخواست کرده بود) می‌رسد.

سپس ماشین اول با دریافت این بسته اقدام به بررسی آن می‌کند و درصورتی که امکان استفاده از آن IP را داشت یک بسته تحت عنوان (Request) برای سرور دی‌اچ‌سی‌پی ارسال می‌کند و در نهایت سرور نیز با ارسال یک تاییدیه (ACK) به ماشین اول این آی‌پی را به آن تخصیص می‌دهد.

یک نمای بسیار ساده از نحوه‌ی تخصیص آدرس آی‌پی توسط DHCP
یک نمای بسیار ساده از نحوه‌ی تخصیص آدرس آی‌پی توسط DHCP

هنگامی که یک IP توسط سرور DHCP به یک میزبان تحویل داده می‌شود، از لیست آی‌پی‌های موجود حذف شده و تا مدت زمان خاصی که اصطلاحا آن را Lease duration می‌نامند در اختیار آن میزبان خواهد بود، در صورتی که این دستگاه برای مدت زمان بیشتری به آی‌پی احتیاج داشته باشد می‌تواند درخواست تمدید ارسال کرده و از انقضای زمان پس گرفتن آدرس آی‌پی جلوگیری کند، در غیر این‌صورت DHCP این آی‌پی را پس گرفته و می‌تواند آن را در اختیار ماشین دیگری قرار دهد.

مزایا و معایب استفاده از سرور DHCP

از جمله مزایای به کارگیری از این سرویس عبارتند از:

  • تخصیص آی‌پی خودکار به کلاینت‌ها
  • سرعت بالای تخصیص آی‌پی‌ها
  • کاهش تداخل میان آی‌پی‌ها
  • همچنین به کارگیری این سرویس برای مکان‌هایی که افراد مختلفی در آن حضور داشته و ثابت نیستند بسیار عالیست، اما در کنار تمام مزایایی که دارد می‌توند

معایبی نیز به همراه داشته باشد، به عنوان مثال:

  • عدم وجود یک آی‌پی ثابت و همیشگی برای کلاینت‌ها
  • افزایش احتمال حمله‌ی DHCP Spoofing به شبکه
  • هزینه‌ی تهیه و نگهداری سرور مناسب برای DHCP

هرچند این سرویس تا حد بسیار زیادی از بروز تداخل IP جلوگیری می‌کند، اما این احتمال وجود دارد که خود DHCP نیز تحت شرایطی خاص (به عنوان مثال تنظیم و پیکربندی نادرست خود سرور) باعث بروز IP Conflict (تداخل آدرس آی‌پی) در شبکه شود، در چنین شرایطی کافیست یکبار دستگاه کلاینت را خاموش و مجددا روشن کنید تا این مشکل برطرف شود (هرچند اگر این کار را نیز انجام ندهید DHCP می‌تواند به صورت خودکار آن را برطرف کند) اما اگر این مشکل همچنان با ری‌استارت حل نشد باید به فکر تعمیر سرور DHCP خود باشید!

ساختار و معماری پیام‌های پروتکل DHCP

به دلیل نیاز به سرعت بالا، پیام‌های این سرویس در قالب دیتاگرام‌های UDP حمل می‌شوند، سرور از پورت 67 و کلاینت از پورت 68 برای ارسال و دریافت پیام‌ها استفاده می‌کنند، در حقیقت این پروتکل جایگزینی برای پروتکل قدیمی BOOTP بود، پروتکل BOOTP امکان جمع‌آوری آدرس آی‌پی‌های تخصیص داده شده را نداشت و به همین دلیل بعدها DHCP جایگزین آن شد، شما می‌توانید ساختار بسته‌های DHCP را در تصویر زیر به خوبی مشاهده کنید.

ساختار یک بسته‌ی DHCP
ساختار یک بسته‌ی DHCP

در تصویر بالا:

  • 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 باشد.

در ضمن اندازه‌ی بسته‌های DHCP با توجه به طول فیلدها حدودا می‌تواند به اندازه‌ی 340 بایت باشد.

DHCP Relay Agent چیست و چه کاربردی دارد

هر کامپیوتری که به شبکه وصل شود اقدام به گرفتن آدرس تعریف شده درون Scope می کند ولی موقعیت هایی به وجود می آید که ما را مجبور به پیاده سازی راه هایی می کنند که با وجود کاربردی بودنشان، ممکن است گران تمام شوند. یکی از مشکلات زمانی ایجاد می شود که بخواهیم بیشتر از یک Scope برای شبکه خود تعریف کنیم و بخواهیم client و سرورهای DHCP را در subnet های مختلفی قرار دهیم. از آنجایی که درخواست های مربوط به DHCP که مربوط به 4 حالت اصلی DISCOVER , OFFER , REQUEST , ACK/NACK هستند همگی به دلایل کاملا فنی و تکنیکی دارای نوع Broadcast هستند و همچنین یک Router به هیچ وجه درخواست های Broadcast رو از خودش عبور نمیدهد پس اگر کامپیوتری در یک Subnet ای باشد که درآن یک DHCP Server نیست و در Subnet کناری آن DHCP Server باشد، درخواست Broadcast آن از همان روتر دور ریخته می شود.

DHCP Relay Agent
DHCP Relay Agent

ایجاد و توسعه یک DHCP در شبکه یک بخشی آسان است زمانی که بیشتر از یک Subnet در شبکه داریم مدیریت یه کم پیچیده می شود و این به آن دلیل است که DHCP پیغام های همه پخشی را دریافت می کند که نمی تواند از روتر عبور کند. چندین راه برای مدیریت این وضعیت وجود دارد یکی از آن ها قرار دادن DHCP server در هر بخش از شبکه است. که قطعآ برای یک سازمان که تعداد بخش های آن زیاد است هزینه زیاد و مدیرت سنگینی برای مدیر آن شبکه خواهد داشت و در واقع از این راه منابع زیادی را از دست داده ایم. راه دیگر ایجاد DHCP Relay Agent است. DHCP relay agent پروتکلی برای انتقال پیام ها بین clientهای DHCP و سرور DHCP است که در شبکه هایی با IP های متفاوت قرار دارند. در واقع برای هر بخش شبکه که client های DHCP را شامل می شود به سرور DHCP یا یک کامپیوتر که مانند DHCP Relay Agent عمل می کند نیاز است. که این امر از دو راه میسر می شود و هر کدام مزایا و معایب خود را دارند.

1- اگر یک کامپیوتر در هر Subnet وجود داشته باشه که به هنگام شنیدن درخواست IP این درخواست را بگیرد و نوع آن را تبدیل Unicast کند و سپس آن را به روتر ارسال کند این مشکل حل می شود. دستگاهی که درsubnet مستقر شده و کار تبدیل درخواست های Broadcast کلاینت ها موجود در شبکه و تبدیل آن به درخواست های unicast را برعهده دارد Relay Agent DHCP نامیده می شود.

2- در راه حل قبلی باز هم مشکل نصب یک سیستم عامل Server درون هر Subnet برطرف نمی شود بلکه نیاز به نصب چندین DHCP Server از بین برده شد. در راه حل دیگر روترها می توانند به گونه ای تنظیم شوند که پیغام های Bootstrap Protocol  DHCP BOORP را از خود عبور دهند. که در این حالت روتر BOOTP Relay نامیده می شود. BOOTP Relay Agent بسته را مورد بررسی قرار می دهد و ضمن ایجاد تغییراتی در بسته آن را به DHCP Server ارسال می کند. اما تعدادی از روترها این ویژگی BOOTP Relay را پشتیبانی نمی کنند. که در این حالت می توان از پیکربندی یک سیستم با ویندوز سرور 2000 RRAS و نصب DHCP Relay Agent در این سیستم اقدام کرد.

مراقب اصطلاحات باشد! Agent ،relay است نه یک Forwarder

مطمئن باشید که تفاوت بین DHCP//BOOTP Relay Agent و روتری که به عنوان BOOTP forwarder عمل می کند تشخیص داده باشد. به یاد داشته باشید که forwarder پیغام های Broadcast را از روتر مستقیمآ عبور می دهد. در حالیکه DHCP Relay Agent تغییراتی در پیغام های همه پخشی DHCP می دهد و آن را به یک سرور DHCP ارسال می کند.

سناریوی راه اندازی DHCP بر روی روتر سیسکو

آموزش CCNA : معرفی DHCP و پیاده سازی آن در سیسکو

در این سناریوی ساده قرار است روتر سیسکوی ما نقش DHCP را داشته باشد و به پی سی های ما IP بدهد. برای شروع تنظیمات اولیه روتر به صورت زیر می باشد.

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown

حال یک pool با نام nextadmin ایجاد می کنیم و رنج شبکه 192.168.1.0 را برای آن وارد می کنیم تا در این رنج آی پی به کاربران داده شود و سپس دی ان اس سرور 8.8.8.8 و 1.1.1.1 را برای بحث DNS کاربران وارد می کنیم، و در آخر نیز با دستور default-router و زدن ای پی 192.168.1.1 به کاربران اطلاع می دهیم که Gateway آن ها روتر 192.168.1.1 می باشد.

Router(config)#ip dhcp pool nextadmin
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#dns-server 8.8.8.8 1.1.1.1
Router(dhcp-config)#default-router 192.168.1.1

در صورتی که نیاز باشد یک بخش از آی پی ها را به کاربران به صورت DHCP ندهیم می توانیم آن رنج را excluded کنیم، برای این کار از دستور زیر استفاده می کنیم که در اینجا از 192.168.1.1 تا 192.168.1.10 به کاربران داده نمی شود.

Router(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10

با استفاده از دستور زیر شما می توانید تمام ای پی هایی که DHCP روتر داده است را ببینید.

Router#show ip dhcp binding

show ip dhcp binding
show ip dhcp binding

همانطور که در عکس بالا نیز مشخص است DHCP ای پی ها را در یک بازه زمانی که با آن Lease Time گفته می شود به کاربران می دهد که بر اساس شرایط شبکه شما می تواند این تایم بلند و یا دائمی باشد و یا یک بازی چند ساعته و حتی چند دقیقه ای، برای تنظیم آن نیز به صورت زیر عمل می کنیم. ما در این جا میخواهیم در بازه 0 روز و 2 ساعت و 30 دقیقه ای پی ها را به کاربران بدهیم.

Router(dhcp-config)#lease 0 2 30

در صورتی که میخواهید ای پی ها به صورت دائم و بدون expir شدن به کاربران  داده شود از دستور زیر استفاده میکنیم. (بهتر است از این دستور بجز موارد خاص استفاده نکنید زیرا باعث می شود Pool شما از ای پی هایی که می تواند بدهد خالی شود)

Router(dhcp-config)#lease infinite

آموزش راه اندازی DHCP Relay Agent در سیسکو

در بالای همین مطلب توضیح دادیم که DHCP Relay Agent چیست و حالا می خواهیم آن را با سناریویی پیاده سازی کنیم.

DHCP Relay Agent
DHCP Relay Agent

ما یک سرور DHCP ویندوزی داریم که ای پی خودش 192.168.2.2 می باشد ولی یک Pool برای آن تعریف کرده ایم که از 192.168.1.50 تا 192.168.1.100 ای پی بدهد. 

روتر ما دو اینترفیس دارد که قرار است شبکه 192.168.1.0 ما از DHCP ما ای پی دریافت کند که تنظیمات پیش فرض روتر ما به صورت زیر می باشد.

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown

Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#no shutdown

برای این که شبکه ما بتواند درخواست خودش را برای DHCP ارسال کند و هر کاربر ای پی خودش را بگیرد ما باید بر روی اینترفیسی که سمت کاربران ما قرار دارد بگویم که اگر درخواست DHCP از سمت کاربران آمد آن را برای سرور 192.168.2.2 ارسال کند و اجازه عبور برادکست را به آن درخواست ها بدهد، که این کار را با دستور زیر انجام می دهیم.

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address 192.168.2.2

نکته: چون درخواست ها از سمت 192.168.1.0 روتر برای DHCP ارسال شده است، خود DHCP متوجه می شود که باید IP از رنج 192.168.1.0 بدهد.

 

 

IP Addressing Services Command Reference, Cisco IOS XE Release 3SE (Cisco WLC 5700 Series)

A

address range 
arp (global) 
arp (interface) 
arp access-list 
arp timeout 

B

bootfile 

C

class (DHCP) 
clear arp interface 
clear arp-cache 
clear ip arp inspection log 
clear ip arp inspection statistics 
clear ip dhcp binding 
clear ip dhcp conflict 
clear ip dhcp server statistics 
clear ip dhcp snooping binding 
clear ip dhcp snooping database statistics 
clear ip dhcp snooping statistics 
clear ip route 
client-identifier 
client-name 

D

default-router 
dns-ser 
domain name 

H

hardware-address 
host 

I

import all 
ip address 
ip address dhcp 
ip arp inspection filter vlan 
ip arp inspection limit (interface configuration) 
ip arp inspection log-buffer 
ip arp inspection trust 
ip arp inspection validate 
ip arp inspection vlan 
ip arp inspection vlan logging 
ip arp proxy disable 
ip default-gateway 
ip dhcp bootp ignore 
ip dhcp class 
ip dhcp conflict logging 
ip dhcp database 
ip dhcp excluded-address 
ip dhcp ping packets 
ip dhcp ping timeout 
ip dhcp pool 
ip dhcp snooping 
ip dhcp snooping binding 
ip dhcp snooping database 
ip dhcp snooping information option 
ip dhcp snooping limit rate 
ip dhcp snooping verify mac-address 
ip dhcp snooping vlan 
ip dhcp use 
ip domain list 
ip domain lookup 
ip domain name 
ip name-server 
ip proxy-arp 
ip route 
ip routing 
ip source binding 
ip verify source vlan dhcp-snooping 
ipv6 address dhcp 
ipv6 dhcp guard attach-policy 
ipv6 dhcp ping packets 
ipv6 dhcp pool 
ipv6 dhcp server 

L

lease 

M

match reply prefix-list 
match server access-list 

N

netbios-name-server 
netbios-node-type 
network (DHCP) 
next-server 

O

option 
origin 
override default-router 
override utilization high 
override utilization low 

P

preference (DHCPv6 Guard) 

R

relay agent information 
relay-information hex 
remote-span 
reserved-only 

S

show arp 
show hosts 
show ip arp 
show ip dhcp binding 
show ip dhcp conflict 
show ip dhcp database 
show ip dhcp import 
show ip dhcp pool 
show ip dhcp server statistics 
show ip dhcp snooping 
show ip dhcp snooping binding 
show ip dhcp snooping database 
show ip interface 
show ip route dhcp 
show ip source binding 
show ip verify source 
show ipv6 dhcp conflict 

T

trusted-port (DHCPv6 Guard) 

U

utilization mark high 
utilization mark low 

نویسندگان
شیما صدیقیانی جعفر قنبری شوهانی
منبع
hamyarittosinso
برچسب ها

نوشته های مشابه

‫3 نظرها

  1. درود بر شما
    لطفاً بفرمایید برای نمایش و log سیستم DHCP Cisco چه نرم‌افزار را پیشنهاد میدهد که بتواند این دیتابیس را نگهداری کند
    تشکر فراوان

    1. سلام
      خودم تست نکردم ولی فکر میکنم از طریق SNMP و نرم افزار هایی مثل zabbix بشه مدیریتی روی لاگ ها داشت

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن