| DHCPCD.CONF(5) | File Formats Manual | DHCPCD.CONF(5) |
توضیحات (DESCRIPTION)
اگرچه
dhcpcd
میتواند
همه کارها
را از طریق
خط فرمان
انجام دهد،
مواردی
وجود دارد
که انجام
یکباره
آنها در یک
پرونده
پیکربندی
آسانتر
است. بسیاری
از
گزینههای
موجود در
dhcpcd(8)
میتوانند
در اینجا
نیز
استفاده
شوند.
نخستین
کلمه در هر
خط، گزینه و
باقیمانده
خط، مقدار
آن است.
فاصلههای
خالی
ابتدایی و
انتهایی
گزینه و
مقدار حذف (trim)
میشوند.
میتوانید
با استفاده
از نویسه
کاراکترها
را در مقدار
اسکیپ کنید.
توضیحات
میتوانند
با نویسه #
آغاز شوند.
مقادیر
رشتهای
باید داخل
نویسه "
(نقلقول)
قرار
گیرند.
فهرست گزینههای موجود در ادامه آمده است:
allowinterfacespattern- هنگام
شناسایی
رابطها،
نام رابط
باید با
pattern تطابق
داشته
باشد، که
فهرستی از
الگوهای
جداشده با
فاصله یا
کاما است که
به fnmatch(3)
ارسال
میشوند.
اگر همان
رابط در
denyinterfacesتطابق یابد، همچنان رد خواهد شد. denyinterfacespattern- هنگام شناسایی رابطها، نام رابط نباید با pattern تطابق داشته باشد، که فهرستی از الگوهای جداشده با فاصله یا کاما است که به fnmatch(3) ارسال میشوند.
anonymous- پروفایلهای
ناشناسی (Anonymity
Profiles) را برای DHCP
طبق RFC 7844 فعال
میکند.
هرگونه DUID
نادیده
گرفته
میشود و ClientID
فقط روی LL
تنظیم
میگردد.
سپس
dhcpcdفقط گزینههای ضروری راallowمیکند. گزینههای غیرضروری را میتوان با استفاده ازallowیاrequestمجاز کرد. گزینهanonymousباید آخرین گزینه در پیکربندی باشد، مگر اینکه واقعاً بخواهید چیزی ارسال کنید که بتواند هویت شما را فاش کند.dhcpcdتلاشی برای راهاندازی مجدد اجاره قدیمی (reboot lease) نخواهد کرد و مستقیماً وارد مرحله DISCOVER/SOLICIT میشود. randomise_hwaddr- هنگام بالا آمدن رابط یا زمانی که سیگنال حامل (carrier) قطع میشود، تصادفیسازی آدرس سختافزاری را اجبار میکند. این گزینه معمولاً همراه با گزینه anonymous استفاده میشود.
arpingaddress [address]- قبل از تلاش
برای DHCP،
dhcpcdبه ترتیب به هر نشانی arping ارسال میکند. اگر آدرسی یافت شود، آدرس سختافزاری پاسخدهنده به عنوان نمایه (profile) انتخاب میشود، در غیر این صورت آدرس IP انتخاب خواهد شد. مثال:interface bge0arping 192.168.0.1# My specific 192.168.0.1 networkprofile dd:ee:aa:dd:bb:eestatic ip_address=192.168.0.10/24# A generic 192.168.0.1 networkprofile 192.168.0.1static ip_address=192.168.0.98/24 authprotocolprotocol [algorithm [rdm]]- پیامهای DHCP را احراز هویت میکند. بخش پروتکلهای احراز هویت پشتیبانیشده را ببینید. اگر protocol برابر token باشد، در این صورت algorithm بهصورت snd_secretid/rcv_secretid خواهد بود تا بتوانید توکنهای متفاوتی را ارسال و دریافت کنید.
authtokensecretid realm expire key- یک کلید
اشتراکی را
برای
استفاده در
احراز هویت
تعریف
میکند.
realm
میتواند
برای
استفاده با
پروتکل
delayed
بهصورت ""
باشد. expire
تاریخ
انقضای
توکن است و
باید در
قالب "yyy-mm-dd HH:MM"
فرمتبندی
شود.
میتوانید
از
کلیدواژه
forever یا 0
استفاده
کنید که به
این معناست
توکن هرگز
منقضی
نمیشود.
برای
پروتکل token،
مقدار secretid
باید 0 و
مقدار realm
باید ""
باشد. اگر
dhcpcdبا خطایdhcp_auth_encode: Invalid argumentمواجه شود، به این معناست کهdhcpcdنتوانسته توکن احراز هویت صحیح را در پیکربندی شما پیدا کند. background- بلافاصله در پسزمینه فورک (اجرا) میشود. این گزینه برای اسکریپتهای راهاندازی که پیامهای پیوند (link) مربوط به وضعیت حامل (carrier) را غیرفعال نمیکنند مفید است.
blacklistaddress[/cidr]- تمام بستههای دریافتی از address[/cidr] را نادیده میگیرد.
whitelistaddress[/cidr]- تنها
بستههای
دریافتی از
address[/cidr] را
میپذیرد.
اگر
whitelistتنظیم شده باشد،blacklistنادیده گرفته میشود. bootp- به عنوان یک کلاینت BOOTP عمل میکند. در اصل، گزینه DHCP Message Type ارسال نمیشود و برنامه فقط با یک سرور BOOTP تعامل خواهد داشت. سایر گزینههای DHCP همچنان کار میکنند.
broadcast- به سرور DHCP
دستور
میدهد
پاسخها را
به صورت
برودکست
(پخش
همگانی) به
کلاینت
بفرستد. به
طور معمول
این گزینه
فقط برای
رابطهای
غیر اترنت،
مانند FireWire و InfiniBand
تنظیم
میشود. در
بیشتر
موارد،
dhcpcdاین مورد را به طور خودکار تنظیم میکند. controlgroupgroup- اعضای این گروه کاربری میتوانند dhcpcd را کنترل کنند، از جمله (اما نه محدود به) متوقف کردن و راهاندازی رابطها.
readgroupgroup- اعضای این گروه کاربری میتوانند پیکربندی رابطهای dhcpcd را بخوانند.
debug- پیامهای اشکالزدایی را به stderr و syslog ارسال میکند.
devvalue- ماژول
مدیریت
/dev
مشخصشده
توسط value
را
بارگذاری
میکند.
dhcpcdاولین ماژولی را که کارایی داشته باشد (در صورت وجود) بارگذاری خواهد کرد. envvalue- مقدار value
را برای
استفاده در
dhcpcd-run-hooks(8)
به
متغیرهای
محیطی
ارسال
میکند.
برای
نمونه،
میتوانید
با
envforce_hostname=YES هوک hostname را مجبور کنید که همیشه نام میزبان را تنظیم کند. یا مشخص کنید کدام درایور توسط wpa_supplicant(8) استفاده شود با:envwpa_supplicant_driver=nl80211اگر نام میزبان تنظیم شده باشد، در صورت امکان مطابق با بخش ۳.۱ از RFC 4702 روی FQDN تنظیم میشود. اگر گزینه FQDN وجود نداشته باشد،
dhcpcdبرای حفظ یکپارچگی همچنان تلاش میکند یک FQDN از گزینههای hostname و domain ایجاد و تنظیم کند. برای بازنویسی این رفتار، مقدارenvhostname_fqdn=[YES|NO|SERVER] را تنظیم کنید. مقدار SERVER به این معنی است که دقیقاً همان چیزی که سرور میگوید بدون دستکاری استفاده شود. این امر ممکن است در شبکههای دارای DHCPv4 و DHCPv6 که در آن نام میزبان DHCPv4 کوتاه است و DHCPv6 دارای FQDN است، منجر به نام میزبان ناسازگار شود. پروتکل DHCPv6 گزینهای برای نام میزبان (hostname) ندارد. clientidstring- شناسه clientid
را ارسال
میکند. اگر
رشته در
قالب 01:02:03
باشد، به
عنوان
هگزادسیمال
کدگذاری
میشود.
برای
رابطهایی
که آدرس
سختافزاری
آنها
طولانیتر
از ۸ بایت
است، یا اگر
clientid یک
رشته خالی
باشد،
dhcpcdیک clientid پیشفرض متشکل از خانواده سختافزار و آدرس سختافزاری ارسال میکند. duid[ll | lt | uuid | value]- از یک شناسه
یکتای DHCP
موسوم به DUID (DHCP
Unique Identifier)
استفاده
میکند. اگر
حافظه
پایدار در
دسترس
باشد، DUID-LLT
(آدرس محلی
پیوند +
زمان) تولید
میشود، در
غیر این
صورت DUID-LL (آدرس
محلی پیوند)
ایجاد
میگردد. در
صورتی که
پرونده
/var/lib/dhcpcd/duid
وجود
نداشته
باشد، نوع DUID
میتواند
به عنوان یک
پارامتر
اختیاری
مشخص شود.
اگر مقدار
دادهشده
ll, lt یا
uuid
نباشد،
مقدار value
از قالب 00:11:22:33
تبدیل
خواهد شد.
این مقدار
به همراه IAID
به عنوان
clientidاستفاده میشود. مقدار DUID تولیدشده در /var/lib/dhcpcd/duid نگهداری خواهد شد و نباید به سایر میزبانها کپی شود. این پرونده همچنین بر قوانین بالا اولویت دارد، مگر در حالتی که مقدار صریح مشخص شده باشد. iaidiaid- شناسه
ارتباط
رابط (Interface Association Identifier)
را روی iaid
تنظیم
میکند. این
گزینه باید
در یک بلوک
interfaceاستفاده شود. مقدار پیشفرض آن در صورت تنظیم، VLANID (با پیشوند 0xff) رابط است، در غیر این صورت ۴ بایت آخر آدرس سختافزاری اختصاصیافته به رابط خواهد بود. هر نمونه از آن باید در محدوده کلاینت یکتا باشد وdhcpcdدر صورت شناسایی تداخل هشدار میدهد. اگر تداخلی رخ دهد، تنها زمانی مشکلساز خواهد بود که IAIDهای متداخل در یک شبکه یکسان استفاده شوند. dhcp- پروتکل DHCP را روی رابط فعال میکند؛ به صورت پیشفرض فعال است.
dhcp6- پروتکل DHCPv6 را روی رابط فعال میکند؛ به صورت پیشفرض فعال است.
ipv4- پروتکل IPv4 را روی رابط فعال میکند؛ به صورت پیشفرض فعال است.
ipv6- پروتکل IPv6 را روی رابط فعال میکند؛ به صورت پیشفرض فعال است.
request[address]- نشانی address را در پیام DHCP DISCOVER درخواست میکند. هیچ تضمینی وجود ندارد که سرور DHCP دقیقاً همین آدرس را اختصاص دهد. اگر هیچ address مشخص نشود، اولین آدرسی که در حال حاضر به interface اختصاص یافته است استفاده میشود.
inform[address[/cidr[/broadcast_address]]]- مانند
requestدر بالا عمل میکند، اما به جای DISCOVER/REQUEST یک پیام DHCP INFORM میفرستد. این حالت منجر به دریافت اجاره به معنای معمول نمیشود، بلکه تنها سرور DHCP را از address در حال استفاده مطلع میکند. همچنین در صورتی که آدرس از قبل روی رابط پیکربندی نشده باشد، باید شناسه شبکه اختیاری cidr را درج کنید.dhcpcdدر حال اجرا باقی میماند و وانمود میکند که اجاره نامحدود دارد.dhcpcdهنگام خروج، پیکربندی رابط را لغو نخواهد کرد. اگرdhcpcdنتواند با سرور DHCP ارتباط برقرار کند، به جای بازگشت به IPv4LL، یک خطا برمیگرداند. inform6- یک درخواست
اطلاعات DHCPv6
Information Request انجام
میدهد. هیچ
آدرسی
درخواست یا
مشخص
نمیشود،
اما سایر
گزینههای
DHCPv6 مجاز
هستند. به
طور معمول
این کار
زمانی به
صورت
خودکار
انجام
میشود که
اعلان
مسیریاب (IPv6 Router
Advertisement) مشخص کند
کلاینت
باید این
عملیات را
انجام دهد.
این گزینه
تنها زمانی
نیاز است که
dhcpcdپیامهای IPv6 RA را پردازش نمیکند و نیاز به یک DHCPv6 Information Request وجود دارد. persistentdhcpcdبه طور معمول هنگام خروج، پیکربندی و رابط را لغو میکند. گاهی اوقات این حالت مطلوب نیست؛ به عنوان مثال اگر پارتیشن ریشه روی NFS سوار شده باشد یا کلاینتهای SSH به این میزبان متصل باشند و نیاز باشد از خاموش شدن میزبان مطلع شوند. میتوانید از این گزینه برای جلوگیری از این اتفاق استفاده کنید.fallbackprofile- در صورت شکست DHCP، به استفاده از این نمایه (profile) برمیگردد. این به شما امکان میدهد به جای استفاده از ZeroConf، یک نمایه ایستا را پیکربندی کنید.
initial_intervalseconds- فاصله
زمانی
اولیه
ارسال مجدد
DHCPv4 را روی
seconds ثانیه
تنظیم
میکند.
حداقل
مقدار ۱ و
حداکثر ۴
است. مقدار
پیشفرض
طبق RFC 2131 برابر
۴ ثانیه
است. این
گزینه فقط
بر DHCPv4 تأثیر
میگذارد؛
ارسال مجدد
در DHCPv6 طبق RFC 8415
اداره
میشود.
همچنین
گزینههای
backoff_cutoffوbackoff_jitterرا ببینید. backoff_cutoffseconds- حداکثر سقف
فاصله
زمانی
عقبنشینی
نمایی (exponential backoff)
در DHCPv4 را روی
seconds ثانیه
محدود
میکند.
حداقل
مقدار ۱ و
حداکثر ۶۴
است. مقدار
پیشفرض
طبق RFC 2131 برابر
۶۴ ثانیه
است. اگر
seconds کمتر
از
initial_intervalباشد، مقدار آن افزایش مییابد تا با آن برابر شود، زیرا سقف بازه (cutoff) حدی برای رشد نمایی است و نباید فاصله زمانی اولیه را کوچکتر کند. تنظیم همزمان هر دو گزینهinitial_intervalوbackoff_cutoffروی ۱ عملاً رشد نمایی را غیرفعال میکند، به طوری که ارسالهای مجدد تنها از فاصله زمانی اولیه به همراه نوسان تصادفی (jitter) استفاده میکنند. این گزینه فقط بر DHCPv4 تأثیر میگذارد؛ ارسال مجدد در DHCPv6 طبق RFC 8415 اداره میشود. همچنین گزینههایinitial_intervalوbackoff_jitterرا ببینید. backoff_jittermilliseconds- میزان
نوسان
تصادفی (jitter)
اعمالشده
بر هر فاصله
زمانی
ارسال مجدد
DHCPv4 را تنظیم
میکند. این
نوسان به
صورت ±
milliseconds
میلیثانیه
اعمال
میشود.
مقدار
پیشفرض
طبق RFC 2131 برابر
۱۰۰۰ (±۱
ثانیه) است
که حداکثر
مقدار مجاز
نیز
میباشد.
مقدار ۰
نوسان را
غیرفعال
کرده و
زمانبندی
ارسال مجدد
معین (قطعی)
ایجاد
میکند. این
گزینه فقط
بر DHCPv4 تأثیر
میگذارد؛
ارسال مجدد
در DHCPv6 طبق RFC 8415
اداره
میشود.
همچنین
گزینههای
backoff_cutoffوinitial_intervalرا ببینید. fallback_timeseconds- حالت جایگزین (fallback) را پس از seconds ثانیه آغاز میکند. مقدار پیشفرض ۵ ثانیه است.
hostnamename- نام میزبان name را به سرور DHCP ارسال میکند تا بتواند در DNS ثبت شود. اگر name یک رشته خالی باشد، نام میزبان فعلی سیستم ارسال میشود. اگر name یک FQDN باشد (یعنی شامل نقطه . باشد)، به همان صورت کدگذاری میشود.
hostname_short- به جای FQDN،
نام میزبان
کوتاه را به
سرور DHCP
ارسال
میکند. این
گزینه از آن
جهت مفید
است که اگر
بخش دامنه
با سرور DHCP
مطابقت
نداشته
باشد،
سرورها FQDN را
در DNS خود ثبت
نمیکنند.
همچنین گزینه
envدر بالا را برای کنترل چگونگی تنظیم نام میزبان روی سیستم ببینید. ia_na[iaid [/ address]]- یک نشانی
عادی DHCPv6 (Normal Address)
برای iaid
درخواست
میکند.
مقدار
پیشفرض
iaid همان
گزینه
iaidتوضیح داده شده در بالا است. میتوانید با مشخص کردن یک iaid یکتا برای هر کدام، بیش از یک ia_na درخواست کنید. ia_ta[iaid]- یک نشانی موقت DHCPv6 (Temporary Address) برای iaid درخواست میکند. میتوانید با مشخص کردن یک iaid یکتا برای هر کدام، بیش از یک ia_ta درخواست کنید.
ia_pd[iaid [/ prefix / prefix_len] [interface [/ sla_id [/ prefix_len [/ suffix]]]]]- یک پیشوند
تفویضشده
(Delegated Prefix) DHCPv6 برای
iaid
درخواست
میکند. این
گزینه باید
در یک بلوک
interfaceاستفاده شود. مگر اینکه یک sla_id با مقدار ۰ با همان طول پیشوند حاصل از تفویض اختصاص داده شود، یک مسیر رد (reject route) برای پیشوند تفویضشده نصب میشود تا از مسیریابی نشانیهای تخصیصنیافته به سمت بالادست جلوگیری شود. اگر هیچ interface مشخص نشود، به هر رابط دیگری یک پیشوند با sla_id معادل با ایندکس رابط که توسط سیستمعامل تعیین شده اختصاص مییابد. در غیر این صورت، نشانیها تنها به ازای هر interface و sla_id تخصیص داده میشوند. برای جلوگیری از تفویض به هر رابطی، از - به عنوان نام نامعتبر رابط استفاده کنید. هر آدرس تخصیصیافته دارای یک suffix خواهد بود که مقدار پیشفرض آن ۱ است. اگر suffix برابر ۰ باشد، یک نشانی SLAAC تخصیص مییابد. نمیتوانید به رابط درخواستکننده یک پیشوند اختصاص دهید، مگر اینکه سرور DHCPv6 ازRFC 6603(گزینه رد پیشوند یا Prefix Exclude Option) پشتیبانی کند.dhcpcdباید برای تمام رابطهایی که به آنها پیشوند تفویض میکند در حال اجرا باشد. طول پیشفرض prefix_len برابر ۶۴ در نظر گرفته میشود، مگر اینکه بیشترین مقدار sla_id در آن نگنجد. در این صورت prefix_len به بالاترین مضرب ۸ که بتواند sla_id را در خود جای دهد افزایش مییابد. sla_id یک عدد صحیح است که باید در داخل iaid یکتا باشد و به پیشوندی اضافه میشود که باید درون prefix_len منهای طول پیشوند تفویضشده جا بگیرد. میتوانید چند مقدار interface / sla_id / prefix_len را به ازای هرia_pdبه صورت جداشده با فاصله مشخص کنید. هنگام درخواست Prefix Delegation، گزینه IPv6RS باید به صورت سراسری غیرفعال شود.در مثال زیر، eth0 رابط متصل به شبکه خارجی است که برای هر دو پروتکل IPv4 و IPv6 پیکربندی میشود. سرور DHCPv4 یک نشانی IPv4 و یک مسیر پیشفرض ارائه میدهد. سرور DHCPv6 یک نشانی IPv6، یک مسیر پیشفرض و یک زیرشبکه /64 برای تفویض به رابط داخلی ارائه خواهد داد. رابط eth1 با استفاده از اولین آدرس (::1) از پیشوند تفویضشده به طور خودکار برای IPv6 پیکربندی میشود. یک پیشوند دوم درخواست شده و به دو رابط دیگر اختصاص مییابد. میتوان از rtadvd(8) با یک پرونده پیکربندی خالی در eth1، eth2 و eth3 برای ارائه پیکربندی خودکار نشانی IPv6 در شبکه داخلی استفاده کرد.
noipv6rs # غیرفعالسازی درخواست مسیریابی denyinterfaces eth2 # دست نزدن به eth2 interface eth0 ipv6rs # فعالسازی درخواست مسیریابی برای eth0 ia_na 1 # درخواست یک نشانی IPv6 ia_pd 2 eth1/0 # درخواست PD و اختصاص به eth1 ia_pd 3 eth2/1 eth3/2 # درخواست PD و اختصاص به eth2 و eth3 ia_pd 4 - # درخواست PD بدون اختصاص به رابط
ipv4only- تنها IPv4 را پیکربندی میکند.
ipv6only- تنها IPv6 را پیکربندی میکند.
fqdn[disable | none | ptr | both]- مقدار none
از سرور DHCP
نمیخواهد
که DNS را
بهروزرسانی
کند. مقدار
ptr فقط از
سرور DHCP
میخواهد
که رکورد PTR
میزبان را
در DNS بهروز
کند، در
حالی که
both رکورد A
را نیز
بهروزرسانی
میکند.
مقدار disable
گزینه FQDN را
غیرفعال
میکند.
حالت
پیشفرض
both است.
خود
dhcpcdهرگز بهروزرسانیهای DNS را مستقیماً انجام نمیدهد.dhcpcdنام میزبان FQDN را طبق مشخصاتRFC 1035کدگذاری میکند. interfaceinterface- گزینههای بعدی تنها برای این interface تجزیه میشوند. تطبیق الگو از طریق fnmatch(3) مجاز است.
ipv4ll_timeseconds- پیش از آغاز IPv4LL به مدت seconds ثانیه منتظر میماند. مقدار پیشفرض ۵ ثانیه است.
ipv6ra_autoconf- به ازای هر پیشوند اعلامشده در پیام اعلان مسیریاب (IPv6 Router Advertisement) که پرچم Auto آن فعال باشد، نشانیهای SLAAC تولید میکند. به صورت پیشفرض فعال است.
ipv6ra_noautoconf- گزینه فوق را غیرفعال میکند.
ipv6ra_fork- به صورت
پیشفرض،
هنگامی که
dhcpcdیک اعلان مسیریاب IPv6 دریافت میکند، تنها زمانی به پسزمینه فورک میشود که RA حداقل شامل یک گزینه منقضینشده RDNSS و یک پیشوند معتبر باشد، یا هیچ دستورالعملی برای DHCPv6 نداشته باشد. تنظیم این گزینه باعث میشودdhcpcdهمواره با دریافت یک RA به پسزمینه فورک شود. ipv6rs- درخواست اعلان مسیریاب (IPv6 Router Advertisement solicitation) را فعال میکند. این گزینه به صورت پیشفرض فعال است، اما در اینجا برای مواردی مستند شده که به صورت سراسری غیرفعال است اما نیاز است برای یک رابط خاص فعال شود.
lastlease- اگر
dhcpcdنتواند اجارهای به دست آورد، تلاش میکند از آخرین اجاره کسبشده برای رابط استفاده کند. lastleaseextend- مشابه
گزینه بالا
است، اما
اجاره حتی
در صورت
انقضا نیز
حفظ میشود.
در صورتی که
هر میزبان
دیگری از
طریق ARP تلاش
کند آن را
به خود
اختصاص
دهد،
dhcpcdآن را واگذار خواهد کرد. این عمل بخش ۳.۷ از RFC 2131 را نقض میکند، که بیان میدارد اجاره به محض انقضا باید رها شود. leasetimeseconds- مدت زمان
اجاره DHCP به
اندازه
seconds ثانیه
درخواست
میکند.
مقدار -1
نشاندهنده
زمان اجاره
نامحدود
است. به
صورت
پیشفرض،
dhcpcdهیچ زمان اجارهای درخواست نمیکند و آن را به سرور DHCP واگذار میکند. درخواست زمان اجاره برای DHCPv6 امکانپذیر نیست زیرا با استانداردهای RFC سازگار نیست. بخشهای ۲۱.۴، ۲۱.۶، ۲۱.۲۱ و ۲۱.۲۲ از RFC 8415 را ببینید. link_rcvbufsize- اندازه
بافر
دریافت
پیوند (link receive buffer)
را نسبت به
مقدار
پیشفرض
کرنل
بازنویسی
میکند.
اگرچه
dhcpcdاز سرریزهای بافر پیوند بازیابی میشود، اما این رخداد در سیستمهای تحت بار کاری سنگین ممکن است مطلوب نباشد. logfilelogfile- در logfile
مشخصشده
مینویسد.
dhcpcdهمچنان در syslog(3) نیز مینویسد. هنگامی کهdhcpcdسیگنالSIGUSR2را دریافت کند، logfile مجدداً باز میشود. metricmetric- متریکها
برای ترجیح
دادن یک
رابط بر
دیگری
استفاده
میشوند که
کمترین
مقدار
برنده است.
dhcpcdمتریک پیشفرض 1000 + if_nametoindex(3) را در نظر میگیرد. این مقدار برای رابطهای بیسیم با ۲۰۰۰ واحد، برای IPv4LL با ۱۰۰۰۰۰۰ واحد و برای رابطهای رومینگ با ۲۰۰۰۰۰۰ واحد آفست (افزایش) خواهد یافت. mudurlurl- آدرس اینترنتی (URL) مربوط به شرح کاربرد سازنده (MUD) را مشخص میکند. این شرح توسط دستگاههای شبکه بالادست برای ایجاد فهرستهای دسترسی مورد نظر استفاده میشود. برای اطلاعات بیشتر، پیشنویس draft-ietf-opsawg-mud را ببینید.
noalias- هنگام افزودن یک نشانی IPv4 جدید، هرگونه نشانی IPv4 قبلی از رابط حذف خواهد شد.
noarp- هیچ درخواست ARP ارسال نمیکند. این گزینه IPv4LL را نیز غیرفعال میکند.
arp_persistdefence- در صورت تداخل نشانی IP، حتی اگر دفاع ناموفق باشد نشانی IP را حفظ میکند.
noauthrequired- حتی در صورت درخواست احراز هویت، آن را الزامی نمیکند. همچنین پیامهای FORCERENEW و RECONFIGURE را بدون احراز هویت مجاز میداند.
nodelay- هنگام شروع پروتکلها، تأخیر تصادفی اولیه ایجاد نمیکند.
nodev- ماژولهای مدیریت /dev را بارگذاری نمیکند.
nodhcp- سرویس DHCP را آغاز نکرده و به پیامهای DHCP گوش نمیدهد. این گزینه فقط هنگام مجاز دانستن IPv4LL کاربرد دارد.
nodhcp6- سرویس DHCPv6 را آغاز نکرده و به پیامهای DHCPv6 گوش نمیدهد. به طور معمول، DHCPv6 بر اساس دستورالعمل اعلان مسیریاب IPv6 یا پیکربندی راهاندازی میشود.
nogateway- هیچ مسیر پیشفرضی نصب نمیکند.
gateway- در صورت وجود، یک مسیر پیشفرض نصب میکند (پیشفرض).
nohookscript- این
اسکریپت
هوک را اجرا
نمیکند. با
نام کامل یا
نام دارای ۲
رقم پیشوند
و با پسوند
اختیاری
.sh
مطابقت
داده
میشود.
بنابراین برای جلوگیری از تغییر تنظیمات DNS یا راهاندازی wpa_supplicant توسط
dhcpcdمیتوانید به این صورت عمل کنید:nohook resolv.conf, wpa_supplicant noipv4- برای پیکربندی نشانی IPv4 تلاش نمیکند.
noipv4ll- در صورت عدم موفقیت در دریافت نشانی از طریق DHCP، برای دریافت نشانی IPv4LL تلاش نمیکند. ببینید: RFC 3927.
noipv6- اعلانهای مسیریاب IPv6 و DHCPv6 را درخواست نکرده و نمیپذیرد.
noipv6rs- اعلانهای مسیریاب IPv6 را درخواست نکرده و نمیپذیرد.
nolink- پیامهای پیوند مربوط به وضعیت حامل (carrier) را دریافت نمیکند. تنها باید این گزینه را برای درایورهای معیوب رابط تنظیم کنید.
nosyslog- نوشتن در syslog(3) را غیرفعال میکند.
noup- در حالت مدیریتی، رابط را بالا (up) نمیآورد.
optionoption- گزینه option
را از سرور
درخواست
میکند.
میتواند
متغیری
برای
استفاده در
dhcpcd-run-hooks(8)
یا مقدار
عددی باشد.
میتوانید
چند option را
با کاما،
فاصله یا با
خطوط
optionبیشتر مشخص کنید. برای درخواست یک گزینه DHCPv6، عبارت dhcp6_ را به ابتدای option اضافه کنید. اگر هیچ گزینه DHCPv6 پیکربندی نشده باشد، گزینههای DHCPv4 به گزینههای معادل DHCPv6 نگاشت میشوند.برای مدیریت گزینههای ND، عبارت nd_ را به ابتدای option اضافه کنید.
برای مشاهده فهرست گزینههای قابل استفاده،
dhcpcdرا با آرگومان-V,--variablesفراخوانی کنید. allowoption- برعکس
nooptionاست. اگر گزینهallowوجود نداشته باشد، هنگام تعیین گزینههای قابل ارسال و دریافت، نقیضnooptionمحاسبه میشود. گزینهoptionهمواره مجاز است. nooptionoption- گزینه را قبل از پردازش از پیام حذف میکند.
requireoption- وجود option
را در تمام
پیامها
الزامی
میکند، در
غیر این
صورت پیام
نادیده
گرفته
میشود.
برای اینکه
الزام کنید
dhcpcdتنها به سرورهای DHCP پاسخ دهد و نه سرورهای BOOTP، میتوانید dhcp_message_type راrequireکنید. البته این یک روش کاملاً دقیق نیست زیرا یک سرور BOOTP نیز میتواند گزینههای مشابه DHCP ارسال کند. rejectoption- پیامی را که
حاوی option
باشد رد
میکند. این
گزینه
زمانی مفید
است که
نتوانید از
requireبرای انتخاب یا عدم انتخاب پیامهای BOOTP استفاده کنید. destinationoption- اگر
dhcpcdتشخیص دهد که نشانی به یک رابط نقطه به نقطه (مانند PPP، TUN و غیره) اضافه شده است، گزینههای فهرستشده DHCP را روی نشانی مقصد رابط تنظیم میکند. profilename- گزینههای بعدی تنها برای این نمایه name تجزیه میشوند.
quiet- تمام خروجیهای dhcpcd در کنسول را به جز خطاها پنهان میکند.
rebootseconds- در صورتی که
یک اجاره
قدیمی برای
استفاده
موجود
باشد، به
مدت reboot
ثانیه قبل
از رفتن به
فاز DISCOVER فرصت
میدهد. به
مدت reboot
ثانیه قبل
از شروع
وضعیتهای
جایگزین (fallback)
از فاز DISCOVER
فرصت
میدهد.
پروتکل IPv4LL
زمانی که
اولین مهلت
زمانی reboot
سر برسد
آغاز
میشود.
مقدار
پیشفرض ۵
ثانیه است.
تنظیم ۰
ثانیه باعث
میشود
dhcpcdاز فاز راهاندازی مجدد (reboot) صرفنظر کرده و مستقیماً وارد DISCOVER شود. این حالت برای کاربران دستگاههای همراه مطلوب است، زیرا اگر از شبکه A به شبکه B بروید و هر دو از یک زیرشبکه یکسان استفاده کنند و آدرس شبکه A در شبکه B استفاده نشده باشد، سرور DHCP حتی اگر معتبر (authoritative) باشد پاسخی نخواهد داد، به این معنی کهdhcpcdپیش از بازگشت به فاز DISCOVER دچار اتمام مهلت زمانی خواهد شد. این گزینه به جز رد کردن فاز راهاندازی مجدد، هیچ تأثیری بر DHCPv6 ندارد. releasedhcpcdقبل از متوقف کردن رابط، اجاره را آزاد خواهد کرد.scriptscript- به جای مسیر پیشفرض /usr/lib/dhcpcd/dhcpcd-run-hooks از script استفاده میکند.
request_timeseconds- پیش از بازگشت به DISCOVER، به مدت seconds ثانیه برای اجاره درخواست میدهد. مقدار پیشفرض ۱۸۰ ثانیه است.
ssidssid- گزینههای بعدی تنها برای این ssid بیسیم تجزیه میشوند.
slaachwaddr|private|tokentoken [temp|temporary]- شناسه رابط
مورد
استفاده
برای
نشانیهای
IPv6 تولیدشده
با SLAAC را
انتخاب
میکند. اگر
از
privateاستفاده شود، نشانی بر اساس RFC 7217 تولید میشود. اگر ازtokentoken استفاده شود، توکن با پیشوند ترکیب میشود تا نشانی نهایی ساخته شود. دستورالعملtemporaryیک نشانی موقت نیز برای پیشوند ایجاد خواهد کرد. staticvalue- یک مقدار
ایستا value
را
پیکربندی
میکند. اگر
ip_addressرا تنظیم کنید،dhcpcdبرای دریافت اجاره تلاش نخواهد کرد و فقط از مقدار مذکور برای آدرس با زمان اجاره نامحدود استفاده میکند. اگر مقداری خالی تنظیم کنید، تمام تخصیصهای ایستای قبلی مربوط به همان مقدار حذف میشوند. این ویژگی هنگام استفاده از نمایهها (profiles) مفید است و در موردip_addressتخصیص ایستا را لغو میکند. توجه داشته باشید که تنظیم 0.0.0.0 تخصیص ایستا را حفظ میکند اما منتظر برنامهای شخص ثالث (3rdparty) برای پیکربندی آدرس میماند. اگرip6_addressرا تنظیم کنید،dhcpcdپیکربندی خودکار را طبق روال معمول ادامه خواهد داد.در اینجا مثالی آورده شده که دو آدرس ایستا را پیکربندی میکند و نشانی برودکست پیشفرض IPv4، یک روتر IPv4 و DNS را بازنویسی کرده و پیکربندی خودکار IPv6 را غیرفعال میسازد. همچنین اگر مایل به دریافت اطلاعات بیشتر از طریق DHCPv6 بودید، میتوانستید از دستور
inform6در اینجا استفاده کنید. برای IPv4، باید به جای تنظیم نشانی ایستا از گزینهinformipaddress استفاده فرمایید.interface eth0noipv6rsstatic ip_address=192.168.0.10/24static broadcast_address=192.168.0.63static ip6_address=fd51:42f8:caae:d92e::ff/64static routers=192.168.0.1static domain_name_servers=192.168.0.1 fd51:42f8:caae:d92e::1در اینجا مثالی برای PPP آورده شده است که به مقصد یک مسیر پیشفرض میدهد. این مثال از کلیدواژه ویژه destination برای درج نشانی مقصد در مقدار استفاده میکند.
interface ppp0static ip_address=0.0.0.0destination routers timeoutseconds- پس از seconds
ثانیه به
جای مقدار
پیشفرض ۳۰
دچار اتمام
مهلت زمانی
(timeout) میشود.
تنظیم ۰
seconds باعث
میشود
dhcpcdبرای دریافت اجاره برای همیشه منتظر بماند. اگرdhcpcdروی یک رابط منفرد کار کند، پس از وقوع اتمام مهلت خارج خواهد شد، در غیر این صورتdhcpcdبه پسزمینه فورک میشود. در صورت استفاده از IPv4LL،dhcpcdفرآیند IPv4LL را پس از اتمام مهلت آغاز کرده و پیش از اتمام مهلت قطعی، مدت زمان بیشتری منتظر میماند. userclassstring- پیام DHCPv4 را با کلاس کاربری (userclass) برچسبگذاری میکند. میتوانید بیش از یک مورد را مشخص کنید.
msuserclassstring- پیام DHCPv4 را با
کلاس
کاربری
مایکروسافت
برچسبگذاری
میکند.
برخلاف
گزینه
userclass, این گزینه تنها یک بار قابل افزودن است. فقط باید برای سرورهای DHCP مایکروسافت استفاده شود وvendorclassidباید روی "MSFT 98" یا "MSFT 5.0" تنظیم گردد. این گزینه با استانداردهای RFC سازگار نیست. vendorcode,value- یک گزینه
اطلاعات
اختصاصی
سازنده
کپسولهشده
(DHCP Option 43) را اضافه
میکند.
مقدار code
باید عددی
بین ۱ تا
۲۵۴ (شامل
هر دو) باشد.
برای
افزودن یک
رشته خام
سازنده، از
code
صرفنظر
کنید اما
کاما را نگه
دارید.
مثالها:
تنظیم گزینه سازنده 01 با یک نشانی IP:
vendor 01,192.168.0.2تنظیم گزینه سازنده 02 با یک کد هگز:vendor 02,01:02:03:04:05تنظیم گزینه سازنده 03 با یک نشانی IP به صورت رشته:vendor 03,\"192.168.0.2\"تنظیم گزینه سازنده کپسولهنشده روی hello world:vendor ,"hello world" vsioen code,value- یک گزینه
اطلاعات
اختصاصی
سازنده
کپسولهشده
(DHCP Option 125) را با
شماره
سازمانی
اختصاصیافته
توسط IANA
موسوم به
en به
همراه code
که باید بین
۱ تا ۲۵۵
(شامل هر دو)
باشد، و
value پس از
کاما اضافه
میکند.
مثالها:
تنظیم vsio برای شماره سازمانی ۱۵۵ گزینه 01 با یک نشانی IPv4:
vsio 155 01,192.168.1.1تنظیم vsio برای شماره سازمانی ۱۵۵ گزینه 02 با یک رشته:vsio 155 02,"hello world"تنظیم vsio برای شماره سازمانی ۲۵۵ گزینه 01 با یک کد هگز:vsio 255 01,01:02:03:04:05 vsio6en code,value- یک گزینه
اطلاعات
اختصاصی
سازنده
کپسولهشده
(DHCPv6 Option 17) را با
شماره
سازمانی
اختصاصیافته
توسط IANA
موسوم به
en به
همراه code
که باید بین
۱ تا ۶۵۵۳۵
(شامل هر دو)
باشد، و
value پس از
کاما اضافه
میکند.
مثالها:
تنظیم vsio برای شماره سازمانی ۱۵۵ گزینه 01 با یک نشانی IPv6:
vsio6 155 01,2001:0db8:85a3:0000:0000:8a2e:0370:7334تنظیم vsio برای شماره سازمانی ۱۵۵ گزینه 02 با یک رشته:vsio6 155 02,"hello world"تنظیم vsio برای شماره سازمانی ۲۵۵ گزینه 01 با یک کد هگز:vsio6 255 01,01:02:03:04:05 vendorclassidstring- کلاس
سازنده DHCP (DHCP Vendor Class)
را تنظیم
میکند.
همانطور
که در زیر
نشان داده
شده، DHCPv6
گزینه
اختصاصی
خود را
دارد. مقدار
پیشفرض
dhcpcd-<version>:<os>:<machine>:<platform>
است. برای
مثال:
dhcpcd-5.5.6:NetBSD-6.99.5:i386:i386در صورت عدم تنظیم، مقداری ارسال نمیشود. برخی از سرورهای DHCP با پیکربندی نامناسب، شناسههای vendorclassid ناشناخته را رد میکنند. برای دور زدن این مشکل، میتوانید با استفاده از vendorclassid مربوط به MSFT هویت ویندوز را جعل کنید.
vendclassen data- کلاس سازنده شناساییکننده سازنده در DHCPv6 را با شماره سازمانی تخصیصیافته توسط IANA به صورت en همراه با دادههای data اضافه میکند. این گزینه میتواند بیش از یک بار برای افزودن دادههای بیشتر تنظیم شود، اما رفتار سیستم طبق RFC 3925 در صورتی که شماره سازمانی متفاوت باشد، تعریفنشده است.
waitip[4 | 6]- پیش از فورک
شدن به
پسزمینه،
منتظر
تخصیص یک
نشانی
میماند.
مقدار ۴ به
معنای
انتظار
برای تخصیص
نشانی IPv4 است.
مقدار ۶ به
معنای
انتظار
برای تخصیص
نشانی IPv6 است.
اگر هیچ
آرگومانی
داده نشود،
dhcpcdمنتظر تخصیص هر پروتکل نشانی میماند. امکان انتظار برای بیش از یک پروتکل نشانی وجود دارد وdhcpcdتنها زمانی به پسزمینه فورک میشود که تمام شرایط انتظار برآورده شده باشند. xidhwaddr- به جای یک عدد تصادفی تولیدشده، از چهار بایت آخر آدرس سختافزاری به عنوان DHCP xid استفاده میکند.
تعریف گزینههای جدید (Defining new options)
پروتکلهای
DHCP، ND و DHCPv6 امکان
استفاده از
گزینههای
سفارشی را
فراهم
میکنند و
گزینههای
سازنده طبق
RFC 3925 برای DHCP نیز
قابل ارائه
هستند. هر
گزینه باید
با یکی از
دستورالعملهای
define, definend,
define6 یا
vendopt آغاز
شود. این
دستورالعمل
میتواند
به صورت
اختیاری با
گزینههای
embed یا encap
دنبال شود.
هر دو
میتوانند
بیش از یک
بار مشخص
شوند و embed
باید پیش از
encap قرار
گیرد.
definecode type variable- گزینه DHCP با کد code و از نوع type را با نام variable تعریف میکند که به dhcpcd-run-hooks(8) صادر میشود.
definendcode type variable- گزینه ND با کد code و از نوع type را با نام variable تعریف میکند که با پیشوند nd_ به dhcpcd-run-hooks(8) صادر میشود.
define6code type variable- گزینه DHCPv6 با کد code و از نوع type را با نام variable تعریف میکند که با پیشوند dhcp6_ به dhcpcd-run-hooks(8) صادر میشود.
vendoptcode type variable- گزینههای شناساییکننده سازنده (Vendor-Identifying Vendor Options) را تعریف میکند. مقدار code شماره سازمانی IANA است که گزینههای کپسولهشده را به طور یکتا توصیف میکند. مقدار type معمولاً encap است. مقدار variable نام گزینه سازنده صادرشونده را مشخص مینماید.
embedtype variable- یک متغیر تعبیهشده (embedded) را در گزینه تعریفشده مشخص میکند. طول آن توسط type تعیین میشود. اگر variable با آنچه در گزینه والد تعریف شده یکسان نباشد، ابتدا نام variable والد همراه با یک زیرخط (underscore) به عنوان پیشوند به آن اضافه میشود. اگر variable دارای نام reserved باشد، پردازش نخواهد شد.
encapcode type variable- یک متغیر کپسولهشده (encapsulated) را در گزینه تعریفشده مشخص میکند. طول آن توسط type تعیین میشود. اگر variable با آنچه در گزینه والد تعریف شده یکسان نباشد، ابتدا نام variable والد همراه با یک زیرخط به عنوان پیشوند به آن اضافه میشود.
پیشوند نوع (Type prefix)
این کلیدواژهها پیش از خود نوع قرار میگیرند تا آن را کاملتر توصیف کنند. میتوانید از بیش از یک مورد استفاده کنید، اما باید به ترتیبی که در زیر فهرست شده است آورده شوند.
request- گزینه را به صورت پیشفرض بدون نیاز به تعیین در پیکربندی کاربر درخواست میکند.
norequest- این گزینه صرفنظر از پیکربندی کاربر، قابل درخواست نیست.
optional- این گزینه اختیاری است. تنها برای گزینههای تعبیهشدهای مانند گزینه کلاینت FQDN معنا دارد که خود رشته FQDN در آن اختیاری است.
index- گزینه میتواند بیش از یک بار ظاهر شود و ایندکسگذاری خواهد شد.
array- دادههای گزینه به آرایهای از عناصر جداشده با فاصله تقسیم میشوند که هر عنصر از نوعی یکسان است.
truncated- گزینه ممکن است از طول عادی خود کوتاهتر (truncated) باشد. انتهای اندازه عادی هنگام گسترش با صفر پر (zero-padded) میشود. در حال حاضر این ویژگی تنها برای ip6address در حالتی که پیشوند باشد پشتیبانی میشود.
انواع قابل تعریف (Types to define)
نوع، مستقیماً بر طول دادههای مصرفشده در داخل گزینه تأثیر میگذارد. دادههای باقیمانده به طور معمول نادیده گرفته میشوند. طول داده را میتوان برای انواع string و binhex مشخص کرد، اما این کار عموماً زمانی انجام میشود که سایر دادهها پس از آن در همان گزینه تعبیه شده باشند.
ipaddress- یک نشانی IPv4، ۴ بایت.
ip6address- یک نشانی IPv6، ۱۶ بایت.
string[:length]- یک رشته NVT ASCII از نویسههای قابل چاپ.
byte- یک بایت.
bitflags:flags- یک بایت که به صورت رشتهای از پرچمها نمایش داده میشود، ابتدا باارزشترین بیت (most significant bit). به عنوان مثال، با استفاده از ABCDEFGH آنگاه A معادل 10000000، B معادل 01000000، C معادل 00100000 و غیره خواهد بود. اگر بیت تنظیم نشده باشد، پرچم چاپ نمیشود. پرچم 0 حتی در صورت تنظیم بودن موقعیت بیت چاپ نمیشود. این ویژگی برای مجاز ساختن رزرو بیتهای اولیه در حین تخصیص بیتهای پایانی است. پرچم 1 بیت را در هر دو حالت تنظیمشده یا تنظیمنشده چاپ میکند.
int16- یک عدد صحیح ۱۶ بیتی علامتدار، ۲ بایت.
uint16- یک عدد صحیح ۱۶ بیتی بدون علامت، ۲ بایت.
int32- یک عدد صحیح ۳۲ بیتی علامتدار، ۴ بایت.
uint32- یک عدد صحیح ۳۲ بیتی بدون علامت، ۴ بایت.
flag- یک مقدار ثابت (1) برای نشان دادن حضور گزینه، ۰ بایت.
domain- یک رشته کدگذاریشده طبق RFC 3397.
dname- یک رشته اعتبارسنجیشده طبق RFC 1035.
uri- در صورت آرایه بودن، دو بایت اول طول URI در دادههای گزینه است. در غیر این صورت، کل دادههای گزینه همان URI است. از آنجا که فاصله در کدگذاری URI مجاز نیست، URIها با فاصله از یکدیگر جدا میشوند.
binhex[:length]- دادههای باینری که به صورت هگزادسیمال بیان شدهاند.
embed- شامل گزینههای تعبیهشده (حاکی از encap نیز هست).
encap- شامل گزینههای کپسولهشده (حاکی از embed نیز هست).
option- به گزینهای از تعاریف سراسری ارجاع میدهد.
تعریف نمونه (Example definition)
پروتکلهای احراز هویت پشتیبانیشده (Supported Authentication Protocols)
token- توکن متن سادهای را که سرور انتظار دارد ارسال کرده و با توکن ارسالی از سوی سرور مطابقت میدهد. الزامی نیست که توکنها یکسان باشند. در صورت عدم تعیین، توکن با secretid برابر ۰ در ارسال پیامها و اعتبارسنجی پیامهای دریافتی استفاده خواهد شد.
delayedrealm- احراز هویت
با تأخیر (Delayed
Authentication).
dhcpcdیک گزینه احراز هویت بدون کلید یا MAC ارسال میکند. سرور این گزینه را مشاهده کرده و کلیدی را برایdhcpcdانتخاب میکند و realm و secretid را در آن مینویسد. سپسdhcpcdبه دنبال یک توکن منقضینشده با realm و secretid مطابق میگردد. این توکن برای احراز هویت سایر پیامها استفاده میشود. delayed- مشابه حالت بالا، اما بدون حوزه (realm).
الگوریتمهای احراز هویت پشتیبانیشده (Supported Authentication Algorithms)
در صورت
عدم تعیین،
hmac-md5 حالت
پیشفرض
است.
سازوکارهای شناسایی تکرار پشتیبانیشده (Supported Replay Detection Mechanisms)
در صورت
عدم تعیین،
monotonic حالت
پیشفرض
است. اگر این
مقدار نسبت
به آنچه
قبلاً
استفاده
میشد
تغییر کند،
یا روش
محاسبه و
ذخیرهسازی
آن دچار
اختلال
شود،
احتمالاً
سرور DHCP باید
درک خود از
مقدار
شناسایی
تکرار (Replay Detection Value)
کلاینت را
بازنشانی
کند.
monocounter- عدد موجود در پرونده /var/lib/dhcpcd/dhcpcd-rdm.monotonic را خوانده و یکی به آن اضافه میکند.
monotime- یک برچسب زمانی NTP از زمان سیستم ایجاد میکند.
monotonic- مشابه
monotimeاست.
همچنین ببینید (SEE ALSO)
fnmatch(3), if_nametoindex(3), dhcpcd(8), dhcpcd-run-hooks(8)
نویسندگان (AUTHORS)
Roy Marples <roy@marples.name>
گزارش باگها (BUGS)
لطفاً آنها را به https://roy.marples.name/projects/dhcpcd گزارش دهید.
| July 29, 2026 | Linux 6.12.107+deb13-amd64 |