راهاندازی DHCP Relay برای تخصیص IP در شبکههای سیسکو، راهکاری هوشمندانه برای مدیریت متمرکز آدرسها در محیطهای چندزیرشبکهای (ساب نت Subnet) است. از آنجا که روترها بهطور پیشفرض ترافیک Broadcast را عبور نمیدهند، کلاینتها نمیتوانند مستقیماً با سرور مرکزی ارتباط برقرار کنند. با فعالسازی این سرویس، روتر درخواستهای محلی را دریافت کرده و به صورت Unicast به سرور DHCP ارسال میکند. این روش نه تنها هزینههای نگهداری سرورهای متعدد را کاهش میدهد، بلکه پیکربندی و نظارت بر شبکه را سادهتر و کارآمدتر میسازد.
جهت کسب اطلاعات بیشتر درباره خدمات پشتیبانی شبکه کلیک کنید.
DHCP Relay چیست؟
در شبکههای سازمانی بزرگ که به دلیل محدودیتهای فیزیکی یا امنیتی به چندین زیرشبکه (Subnet) تقسیم شدهاند، پروتکل DHCP بهصورت پیشفرض با چالش مواجه میشود. از آنجا که درخواستهای DHCP مبتنی بر پخش (Broadcast) هستند، این پیامها توسط روترها عبور داده نمیشوند و در نتیجه کلاینتهای موجود در زیرشبکههای دیگر نمیتوانند به سرور مرکزی DHCP دسترسی پیدا کنند.
برای رفع این محدودیت، از مکانیزم DHCP Relay Agent استفاده میشود. این سرویس که معمولاً روی روترهای لایه ۳ یا سوییچهای مدیریتی فعال میشود، وظیفه دارد درخواستهای پخششده کلاینتها را دریافت کرده، آنها را به پیامهای تکآدرس (Unicast) تبدیل کند و مستقیماً به سرور DHCP در زیرشبکه مقصد ارسال نماید.
مزایای اصلی این رویکرد عبارتند از:
- تمرکز مدیریت: امکان استفاده از یک سرور واحد برای مدیریت آدرسدهی در کل سازمان.
- کاهش هزینهها: حذف نیاز به نصب و نگهداری سرورهای متعدد در هر زیرشبکه.
- بهبود کارایی: تسهیل در اعمال سیاستهای شبکه و مدیریت پویای آدرسها (IPAM) در مقیاس بزرگ.
این روش استانداردترین راهکار برای مقیاسپذیری شبکههای مدرن محسوب میشود
- بیشتر بخوانید: آموزش گام به گام راه اندازی DHCP Client در میکروتیک
تفاوت DHCP Server و DHCP Relay چیست؟
تفاوت اصلی میان DHCP Server و DHCP Relay Agent در ماهیت عملکرد و جایگاه آنها در معماری شبکه نهفته است. DHCP Server به عنوان منبع اصلی و مرکزی، مسئولیت مدیریت پایگاه داده آدرسها، تخصیص آیپیها و ارائه تنظیمات شبکه را بر عهده دارد. این سرویس بهطور مستقیم با کلاینتها تعامل میکند و تصمیمگیرنده نهایی در مورد صحت درخواستهاست.
در مقابل، DHCP Relay Agent یک واسطه فعال در لایه شبکه است که هیچگونه مسئولیتی در تخصیص آدرس ندارد. وظیفه اصلی آن عبور دادن درخواستهای پخششده از مرزهای زیرشبکههاست. از آنجا که روترها بهطور پیشفرض ترافیک Broadcast را مسدود میکنند، Relay Agent درخواست کلاینت را دریافت کرده، آن را به یک پیام تکآدرس (Unicast) تبدیل کرده و به سمت سرور مرکزی هدایت میکند. بنابراین، سرور تخصیصدهنده است و Relay مسیرساز ارتباط بین زیرشبکههای پراکنده و سرور مرکزی محسوب میشود. این تقسیم وظایف باعث میشود مدیریت شبکه در مقیاس بزرگ سادهتر و کارآمدتر شود.
به نقل از infoblox :
سرور DHCP یک سرور شبکه است که بهصورت خودکار آدرسهای IP، درگاه پیشفرض و سایر پارامترهای شبکه را به دستگاههای کلاینت اختصاص میدهد. این سرور پارامترهای لازم را برای برقراری ارتباط صحیح کلاینتها در شبکه ارسال میکند و در نبود آن، مدیر شبکه ناچار است هر کلاینت جدید را بهصورت دستی پیکربندی کند؛ کاری که بهویژه در شبکههای بزرگ زمانبر و دشوار است
نحوه عملکرد DHCP Relay
عملکرد DHCP Relay بر پایه تبدیل درخواستهای پخششده یا برودکست (Broadcast) به تکآدرس یا یونیکست (Unicast) استوار است تا بتواند از موانع روتر عبور کند. وقتی یک کلاینت در یک زیرشبکه روشن میشود، ابتدا یک پیام DHCP Discover با آدرس مقصد Broadcast میفرستد. از آنجا که روترها این نوع ترافیک را عبور نمیدهند، این پیام در همان زیرشبکه محبوس میشود. در این نقطه، سرویس Relay Agent که روی روتر یا سوییچ لایه ۳ فعال است، این درخواست را دریافت میکند.



نکته اصلی اینجاست که Relay Agent در شبکه قبل از ارسال درخواست به سرور، یک فیلد به نام Giaddr (Gateway IP Address) را در بسته DHCP پر میکند. این فیلد شامل آدرس IP اینترفیس روتری است که درخواست از آنجا دریافت شده است. با این کار، سرور DHCP متوجه میشود که درخواست از کدام زیرشبکه آمده و میتواند آدرس IP مناسب از همان رنج را برای کلاینت اختصاص دهد.
- بیشتر بخوانید: راهنمای کامل پیکربندی سرور DHCP در میکروتیک
پس از اینکه سرور پاسخ را آماده کرد، آن را به آدرس IP اینترفیس Relay Agent میفرستد. Relay Agent سپس بسته را دریافت کرده و آن را به صورت Broadcast در زیرشبکه مبدأ ارسال میکند تا کلاینت بتواند آن را دریافت کند. این چرخه برای مراحل بعدی یعنی Offer، Request و Acknowledge نیز به همین ترتیب تکرار میشود.


این مکانیزم تضمین میکند که سرور مرکزی بدون نیاز به آشنایی قبلی با تمام زیرشبکهها، بتواند به درستی آدرسدهی کند.
مزایای استفاده از DHCP Relay چیست؟
استفاده از DHCP Relay Agent مزایای استراتژیک و فنی قابلتوجهی برای مدیریت شبکههای سازمانی فراهم میکند که مهمترین آنها تمرکز مدیریت و کاهش هزینههاست. با بهکارگیری این سرویس، سازمانها دیگر نیازی به نصب و نگهداری سرورهای DHCP مجزا در هر زیرشبکه ندارند و میتوانند تمام فرآیند تخصیص آدرس را از طریق یک سرور مرکزی واحد انجام دهند. این رویکرد باعث میشود سیاستهای امنیتی، محدودههای آدرسدهی (Scopes) و تنظیمات DNS بهصورت متمرکز اعمال شوند و تغییرات در آینده بسیار سریعتر و بدون خطا انجام شود.
از نظر اقتصادی، حذف سرورهای متعدد در هر شعبه یا طبقه، هزینههای سختافزاری، مصرف انرژی و زمان نگهداری را بهطور چشمگیری کاهش میدهد. همچنین، این معماری مقیاسپذیری شبکه را بهبود میبخشد؛ به این معنا که با اضافه شدن زیرشبکههای جدید، تنها کافی است سرویس Relay را روی روترهای مرزی فعال کنید و نیازی به راهاندازی زیرساخت جدید نیست. در نهایت، این روش پایداری شبکه را افزایش میدهد، زیرا خرابی یک سرور مرکزی میتواند با راهاندازی سریع یک سرور جایگزین مدیریت شود، در حالی که در حالت توزیعشده، خرابی هر سرور محلی منجر به قطع دسترسی کلاینتهای آن بخش میشود.
- بیشتر بخوانید: راهنمای کامل پیکربندی DHCP در ویندوز سرور
پیکربندی DHCP Relay در روتر سیسکو
برای پیکربندی DHCP Relay در سیسکو، باید از دستور ip helper-address در داخل اینترفیسی که کلاینتها به آن متصل هستند استفاده کنید. اگر می پرسید که Ip helper address چیست؟ باید بگوییم که این دستور به روتر میگوید که درخواستهای Broadcast مربوط به سرویسهای خاص، از جمله DHCP، را دریافت کرده و به صورت Unicast به آدرس سرور مرکزی ارسال کند.
مراحل کار به این صورت است که ابتدا وارد حالت پیکربندی اینترفیس میشوید. فرض کنید کلاینتها به اینترفیس GigabitEthernet0/1 متصل هستند و آدرس سرور DHCP شما 192.168.1.100 است. دستورات زیر را به ترتیب وارد میکنید:
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip helper-address 192.168.1.100
Router(config-if)# end
نکته مهم این است که با استفاده از این دستور، روتر بهطور پیشفرض درخواستهای چندین سرویس دیگر مانند DNS، Time Server و TFTP را نیز به سمت سرور هدایت میکند. اگر فقط میخواهید سرویس DHCP رله شود و بقیه سرویسها غیرفعال باشند، میتوانید از دستور no ip forward-protocol udp برای بستن پورتهای دیگر استفاده کنید، اما در محیطهای معمولی سازمانی، همان حالت پیشفرض معمولاً مطلوب است. پس از اعمال تغییرات، با دستور show running-config میتوانید صحت تنظیمات را بررسی کنید.
نکات مهم در تنظیمات DHCP Relay
در تنظیمات DHCP Relay چند نکته فنی حیاتی وجود دارد که اگر نادیده گرفته شوند، باعث اختلال در تخصیص آدرس میشوند. اول از همه، مسیردهی (Routing) باید دوطرفه باشد. یعنی روتری که Relay روی آن فعال است، باید مسیر دسترسی به سرور DHCP را بداند و سرور نیز باید بتواند به زیرشبکههای کلاینتها پاسخ دهد. اگر مسیر باز نباشد، درخواستها گم میشوند.
نکته دوم مربوط به فیلدهای فنی در بستههای DHCP است. همانطور که قبلاً گفتیم، فیلد Giaddr توسط Relay پر میشود. سرور DHCP از این فیلد برای تشخیص اینکه آدرس IP را از کدام رنج (Scope) باید اختصاص دهد، استفاده میکند. اگر این فیلد به درستی پر نشود، سرور نمیداند کدام آدرس را به کلاینت بدهد و ممکن است آدرسی از یک زیرشبکه اشتباه اختصاص دهد یا اصلاً پاسخی ندهد.
یک نکته امنیتی و مدیریتی دیگر، محدود کردن ترافیک رله شده است. دستور ip helper-address بهطور پیشفرض ترافیک چندین سرویس UDP را رله میکند. در شبکههای بزرگ یا حساس، بهتر است فقط پورتهای مورد نیاز (مثل پورت ۶۷ و ۶۸ برای DHCP) را فعال نگه دارید تا از حملات DoS یا شلوغی بیهوده شبکه جلوگیری شود. همچنین، همیشه مطمئن شوید که فایروالهای میانی شبکه، بستههای DHCP را مسدود نمیکنند، زیرا گاهی اوقات تنظیمات امنیتی سختگیرانه مانع از عبور این ترافیک میشوند
جمع بندی
راهاندازی DHCP Relay در سیسکو با دستور ip helper-address روی اینترفیس کلاینت انجام میشود. این دستور درخواستهای Broadcast را به Unicast تبدیل کرده و به سرور مرکزی میفرستد. نکته کلیدی، تعریف Scope مناسب در سرور برای هر زیرشبکه است تا آدرسدهی صحیح صورت گیرد. همچنین، مسیردهی دوطرفه بین روتر و سرور ضروری است. این روش مدیریت متمرکز، کاهش هزینهها و مقیاسپذیری شبکه را تضمین میکند. با رعایت این موارد، تخصیص IP در محیطهای چندزیرشبکهای بهراحتی و بدون نیاز به سرورهای محلی متعدد، امکانپذیر خواهد بود.
سوالات متداول
آیا میتوان چند آدرس DHCP Server برای Relay تعریف کرد؟
بله، در پیکربندی روترهای سیسکو امکان تعریف چندین آدرس سرور DHCP روی یک اینترفیس وجود دارد. با وارد کردن دستور ip helper-address به تعداد دفعات مورد نیاز، روتر درخواستهای دریافتی را به ترتیب به تمام سرورهای لیست شده ارسال میکند. این روش معمولاً برای ایجاد پیکربندیهای پشتیبان (Failover) استفاده میشود تا در صورت خرابی سرور اصلی، سرورهای دیگر پاسخگوی کلاینتها باشند.
اگر DHCP Relay درست کار نکند، چه باید کرد؟
برای عیبیابی، ابتدا باید بررسی کنید که مسیردهی (Routing) بین روتر و سرور DHCP برقرار باشد و هیچ فایروالی پورتهای ۶۷ (UDP) و ۶۸ (UDP) را مسدود نکرده باشد. سپس با استفاده از دستورات دیباگ مانند debug ip dhcp server packet در روتر و بررسی لاگهای سرور، میتوانید تشخیص دهید که آیا درخواستها به درستی ارسال و دریافت میشوند یا خیر. همچنین اطمینان از اینکه Scopeهای سرور با آدرسهای زیرشبکههای مختلف همخوانی دارند، بسیار حیاتی است.
آیا در همه روترها از دستور ip helper-address استفاده میشود؟
خیر، این دستور مختص سیستم عامل سیسکو (Cisco IOS) است. روترهای سایر برندها از دستورات متفاوتی برای عملکرد مشابه استفاده میکنند. برای مثال، در تجهیزات هاپر (Huawei) از دستور dhcp relay server-group و در جونیپر (Juniper) از دستوراتی مانند set protocols dhcp-relay استفاده میشود. با این حال، منطق کلی در همه آنها یکسان است: تبدیل درخواست Broadcast به Unicast و هدایت آن به سرور مرکزی.








