آموزش CCNA : معرفی DHCP و پیاده سازی آن در سیسکو
DHCP یکی از پروتکلهای موجود در لایهی کاربرد (Application) شبکه است که وظیفهی تخصیص آدرس IP خودکار به کلاینتهای موجود در شبکه را بر عهده دارد، DHCP از عبارت Dynamic Host Configuration Protocol تشکیل شده و همانطور که از نامش پیداست میزبانهای موجود در شبکه را به صورت پویا (داینامیک) آدرسدهی و پیکربندی میکند، در ادامهی این آموزش با همیار آیتی همراه باشید تا به زبان ساده با این پروتکل و نحوهی عملکرد آن آشنا شویم.
همانطور که میدانیم تمام دستگاههایی که در یک شبکه هستند الزاما باید دارای آدرسی جهت شناسایی باشند که آن را آدرس IP مینامیم، اما تا به حال به این نکته دقت کردهاید که چگونه دستگاهها به محض روشن شدن به صورت خودکار یک آیپی غیر تکراری و یکتا دریافت میکنند؟ همانطور که در ابتدای آموزش اشاره کردیم سرور DHCP این آیپی را به تکتک دستگاهها اختصاص میدهد.
نحوهی عملکرد دیاچسیپی به زبان ساده
سرور DHCP یک رنج آیپی در اختیار دارد که میتواند از بین آنها اقدام به تخصیص آدرس آیپی به کلاینتهای موجود در شبکه کند، به عنوان مثال رنج آدرس 1 تا 25 در اختیار DHCP قرار میگیرد (این اعداد کاملا فرضی بوده و آدرس آیپی نیستند)
حال دستگاهی در شبکه روشن میشود که به یک آدرس آیپی احتیاج دارد، این دستگاه از وجود سرور DHCP در این شبکه بیخبر است، به همین علت یک بسته تحت عنوان (Discovery) را به صورت Broadcast روی شبکه ارسال میکند (یعنی این بسته را برای تمام میزبانهای موجود در شبکه میفرستد)
در مرحلهی بعد سرور DHCP به عنوان پاسخ بستهی (Offer) را ارسال میکند، این بسته شامل IP و Default Gateway خواهد بود و به دست ماشین اول (دستگاهی که IP درخواست کرده بود) میرسد.
سپس ماشین اول با دریافت این بسته اقدام به بررسی آن میکند و درصورتی که امکان استفاده از آن IP را داشت یک بسته تحت عنوان (Request) برای سرور دیاچسیپی ارسال میکند و در نهایت سرور نیز با ارسال یک تاییدیه (ACK) به ماشین اول این آیپی را به آن تخصیص میدهد.
هنگامی که یک IP توسط سرور DHCP به یک میزبان تحویل داده میشود، از لیست آیپیهای موجود حذف شده و تا مدت زمان خاصی که اصطلاحا آن را Lease duration مینامند در اختیار آن میزبان خواهد بود، در صورتی که این دستگاه برای مدت زمان بیشتری به آیپی احتیاج داشته باشد میتواند درخواست تمدید ارسال کرده و از انقضای زمان پس گرفتن آدرس آیپی جلوگیری کند، در غیر اینصورت DHCP این آیپی را پس گرفته و میتواند آن را در اختیار ماشین دیگری قرار دهد.
مزایا و معایب استفاده از سرور DHCP
از جمله مزایای به کارگیری از این سرویس عبارتند از:
- تخصیص آیپی خودکار به کلاینتها
- سرعت بالای تخصیص آیپیها
- کاهش تداخل میان آیپیها
- همچنین به کارگیری این سرویس برای مکانهایی که افراد مختلفی در آن حضور داشته و ثابت نیستند بسیار عالیست، اما در کنار تمام مزایایی که دارد میتوند
معایبی نیز به همراه داشته باشد، به عنوان مثال:
- عدم وجود یک آیپی ثابت و همیشگی برای کلاینتها
- افزایش احتمال حملهی DHCP Spoofing به شبکه
- هزینهی تهیه و نگهداری سرور مناسب برای DHCP
هرچند این سرویس تا حد بسیار زیادی از بروز تداخل IP جلوگیری میکند، اما این احتمال وجود دارد که خود DHCP نیز تحت شرایطی خاص (به عنوان مثال تنظیم و پیکربندی نادرست خود سرور) باعث بروز IP Conflict (تداخل آدرس آیپی) در شبکه شود، در چنین شرایطی کافیست یکبار دستگاه کلاینت را خاموش و مجددا روشن کنید تا این مشکل برطرف شود (هرچند اگر این کار را نیز انجام ندهید DHCP میتواند به صورت خودکار آن را برطرف کند) اما اگر این مشکل همچنان با ریاستارت حل نشد باید به فکر تعمیر سرور DHCP خود باشید!
ساختار و معماری پیامهای پروتکل DHCP
به دلیل نیاز به سرعت بالا، پیامهای این سرویس در قالب دیتاگرامهای UDP حمل میشوند، سرور از پورت 67 و کلاینت از پورت 68 برای ارسال و دریافت پیامها استفاده میکنند، در حقیقت این پروتکل جایگزینی برای پروتکل قدیمی BOOTP بود، پروتکل BOOTP امکان جمعآوری آدرس آیپیهای تخصیص داده شده را نداشت و به همین دلیل بعدها DHCP جایگزین آن شد، شما میتوانید ساختار بستههای DHCP را در تصویر زیر به خوبی مشاهده کنید.
در تصویر بالا:
- OpCode: نشاندهنده نوع پیام DHCP است (1 برای درخواست، 2 برای پاسخ).
- Hardware Type: نوع آدرس سختافزاری (MAC) مورد استفاده در Client Hardware Address را مشخص میکند (به عنوان مثال، 1 برای Ethernet).
- Hardware Length: طول آدرس سختافزاری (MAC) مورد استفاده در Client Hardware Address را بر حسب بایت مشخص میکند (معمولاً 6 برای Ethernet).
- Hops: تعداد روترها یا واسطههایی که پیام DHCP از آنها عبور کرده است را تعیین میکند. این فیلد معمولاً توسط Relay Agentها تنظیم میشود.
- Transaction ID: شناسه یکتای فرایند تبادل DHCP را نشان میدهد و به منظور تطابق بین درخواستها و پاسخها استفاده میشود.
- Seconds Elapsed: مدت زمانی که از شروع فرآیند درخواست DHCP توسط کلاینت گذشته است را بر حسب ثانیه نشان میدهد.
- Flags: شامل بیتهای کنترلی است که اطلاعات خاصی مانند درخواست بروادکست (Broadcast) را مشخص میکند.
- Client IP Address: آیپی آدرس کنونی کلاینت را مشخص میکند، در صورتی که کلاینت قبلاً آیپی داشته باشد و بخواهد مجدداً از همان استفاده کند.
- Your IP Address: آیپی آدرسی که سرور DHCP به کلاینت تخصیص داده است را نشان میدهد.
- Server IP Address: آدرس آیپی سرور DHCP که پیام پاسخ را ارسال کرده است را تعیین میکند.
- Gateway IP Address: آدرس آیپی گیتوی یا واسطهای که ممکن است پیام DHCP را از کلاینت به سرور و برعکس منتقل کند.
- Client Hardware Address: آدرس سختافزاری (MAC) کلاینت را که معمولاً برای شناسایی منحصر به فرد دستگاه استفاده میشود، شامل میشود.
- Server Host Name: نام میزبان سرور DHCP را شامل میشود، که ممکن است برای شناسایی سرور مورد استفاده قرار گیرد.
- Boot File: مسیر یا نام فایل بوت که سرور DHCP برای بوت استرپ کلاینتهای بدون دیسک مشخص میکند.
- Option: فیلدی است که میتواند شامل گزینههای اضافی و اطلاعات پیکربندی اختیاری برای بسته DHCP باشد، از جمله مدت زمان اجاره آیپی (lease time)، آیپی آدرس سرور DNS، ماسک زیرشبکه، و سایر تنظیمات شبکه.
با توجه به طول فیلدها و گزینههای اختیاری موجود، اندازه بستههای 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 در شبکه یک بخشی آسان است زمانی که بیشتر از یک 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 بر روی روتر سیسکو
در این سناریوی ساده قرار است روتر سیسکوی ما نقش 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
همانطور که در عکس بالا نیز مشخص است 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 ویندوزی داریم که ای پی خودش 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
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
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
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
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
U
utilization mark high
utilization mark low
بهترین نرم افزارهpaket trecer
درود بر شما
لطفاً بفرمایید برای نمایش و log سیستم DHCP Cisco چه نرمافزار را پیشنهاد میدهد که بتواند این دیتابیس را نگهداری کند
تشکر فراوان
سلام
خودم تست نکردم ولی فکر میکنم از طریق SNMP و نرم افزار هایی مثل zabbix بشه مدیریتی روی لاگ ها داشت