| dhcrelay(8) | System Manager's Manual | dhcrelay(8) |
نام (NAME)
dhcrelay - عامل رله پروتکل پیکربندی پویای میزبان (DHCP)
خلاصه دستور (SYNOPSIS)
dhcrelay [ -4 ] [ -dqaD ] [ -p port | -rp relay-port ] [ -c count ] [ -A length ] [ -pf pid-file ] [ --no-pid ] [ -m append | replace | forward | discard ] [ -i interface0 [ ... -i interfaceN ] ] [ -iu interface0 [ ... -iu interfaceN ] ] [ -id interface0 [ ... -id interfaceN ] ] [ -U interface ] [ -g ipaddr ] server0 [ ...serverN ]
dhcrelay -6 [ -dqI ] [ -p port | -rp relay-port ] [ -c count ] [ -pf pid-file ] [ --no-pid ] [ -s subscriber-id ] -l lower0 [ ... -l lowerN ] -u upper0 [ ... -u upperN ]
توضیحات (DESCRIPTION)
عامل رله DHCP کنسرسیوم سامانههای اینترنتی (ISC)، یعنی dhcrelay، ابزاری برای رله و بازپخش درخواستهای DHCP و BOOTP از یک زیرشبکه که هیچ کارگزار DHCP مستقیماً به آن متصل نیست، به یک یا چند کارگزار DHCP در سایر زیرشبکهها فراهم میکند. این ابزار از هر دو پروتکل DHCPv4/BOOTP و DHCPv6 پشتیبانی میکند.
نحوه عملکرد (OPERATION)
عامل رله DHCP روی یک یا چند رابط شبکه به پرسوجوهای DHCPv4 یا DHCPv6 ارسالشده از سوی کلاینتها یا سایر عاملهای رله گوش میدهد، و آنها را مطابق مواردی که در خط فرمان مشخص شده است به کارگزاران یا عاملهای رله «بالادستی» (upstream) منتقل میکند. هنگامی که پاسخی از بالادست دریافت میشود، به صورت مالتیکست یا یونیکست به سمت پاییندست (downstream) و به مبدا درخواست اصلی بازگردانده میشود.
گزینهها (OPTIONS)
گزینههای انتخاب پروتکل:
- -6
- اجرای dhcrelay به عنوان یک عامل رله DHCPv6. این گزینه با گزینه -4 ناسازگار است.
- -4
- اجرای dhcrelay به عنوان یک عامل رله DHCPv4/BOOTP. این حالت پیشفرض عملکرد است، بنابراین ذکر این آرگومان ضروری نیست، اما ممکن است برای شفافیت بیشتر مشخص شود. این گزینه با گزینه -6 ناسازگار است.
تعیین کارگزاران DHCPv4/BOOTP:
در حالت DHCPv4، باید فهرستی از یک یا چند نشانی کارگزار در خط فرمان مشخص شود تا پرسوجوهای DHCP/BOOTP به آنها رله شوند.
گزینههای مشترک برای هر دو حالت DHCPv4 و DHCPv6:
- -c count
- حداکثر تعداد جهش (hop count). هنگام هدایت بستهها، dhcrelay بستههایی را که تعداد جهش آنها به count رسیده باشد دور میاندازد. مقدار پیشفرض ۱۰ و حداکثر مقدار مجاز ۲۵۵ است.
- -d
- اجبار dhcrelay به اجرا در پیشزمینه (foreground). این گزینه هنگام اجرای dhcrelay تحت یک دیباگر، یا اجرا خارج از inittab در سیستمهای System V مفید است.
- -p port
- گوش دادن و ارسال روی پورت port. این گزینه بیشتر برای مقاصد اشکالزدایی مفید است. پورت پیشفرض برای DHCPv4/BOOTP پورت ۶۷ و برای DHCPv6 پورت ۵۴۷ است. این گزینه با -rp ناسازگار است.
- -rp relay-port
- پورت مبدا جایگزین برای پیامهای بالادستی (به سمت کارگزار) همراه با زیرگزینه relay-port در فیلد اطلاعات عامل رله (RAI) برای DHCPv4 یا گزینه relay-source-port در DHCPv6. پشتیبانی از پورت رله تنها در صورتی فعال است که برنامه با (./configure --enable-relay-port) کامپایل شده باشد و نیازمند دسترسی به لایه پیوند LPF یا BPF است.
- -q
- حالت بیصدا (Quiet mode). از چاپ تنظیمات پیکربندی شبکه در زمان راهاندازی جلوگیری میکند.
- -pf pid-file
- مسیر فایل PID جایگزین.
- --no-pid
- گزینهای برای غیرفعال کردن نوشتن فایل PID. بهطور پیشفرض این برنامه یک فایل PID مینویسد.
گزینههای مختص حالت DHCPv4:
- -a
- افزودن فیلد گزینه عامل (agent option field) به هر درخواست پیش از ارسال آن به کارگزار. فیلدهای گزینه عامل در پاسخهای ارسالی از کارگزاران به کلاینتها، پیش از ارسال مجدد این پاسخها به کلاینت حذف خواهند شد. فیلد گزینه عامل شامل دو زیرگزینه خواهد بود: زیرگزینه شناسه مدار (Circuit ID) و زیرگزینه شناسه دوردست (Remote ID). در حال حاضر، شناسه مدار نام قابل چاپ رابط شبکهای خواهد بود که درخواست کلاینت روی آن دریافت شده است. کلاینت از گنجاندن زیرگزینه شناسه دوردست نیز پشتیبانی میکند، اما این مورد بهطور پیشفرض استفاده نمیشود.
- -A length
- تعیین حداکثر اندازه بسته برای ارسال به یک کارگزار DHCPv4/BOOTP. این کار ممکن است به منظور فراهم کردن فضای کافی جهت افزودن گزینههای عامل رله، در عین حفظ اندازه در محدوده MTU اترنت انجام گیرد.
- -D
- دور انداختن بستههای دریافتی از کارگزاران بالادستی در صورتی که حاوی گزینههای اطلاعات عامل رله (Relay Agent Information) باشند و نشان دهند که در پاسخ به پرسوجویی ارسال شدهاند که از طریق یک عامل رله دیگر آمده است. اگر این گزینه مشخص نشود، اینگونه بستهها در هر صورت رله خواهند شد.
- -g ipaddr
- هنگامی که بستهای به کلاینت بازگردانده میشود، نشانی IP دروازه (giaddr) را با نشانی دادهشده در ipaddr جایگزین میکند. این گزینه میتواند به عنوان یک راهکار موقت برای کلاینتهای معیوب (مانند گراب سولاریس ۱۱) استفاده شود که به جای روتر اعلامشده (گزینه ۳)، از giaddr برای تنظیم مسیر پیشفرض خود استفاده میکنند.
- -i ifname
- گوش دادن به ترافیک DHCPv4/BOOTP روی رابط شبکه ifname. با استفاده از چند گزینه -i میتوان چندین رابط شبکه را مشخص کرد. اگر هیچ رابطی در خط فرمان مشخص نشود، dhcrelay تمام رابطهای شبکه را شناسایی کرده، رابطهای غیرپخشی (non-broadcast) را در صورت امکان حذف میکند، و تلاش مینماید روی همه آنها گوش دهد.
- -iu ifname
- یک رابط شبکه بالادستی (upstream) را مشخص میکند: رابطی که پاسخها از کارگزاران و سایر عاملهای رله از آن پذیرفته خواهند شد. با استفاده از چند گزینه -iu میتوان چندین رابط شبکه را مشخص کرد. این آرگومان برای استفاده به همراه یک یا چند آرگومان -i یا -id در نظر گرفته شده است.
- -id ifname
- یک رابط شبکه پاییندستی (downstream) را مشخص میکند: رابطی که درخواستها از کلاینتها و سایر عاملهای رله از آن پذیرفته خواهند شد. با استفاده از چند گزینه -id میتوان چندین رابط را مشخص کرد. این آرگومان برای استفاده به همراه یک یا چند آرگومان -i یا -iu در نظر گرفته شده است.
- -m append|replace|forward|discard
- نحوه مدیریت بستههای ورودی DHCPv4 را که از قبل حاوی گزینههای عامل رله هستند کنترل میکند. اگر در سرآیند چنین بستهای giaddr تنظیم نشده باشد، استاندارد DHCP ایجاب میکند که بسته دور انداخته شود. با این حال، اگر giaddr تنظیم شده باشد، عامل رله میتواند به چهار روش با این وضعیت برخورد کند: میتواند مجموعه گزینههای رله خود را به بسته الحاق کند (append) و فیلد گزینه ارائهشده را دستنخورده باقی بگذارد؛ فیلد گزینه عامل موجود را جایگزین نماید (replace)؛ بسته را بدون تغییر هدایت کند (forward)؛ یا آن را دور بیندازد (discard).
- -U ifname
- افزودن زیرگزینه انتخاب پیوند (link selection) منطبق با RFC 3527 را برای کلاینتهایی که مستقیماً به رله متصل هستند فعال میکند. این RFC به رله اجازه میدهد تا دو نشانی IP مختلف را مشخص کند: یکی برای کارگزار جهت استفاده در ارتباط با رله (giaddr) و دیگری برای انتخاب زیرشبکه کلاینت (زیرگزینه). این ویژگی زمانی که کارگزار قادر به ارسال بستهها به رله از طریق نشانی استفادهشده برای زیرشبکه نیست، میتواند مفید باشد.
در صورت فعال بودن، dhcrelay یک گزینه عامل (مطابق با گزینه -a در بالا) شامل زیرگزینه انتخاب پیوند را به بسته هدایتشده اضافه میکند. این کار تنها برای بستههای دریافتی از کلاینتهایی انجام میشود که مستقیماً به رله متصل هستند (یعنی مقدار giaddr صفر است). نشانی استفادهشده در زیرگزینه، نشانی همان پیوندی خواهد بود که بسته ورودی روی آن دریافت شده است (که در غیر این صورت برای giaddr استفاده میشد). مقدار giaddr روی نشانی رابط ifname تنظیم خواهد شد.
تنها یک رابط باید به این شیوه مشخص شود. در حال حاضر فعالسازی این گزینه روی یک رابط باعث میشود رله تمام ترافیک DHCP را مشابه گزینه -i پردازش کند؛ در آینده ممکن است این دو مورد را بهطور کاملتری از هم تفکیک کنیم.
این گزینه بهطور پیشفرض غیرفعال است. توجه داشته باشید که فعال کردن این گزینه، گزینه -a را نیز بهطور خودکار فعال میکند.
به خاطر داشته باشید که استفاده از گزینههایی مانند -m replace یا -m discard روی رلههای بالادست رلهای که از -U استفاده میکند میتواند مشکلاتی ایجاد نماید. رله بالادست گزینه اولیه عامل شامل انتخاب پیوند را پاک میکند در حالی که مقدار تغییریافته giaddr را بر جای میگذارد و این امر موجب هدایت نادرست و سرگردانی بستهها میشود.
گزینههای مختص حالت DHCPv6:
- -I
- استفاده اجباری از گزینه Interface-ID در DHCPv6. این گزینه هنگام استفاده از دو یا چند رابط پاییندستی بهطور خودکار ارسال میشود تا میان آنها تمایز قائل شود. گزینه -I باعث میشود dhcrelay این گزینه را حتی در صورت وجود تنها یک رابط پاییندستی نیز ارسال کند.
- -s subscriber-id
- افزودن گزینهای با subscriber-id مشخصشده به داخل بسته. این ویژگی بیشتر برای آزمایش است تا استفاده در محیط عملیاتی، چرا که برای تمام کلاینتها همان subscriber-id یکسان را در بسته درج میکند.
- -l [address%]ifname[#index]
- رابط شبکه «پاییندستی» (lower) را برای حالت رله DHCPv6 مشخص میکند: رابطی که پرسوجوها از کلاینتها یا سایر عاملهای رله روی آن دریافت خواهند شد. هنگام اجرا در حالت DHCPv6 حداقل باید یک گزینه -l در خط فرمان گنجانده شود. نام رابط ifname یک پارامتر اجباری است. نشانی پیوند را میتوان با address% مشخص کرد؛ در صورت عدم تعیین، dhcrelay از نخستین نشانی غیر پیوند-محلی (non-link-local) پیکربندیشده روی رابط استفاده خواهد کرد. پارامتر اختیاری #index شاخص رابط را مشخص میکند.
- -u [address%]ifname
- رابط شبکه «بالادستی» (upper) را برای حالت رله DHCPv6 مشخص میکند: رابطی که پرسوجوهای کلاینتها و سایر عاملهای رله باید به آن هدایت شوند. هنگام اجرا در حالت DHCPv6 حداقل باید یک گزینه -u در خط فرمان گنجانده شود. نام رابط ifname یک پارامتر اجباری است. نشانی یونیکست یا مالتیکست مقصد را میتوان با address% مشخص نمود؛ در صورت عدم تعیین، عامل رله بسته را به نشانی مالتیکست All_DHCP_Relay_Agents_and_Servers در DHCPv6 ارسال خواهد کرد.
امکان تعیین یک رابط یکسان با نشانیهای مختلف به دفعات وجود دارد، و حتی در صورتی که سیستم پشتیبانی کند، میتوان از یک رابط به عنوان هر دو رابط بالادستی و پاییندستی استفاده نمود.
همچنین ببینید (SEE ALSO)
dhclient(8), dhcpd(8), RFC3315, RFC2132, RFC2131.
اشکالات (BUGS)
استفاده از یک رابط یکسان در هر دو سمت بالادستی و پاییندستی ممکن است باعث ایجاد حلقه (loop) شود، بنابراین هنگام اجرا به این شیوه، حداکثر تعداد جهش (hop count) باید روی یک مقدار کم تنظیم گردد.
رابط لوپبک (loopback) هنوز به عنوان یک رابط معتبر شناخته نمیشود.
نویسندگان (AUTHORS)
این نرمافزار برای Internet Systems Consortium توسط Ted Lemon و با همکاری Vixie Enterprises نوشته شده است.
برای کسب اطلاعات بیشتر درباره Internet Systems Consortium، به نشانی زیر مراجعه کنید: https://www.isc.org