CCNAآموزش شبکه

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

DHCP Dynamic Host Configuration Protocol 1024x531 - آموزش CCNA : معرفی DHCP و پیاده سازی آن در سیسکو

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

آموزش CCNA : معرفی 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 بر روی روتر سیسکو

در این سناریوی ساده قرار است روتر سیسکوی ما نقش 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

Shares:

3 Comments

  • علیرضا
    علیرضا
    2019-05-04 at 05:08

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

    Reply
    • سعید
      2019-05-04 at 08:57

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

      Reply
  • مریم
    مریم
    2021-11-16 at 14:32

    بهترین نرم افزارهpaket trecer

    Reply

دیدگاهتان را بنویسید

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