DHCP چیست؟ آموزش کامل عملکرد، DORA، Lease و تنظیم DHCP در MikroTik
در یک شبکه کوچک ممکن است بتوان آدرس IP چند کامپیوتر، چاپگر و تلفن را بهصورت دستی تنظیم کرد؛ اما با افزایش تعداد کاربران، لپتاپها، تلفنهای همراه، دوربینها، تلفنهای VoIP و تجهیزات بیسیم، مدیریت دستی IPها به کاری زمانبر و مستعد خطا تبدیل میشود.
اگر دو دستگاه بهاشتباه یک IP یکسان دریافت کنند، تعارض آدرس ایجاد میشود. اگر Gateway اشتباه وارد شود، Client به اینترنت یا شبکههای دیگر دسترسی نخواهد داشت. واردکردن DNS نادرست نیز باعث میشود سایتها و سرویسهای مبتنی بر نام دامنه باز نشوند.
DHCP برای حل این مشکلات طراحی شده است. این پروتکل میتواند آدرس IP، Subnet Mask، Default Gateway، DNS Server، Domain Name و سایر اطلاعات موردنیاز را بهصورت خودکار در اختیار Clientها قرار دهد.
در این مقاله ابتدا عملکرد DHCP را با داستان «هتل آدرسهای شبکه» توضیح میدهیم و سپس وارد مفاهیم فنی مانند DORA، Lease، Scope، Static Lease، Relay، Option 82، Rogue DHCP و DHCP Snooping میشویم. در ادامه نیز یک DHCP Server کامل را در MikroTik RouterOS v7 راهاندازی و عیبیابی میکنیم.
نتیجه سریع: DHCP تنظیمات شبکه را بهصورت خودکار در اختیار Client قرار میدهد. فرایند اولیه معمولاً شامل چهار پیام Discover، Offer، Request و ACK است که با عبارت DORA شناخته میشود. برای راهاندازی صحیح DHCP در MikroTik باید IP شبکه، Pool، DHCP Server و DHCP Network تعریف شوند و برای جلوگیری از Rogue DHCP میتوان DHCP Snooping را روی Bridge فعال کرد.
داستان هتل آدرسهای شبکه
شهری را تصور کنید که در آن یک هتل بزرگ وجود دارد. هر مهمان برای اقامت به شماره اتاق، مسیر خروج، شماره تماس پذیرش و مدت زمان مشخصی برای استفاده از اتاق نیاز دارد.
در شبکه نیز هر دستگاه برای برقراری ارتباط به اطلاعاتی مانند موارد زیر احتیاج دارد:
- آدرس IP
- Subnet Mask یا Prefix
- Default Gateway
- DNS Server
- مدت اعتبار تنظیمات
پذیرش هتل نقش DHCP Server را بر عهده دارد. مهمان تازهوارد همان DHCP Client است و فهرست اتاقهای آزاد نیز معادل IP Pool محسوب میشود.
وقتی یک مهمان وارد هتل میشود، ابتدا اعلام میکند:
«آیا پذیرشی در این هتل وجود دارد که یک اتاق در اختیار من قرار دهد؟»
پذیرش پاسخ میدهد:
«اتاق شماره ۱۵۰ برای مدت ۲۴ ساعت قابل استفاده است.»
مهمان پیشنهاد را قبول میکند و پذیرش نیز ثبت نهایی را انجام میدهد. از این لحظه، اتاق تا پایان مدت تعیینشده در اختیار آن مهمان قرار دارد.
در DHCP نیز همین مکالمه با پیامهای Discover، Offer، Request و ACK انجام میشود.
DHCP چیست؟
DHCP مخفف Dynamic Host Configuration Protocol است. این پروتکل به Clientها اجازه میدهد تنظیمات موردنیاز برای فعالیت در شبکه IP را بهصورت خودکار دریافت کنند.
DHCP در شبکههای مختلف استفاده میشود:
- شبکه خانگی
- دفاتر و شرکتها
- شبکههای سازمانی
- هتلها و مراکز تجاری
- شبکه مهمان
- Hotspotها
- اپراتورها و WISPها
- تلفنهای VoIP
- دوربینها و تجهیزات IoT
- زیرساختهای مجازی و Cloud
RouterOS دارای DHCP Server، DHCP Client و DHCP Relay است. بنابراین یک روتر MikroTik میتواند برای کاربران LAN آدرس توزیع کند، خودش روی WAN از ISP آدرس دریافت کند یا درخواستهای Clientها را به DHCP Server مرکزی منتقل کند.
DHCP چه اطلاعاتی در اختیار Client قرار میدهد؟
بسته به تنظیمات Server و Optionهای مورد استفاده، DHCP میتواند موارد زیر را ارائه کند:
- IP Address
- Subnet Mask
- Default Gateway
- DNS Server
- Domain Name
- Lease Time
- NTP Server
- WINS Server در شبکههای قدیمی Windows
- Static Routeهای خاص
- TFTP Server
- Boot Server و Boot File برای PXE
- Vendor-Specific Information
تمام Clientها از تمام Optionها پشتیبانی نمیکنند. نوع Option موردنیاز باید براساس سیستمعامل، تلفن IP، دوربین، Access Point یا تجهیز موردنظر انتخاب شود.
اجزای اصلی DHCP
| جزء | وظیفه |
|---|---|
| DHCP Client | درخواست و دریافت تنظیمات IP |
| DHCP Server | تخصیص آدرس و Optionهای شبکه |
| Address Pool | محدوده آدرسهای قابل واگذاری |
| Lease | ثبت واگذاری یک IP به Client برای مدت مشخص |
| DHCP Relay | انتقال پیامها میان Broadcast Domainهای مختلف |
| DHCP Snooping | جلوگیری از فعالیت DHCP Server غیرمجاز در لایه دوم |
DHCP از چه پورتهایی استفاده میکند؟
DHCPv4 از UDP استفاده میکند:
| پورت | کاربرد |
|---|---|
| UDP 67 | سمت DHCP Server |
| UDP 68 | سمت DHCP Client |
در مراحل اولیه، Client هنوز IP معتبر ندارد؛ بنابراین بعضی پیامها را بهصورت Broadcast ارسال میکند.
Client → UDP 68
Server → UDP 67Firewall، Bridge Filter یا Switch ACL نباید پیامهای موردنیاز DHCP را ناخواسته مسدود کند.
مراحل DORA در DHCP چیست؟
فرایند اولیه دریافت آدرس معمولاً از چهار مرحله تشکیل میشود:
Discover
Offer
Request
Acknowledgmentحروف اول این چهار مرحله عبارت DORA را تشکیل میدهند.
Client DHCP Server
| |
|------ DHCP Discover ----------->|
|<------- DHCP Offer -------------|
|------ DHCP Request ------------>|
|<--------- DHCP ACK -------------|
| |مرحله اول: DHCP Discover
Client هنگام اتصال به شبکه ممکن است هنوز IP، Gateway یا آدرس DHCP Server را نداند. بنابراین یک پیام DHCP Discover را بهصورت Broadcast ارسال میکند.
هدف این پیام:
«من یک Client جدید هستم؛ آیا DHCP Server فعالی وجود دارد که تنظیمات شبکه به من ارائه دهد؟»
اطلاعات پیام میتواند شامل موارد زیر باشد:
- MAC Address یا Client Identifier
- Transaction ID
- Optionهای مورد درخواست
- Vendor Class
- Host Name
- آدرس قبلی موردنظر Client
مرحله دوم: DHCP Offer
DHCP Server پس از دریافت Discover، یک آدرس مناسب از Pool انتخاب و با پیام DHCP Offer به Client پیشنهاد میدهد.
Offer معمولاً شامل موارد زیر است:
- IP پیشنهادی
- Subnet Mask
- Lease Time
- Default Gateway
- DNS Serverها
- Server Identifier
اگر چند DHCP Server در یک Broadcast Domain فعال باشند، Client ممکن است چند Offer دریافت کند.
مرحله سوم: DHCP Request
Client یکی از Offerها را انتخاب و پیام DHCP Request ارسال میکند. این پیام مشخص میکند Client کدام آدرس و پیشنهاد کدام Server را پذیرفته است.
Serverهای دیگر با مشاهده این پیام متوجه میشوند Offer آنها انتخاب نشده و میتوانند آدرس پیشنهادی را به Pool برگردانند.
مرحله چهارم: DHCP ACK
DHCP Server منتخب با DHCP ACK واگذاری آدرس را نهایی میکند.
پس از دریافت ACK، Client میتواند تنظیمات را روی Interface خود اعمال کند و وارد وضعیت Bound شود.
Server نیز Lease را ثبت میکند:
IP Address
Client MAC یا Client ID
Lease Start
Lease Expiration
Host Name
StatusDHCP NAK چیست؟
اگر Client آدرسی را درخواست کند که معتبر نیست، به Subnet فعلی تعلق ندارد یا اجازه استفاده از آن را ندارد، Server میتواند پیام DHCP NAK ارسال کند.
پس از دریافت NAK، Client باید آدرس قبلی را کنار بگذارد و فرایند دریافت آدرس را از ابتدا آغاز کند.
DHCP Decline چیست؟
اگر Client پس از دریافت آدرس تشخیص دهد همان IP در شبکه توسط دستگاه دیگری استفاده میشود، میتواند پیام DHCP Decline ارسال کند.
Server ممکن است آن آدرس را برای مدتی بهعنوان Conflict یا Declined علامتگذاری کند تا دوباره به Client دیگری واگذار نشود.
DHCP Release چیست؟
Client هنگام خروج از شبکه میتواند با DHCP Release به Server اعلام کند دیگر به آدرس نیاز ندارد.
پس از Release، Server میتواند آن IP را زودتر به Pool برگرداند.
ارسال Release همیشه تضمینشده نیست. برای مثال اگر دستگاه ناگهان خاموش شود، Wi-Fi آن قطع شود یا سیستم Crash کند، Server تا پایان Lease منتظر خواهد ماند.
DHCP Inform چیست؟
Clientی که از قبل IP معتبر دارد، ممکن است فقط به Optionهای تکمیلی مانند DNS یا Domain Name نیاز داشته باشد. در این حالت میتواند DHCP Inform ارسال کند.
Server در پاسخ معمولاً Optionها را ارائه میدهد، اما IP جدیدی واگذار نمیکند.
Lease در DHCP چیست؟
DHCP Lease مجوز موقت استفاده یک Client از یک آدرس IP است.
برای مثال:
Client: Laptop-Sales
IP Address: 192.168.50.120
Lease Time: 8 hoursپس از پایان Lease، Client بدون تمدید حق ادامه استفاده از آن آدرس را ندارد.
Lease باعث میشود آدرسهای IP در شبکههایی با Clientهای متغیر دوباره قابل استفاده باشند.
Lease Time مناسب چقدر است؟
Lease Time ثابت و مناسبی برای تمام شبکهها وجود ندارد.
| نوع شبکه | Lease عمومی پیشنهادی |
|---|---|
| شبکه اداری پایدار | ۸ ساعت تا چند روز |
| شبکه مهمان | ۳۰ دقیقه تا چند ساعت |
| هتل یا مرکز همایش | متناسب با مدت حضور کاربران |
| VoIP و تجهیزات ثابت | طولانیتر یا Static Lease |
| آزمایشگاه با تغییر زیاد | کوتاهتر |
Lease بسیار کوتاه باعث افزایش پیامهای تمدید و بار Server میشود. Lease بسیار طولانی نیز آدرسهای Pool را مدت بیشتری در اختیار Clientهای غیرفعال نگه میدارد.
تمدید Lease چگونه انجام میشود؟
Client معمولاً پیش از پایان Lease برای تمدید اقدام میکند.
دو زمان مهم وجود دارد:
- T1 یا Renewal Time: Client تلاش میکند Lease را از همان Server اصلی تمدید کند.
- T2 یا Rebinding Time: اگر Server اصلی پاسخ ندهد، Client درخواست را برای DHCP Serverهای در دسترس ارسال میکند.
ترتیب زمانی باید به شکل زیر باشد:
T1 < T2 < Lease Expirationاگر Lease پیش از دریافت ACK جدید منقضی شود، Client باید استفاده از آدرس قبلی را متوقف کند.
Scope یا Address Pool چیست؟
Scope در بسیاری از پلتفرمها مجموعه تنظیمات یک Subnet شامل Pool، Gateway، DNS و Lease را توصیف میکند.
در RouterOS این بخشها جداگانه تعریف میشوند:
/ip poolبرای محدوده IP/ip dhcp-serverبرای سرویس DHCP/ip dhcp-server networkبرای Gateway، DNS و Optionهای Subnet
نمونه Pool:
192.168.50.100-192.168.50.199این محدوده شامل آدرس روتر، Serverهای Static یا Broadcast Address نمیشود.
هشدار: آدرس خود DHCP Server یا Gateway را داخل Pool قرار ندهید. این کار میتواند باعث IP Conflict شود.
Exclusion چیست؟
Exclusion به معنی خارجکردن تعدادی IP از محدوده قابل واگذاری است.
در RouterOS معمولاً Pool را به شکلی تعریف میکنیم که آدرسهای Static از ابتدا داخل آن نباشند.
مثال:
192.168.50.1 Router
192.168.50.2-49 Servers and Network Devices
192.168.50.50-99 Printers and Reserved Devices
192.168.50.100-199 DHCP Pool
192.168.50.200-254 Future Static Useاین ساختار از همپوشانی آدرسهای Dynamic و Static جلوگیری میکند.
DHCP Reservation یا Static Lease چیست؟
گاهی لازم است یک دستگاه همیشه همان IP را دریافت کند، اما همچنان مدیریت تنظیمات آن از طریق DHCP انجام شود.
نمونهها:
- Printer
- IP Camera
- Access Point
- VoIP Phone
- NAS
- سیستم حضور و غیاب
در RouterOS این قابلیت با Static Lease پیادهسازی میشود.
Static Lease معمولاً براساس MAC Address یا Client ID به یک Client مشخص اختصاص داده میشود.
تفاوت Static IP و Static Lease
| ویژگی | Static IP روی دستگاه | Static Lease روی DHCP Server |
|---|---|---|
| محل مدیریت | روی خود Client | بهصورت متمرکز روی Server |
| Gateway و DNS | دستی | خودکار |
| احتمال خطای انسانی | بیشتر | کمتر |
| تعویض Subnet | نیازمند تغییر دستگاه | قابل مدیریت از Server |
| نیاز Client به DHCP | ندارد | دارد |
برای بسیاری از Printerها و تجهیزات داخلی، Static Lease مدیریت سادهتری ایجاد میکند. Serverها و تجهیزات زیرساخت حیاتی ممکن است براساس سیاست سازمان از Static IP واقعی استفاده کنند.
Client ID در DHCP چیست؟
DHCP Server همیشه فقط از MAC Address برای شناسایی Client استفاده نمیکند. بعضی Clientها یک Client Identifier ارسال میکنند.
در RouterOS یک Lease میتواند براساس Client ID یا MAC ثبت شود. این موضوع هنگام تغییر سیستمعامل، استفاده از Dock، ماشین مجازی یا Privacy MAC اهمیت دارد.
اگر دستگاه با وجود Static Lease آدرس دیگری دریافت میکند، Client ID و MAC گزارششده را بررسی کنید.
Random MAC چه تأثیری بر DHCP دارد؟
سیستمعاملهای جدید ممکن است برای شبکههای Wi-Fi از Private یا Random MAC استفاده کنند.
اگر MAC تغییر کند:
- Server دستگاه را یک Client جدید تشخیص میدهد.
- Static Lease مبتنی بر MAC قبلی اعمال نمیشود.
- چند Lease برای یک دستگاه ایجاد میشود.
- کنترل دسترسی مبتنی بر MAC مختل میشود.
برای شبکه سازمانی میتوان Private MAC را برای SSID مدیریتشده غیرفعال یا از روشهای احراز هویت قویتر مانند 802.1X استفاده کرد.
DHCP Relay چیست؟
پیام اولیه DHCP معمولاً Broadcast است و Routerها Broadcast لایه دوم را میان Subnetها Forward نمیکنند.
اگر DHCP Server در Subnet دیگری قرار داشته باشد، از DHCP Relay استفاده میشود.
VLAN 10 Clients
│
MikroTik DHCP Relay
│
Routed Network
│
Central DHCP ServerRelay درخواست Client را دریافت و بهصورت Unicast برای DHCP Server ارسال میکند. پاسخ Server نیز از طریق Relay به Client بازگردانده میشود.
DHCP Server براساس آدرس Relay یا اطلاعات Option 82 تشخیص میدهد درخواست متعلق به کدام Subnet است.
نکته اصطلاحی: در تجهیزات Cisco عبارت IP Helper Address رایج است، اما در MikroTik منوی صحیح /ip dhcp-relay نام دارد.
چه زمانی از DHCP Relay استفاده کنیم؟
- DHCP Server مرکزی در دیتاسنتر قرار دارد.
- هر VLAN یک Broadcast Domain مستقل دارد.
- چند شعبه از یک DHCP Server مشترک استفاده میکنند.
- DHCP روی Windows Server یا Linux اجرا میشود.
- مدیریت Leaseها باید متمرکز باشد.
برای هر Interface یا VLAN Client باید Relay مناسب و Scope متناظر روی Server وجود داشته باشد.
Option 82 چیست؟
DHCP Option 82 یا Relay Agent Information اطلاعاتی درباره محل اتصال Client به درخواست DHCP اضافه میکند.
این اطلاعات میتواند شامل موارد زیر باشد:
- Circuit ID
- Remote ID
- Bridge یا Switch Identifier
- پورت ورودی Client
- VLAN یا اطلاعات دسترسی
Option 82 در شبکههای اپراتوری، Hotspot، ساختمانهای بزرگ و زیرساختهای دسترسی برای شناسایی دقیق محل Client مفید است.
DHCP Server میتواند براساس Option 82 آدرس یا Policy متفاوتی اعمال کند.
Rogue DHCP چیست؟
Rogue DHCP یک DHCP Server غیرمجاز است که داخل شبکه به درخواست Clientها پاسخ میدهد.
Rogue DHCP ممکن است در اثر موارد زیر ایجاد شود:
- اتصال اشتباه یک مودم خانگی به LAN
- فعالشدن Internet Connection Sharing
- اجرای نرمافزار DHCP روی لپتاپ
- پیکربندی نادرست ماشین مجازی
- حمله عمدی مهاجم
Server غیرمجاز میتواند اطلاعات مخربی ارائه دهد:
- Default Gateway مهاجم
- DNS جعلی
- IP خارج از Subnet
- Gateway نامعتبر
- Lease بسیار کوتاه
- Routeهای جعلی
نتیجه میتواند قطع شبکه، هدایت ترافیک از مسیر مهاجم، DNS Spoofing یا حمله Man-in-the-Middle باشد.
DHCP Starvation چیست؟
در حمله DHCP Starvation، مهاجم تعداد زیادی درخواست با MAC یا Client ID متفاوت ارسال میکند تا تمام آدرسهای Pool مصرف شوند.
پس از پرشدن Pool، Clientهای واقعی نمیتوانند IP دریافت کنند.
DHCP Snooping بهتنهایی تمام حملات Starvation را متوقف نمیکند. اقدامات تکمیلی میتوانند شامل موارد زیر باشند:
- Port Security
- محدودیت تعداد MAC روی Access Port
- 802.1X
- Rate Limiting پیامهای DHCP
- VLAN Segmentation
- مانیتورینگ Leaseها
DHCP Snooping چیست؟
DHCP Snooping قابلیت امنیتی لایه دوم است که پورتهای Bridge را به Trusted و Untrusted تقسیم میکند.
- Trusted Port: پورت متصل به DHCP Server یا مسیر معتبر آن
- Untrusted Port: پورت دسترسی کاربران که نباید DHCP Server روی آن فعالیت کند
پاسخهای DHCP Server که از پورت Untrusted وارد شوند Drop میشوند. در مقابل، پیامهای Client مانند Discover و Request همچنان میتوانند به سمت پورت Trusted Forward شوند.
DHCP Snooping چه کاری انجام نمیدهد؟
این قابلیت:
- جایگزین DHCP Server نیست.
- DHCP Client جعلی را بهطور کامل متوقف نمیکند.
- جایگزین 802.1X یا Port Security نیست.
- از Client در برابر تمام حملات لایه دوم محافظت نمیکند.
- بهتنهایی Dynamic ARP Inspection ایجاد نمیکند.
DHCP Snooping باید بخشی از طراحی کامل امنیت Access Layer باشد.
تفاوت DHCPv4 و DHCPv6
| ویژگی | DHCPv4 | DHCPv6 |
|---|---|---|
| آدرسدهی | IPv4 | IPv6 |
| پورت Client | UDP 68 | UDP 546 |
| پورت Server | UDP 67 | UDP 547 |
| Default Gateway | از DHCP دریافت میشود | معمولاً از Router Advertisement دریافت میشود |
| Broadcast | استفاده میشود | از Multicast استفاده میکند |
| آدرسدهی خودکار جایگزین | APIPA محدود | SLAAC |
در IPv6، DHCPv6 و Router Advertisement نقشهای متفاوتی دارند. DHCPv6 بهتنهایی معمولاً Default Router را به Client اعلام نمیکند.
برای آشنایی بیشتر میتوانید مقاله IPv6 چیست و انواع آدرس IPv6 را مطالعه کنید.
APIPA چیست؟
بعضی سیستمعاملها زمانی که DHCP Server پاسخ نمیدهد، یک آدرس Link-Local IPv4 از محدوده زیر انتخاب میکنند:
169.254.0.0/16مشاهده آدرسی مانند زیر معمولاً نشانه شکست DHCP است:
169.254.25.18این آدرس ممکن است ارتباط محدود داخل همان Link را فراهم کند، اما معمولاً دسترسی به Gateway و اینترنت وجود نخواهد داشت.
راهاندازی کامل DHCP Server در MikroTik RouterOS v7
در سناریوی نمونه فرض میکنیم:
| بخش | مقدار |
|---|---|
| Interface کاربران | bridge-LAN |
| شبکه LAN | 192.168.50.0/24 |
| IP روتر | 192.168.50.1 |
| DHCP Pool | 192.168.50.100-192.168.50.199 |
| Lease Time | ۸ ساعت |
| DNS | خود روتر |
مرحله اول: ساخت Bridge
/interface bridge
add name=bridge-LAN \
protocol-mode=rstp \
comment="Main LAN Bridge"
/interface bridge port
add bridge=bridge-LAN interface=ether2
add bridge=bridge-LAN interface=ether3
add bridge=bridge-LAN interface=ether4
add bridge=bridge-LAN interface=ether5
پورت WAN را داخل Bridge شبکه داخلی قرار ندهید.
مرحله دوم: اختصاص IP به Interface شبکه
/ip address
add address=192.168.50.1/24 \
interface=bridge-LAN \
comment="LAN Gateway"
DHCP Server باید روی Interfaceای اجرا شود که IP همان Subnet روی آن قرار دارد.
مرحله سوم: ساخت IP Pool
/ip pool
add name=pool-LAN \
ranges=192.168.50.100-192.168.50.199
آدرس 192.168.50.1 داخل Pool قرار ندارد؛ زیرا به روتر اختصاص یافته است.
مرحله چهارم: ساخت DHCP Server
/ip dhcp-server
add name=dhcp-LAN \
interface=bridge-LAN \
address-pool=pool-LAN \
lease-time=8h \
authoritative=yes \
disabled=no
گزینه Authoritative مشخص میکند Server در برابر درخواستهای نامعتبر Clientهای همان شبکه چگونه رفتار کند. این مقدار باید با طراحی واقعی شبکه و وجود سایر DHCP Serverها هماهنگ باشد.
مرحله پنجم: تعریف DHCP Network
/ip dhcp-server network
add address=192.168.50.0/24 \
gateway=192.168.50.1 \
dns-server=192.168.50.1 \
domain=corp.example \
comment="LAN DHCP Options"
این بخش Optionهای مرتبط با Subnet را مشخص میکند.
مرحله ششم: تنظیم DNS روی روتر
اگر قرار است Clientها از خود MikroTik بهعنوان DNS Resolver استفاده کنند:
/ip dns
set servers=1.1.1.1,9.9.9.9 \
allow-remote-requests=yes
هشدار امنیتی: فعالکردن allow-remote-requests=yes بدون Firewall مناسب میتواند روتر را به Open DNS Resolver تبدیل کند. دسترسی DNS باید فقط از شبکههای داخلی مجاز باشد.
راهاندازی سریع با DHCP Setup
RouterOS دارای Wizard برای ساخت DHCP Server است:
/ip dhcp-server setup
Wizard اطلاعات زیر را درخواست میکند:
- Interface
- DHCP Address Space
- Gateway
- Address Pool
- DNS Server
- Lease Time
DHCP Setup برای سناریوی ساده مناسب است، اما در شبکه حرفهای بهتر است تمام مقادیر پس از ایجاد بهصورت دستی بازبینی شوند.
مشاهده Leaseهای DHCP
/ip dhcp-server lease print detail
اطلاعات مهم:
- Address
- MAC Address
- Client ID
- Host Name
- Status
- Last Seen
- Expires After
- Server
وضعیتهای رایج Lease در RouterOS
| وضعیت | معنی |
|---|---|
| offered | آدرس پیشنهاد شده اما فرایند کامل نشده است |
| bound | آدرس با موفقیت به Client واگذار شده است |
| waiting | Static Lease منتظر Client مربوط است |
| busy | آدرس ممکن است در شبکه مورد استفاده باشد |
| conflict | تعارض احتمالی IP شناسایی شده است |
تبدیل Dynamic Lease به Static Lease
ابتدا Lease موردنظر را پیدا کنید:
/ip dhcp-server lease print
سپس آن را Static کنید:
/ip dhcp-server lease
make-static [find where mac-address="AA:BB:CC:DD:EE:FF"]
بعد از Static شدن میتوانید Address یا Comment را تغییر دهید:
/ip dhcp-server lease
set [find where mac-address="AA:BB:CC:DD:EE:FF"] \
address=192.168.50.50 \
comment="Office Printer"
آدرس Static Lease بهتر است خارج از Dynamic Pool باشد یا با طراحی دقیق Pool مدیریت شود.
ایجاد Static Lease از ابتدا
/ip dhcp-server lease
add server=dhcp-LAN \
address=192.168.50.50 \
mac-address=AA:BB:CC:DD:EE:FF \
comment="Office Printer"
MAC Address باید دقیقاً متعلق به Interfaceای باشد که Client با آن به شبکه متصل میشود.
مسدودکردن Client با DHCP Lease
RouterOS امکان Block کردن Lease را دارد، اما این قابلیت نباید تنها مکانیزم کنترل دسترسی شبکه باشد.
برای امنیت واقعی بهتر است از VLAN، Firewall، 802.1X یا NAC استفاده شود.
تنظیم DHCP Client روی WAN میکروتیک
اگر مودم یا ISP به MikroTik آدرس Dynamic ارائه میدهد:
/ip dhcp-client
add interface=ether1 \
add-default-route=yes \
use-peer-dns=no \
use-peer-ntp=no \
disabled=no
مشاهده وضعیت:
/ip dhcp-client print detail
وضعیت سالم معمولاً bound است.
DHCP Client میتواند آدرس، Netmask، Gateway و DNS را از Server دریافت کند. اگر Lease تمدید نشود یا Client غیرفعال شود، Routeهای Dynamic مرتبط نیز حذف میشوند.
تنظیم DHCP Relay در MikroTik
سناریوی نمونه:
Client VLAN: 192.168.20.0/24
Gateway/Relay: 192.168.20.1
DHCP Server: 10.10.10.10
Client Interface: vlan20
ابتدا IP Gateway روی VLAN تعریف میشود:
/ip address
add address=192.168.20.1/24 \
interface=vlan20 \
comment="VLAN20 Gateway"
سپس Relay ساخته میشود:
/ip dhcp-relay
add name=relay-vlan20 \
interface=vlan20 \
dhcp-server=10.10.10.10 \
local-address=192.168.20.1 \
disabled=no
روی DHCP Server مرکزی باید Scope مربوط به شبکه 192.168.20.0/24 وجود داشته باشد و Route بازگشت به این شبکه نیز برقرار باشد.
نکته: روی Interface Client نباید همزمان DHCP Server محلی و Relay ناخواسته فعال باشند، مگر آنکه سناریو عمداً برای افزونگی طراحی شده باشد.
فعالکردن DHCP Snooping در Bridge میکروتیک
سناریوی نمونه:
ether1: مسیر متصل به DHCP Server معتبرether2تاether5: پورت کاربرانbridge-LAN: Bridge شبکه کاربران
ابتدا DHCP Snooping روی Bridge فعال میشود:
/interface bridge
set [find where name="bridge-LAN"] \
dhcp-snooping=yes
سپس فقط پورت متصل به DHCP Server یا Uplink معتبر Trusted میشود:
/interface bridge port
set [find where bridge="bridge-LAN" and interface="ether1"] \
trusted=yes
پورتهای کاربران باید Untrusted باقی بمانند:
/interface bridge port
set [find where bridge="bridge-LAN" and interface="ether2"] \
trusted=no
/interface bridge port
set [find where bridge="bridge-LAN" and interface="ether3"] \
trusted=no
برای مشاهده وضعیت:
/interface bridge print detail
/interface bridge port print detail
هشدار: اگر پورت صحیح را Trusted نکنید، پاسخهای DHCP Server معتبر نیز Drop میشوند و Clientها IP دریافت نخواهند کرد.
Trusted Port را چگونه انتخاب کنیم؟
پورت Trusted همیشه الزاماً پورت فیزیکی مستقیم Server نیست. ممکن است مسیر DHCP Server از طریق موارد زیر باشد:
- Uplink به Core Switch
- Trunk VLAN
- Bonding Interface
- Bridge Port متصل به Router
- مسیر DHCP Relay
تمام مسیر لایه دوم باید براساس توپولوژی واقعی تحلیل شود. Trusted کردن تمام پورتها عملاً ارزش امنیتی DHCP Snooping را از بین میبرد.
DHCP Snooping و Hardware Offloading
پشتیبانی سختافزاری DHCP Snooping به مدل RouterBOARD، Switch Chip و نسخه RouterOS وابسته است.
در بعضی دستگاهها فعالکردن ویژگیهای Bridge میتواند Hardware Offloading را محدود یا رفتار Forwarding را تغییر دهد.
بعد از فعالسازی موارد زیر را بررسی کنید:
/interface bridge port print
/interface bridge settings print
همچنین CPU Load و Throughput را در زمان پرترافیک مانیتور کنید.
راهاندازی DHCP برای چند VLAN
برای هر VLAN باید Interface و Subnet مستقل ایجاد شود.
نمونه ساخت دو VLAN:
/interface vlan
add name=vlan10-STAFF \
interface=bridge-LAN \
vlan-id=10
add name=vlan20-GUEST \
interface=bridge-LAN \
vlan-id=20
اختصاص IP:
/ip address
add address=192.168.10.1/24 interface=vlan10-STAFF
add address=192.168.20.1/24 interface=vlan20-GUEST
ساخت Poolها:
/ip pool
add name=pool-STAFF \
ranges=192.168.10.100-192.168.10.199
add name=pool-GUEST \
ranges=192.168.20.100-192.168.20.250
ساخت DHCP Serverها:
/ip dhcp-server
add name=dhcp-STAFF \
interface=vlan10-STAFF \
address-pool=pool-STAFF \
lease-time=1d \
disabled=no
add name=dhcp-GUEST \
interface=vlan20-GUEST \
address-pool=pool-GUEST \
lease-time=2h \
disabled=no
تعریف Networkها:
/ip dhcp-server network
add address=192.168.10.0/24 \
gateway=192.168.10.1 \
dns-server=192.168.10.1
add address=192.168.20.0/24 \
gateway=192.168.20.1 \
dns-server=192.168.20.1
VLAN Filtering و Bridge VLAN Table نیز باید جداگانه و صحیح پیکربندی شوند.
DHCP Option سفارشی در RouterOS
برای بعضی تجهیزات مانند تلفن IP یا PXE Client ممکن است Option سفارشی لازم باشد.
نمونه کلی ساخت Option:
/ip dhcp-server option
add name=custom-option \
code=66 \
value="'192.168.50.10'"
سپس Option به Option Set اضافه میشود:
/ip dhcp-server option sets
add name=voip-options \
options=custom-option
و روی Network یا Lease مربوط اعمال میشود.
هشدار: فرمت Value به نوع Option وابسته است. پیش از استفاده، نوع داده و Syntax همان Option را در مستندات RouterOS و تجهیز Client بررسی کنید.
PXE Boot با DHCP
برای Boot شبکهای معمولاً DHCP اطلاعات زیر را در اختیار Client قرار میدهد:
- IP Address
- Boot Server
- Boot File Name
- TFTP Server
PXE در نصب خودکار سیستمعامل، Imaging و بازیابی کامپیوترها استفاده میشود.
معماری BIOS و UEFI ممکن است Boot Fileهای متفاوتی نیاز داشته باشد؛ بنابراین یک Option ثابت برای تمام Clientها همیشه مناسب نیست.
فعالکردن Logهای DHCP در RouterOS
برای مشاهده جزئیات بیشتر میتوان Logging مربوط به DHCP را فعال کرد:
/system logging
add topics=dhcp,debug \
action=memory
مشاهده Log:
/log print where topics~"dhcp"
پس از پایان عیبیابی، Logging بسیار پرجزئیات را حذف یا محدود کنید تا حافظه و Logها بیدلیل پر نشوند.
Packet Capture پیامهای DHCP
برای مشاهده بستههای DHCP:
/tool sniffer quick \
interface=bridge-LAN \
ip-protocol=udp \
port=67,68
برای ذخیره فایل Capture:
/tool sniffer
set filter-interface=bridge-LAN \
filter-ip-protocol=udp \
filter-port=67,68 \
file-name=dhcp-test.pcap
/tool sniffer start
پس از اجرای فرایند DHCP:
/tool sniffer stop
فایل را از بخش Files دانلود و در Wireshark بررسی کنید.
چکلیست عیبیابی Clientی که IP دریافت نمیکند
- Link فیزیکی Interface را بررسی کنید.
- Client روی Obtain IP Automatically باشد.
- DHCP Server فعال باشد.
- DHCP Server روی Interface صحیح اجرا شود.
- IP همان Subnet روی Interface وجود داشته باشد.
- Pool دارای آدرس آزاد باشد.
- DHCP Network تعریف شده باشد.
- VLAN و PVID صحیح باشند.
- Bridge Port داخل Bridge درست قرار گرفته باشد.
- Firewall یا Bridge Filter پیامها را Drop نکند.
- DHCP Snooping پورت Server را Trusted بداند.
- در سناریوی Relay، Route رفت و برگشت وجود داشته باشد.
- روی Client آدرس 169.254.x.x بررسی شود.
- Packet Capture برای DORA انجام شود.
بررسی Pool خالی
Leaseها را مشاهده کنید:
/ip dhcp-server lease print count-only
/ip pool used print
اگر تمام آدرسهای Pool مصرف شدهاند:
- Clientهای منقضی یا غیرضروری را بررسی کنید.
- Lease Time را متناسب کنید.
- Pool را توسعه دهید.
- وجود DHCP Starvation را بررسی کنید.
- MACهای غیرعادی را شناسایی کنید.
چرا Client IP میگیرد اما اینترنت ندارد؟
دریافت IP فقط نشان میدهد DHCP کار کرده است. برای اینترنت موارد دیگری نیز لازماند:
- Default Gateway صحیح
- Default Route روی MikroTik
- DNS صحیح
- NAT یا Route عمومی مناسب
- Firewall Forward
- اتصال WAN سالم
روی Client بررسی کنید:
IP Address
Subnet Mask
Default Gateway
DNS Serversسپس آزمایش کنید:
Ping Gateway
Ping Public IP
DNS Lookup
Tracerouteچرا Client IP قدیمی را نگه میدارد؟
دلایل احتمالی:
- Lease قبلی هنوز معتبر است.
- Client درخواست Renew نکرده است.
- DHCP Server جدید Authoritative نیست.
- Client به شبکه دیگری منتقل شده است.
- Cache سیستمعامل یا Network Manager باقی مانده است.
- Rogue DHCP هنوز فعال است.
در Windows:
ipconfig /release
ipconfig /renew
در Linux با NetworkManager:
nmcli device disconnect eth0
nmcli device connect eth0
نام Interface باید با سیستم واقعی جایگزین شود.
تشخیص Rogue DHCP با Packet Capture
اگر یک Discover ارسال شود و چند Offer از Serverهای ناشناخته دریافت شود، احتمال وجود Rogue DHCP مطرح است.
در Wireshark میتوان از Filter زیر استفاده کرد:
bootp
موارد زیر را مقایسه کنید:
- Server Identifier
- Source MAC
- Gateway پیشنهادی
- DNS Serverها
- Lease Time
- Optionهای غیرعادی
سپس MAC Address مربوط را در جدول Bridge Host یا Switch MAC Table ردیابی کنید.
اشتباهات رایج در تنظیم DHCP
قرار دادن IP روتر داخل Pool
این کار ممکن است IP Gateway را به Client واگذار و Conflict ایجاد کند.
ساخت DHCP Server بدون IP روی Interface
Server باید بتواند Subnet و Gateway مربوط را تشخیص دهد.
فراموشکردن DHCP Network
ممکن است Client IP بگیرد، اما Gateway یا DNS صحیح دریافت نکند.
اجرای DHCP Server روی Bridge Port بهجای Bridge
اگر پورتها عضو Bridge هستند، سرویس لایه سوم معمولاً باید روی خود Bridge یا VLAN Interface اجرا شود.
ترکیب شبکههای مختلف در یک Pool
Pool باید با Subnet و DHCP Network مربوط هماهنگ باشد.
استفاده از Lease بسیار طولانی در شبکه مهمان
آدرسها مدت زیادی در اختیار Clientهای خارجشده باقی میمانند.
استفاده از Lease بسیار کوتاه در شبکه ثابت
تعداد پیامهای Renew و بار Server افزایش مییابد.
Trusted کردن تمام پورتها
این کار DHCP Snooping را عملاً بیاثر میکند.
فعالکردن Snooping بدون Trusted Port صحیح
Clientها Offer یا ACK معتبر دریافت نخواهند کرد.
فرض اینکه DHCP امنیت کامل فراهم میکند
DHCP یک پروتکل پیکربندی است و برای احراز هویت Client طراحی نشده است.
نادیدهگرفتن Random MAC
این قابلیت میتواند Static Lease و گزارشگیری مبتنی بر MAC را مختل کند.
فعالکردن چند DHCP Server بدون طراحی افزونگی
Clientها ممکن است تنظیمات متفاوت یا متناقض دریافت کنند.
چکلیست طراحی DHCP سازمانی
- Subnetها و VLANها را مستند کنید.
- برای هر Subnet Pool مناسب تعیین کنید.
- آدرس Gateway را از Pool خارج کنید.
- Serverها و تجهیزات Static را جدا کنید.
- Lease Time را براساس رفتار Clientها انتخاب کنید.
- DNS، Domain و NTP را مشخص کنید.
- Static Leaseها را مستند کنید.
- DHCP Relayها را برای VLANهای Remote طراحی کنید.
- Route رفت و برگشت Relay را بررسی کنید.
- DHCP Snooping را روی Access Layer فعال کنید.
- پورتهای Trusted را محدود نگه دارید.
- Pool Utilization را مانیتور کنید.
- Logهای DHCP را به Syslog مرکزی ارسال کنید.
- سناریوی خرابی Server را آزمایش کنید.
- از Configuration روتر و Server نسخه پشتیبان تهیه کنید.
مانیتورینگ DHCP در شبکه
موارد زیر باید مانیتور شوند:
- درصد مصرف Pool
- تعداد Leaseهای Bound
- Leaseهای Conflict
- Leaseهای غیرعادی با MACهای متعدد
- تعداد Discover بدون ACK
- DHCP Server Availability
- Rogue Offerها
- زمان پاسخ Server
- وضعیت Relayها
- تغییرات Optionها
در RouterOS میتوان Logهای DHCP را به Remote Syslog ارسال و از SNMP یا Script برای بررسی Leaseها استفاده کرد.
انتخاب تجهیزات شبکه برای DHCP و VLAN
در شبکه کوچک، یک روتر ساده MikroTik میتواند DHCP Server و Gateway کاربران باشد. با افزایش تعداد VLANها و کاربران باید موارد زیر بررسی شوند:
- توان CPU روتر
- مقدار RAM
- تعداد DHCP Leaseها
- ظرفیت Bridge و VLAN Filtering
- پشتیبانی Hardware Offloading
- تعداد پورتهای Access و Trunk
- نیاز به DHCP Snooping سختافزاری
- ظرفیت Firewall و NAT
- نیاز به افزونگی
- امکان توسعه آینده
در شبکه بزرگ ممکن است DHCP روی Server مرکزی اجرا شود و MikroTik فقط نقش Gateway و Relay را بر عهده داشته باشد.
تأمین تجهیزات و مشاوره شبکه با گروه بیستون
گروه فناوری ارتباطات پندار بیستون در زمینه تأمین تجهیزات شبکه، محصولات MikroTik، روترها، سوئیچها، تجهیزات وایرلس و زیرساخت ارتباطی فعالیت میکند.
راهاندازی DHCP در یک شبکه سازمانی باید همراه با طراحی صحیح IP Addressing، VLAN، Routing، Firewall، DNS و Access Layer انجام شود. انتخاب Pool نامناسب یا قرارگرفتن DHCP Server در VLAN اشتباه میتواند باعث قطعی گسترده کاربران شود.
خدمات مشاوره گروه بیستون میتواند شامل موارد زیر باشد:
- انتخاب روتر و سوئیچ MikroTik
- طراحی IP Addressing و Subnetting
- طراحی VLAN کاربران، سرورها و مهمان
- راهاندازی DHCP Server و Relay
- بررسی Rogue DHCP
- پیادهسازی DHCP Snooping
- عیبیابی Conflict و Pool Exhaustion
- بررسی Firewall و دسترسی بین VLANها
- طراحی شبکه شعب و دفتر مرکزی
- مشاوره توسعه زیرساخت شبکه
برای مشاهده روترها، سوئیچها و تجهیزات موردنیاز شبکه به صفحه محصولات میکروتیک گروه بیستون مراجعه کنید. برای طراحی DHCP، VLAN و دریافت مشاوره فنی نیز درخواست خود را در بخش پشتیبانی و مشاوره فنی ثبت کنید.
گارانتی و خدمات پس از فروش بیستون
در خرید روتر، سوئیچ و تجهیزات زیرساختی، علاوه بر مشخصات فنی باید اصالت کالا، پارتنامبر، وضعیت گارانتی و امکان دریافت خدمات پس از فروش بررسی شود.
محصولاتی که براساس شماره سریال، فاکتور و اطلاعات ثبتشده تحت پوشش گروه بیستون باشند، مطابق شرایط ضمانت مربوط پشتیبانی میشوند.
وجود یک محصول یا مقاله در سایت بهتنهایی به معنی برخورداری تمام نمونههای موجود در بازار از گارانتی گروه بیستون نیست. نوع و مدت ضمانت باید هنگام استعلام و خرید تأیید شود.
برای محصولات مشمول میتوانید شماره سریال دستگاه را در صفحه اعتبارسنجی گارانتی بیستون بررسی کنید.
شرایط پوشش ضمانت و موارد خارج از گارانتی نیز در صفحه شرایط گارانتی گروه بیستون درج شده است.
سؤالات متداول درباره DHCP
DHCP چیست؟
پروتکلی برای اختصاص خودکار IP Address، Subnet Mask، Gateway، DNS و سایر تنظیمات شبکه به Clientها است.
DORA در DHCP چیست؟
DORA مخفف چهار مرحله Discover، Offer، Request و Acknowledgment است.
DHCP از چه پورتهایی استفاده میکند؟
DHCPv4 از UDP پورت 67 برای Server و UDP پورت 68 برای Client استفاده میکند.
DHCP Discover چیست؟
پیام اولیه Client برای پیدا کردن DHCP Serverهای موجود در شبکه است.
DHCP Offer چیست؟
پیشنهاد Server شامل IP، Lease Time و Optionهای شبکه به Client است.
DHCP Request چیست؟
پیامی است که Client با آن پیشنهاد منتخب و IP مورد درخواست را اعلام میکند.
DHCP ACK چیست؟
تأیید نهایی Server برای واگذاری IP و تنظیمات شبکه به Client است.
Lease Time چیست؟
مدتی است که Client اجازه دارد از IP واگذارشده استفاده کند.
Static Lease چیست؟
رزرو یک IP مشخص برای MAC Address یا Client ID معین روی DHCP Server است.
تفاوت Static Lease و Static IP چیست؟
Static Lease از Server مدیریت میشود، اما Static IP مستقیماً روی Client تنظیم میشود.
DHCP Relay چیست؟
سرویسی است که پیامهای DHCP را میان Client و Serverهایی که در Subnetهای متفاوت قرار دارند منتقل میکند.
آیا MikroTik از IP Helper استفاده میکند؟
قابلیت متناظر در RouterOS با نام DHCP Relay و مسیر /ip dhcp-relay شناخته میشود.
Rogue DHCP چیست؟
DHCP Server غیرمجازی است که تنظیمات اشتباه یا مخرب در اختیار Clientها قرار میدهد.
DHCP Snooping چیست؟
قابلیت امنیتی لایه دوم برای محدودکردن پاسخهای DHCP Server به پورتهای Trusted است.
کدام پورتها باید Trusted باشند؟
فقط پورت مستقیم یا Uplink معتبری که پاسخ DHCP Server از آن وارد میشود.
چرا Client آدرس 169.254 دریافت میکند؟
معمولاً به این دلیل که نتوانسته از DHCP Server آدرس معتبر دریافت کند و سیستمعامل یک IPv4 Link-Local ساخته است.
چرا Client IP دارد ولی اینترنت ندارد؟
Gateway، DNS، Default Route، NAT، Firewall و اتصال WAN را بررسی کنید.
چرا Pool DHCP پر میشود؟
Leaseهای طولانی، تعداد Client زیاد، Random MAC، حمله Starvation یا کوچکبودن Pool از دلایل رایج هستند.
آیا میتوان روی هر VLAN یک DHCP Server داشت؟
بله. هر VLAN باید Interface، IP، Pool، DHCP Server و DHCP Network متناسب با Subnet خود داشته باشد.
DHCP Option 82 چیست؟
اطلاعاتی است که Relay یا Switch درباره محل اتصال Client به پیام DHCP اضافه میکند.
آیا DHCP Client روی WAN میتواند Gateway دریافت کند؟
بله. RouterOS میتواند آدرس، Netmask، Gateway و DNS را از DHCP Server بالادستی دریافت کند.
DHCPv6 با DHCPv4 چه تفاوتی دارد؟
DHCPv6 برای IPv6 استفاده میشود و Default Router معمولاً از Router Advertisement دریافت میشود، نه DHCPv6.
آیا DHCP یک مکانیزم احراز هویت است؟
خیر. DHCP برای پیکربندی شبکه طراحی شده و برای کنترل هویت باید از روشهایی مانند 802.1X، NAC و VLAN استفاده شود.
جمعبندی
DHCP یکی از پروتکلهای پایه شبکه است که مدیریت آدرس IP و تنظیمات Clientها را متمرکز و خودکار میکند.
فرایند اولیه دریافت IP معمولاً با چهار پیام Discover، Offer، Request و ACK انجام میشود. Client پس از دریافت ACK، آدرس را برای مدت مشخصی به نام Lease استفاده میکند و پیش از انقضا برای تمدید آن اقدام خواهد کرد.
Address Pool محدوده IPهای قابل واگذاری را تعیین میکند. آدرس روتر، Serverها و تجهیزات Static نباید بدون طراحی دقیق داخل Pool قرار بگیرند.
Static Lease روشی مناسب برای اختصاص IP ثابت به Printer، Camera یا Access Point است، بدون آنکه تنظیم IP مستقیماً روی Client انجام شود.
اگر DHCP Server در Subnet دیگری قرار داشته باشد، DHCP Relay درخواستها را میان Client و Server منتقل میکند. در RouterOS این قابلیت از منوی /ip dhcp-relay تنظیم میشود.
Rogue DHCP میتواند Gateway یا DNS جعلی در اختیار کاربران قرار دهد. DHCP Snooping با تقسیم پورتها به Trusted و Untrusted از عبور پاسخ DHCP Serverهای غیرمجاز جلوگیری میکند.
در RouterOS برای راهاندازی DHCP Server باید IP Address، IP Pool، DHCP Server و DHCP Network تعریف شوند. برای عیبیابی نیز Lease Table، Log، Packet Sniffer، VLAN، Bridge و پورتهای Trusted باید بررسی شوند.
گروه بیستون با تأمین تجهیزات MikroTik، ارائه مشاوره فنی، طراحی VLAN و Addressing، پیادهسازی DHCP و خدمات پس از فروش، امکان توسعه شبکههای پایدار و قابل مدیریت را برای سازمانها فراهم میکند.
برای انتخاب تجهیزات مناسب، طراحی DHCP و VLAN یا رفع مشکلات اختصاص IP در شبکه با کارشناسان فنی گروه بیستون در ارتباط باشید.
دیدگاه خود را بنویسید