DHCP Snooping چیست و چه کاربردی دارد؟ یکی از مشکلاتی که ممکن است در شبکه به وجود بیاید وجود یک سرور DHCP غیر مجاز (Rouge DHCP Server) است. این سرور ممکن است سهوا و یا عمدا شروع به سرویس دهی کند. سرور DHCP غیر مجاز میتواند باعث شود که کاربران از محدودهای غیر از محدوده مورد نظر شما آدرس دریافت کنند و باعث اختلال در سرویس کاربران شود یا در حالت بدتر ممکن است یک attacker از آن برای حملات Man In The Middle استفاده کند.
DHCP Snooping
برای جلوگیری از فعالیت سرور DHCP غیر مجاز میتوان از ویژگی DHCP snooping موجود در سوئیچهای سیسکو استفاده کرد. با فعال کردن DHCP snooping پیامهای مربوط به سرویس DHCP که از سمت هر سرور DHCP ارسال شود (پیام Offer) توسط سوئیچ بلاک میشوند مگر اینکه پورت متصل به آن سرور به عنوان trusted پیکربندی شده باشد.
همانطور که در شکل مشاهده میکنید پورت متصل به Original Server به عنوان trusted تعریف شده است. این سرور در صورت دریافت پیام DHCP Discover از سمت کلاینتها امکان ارسال پیام DHCP Offer به آنها را دارد.
پورت متصل به Fake Server به عنوان trusted تعریف نشده است بنابراین یک پورت Untrusted به حساب میآید. سوئیچ در صورتی که پیام DHCP Offer از روی این پورت دریافت کند آن را drop میکند.
نحوهی عملکرد DHCPبه زبان ساده
سرور DHCP یک رنج آیپی در اختیار دارد که میتواند از بین آنها اقدام به تخصیص آدرس آیپی به کلاینتهای موجود در شبکه کند، به عنوان مثال رنج آدرس 1 تا 25 در اختیار DHCP قرار میگیرد (این اعداد کاملا فرضی بوده و آدرس آیپی نیستند)
حال دستگاهی در شبکه روشن میشود که به یک آدرس آیپی احتیاج دارد، این دستگاه از وجود سرور DHCP در این شبکه بیخبر است، به همین علت یک بسته تحت عنوان (Discovery) را به صورت Broadcast روی شبکه ارسال میکند (یعنی این بسته را برای تمام میزبانهای موجود در شبکه میفرستد)
در مرحلهی بعد سرور DHCP به عنوان پاسخ بستهی (Offer) را ارسال میکند، این بسته شامل IP و Default Gateway خواهد بود و به دست ماشین اول (دستگاهی که IP درخواست کرده بود) میرسد.
سپس ماشین اول با دریافت این بسته اقدام به بررسی آن میکند و درصورتی که امکان استفاده از آن IP را داشت یک بسته تحت عنوان (Request) برای سرور DHCP ارسال میکند و در نهایت سرور نیز با ارسال یک تاییدیه (ACK) به ماشین اول این آیپی را به آن تخصیص میدهد.
هنگامی که یک IP توسط سرور DHCP به یک میزبان تحویل داده میشود، از لیست آیپیهای موجود حذف شده و تا مدت زمان خاصی که اصطلاحا آن را Lease duration مینامند در اختیار آن میزبان خواهد بود، در صورتی که این دستگاه برای مدت زمان بیشتری به آیپی احتیاج داشته باشد میتواند درخواست تمدید ارسال کرده و از انقضای زمان پس گرفتن آدرس آیپی جلوگیری کند، در غیر اینصورت DHCP این آیپی را پس گرفته و میتواند آن را در اختیار ماشین دیگری قرار دهد.
پیکربندی DHCP Snooping
برای پیکربندی dhcp snooping به صورت زیر عمل میکنیم:
در خط اول dhcp snooping را فعال کردهایم.
در خط دوم مشخص کرده ایم که میخواهیم dhcp snooping برای vlanهای شماره 12 و 13 فعال باشد.
در خط 3 و 4 پورت gigabitEthernet 1/0/1 را به عنوان پورت trusted (متصل به DHCP Server مد نظر ما) معرفی کردهایم.
SWITCH-FLOOR1(config)#ip dhcp snooping SWITCH-FLOOR1(config)#ip dhcp snooping vlan 12-13 SWITCH-FLOOR1(config)#interface gigabitEthernet 1/0/1 SWITCH-FLOOR1(config-if)#ip dhcp snooping trust
بررسی درستی تنظیمات DHCP Snooping
برای مشاهده فعال یا غیر فعال بودن DHCP Snooping و سایر تنظیمات آن میتوان از فرمان زیر استفاده کرد.
SWITCH-FLOOR1#show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 12-13,21-22,101 DHCP snooping is operational on following VLANs: 12-13,21-22,101 DHCP snooping is configured on the following L3 Interfaces: Insertion of option 82 is enabled circuit-id default format: vlan-mod-port remote-id: 34a8.4e38.3680 (MAC) Option 82 on untrusted port is not allowed Verification of hwaddr field is enabled Verification of giaddr field is enabled DHCP snooping trust/rate is configured on the following Interfaces: Interface Trusted Allow option Rate limit (pps) ———————– ——- ———— —————- GigabitEthernet1/0/1 yes yes unlimited Custom circuit-ids:
در صورتی که بعد از فعال کردن DHCP Snooping کلاینتی از DHCP Server آدرس دریافت کند، توسط فرمان زیر میتوان این امر را مشاهده کرد.
SWITCH-FLOOR1#show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface —————— ————— ———- ————- —- ——————– C0:74:AD:04:75:3A 192.168.13.21 36216 dhcp-snooping 13 GigabitEthernet1/0/4 C0:74:AD:05:76:BE 192.168.13.37 35827 dhcp-snooping 13 GigabitEthernet1/0/11 C0:74:AD:04:77:1B 192.168.13.44 35827 dhcp-snooping 13 GigabitEthernet1/0/6 Total number of bindings: 3
از فرمان زیر میتوان برای مشاهده اینکه آیا در شبکه DHCP Server غیر مجاز وجود دارد یا خیر استفاه کرد.
SWITCH-FLOOR1#show ip dhcp snooping statistics detail Packets Processed by DHCP Snooping = 22 Packets Dropped Because IDB not known = 0 Queue full = 0 Interface is in errdisabled = 0 Rate limit exceeded = 0 Received on untrusted ports = 0 Nonzero giaddr = 0 Source mac not equal to chaddr = 0 No binding entry = 0 Insertion of opt82 fail = 0 Unknown packet = 0 Interface Down = 0 Unknown output interface = 1 Misdirected Packets = 1 Packets with Invalid Size = 0 Packets with Invalid Option = 0
