هر کامپیوتری که به شبکه وصل شود اقدام به گرفتن آدرس تعریف شده درون Scope می کند ولی موقعیت هایی به وجود می آید که ما را مجبور به پیاده سازی راه هایی می کنند که با وجود کاربردی بودنشان، ممکن است گران تمام شوند.
یکی از مشکلات زمانی ایجاد می شود که بخواهیم بیشتر از یک Scope برای خدمات شبکه خود تعریف کنیم و بخواهیم client و سرورهای DHCP را در subnet های مختلفی قرار دهیم.
از آنجایی که درخواست های مربوط به DHCP که مربوط به 4 حالت اصلی DISCOVER , OFFER , REQUEST , ACK/NACK هستند همگی به دلایل کاملا فنی و تکنیکی دارای نوع Broadcast هستند
و همچنین یک Router به هیچ وجه درخواست های Broadcast رو از خودش عبور نمیدهد پس اگر کامپیوتری در یک Subnet ای باشد که درآن یک DHCP Server نیست و در Subnet کناری آن DHCP Server باشد، درخواست Broadcast آن از همان روتر دور ریخته می شود.


DHCP Relay Agent چیست




ایجاد و توسعه یک DHCP در شبکه یک بخشی آسان است زمانی که بیشتر از یک Subnet در شبکه داریم مدیریت یه کم پیچیده می شود.
و این به آن دلیل است که DHCP پیغام های همه پخشی را دریافت می کند که نمی تواند از روتر عبور کند. چندین راه برای مدیریت این وضعیت وجود دارد یکی از آن ها قرار دادن DHCP server در هر بخش از شبکه است.
که قطعآ برای یک سازمان که تعداد بخش های آن زیاد است هزینه زیاد و مدیرت سنگینی برای مدیر آن پشتیبانی شبکه خواهد داشت و در واقع از این راه منابع زیادی را از دست داده ایم. راه دیگر ایجاد DHCP Relay Agent است.
DHCP relay agent پروتکلی برای انتقال پیام ها بین clientهای DHCP و سرور DHCP است که در شبکه هایی با IP های متفاوت قرار دارند.
در واقع برای هر بخش شبکه که client های DHCP را شامل می شود به سرور DHCP یا یک کامپیوتر که مانند DHCP Relay Agent عمل می کند نیاز است. که این امر از دو راه میسر می شود و هر کدام مزایا و معایب خود را دارند.


1- اگر یک کامپیوتر در هر Subnet وجود داشته باشه که به هنگام شنیدن درخواست IP این درخواست را بگیرد و نوع آن را تبدیل Unicast کند و سپس آن را به روتر ارسال کند این مشکل حل می شود.
دستگاهی که درsubnet مستقر شده و کار تبدیل درخواست های Broadcast کلاینت ها موجود در نصب شبکه و تبدیل آن به درخواست های unicast را برعهده دارد Relay Agent DHCP نامیده می شود.


2- در راه حل قبلی باز هم مشکل نصب یک سیستم عامل Server درون هر Subnet برطرف نمی شود بلکه نیاز به نصب چندین DHCP Server از بین برده شد.
در راه حل دیگر روترها می توانند به گونه ای تنظیم شوند که پیغام های ( Bootstrap Protocol) DHCP/BOORP را از خود عبور دهند. که در این حالت روتر BOOTP Relay نامیده می شود.
BOOTP Relay Agent بسته را مورد بررسی قرار می دهد و ضمن ایجاد تغییراتی در بسته آن را به DHCP Server ارسال می کند. اما تعدادی از روترها این ویژگی BOOTP Relay را پشتیبانی نمی کنند.
که در این حالت می توان از پیکربندی یک سیستم با ویندوز سرور 2000 RRAS و نصب DHCP Relay Agent در این سیستم اقدام کرد.


مراقب اصطلاحات باشد! Agent ،relay است نه یک Forwarder
مطمئن باشید که تفاوت بین DHCP/BOOTP Relay Agent و روتری که به عنوان BOOTP forwarder عمل می کند تشخیص داده باشد.
به یاد داشته باشید که forwarder پیغام های Broadcast را از روتر مستقیمآ عبور می دهد. در حالیکه DHCP Relay Agent تغییراتی در پیغام های همه پخشی DHCP می دهد و آن را به یک سرور DHCP ارسال می کند.
نکته: DHCP Relay Agent بر روی کامپیوتری که سرویس DHCP بر روی آن راه اندازی شده، در سیستم هایی که در آن ها NAT و یا internet Connection Sharing فعال باشد
را نمی توان راه اندازی کرد و در واقع ما برای پیاده سازی یک روتر نرم افزاری کافی است که یک Windows Server را نصب کرده و سپس RRAS را بر روی آن Config کنیم تا بعنوان Lan Router عمل کند. که ویندوز سرور 2003 به بالا دارای این ویژگی ها هستند .