داستان درباره DHCP و مفاهیم مرتبط:

در یک شرکت کوچک با شبکه‌ای محلی، مدیر شبکه به نام علی تصمیم گرفت برای مدیریت بهتر آدرس‌های IP از یک DHCP سرور استفاده کند. او متوجه شد که تخصیص دستی IP Static برای هر دستگاه باعث ایجاد اشتباهات و ناهماهنگی‌هایی در شبکه می‌شود.

DHCP (Dynamic Host Configuration Protocol) به او این امکان را می‌داد که به‌صورت خودکار آدرس‌های IP به دستگاه‌ها تخصیص دهد. او ابتدا یک Scope تعریف کرد که محدوده‌ای از آدرس‌های IP بود، مثلاً از 192.168.1.100 تا 192.168.1.200.

علی گزینه‌های اضافی (DHCP Options) را هم تنظیم کرد، مثل:

  • DNS Server: آدرس 8.8.8.8 و 8.8.4.4 را وارد کرد تا دستگاه‌ها      بتوانند نام دامنه‌ها را به IP ترجمه کنند.
  • Default Gateway: آدرس 192.168.1.1 را به‌عنوان دروازه پیش‌فرض      تعریف کرد.
  • Time Server: آدرس سرور زمانی را هم تنظیم کرد تا دستگاه‌ها      زمان دقیق دریافت کنند.

برای برخی از دستگاه‌های خاص مثل چاپگرها یا سرور‌ها که نیاز به IP Static داشتند، از قابلیت Reservation استفاده کرد. این قابلیت به علی اجازه می‌داد تا یک آدرس IP خاص را به یک MAC Address مشخص رزرو کند.

او همچنین از Exclusion استفاده کرد تا آدرس‌های IP خاصی را از محدوده DHCP خارج کند، مثلاً آدرس‌هایی که برای سرور اصلی و روتر بودند.

یکی از نکات مهمی که علی تنظیم کرد، مدت زمان اجاره IP یا همان Lease Duration بود. برای دستگاه‌های کارمندان، مدت اجاره را 24 ساعت تنظیم کرد تا IPها به‌صورت دوره‌ای آزاد شوند و برای دستگاه‌های دائمی مثل سرورها، این مدت زمان را طولانی‌تر در نظر گرفت.

چالش بعدی علی، مقابله با Rogue DHCP بود، یعنی DHCP سرورهای غیرمجاز در شبکه. او با استفاده از قابلیت‌های امنیتی، مطمئن شد که فقط DHCP سرور خودش فعال است و سایر سرورها اجازه ارائه IP ندارند.

در شبکه‌های بزرگ‌تر که چندین سوئیچ یا روتر وجود داشت، علی از Relay Agent یا در روترهای میکروتیک، IP Helper استفاده کرد تا درخواست‌های DHCP از سایر بخش‌های شبکه به DHCP سرور اصلی منتقل شوند.


تنظیمات DHCP در میکروتیک:

1. تعریف یک DHCP سرور:

/ip dhcp-server

add name=dhcp1 interface=bridge address-pool=dhcp_pool lease-time=1d

2. تنظیم Scope (Address Pool):

plaintext

Copy code

/ip pool

add name=dhcp_pool ranges=192.168.1.100-192.168.1.200



3. تنظیم Options (DNS, Gateway):

plaintext

Copy code

/ip dhcp-server network

add address=192.168.1.0/24 gateway=192.168.1.1 dns-server=8.8.8.8,8.8.4.4


4. رزرو کردن IP برای دستگاه خاص:


/ip dhcp-server lease

add address=192.168.1.150 mac-address=AA:BB:CC:DD:EE:FF comment="Printer"


5. تنظیم IP Helper برای Relay Agent:

/ip dhcp-relay

add interface=ether2 dhcp-server=192.168.1.1

Rogue DHCP چیست؟

Rogue DHCP به DHCP سرورهای غیرمجاز در شبکه گفته می‌شود. این سرورها معمولاً توسط خطای انسانی یا حملات مخرب ایجاد می‌شوند. اگر Rogue DHCP در شبکه فعال باشد، می‌تواند آدرس‌های IP نامعتبر یا تنظیمات اشتباه (مانند DNS و Gateway اشتباه) به دستگاه‌ها ارائه دهد، که منجر به مشکلاتی مانند قطع اتصال به اینترنت، حملات MITM (Man-in-the-Middle)، یا اختلال در شبکه می‌شود.

در میکروتیک، ویژگی DHCP Snooping به‌صورت پیش‌فرض در تنظیمات Bridge وجود دارد. این قابلیت به شما کمک می‌کند تا از Rogue DHCP جلوگیری کنید و فقط درخواست‌ها و پاسخ‌های DHCP از منابع معتبر (مثل سرور DHCP خودتان) اجازه عبور داشته باشند.

تنظیمات DHCP Snooping در Bridge

1. فعال کردن DHCP Snooping در Bridge:

ابتدا باید DHCP Snooping را در سطح Bridge فعال کنید:


/interface bridge

set [find name=bridge1] dhcp-snooping=yes

2. تنظیم پورت‌های Trusted و Untrusted:

بعد از فعال کردن DHCP Snooping، می‌توانید پورت‌هایی را که به DHCP سرور متصل هستند، به‌عنوان Trusted تعریف کنید. پورت‌های دیگر به‌صورت پیش‌فرض Untrusted خواهند بود.

برای تعریف پورت‌های Trusted:


/interface bridge port

set [find interface=ether1] dhcp-snooping=yes trusted=yes

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

3. پورت‌های Untrusted:

پورت‌هایی که به کلاینت‌های DHCP متصل هستند، نباید Trusted باشند. به همین دلیل، آن‌ها را به صورت Untrusted باقی می‌گذارید (که حالت پیش‌فرض است).



بررسی وضعیتDHCP Snooping

برای مشاهده وضعیت DHCP Snooping و لیست پورت‌های Trusted و Untrusted، می‌توانید از دستور زیر استفاده کنید:


/interface bridge port print

این دستور وضعیت Trusted یا Untrusted بودن هر پورت را نشان می‌دهد.