| DHCPCD(8) | System Manager's Manual | DHCPCD(8) |
نام (NAME)
dhcpcd —
یک
کلاینت DHCP
خلاصه دستور (SYNOPSIS)
dhcpcd
[-146ABbDdEGgHJKLMNPpqTV]
[-C, --nohook
hook] [-c,
--script script]
[-e, --env
value] [-F,
--fqdn FQDN]
[-f, --config
file] [-h,
--hostname hostname]
[-I, --clientid
clientid] [-i,
--vendorclassid vendorclassid]
[-j, --logfile
logfile] [-l,
--leasetime seconds]
[-m, --metric
metric] [-O,
--nooption option]
[-o, --option
option] [-Q,
--require option]
[-r, --request
address] [-S,
--static value]
[-s, --inform
address[/cidr[/broadcast_address]]]
[--inform6] [-t,
--timeout seconds]
[-u, --userclass
class] [-v,
--vendor code,
value] [-W,
--whitelist
address[/cidr]]
[-w] [--waitip=[4 | 6]]
[-y, --reboot
seconds] [-X,
--blacklist
address[/cidr]]
[-Z, --denyinterfaces
pattern] [-z,
--allowinterfaces pattern]
[--inactive] [--configure]
[--noconfigure] [interface] [...]
dhcpcd -n,
--rebind [interface] dhcpcd
-k, --release [interface]
dhcpcd -U,
--dumplease [interface]
dhcpcd --version
dhcpcd -x,
--exit [interface]
توضیحات (DESCRIPTION)
dhcpcd یک
پیادهسازی
از کلاینت DHCP
مشخصشده
در RFC 2131 است.
dhcpcd
اطلاعات
میزبان
(آدرس IP،
مسیرها و
غیره) را از
یک سرور DHCP
دریافت
کرده و interface
شبکه
دستگاهی را
که روی آن در
حال اجرا
است
پیکربندی
میکند. سپس
dhcpcd
اسکریپت
پیکربندی
را اجرا
میکند که
اطلاعات DNS
را در صورت
در دسترس
بودن در
resolvconf(8) و
در غیر این
صورت
مستقیماً
در /etc/resolv.conf
مینویسد.
اگر نام
میزبان در
حال حاضر
خالی، (null) یا localhost
باشد، یا
مقدار
force_hostname
برابر با YES
یا TRUE یا 1
باشد،
آنگاه
dhcpcd نام
میزبان را
روی نام
ارائهشده
توسط سرور DHCP
تنظیم
میکند. سپس
dhcpcd به
عنوان دیمن
در
پسزمینه
قرار
میگیرد و
منتظر سپری
شدن زمان
تمدید
اجاره
میماند.
هنگامی که
زمان اجاره
رو به پایان
است یا سرور
DHCP پیامی
برای تمدید
زودهنگام
ارسال
میکند، در
صورت تغییر
اجاره
جدید، تلاش
خواهد کرد
تا اجاره
خود را
تمدید کرده
و مجدداً
پیکربندی
کند.
اگر هر
رابطی
سیگنال
حامل (carrier) فعال
گزارش دهد،
dhcpcd تلاش
میکند تا
پیش از رفتن
به
پسزمینه
یک اجاره به
دست آورد،
در غیر این
صورت
بلافاصله
به
پسزمینه
منتقل
میشود. این
رفتار را
میتوان با
گزینههای
-b, --background و
-w, --waitip
تغییر داد.
dhcpcd
همچنین یک
پیادهسازی
از کلاینت BOOTP
مشخصشده
در RFC 951
است.
dhcpcd
همچنین یک
پیادهسازی
از
درخواستکننده
مسیریاب IPv6 (Router
Solicitor) مشخصشده
در RFC 4861 و
RFC 6106 است.
dhcpcd
همچنین یک
پیادهسازی
از
افزونههای
حریم خصوصی
IPv6 برای AutoConf
مشخصشده
در RFC 4941 است.
این ویژگی
باید در
هسته فعال
شود تا dhcpcd
شروع به
استفاده از
آن کند.
dhcpcd
همچنین یک
پیادهسازی
از کلاینت DHCPv6
مشخصشده
در RFC 3315 است.
بهطور
پیشفرض،
dhcpcd فقط
زمانی DHCPv6 را
آغاز
میکند که
توسط یک
اعلان
مسیریاب IPv6
دستور داده
شده باشد.
اگر هیچ
«انجمن
هویت» (Identity Association)
پیکربندی
نشده باشد،
یک «آدرس
غیرموقت»
(Non-temporary Address)
درخواست
میشود.
پیکربندی پیوند محلی (Local Link configuration)
اگر dhcpcd
نتواند
اجارهای
به دست
آورد، برای
یک آدرس
معتبر IPv4LL
(معروف به ZeroConf
یا APIPA) پویش (probe)
انجام
میدهد. پس
از دریافت
آن، فرایند
جستجو برای
سرور DHCP را
مجدداً
آغاز
میکند تا
یک آدرس
مناسب به
دست آورد.
هنگام
استفاده از
IPv4LL، dhcpcd
تقریباً
همیشه با
موفقیت عمل
کرده و کد
خروج 0 را
برمیگرداند.
در موارد
نادری که با
شکست مواجه
میشود،
معمولاً به
این معنی
است که یک
پروکسی
معکوس ARP نصب
شده که
همیشه پویش
IPv4LL را خنثی
میکند.
برای
غیرفعال
کردن این
رفتار،
میتوانید
از گزینه
-L, --noipv4ll
استفاده
کنید.
چندین رابط (Multiple interfaces)
اگر
فهرستی از
رابطها در
خط فرمان
داده شود،
dhcpcd فقط با
همان
رابطها
کار
میکند، در
غیر این
صورت dhcpcd
رابطهای
اترنت
موجود را که
قابل
پیکربندی
باشند
شناسایی
میکند.
هنگامی که
dhcpcd در خط
فرمان به یک
رابط محدود
نشده باشد،
در حالت
مدیر (Manager mode)
اجرا
میشود.
پروژه dhcpcd-ui
انتظار
دارد dhcpcd به
این صورت
اجرا شود.
اگر یک
رابط تکی
مشخص شود،
dhcpcd فقط
برای همان
رابط کار
میکند و به
عنوان یک
نمونه مجزا
از سایر
فرایندهای
dhcpcd اجرا
میشود.
گزینه -w,
--waitip در این
حالت برای
حفظ
سازگاری با
نسخههای
قدیمیتر
فعال است.
استفاده از
یک رابط تکی
(که اختیاری
میتواند
به یک
پروتکل
آدرسدهی
نیز محدود
شود)، بر
گزینههای
-k -،
-N -،
-n و -x
نیز تأثیر
میگذارد،
بهطوری که
همان رابط و
هر پروتکل
آدرسدهی
باید مشخص
شوند، زیرا
عدم تعیین
رابط به
معنای حالت
مدیر خواهد
بود که در
اینجا چنین
نیست. برای
اجبار به
شروع در
حالت مدیر
تنها با یک
رابط،
میتوان از
گزینه -M,
--manager
استفاده
کرد.
اولویت
رابطها بر
اساس
سیگنال
حامل (carrier)،
اجاره DHCP /
آدرس IPv4LL و سپس
کمترین
متریک (metric)
تعیین
میشود.
برای
سیستمهایی
که از متریک
مسیر
پشتیبانی
میکنند،
هر مسیر با
متریک
برچسبگذاری
میشود، در
غیر این
صورت dhcpcd
مسیرها را
طوری تغییر
میدهد که
از رابط با
همان مسیر و
کمترین
متریک
استفاده
کنند.
گزینههای
زیر را برای
کنترل
اینکه
کدام
رابطها را
با استفاده
از الگوها
مجاز یا
مسدود کنیم
ببینید.
رابطهای
غیراترنتی
و برخی
رابطهای
اترنت
مجازی
مانند TAP و پل
(bridge) بهطور
پیشفرض
نادیده
گرفته
میشوند،
همانطور
که رابط FireWire
نادیده
گرفته
میشود.
برای کار با
این
دستگاهها،
یا باید در
خط فرمان
مشخص شوند،
یا در --allowinterfaces
فهرست
شوند، یا
دستورالعمل
interface در /etc/dhcpcd.conf
داشته
باشند.
قلابکردن به رویدادها (Hooking into events)
dhcpcd
اسکریپت
/usr/lib/dhcpcd/dhcpcd-run-hooks یا
اسکریپت
مشخصشده
توسط گزینه
-c, --script
را اجرا
میکند. این
اسکریپت
تمام
اسکریپتهای
موجود در
/usr/lib/dhcpcd/dhcpcd-hooks را
به ترتیب
لغوی (lexical order)
اجرا
میکند. نصب
پیشفرض
اسکریپتهای
01-test ،
20-resolv.conf و
30-hostname را
فراهم
میکند.
میتوانید
با استفاده
از گزینه
-C, --nohook
هر اسکریپت
را غیرفعال
کنید. برای
جزئیات در
مورد نحوه
کار این
اسکریپتها،
dhcpcd-run-hooks(8)
را ببینید.
dhcpcd در حال
حاضر کد
خروج
اسکریپت را
نادیده
میگیرد.
اسکریپتهای
بیشتری در
/usr/share/dhcpcd/hooks
ارائه شده
است و در
صورت تمایل
به استفاده
از آنها
باید به
/usr/lib/dhcpcd/dhcpcd-hooks
کپی شوند. به
عنوان
مثال،
میتوانید
29-lookup-hostname را
نصب کنید تا
در صورتی که
هیچ نام
میزبانی
توسط اجاره
داده نشده و
قبلاً نامی
تنظیم نشده
باشد، dhcpcd
بتواند نام
میزبان
مربوط به
آدرس IP را از
طریق DNS
جستجو کند.
تنظیم دقیق (Fine tuning)
میتوانید
رفتار dhcpcd
را با
گزینههای
زیر تنظیم
دقیق کنید:
-b,--background- رفتن فوری به پسزمینه. این گزینه برای اسکریپتهای راهاندازی که پیامهای وضعیت اتصال فیزیکی (carrier) را غیرفعال نمیکنند مفید است.
-c,--scriptscript- استفاده از این script به جای اسکریپت پیشفرض /usr/lib/dhcpcd/dhcpcd-run-hooks.
-D,--duid[ll | lt | uuid | value]- استفاده از
یک شناسه
منحصربهفرد
DHCP (موسوم به DUID).
اگر
ذخیرهسازی
ماندگار در
دسترس
باشد، یک DUID-LLT
(آدرس محلی
پیوند +
زمان) تولید
میشود، در
غیر این
صورت DUID-LL (آدرس
محلی پیوند)
ایجاد
میگردد. در
صورتی که
فایل
/var/lib/dhcpcd/duid
وجود
نداشته
باشد،
میتوان
نوع DUID را به
عنوان یک
پارامتر
اختیاری
پیشنهاد
داد. اگر
مقدار ll ،
lt یا uuid
نباشد،
آنگاه
value از
قالب 00:11:22:33
تبدیل
خواهد شد.
این مقدار
به همراه IAID
به عنوان
-I,--clientidاستفاده خواهد شد. شناسه DUID تولیدشده در فایل /var/lib/dhcpcd/duid نگهداری میشود و نباید در میزبانهای دیگر کپی شود. این فایل همچنین بر قواعد فوق تقدم دارد مگر زمانی که مقداری بهطور مستقیم تنظیم شود. -d,--debug- نمایش پیامهای اشکالزدایی در stderr و syslog.
-E,--lastlease- اگر
dhcpcdنتواند اجارهای دریافت کند، تلاش میکند از آخرین اجاره کسبشده برای رابط استفاده کند. --lastleaseextend- مشابه
گزینه فوق،
اما اجاره
حتی در صورت
انقضا حفظ
خواهد شد.
اگر میزبان
دیگری از
طریق ARP
ادعای
مالکیت آن
را کند،
dhcpcdآن را واگذار خواهد کرد. این امر با بخش 3.7 استاندارد RFC 2131 که بیان میکند اجاره پس از انقضا باید رها شود مغایرت دارد. -e,--envvalue- ارسال value
به محیط جهت
استفاده در
dhcpcd-run-hooks(8).
به عنوان
مثال،
میتوانید
قلاب نام
میزبان را
مجبور کنید
که همیشه
نام میزبان
را با
-eforce_hostname=YES تنظیم کند. -g,--reconfiguredhcpcdمجدداً آدرس IP و مسیریابی را اعمال کرده و dhcpcd-run-hooks(8) را برای هر رابط اجرا میکند. این مورد زمانی مفید است که یک برنامه شخص ثالث مانند PPP یا VPN جدول مسیریابی و/یا DNS و غیره را تغییر داده و سپس بهdhcpcdدستور دهد که بعد از آن وضعیت را به حالت قبل بازگرداند. در این حالتdhcpcdپیکربندی جدید را بازخوانی نمیکند - اگر به این قابلیت نیاز دارید باید از rebind استفاده کنید.-F,--fqdnfqdn- درخواست از
سرور DHCP برای
بهروزرسانی
DNS با
استفاده از
FQDN به جای یک
نام میزبان
ساده.
مقادیر
معتبر برای
fqdn
عبارتند از
disable، none، ptr و both. خود
dhcpcdهرگز بهروزرسانی DNS انجام نمیدهد.dhcpcdنام میزبان FQDN را همانطور که درRFC 1035مشخص شده کدگذاری میکند. -f,--configfile- مشخص کردن
یک فایل
پیکربندی
برای
بارگذاری
به جای
/etc/dhcpcd.conf.
dhcpcdهمیشه فایل پیکربندی را قبل از هرگونه گزینه خط فرمان پردازش میکند. -h,--hostnamehostname- ارسال hostname به سرور DHCP تا بتواند در DNS ثبت شود. اگر hostname یک رشته خالی باشد، نام میزبان فعلی سیستم ارسال میشود. اگر hostname یک FQDN باشد (یعنی حاوی یک نقطه . باشد)، به همین صورت کدگذاری خواهد شد.
-I,--clientidclientid- ارسال clientid.
اگر رشته به
قالب 01:02:03
باشد، به
صورت
هگزادسیمال
کدگذاری
میشود.
برای
رابطهایی
که آدرس
سختافزاری
آنها
طولانیتر
از ۸ بایت
است، یا اگر
clientid یک
رشته خالی
باشد،
dhcpcdیک clientid پیشفرض متشکل از خانواده سختافزار و آدرس سختافزاری ارسال میکند. -i,--vendorclassidvendorclassid- بازنویسی
فیلد
ارسالی
vendorclassid
مربوط به DHCPv4.
مقدار
پیشفرض
dhcpcd-<version>:<os>:<machine>:<platform>
است؛ برای
مثال:
dhcpcd-5.5.6:NetBSD-6.99.5:i386:i386در صورت تنظیم نشدن، هیچ مقداری ارسال نمیشود. برخی سرورهای DHCP با پیکربندی نامناسب، vendorclassidهای ناشناخته را رد میکنند. برای دور زدن این مشکل، میتوانید با استفاده از vendorclassid مربوط به MSFT خود را به عنوان ویندوز جا بزنید.
-j,--logfilelogfile- نوشتن در
logfile
مشخصشده.
dhcpcdهمچنان در syslog(3) نیز مینویسد. هنگامی کهdhcpcdسیگنالSIGUSR2را دریافت کند، logfile مجدداً باز میشود. -k,--release[interface]- باعث
میشود که
فرایند
موجود
dhcpcdدر حال اجرا روی interface اجاره خود را آزاد کرده و interface را بدون توجه به گزینه-p,--persistentلغو پیکربندی کند. اگر هیچ interface مشخص نشده باشد، این دستور برای تمام رابطها در حالت مدیر اعمال میشود. اگر هیچ رابط فعالی باقی نماند،dhcpcdخارج خواهد شد. -l,--leasetimeseconds- درخواست
زمان اجاره
به میزان
seconds ثانیه.
مقدار -1
نشاندهنده
زمان اجاره
نامحدود
است. بهطور
پیشفرض
dhcpcdهیچ زمان اجارهای درخواست نمیکند و آن را به سرور DHCP واگذار مینماید. -M,--manager- اجرای
dhcpcdدر حالت مدیر حتی اگر تنها یک رابط در خط فرمان مشخص شده باشد. بخش «چندین رابط» در بالا را ببینید. -m,--metricmetric- متریکها
برای ترجیح
دادن یک
رابط بر
رابط دیگر
استفاده
میشوند؛
کمترین
مقدار
برنده است.
dhcpcdیک متریک پیشفرض معادل 1000 + if_nametoindex(3) ارائه میدهد. این مقدار برای رابطهای بیسیم ۲۰۰۰ واحد افزایش مییابد، به همراه افزایشهای اضافی ۱۰۰۰۰۰۰ برای IPv4LL و ۲۰۰۰۰۰۰ برای رابطهای رومینگ (roaming). -n,--rebind[interface]- به
dhcpcdاطلاع میدهد که پیکربندی خود را مجدداً بارگذاری کرده و interface مشخصشده را دوباره متصل (rebind) کند. اگر هیچ interface مشخص نشود، برای تمام رابطها در حالت مدیر اعمال میشود. اگرdhcpcdدر حال اجرا نباشد، به صورت عادی راهاندازی میشود. -N,--renew[interface]- به
dhcpcdاطلاع میدهد که آدرسهای موجود روی interface مشخصشده را تمدید (renew) کند. اگر هیچ interface مشخص نشود، برای تمام رابطها در حالت مدیر اعمال میشود. اگرdhcpcdدر حال اجرا نباشد، به صورت عادی راهاندازی میشود. برخلاف گزینه-n,--rebindدر بالا، پیکربندیdhcpcdمجدداً بارگذاری نمیشود. -o,--optionoption- درخواست متغیر option مربوط به DHCP جهت استفاده در /usr/lib/dhcpcd/dhcpcd-run-hooks.
-p,--persistentdhcpcdهنگام خروج، interface را از حالت پیکربندی خارج میکند، مگر اینکه این گزینه فعال باشد. گاهی اوقات این رفتار مطلوب نیست؛ برای مثال هنگامی که دایرکتوری ریشه از طریق NFS سوار شده است یا کلاینتهای SSH به این میزبان متصل هستند و لازم است پیش از خاموش شدن میزبان مطلع شوند. میتوانید از این گزینه برای جلوگیری از وقوع این وضعیت استفاده کنید.-r,--requestaddress- درخواست address در پیام DHCP DISCOVER. هیچ تضمینی وجود ندارد که این آدرس همان آدرسی باشد که سرور DHCP در واقع اختصاص میدهد. اگر هیچ address داده نشود، از اولین آدرسی که در حال حاضر به interface اختصاص یافته است استفاده میشود.
-s,--informaddress[/cidr[/broadcast_address]]- مانند
-r,--requestدر بالا عمل میکند، اما به جای DISCOVER/REQUEST یک پیام DHCP INFORM ارسال مینماید. این دستور اجاره دریافت نمیکند، بلکه فقط سرور DHCP را از address در حال استفاده مطلع میسازد. همچنین باید شماره شبکه اختیاری cidr را نیز در صورتی که آدرس از قبل روی رابط پیکربندی نشده است، درج کنید.dhcpcdدر حال اجرا باقی میماند و وانمود میکند که اجارهای نامحدود دارد.dhcpcdهنگام خروج، رابط را از حالت پیکربندی خارج نخواهد کرد. اگرdhcpcdنتواند با یک سرور DHCP تماس برقرار کند، به جای بازگشت به IPv4LL، یک خطا برمیگرداند. --inform6- یک
«درخواست
اطلاعات»
(Information Request) در DHCPv6
انجام
میدهد. هیچ
آدرسی
درخواست یا
مشخص
نمیشود،
اما تمام
گزینههای
دیگر DHCPv6 مجاز
هستند. این
عملیات
معمولاً
زمانی
بهطور
خودکار
انجام
میشود که
اعلان
مسیریاب IPv6
اعلام کند
کلاینت
باید این
عملیات را
انجام دهد.
این گزینه
تنها زمانی
لازم است که
dhcpcdپیامهای IPv6RA را پردازش نمیکند و نیاز به درخواست اطلاعات DHCPv6 وجود دارد. -S,--staticvalue- یک value
ایستا برای
DHCP پیکربندی
میکند. اگر
ip_addressرا تنظیم کنید،dhcpcdتلاشی برای دریافت اجاره نخواهد کرد و فقط از مقدار مربوطه برای آدرس با زمان اجاره نامحدود استفاده میکند.در اینجا مثالی آورده شده است که یک آدرس ایستا، مسیرها و DNS را پیکربندی میکند:
dhcpcd -S ip_address=192.168.0.10/24 \-S routers=192.168.0.1 \-S domain_name_servers=192.168.0.1 \eth0در حال حاضر نمیتوانید مقادیر ایستای DHCPv6 را تنظیم کنید. به جای آن از گزینه
-e,--envاستفاده نمایید. -t,--timeoutseconds- پایان مهلت
زمانی پس از
seconds
ثانیه، به
جای مقدار
پیشفرض ۳۰
ثانیه. در
صورت پایان
مهلت
زمانی، اگر
گزینه
-1-،--oneshotداده شده باشد،dhcpcdخارج خواهد شد، در غیر این صورت به پسزمینه منتقل شده و به تلاش خود ادامه میدهد. تنظیم مقدار 0 seconds باعث میشود کهdhcpcdبرای دریافت اجاره به مدت نامحدود منتظر بماند. -u,--userclassclass- پیام DHCPv4 را با کلاس کاربر class برچسبگذاری میکند. سرورهای DHCP از این ویژگی برای ارائه گزینههای DHCP غیر از پیشفرض به اعضای این کلاس استفاده میکنند، بدون اینکه نیازی به دانستن مواردی مانند آدرس سختافزاری یا نام میزبان داشته باشند.
-v,--vendorcode,value- افزودن یک
گزینه
اختصاصی
سازنده (vendor option)
کپسولهشده.
code باید
بین ۱ تا
۲۵۴ باشد.
برای
افزودن یک
رشته خام
سازنده،
code را حذف
کنید اما
کاما را نگه
دارید.
مثالها:
تنظیم گزینه سازنده 01 با یک آدرس IP:
dhcpcd -v 01,192.168.0.2 eth0تنظیم گزینه سازنده 02 با یک کد هگزادسیمال:dhcpcd -v 02,01:02:03:04:05 eth0تنظیم گزینه سازنده 03 با یک آدرس IP به صورت رشته:dhcpcd -v 03,\"192.168.0.2\" eth0تنظیم گزینه سازنده غیرکپسولهشده روی hello world:dhcpcd -v ,"hello world" eth0 --version- نمایش نسخه
برنامه و
اطلاعات حق
نشر. سپس
dhcpcdپیش از انجام هرگونه پیکربندی خارج میشود. -w- انتظار برای اختصاص آدرس پیش از رفتن به پسزمینه. برخلاف گزینه زیر آرگومانی نمیپذیرد.
--waitip=[4 | 6]- انتظار
برای
اختصاص
آدرس پیش از
رفتن به
پسزمینه. 4
به معنای
انتظار
برای تخصیص
آدرس IPv4 است. 6
به معنای
انتظار
برای تخصیص
آدرس IPv6 است.
اگر
آرگومانی
داده نشود،
dhcpcdمنتظر اختصاص هر پروتکل آدرسی خواهد ماند. امکان انتظار برای بیش از یک پروتکل آدرس وجود دارد وdhcpcdتنها زمانی به پسزمینه میرود که تمام شرایط انتظار برآورده شده باشند. -x,--exit[interface]- به یک
فرایند
موجود
dhcpcdدر حال اجرا روی interface سیگنال خروج ارسال میکند. اگر هیچ interface مشخص نشده باشد، مورد فوق برای تمام رابطها در حالت مدیر اعمال میشود. گزینه-p,--persistentرا برای کنترل ماندگاری پیکربندی در هنگام خروج بررسی کنید که بهطور پیشفرض در dhcpcd.conf(5) فعال است. سپسdhcpcdتا زمانی که این فرایند خارج شود منتظر میماند. -y,--rebootseconds- اختصاص
reboot ثانیه
پیش از رفتن
به مرحله discover
در صورتی که
یک اجاره
قدیمی برای
استفاده
داشته
باشیم.
اختصاص
reboot ثانیه
پیش از شروع
حالتهای
بازگشت به
پشتیبان (fallback)
از مرحله discover.
پروتکل IPv4LL
زمانی شروع
میشود که
اولین مهلت
زمانی reboot
فرا برسد.
مقدار
پیشفرض ۵
ثانیه است.
تنظیم 0
ثانیه باعث
میشود
dhcpcdاز مرحله reboot صرفنظر کرده و مستقیماً وارد مرحله discover شود. این گزینه هیچ تأثیری بر DHCPv6 به جز صرفنظر کردن از مرحله reboot ندارد.
محدود کردن رفتار (Restricting behaviour)
dhcpcd
بهطور
پیشفرض
تلاش
میکند تا
حد امکان
اقدامات
لازم را
انجام دهد.
با این حال،
گاهی
شرایطی پیش
میآید که
مایل
نیستید
موارد
دقیقاً
مطابق
خواست سرور
DHCP پیکربندی
شوند. در
ادامه
گزینههایی
برای
غیرفعال
کردن این
بخشها
آورده شده
است.
توجه
داشته
باشید که
وقتی dhcpcd
به یک رابط
تکی محدود
میشود،
هنگام
درخواست
خروج از
dhcpcd از
طریق خط
فرمان نیز
باید همان
رابط مشخص
شود. اگر
پروتکل نیز
محدود شده
باشد، باید
پروتکل را
نیز در
دستور خروج
درج کرد.
-1,--oneshot- خروج پس از
پیکربندی
رابط. از
گزینه
-w,--waitipبرای تعیین پروتکل(هایی) که باید قبل از خروج پیکربندی شوند استفاده کنید. -4,--ipv4only- فقط پیکربندی IPv4.
-6,--ipv6only- فقط پیکربندی IPv6.
-A,--noarp- عدم درخواست یا ادعای آدرس از طریق ARP. این مورد همچنین IPv4LL را غیرفعال میکند.
-B,--nobackground- عدم اجرا در پسزمینه پس از به دست آوردن اجاره. این گزینه عمدتاً برای اجرا تحت کنترل یک فرایند دیگر مانند یک اشکالزدا (debugger) یا یک مدیر شبکه (network manager) مفید است.
-C,--nohookscript- عدم اجرای
این
اسکریپت
قلاب. با
نام کامل یا
نامی که با
۲ رقم
پیشوند
دارد و به
دلخواه به
.sh ختم
میشود
تطبیق داده
میشود.
بنابراین برای جلوگیری از دستکاری تنظیمات DNS توسط
dhcpcdمیتوانید دستور زیر را اجرا کنید:dhcpcd -C resolv.conf eth0 -G,--nogateway- عدم تنظیم هیچگونه مسیر پیشفرض (default routes).
-H,--xidhwaddr- استفاده از چهار بایت آخر آدرس سختافزاری به عنوان DHCP xid به جای یک عدد تصادفی تولیدشده.
-J,--broadcast- دستور به
سرور DHCP برای
ارسال
پاسخها به
صورت پخش
همگانی (broadcast)
به کلاینت.
معمولاً
این گزینه
فقط برای
رابطهای
غیراترنتی
مانند FireWire و InfiniBand
تنظیم
میشود. در
بیشتر
موارد،
dhcpcdاین گزینه را بهطور خودکار تنظیم خواهد کرد. -K,--nolink- عدم دریافت
پیامهای
پیوند برای
وضعیت حامل
(carrier status). تنها در
صورت
مواجهه با
درایورهای
سختافزاری
دارای
اشکال یا
هنگام
اجرای
dhcpcdاز طریق یک مدیر شبکه باید از این گزینه استفاده کنید. -L,--noipv4ll- عدم استفاده از IPv4LL (معروف به APIPA، Bonjour یا ZeroConf).
-O,--nooptionoption- حذف option از پیام DHCP پیش از پردازش.
-P,--printpidfile- چاپ pidfile
مورد
استفاده
توسط
dhcpcdبر اساس آرگومانهای خط فرمان در خروجی استاندارد. -Q,--requireoption- الزام به
وجود option
در تمام
پیامهای
DHCP؛ در غیر
این صورت
پیام
نادیده
گرفته
میشود.
برای الزام
dhcpcdبه پاسخدهی تنها به سرورهای DHCP و نه سرورهای BOOTP، میتوانید از-Qdhcp_message_type استفاده کنید. -q,--quiet- حالت
بیصدا
برای
dhcpcdدر خط فرمان؛ فقط هشدارها و خطاها نمایش داده میشوند. اگر این گزینه مجدداً استفاده شود، تمام خروجیهای کنسول غیرفعال میشوند. این پیامها همچنان از طریق syslog(3) ثبت میگردند. -T,--test- پس از
دریافت
پیامهای DHCP
فقط
فراخوانی
/usr/lib/dhcpcd/dhcpcd-run-hooks با
دلیل TEST، که
متغیرهای DHCP
یافتشده
در پیام را
در کنسول
نمایش
میدهد.
پیکربندی
رابط و
هیچیک از
فایلهای
پیکربندی
دستکاری
نمیشوند.
گزینه
rapid_commit در
حالت TEST
ارسال
نمیشود تا
سرور آدرسی
را اجاره
ندهد. برای
آزمایش INFORM،
رابط باید
قبل از شروع
dhcpcdبا آدرس مورد نظر پیکربندی شده باشد. -U,--dumplease[interface]- تخلیه (dump)
اجاره فعلی
برای interface
در خروجی
استاندارد.
اگر هیچ
interface مشخص
نشده باشد،
اجاره تمام
رابطها
تخلیه
میشود. از
پرچمهای
-4یا-6برای تعیین خانواده آدرس استفاده کنید. اگر یک اجاره از طریق ورودی استاندارد منتقل (pipe) شود، از رابط ویژه با نام - برای تخلیه آن استفاده کنید. در این حالت، تعیین خانواده آدرس اجباری است. -V,--variables- نمایش فهرستی از کدهای گزینه، متغیرهای مرتبط و کدگذاری مربوطه جهت استفاده در dhcpcd-run-hooks(8). متغیرها با new_ و old_ پیشوند میگیرند مگر اینکه شماره گزینه - باشد. متغیرهای بدون گزینه بخشی از پیام DHCP هستند و نمیتوان آنها را مستقیماً درخواست کرد.
-W,--whitelistaddress[/cidr]- فقط پذیرش
بستهها از
address[/cidr]. در
صورت تنظیم
-W,--whitelist-،گزینه-X,--blacklistنادیده گرفته میشود. -X,--blacklistaddress[/cidr]- نادیده گرفتن تمام بستهها از address[/cidr].
-Z,--denyinterfacespattern- هنگام شناسایی رابطها، نام رابط نباید با pattern تطبیق داشته باشد؛ این پارامتر فهرستی از الگوهای جداشده با فاصله یا کاما است که به fnmatch(3) ارسال میشود.
-z,--allowinterfacespattern- هنگام
شناسایی
رابطها،
نام رابط
باید با
pattern تطبیق
داشته
باشد؛ این
پارامتر
فهرستی از
الگوهای
جداشده با
فاصله یا
کاما است که
به fnmatch(3)
ارسال
میشود. اگر
رابطی در
-Z,--denyinterfacesنیز مطابقت داشته باشد، همچنان مسدود خواهد شد. --inactive- عدم
راهاندازی
رابطهایی
غیر از
موارد
مشخصشده
در خط
فرمان. این
قابلیت به
dhcpcdامکان میدهد در حالت مدیر شروع شود و سپس منتظر دستورات بعدیdhcpcdبماند تا هر رابط را در صورت نیاز راهاندازی کند. --configure- اجازه به
dhcpcdبرای پیکربندی سیستم. این رفتار پیشفرض است و مقدارif_configured=trueرا تنظیم میکند. --noconfiguredhcpcdبههیچوجه سیستم را پیکربندی نخواهد کرد. این گزینه فقط زمانی مفید است که--scriptکه توسطdhcpcdدر هر رویداد شبکه فراخوانی میشود، در عوض سیستم را پیکربندی کند. این حالت با حالت-T,--testمتفاوت است زیرا یکباره (one-shot) نیست و تنها تغییر در محیط، اضافه شدنif_configured=falseاست.--nodev- عدم بارگذاری هیچیک از ماژولهای مدیریت /dev.
مدیریت پیوند شخص ثالث (3RDPARTY LINK MANAGEMENT)
برخی
رابطها
نیاز به
پیکربندی
توسط
برنامههای
شخص ثالث
مانند PPP یا VPN
دارند.
هنگامی که
پیکربندی
یک رابط در
dhcpcd به
عنوان STATIC یا INFORM
بدون آدرس
علامتگذاری
شده باشد،
dhcpcd رابط
را تا زمانی
که آدرسی به
آن افزوده
یا از آن حذف
شود تحت نظر
میگیرد و
مطابق آن
عمل میکند.
برای
رابطهای
نقطه به
نقطه (مانند
PPP)، یک مسیر
پیشفرض به
مقصد آن
بهطور
خودکار به
پیکربندی
اضافه
میشود. اگر
رابط نقطه
به نقطه
برای INFORM
پیکربندی
شده باشد،
dhcpcd پیام INFORM
را به صورت
تکپخشی (unicast)
به مقصد
ارسال
میکند، در
غیر این
صورت به
حالت
پیشفرض STATIC
درمیآید.
نکات (NOTES)
dhcpcd برای
تمام
پیکربندیهای
IPv4 نیازمند
دستگاه
فیلتر بسته
برکلی (BPF) در
سیستمهای
مبتنی بر BSD و
دستگاه
فیلتر سوکت
لینوکس (LPF) در
سیستمهای
مبتنی بر
لینوکس
است.
اگر dhcpcd
را از طریق
خط فرمان به
یک رابط تکی
و به دلخواه
یک خانواده
آدرس محدود
کنید، تمام
فراخوانیهای
بعدی به
dhcpcd جهت
اتصال مجدد
(rebind)،
پیکربندی
مجدد یا
خروج باید
همان
پرچمهای
محدودکننده
را داشته
باشند تا
dhcpcd بداند
به کدام
فرایند
سیگنال
ارسال کند.
برخی
سرورهای DHCP
فیلتر کردن
ClientID را
پیادهسازی
میکنند.
اگر dhcpcd
جایگزین یک
کلاینت DHCP در
حال
استفاده
میشود،
ممکن است
لازم باشد
گزینه clientid
ارسالی
توسط dhcpcd
را برای
مطابقت
تنظیم کنید.
در صورت
استفاده از
DUID به جای ClientID،
فایل
/var/lib/dhcpcd/duid را
بر همین
اساس
ویرایش
نمایید.
فایلها (FILES)
- /etc/dhcpcd.conf
- فایل پیکربندی برای dhcpcd. اگر همیشه از گزینههای یکسانی استفاده میکنید، آنها را در اینجا قرار دهید.
- /usr/lib/dhcpcd/dhcpcd-run-hooks
- اسکریپت پوسته Bourne که برای پیکربندی یا لغو پیکربندی یک رابط اجرا میشود.
- /usr/lib/dhcpcd/dev
- ماژولهای مدیریت /dev در لینوکس.
- /usr/lib/dhcpcd/dhcpcd-hooks
- دایرکتوری
حاوی
اسکریپتهای
پوسته Bourne که
توسط
اسکریپت
فوق اجرا
میشوند. هر
اسکریپت را
میتوان با
استفاده از
گزینه
-C,--nohookتوضیح داده شده در بالا غیرفعال کرد. - /var/lib/dhcpcd/duid
- فایل متنی که حاوی DUID مورد استفاده برای شناسایی میزبان است.
- /var/lib/dhcpcd/secret
- فایل متنی که حاوی یک کلید مخفی است که تنها برای میزبان شناخته شده است.
- /var/lib/dhcpcd/interface-ssid.lease
- پیام واقعی DHCP که توسط سرور ارسال شده است. ما از این فایل هنگام خواندن آخرین اجاره استفاده میکنیم و mtime فایل را به عنوان زمان صدور آن در نظر میگیریم.
- /var/lib/dhcpcd/interface-ssid.lease6
- پیام واقعی DHCPv6 که توسط سرور ارسال شده است. ما از این فایل هنگام خواندن آخرین اجاره استفاده میکنیم و mtime فایل را به عنوان زمان صدور آن در نظر میگیریم.
- /var/lib/dhcpcd/rdm_monotonic
- شمارنده یکنواخت (monotonic counter) مورد استفاده در فیلد replay در گزینههای احراز هویت را ذخیره میکند.
- /run/dhcpcd/pid
- شناسه
فرایند (PID)
مربوط به
dhcpcdدر حال اجرا روی تمام رابطها را ذخیره میکند. - /run/dhcpcd/interface.pid
- شناسه
فرایند (PID)
مربوط به
dhcpcdدر حال اجرا روی interface را ذخیره میکند. - /run/dhcpcd/sock
- سوکت کنترلی برای دیمن مدیر (manager daemon).
- /run/dhcpcd/interface.sock
- سوکت کنترلی برای دیمن اختصاصی هر رابط.
همچنین ببینید (SEE ALSO)
fnmatch(3), if_nametoindex(3), dhcpcd.conf(5), resolv.conf(5), dhcpcd-run-hooks(8), resolvconf(8)
استانداردها (STANDARDS)
RFC 951, RFC 1534, RFC 2104, RFC 2131, RFC 2132, RFC 2563, RFC 2855, RFC 3004, RFC 3118, RFC 3203, RFC 3315, RFC 3361, RFC 3633, RFC 3396, RFC 3397, RFC 3442, RFC 3495, RFC 3925, RFC 3927, RFC 4039, RFC 4075, RFC 4242, RFC 4361, RFC 4390, RFC 4702, RFC 4074, RFC 4861, RFC 4833, RFC 4941, RFC 5227, RFC 5942, RFC 5969, RFC 6106, RFC 6334, RFC 6355, RFC 6603, RFC 6704, RFC 7217, RFC 7550, RFC 7844.
نویسندگان (AUTHORS)
Roy Marples <roy@marples.name>
اشکالات (BUGS)
لطفاً آنها را به https://roy.marples.name/projects/dhcpcd گزارش دهید.
| July 5, 2026 | Linux 6.12.107+deb13-amd64 |