نوید یحیی پور
متخصص شبکه های سیسکو و امنیت زیرساخت

آیا DHCP Relay Agent همان IP Helper سیسکو است؟

آیا IP Helper و DHCP Relay Agent دو چیز متفاوت در سیسکو هستند؟ امروز داشتم تو انجمن یه گشتی میزدم به چندین پست در مورد تنظیم DHCP Relay Agent تو سیسکو برخورد کردم. متاسفانه اکثر دوستان فکر می کنند IP Helper Address اسم دیگه (یا معادل اسمی) DHCP Relay Agent تو سیستم عامل های شبکه سیسکو هست. در واقع اینطور نیست! DHCP Relay Agent بودن یکی از وظایف دستور IP Helper هست!

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای درک موضوع مکانیزم DHCP Relay Agent رو توضیح میدم: وقتی سیستمی که نحوه آدرس گیری اون تو حالت DHCP تنظیم شده می خواد به شبکه بپیونده، یه بسته DHCP Discover رو به صورت Broadcast ارسال می کنه، این بسته به صورت UDP هست و از پورت های 67 و 68 استفاده می کنه. همونطور که می دونید روترها بسته های Broadcast رو Drop می کنند و از خودشون عبور نمیدن. بنابر این اگه ما چندین شبکه Ethernet LAN داشته باشیم باید برای هر LAN یه دونه DHCP سرور اختصاص بدیم. این کار نه به صرفه هست و نه عقلانی!

چاره چیه؟ میائیم از UDP بودن بسته های DHCP استفاده می کنیم و به روتر میگیم هر بسته DHCP ای که دریافت کردی اونو Encapsulate کن و به صورت Unicast درش بیار و بفرستش سمت Remote DHCP سرورمون که در یک LAN دیگه قرار داره (مثلاً LAN موجود در اتاق سرور).دستوری که تو سیسکو واسه تنظیم DHCP Relay Agent استفاده میشه دستور ip helper address هست. دستوری که به صورت پیش فرض بسته های DHCP رو تو بسته unicast کپسوله می کنه.

تا اینجای کار حق با دوستان بود، ip helper address همون کار DHCP relay agent رو انجام میده. ولی در واقع ip helper قابلیت اینو داره که هر بسته Broadcast که بصورت UDP هست رو به صورت unicast کپسوله کنه و بفرسته به مقصدی که شما تعیین می کنید! با دستور زیر میتونید پروتکل مورد نظر خودتونو توسط ip helper address به مقصد مورد نظر بفرستید:

R3(config)#ip forward-protocol udp

در زیر سناریویی رو خدمتتون معرفی می کنم که در عمل وظیفه ip helper رو ببینید:

طبق شکل زیر 3 تا روتر داریم:

وب سایت توسینسو

می خواهیم کاری کنیم R1 و R3 با استفاده از پروتکل RIP با همدیگه تبادل جدول مسیریابی کنند (بدون اینکه از GRE Tunnel, Bridge, VPWS و... استفاده کنیم)! مگه میشه؟! بله میشه:

تنظیمات روتر R1:

enable
conf t
hostname R1
clock timezone THR 3 30
no ip icmp rate-limit unreachable            
no ip domain lookup
ip cef    
!        
interface Loopback0
 ip address 200.1.1.1 255.255.255.0
!                  
interface Serial1/0
 ip address 12.1.1.1 255.255.255.0
 serial restart-delay 0
!         
router rip
 no validate-update-source
 network 12.0.0.0
 network 200.1.1.0        
!         
no ip http server
no ip http secure-server
ip route 23.1.1.0 255.255.255.0 12.1.1.2    
!       
end

تنظیمات روتر R2:

enable
conf t
!
hostname R2
!
clock timezone THR 3 30
no ip icmp rate-limit unreachable        
!         
no ip domain lookup
ip cef            
!         
interface Ethernet0/0
 ip address 23.1.1.2 255.255.255.0
 ip helper-address 12.1.1.1
!         
!        
interface Serial1/0
 ip address 12.1.1.2 255.255.255.0
 ip helper-address 23.1.1.3
 serial restart-delay 0
!         
ip forward-protocol nd
ip forward-protocol udp rip
!         
ip route 200.1.1.0 255.255.255.0 12.1.1.1
ip route 200.3.3.0 255.255.255.0 23.1.1.3
!                 
end 

و تنظیمات روتر R3:

enable
conf t
!
hostname R3
!
clock timezone THR 3 30
no ip icmp rate-limit unreachable         
!         
no ip domain lookup
ip cef           
!         
interface Loopback0
 ip address 200.3.3.3 255.255.255.0
!         
interface Ethernet0/0
 ip address 23.1.1.3 255.255.255.0
!                 
router rip
 no validate-update-source
 network 23.0.0.0
 network 200.3.3.0
!         
ip route 12.1.1.0 255.255.255.0 23.1.1.2
!        
end

دقت کنید روی هیچ کدام از اینترفیس های R2 پروتکل RIP فعال نشده! و اینم نتیجه:

R1(config)#do sh ip route rip | begin Gate
Gateway of last resort is not set

R     200.3.3.0/24 [120/1] via 23.1.1.3, 00:00:24
R1(config)#do ping 200.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/12 ms
R3(config)#do sh ip route rip | begin Gateway
Gateway of last resort is not set

R     200.1.1.0/24 [120/1] via 12.1.1.1, 00:00:08
R3(config)#do ping 200.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/11 ms

نتیجه گیری: ip helper چیزی فراتر از DHCP Relay Agent هست، DHCP Relay صرفاً برای encapsulate کردن بسته های DHCP که بصورت UDP با آدرس مقصد Broadcast هستند طراحی شده ولی IP Helper قادره هر بسته UDP که مقصد Broadcast داره رو encapsulate کنه و بصورت unicast در بیاره.امیدوارم از این نکته لذت برده باشید، فایل سناریو تو EVE-NG رو هم ضمیمه مطلب کردم، موفق و پیروز باشید.


نوید یحیی پور
نوید یحیی پور

متخصص شبکه های سیسکو و امنیت زیرساخت

مدرس دوره های CCIE Enterprise Infrastructure و CCIE Service Provider شرکت مشاوره و آموزشی Orhan Ergun LLC

نظرات