NETWORKD.CONF(5) networkd.conf NETWORKD.CONF(5)

networkd.conf, networkd.conf.d - پیکربندی سرویس مدیریت شبکه سیستم‌دی (systemd-networkd)

/etc/systemd/networkd.conf
/run/systemd/networkd.conf
/usr/local/lib/systemd/networkd.conf
/usr/lib/systemd/networkd.conf
/etc/systemd/networkd.conf.d/*.conf
/run/systemd/networkd.conf.d/*.conf
/usr/local/lib/systemd/networkd.conf.d/*.conf
/usr/lib/systemd/networkd.conf.d/*.conf

این فایل‌های پیکربندی، پارامترهای سراسری شبکه را کنترل می‌کنند.

پیکربندی پیش‌فرض در هنگام کامپایل تنظیم می‌شود، بنابراین پیکربندی تنها زمانی مورد نیاز است که انحراف از آن مقادیر پیش‌فرض لازم باشد. فایل پیکربندی اصلی از یکی از دایرکتوری‌های فهرست‌شده به ترتیب اولویت بارگذاری می‌شود و تنها از اولین فایل یافت‌شده استفاده می‌گردد: /etc/systemd/، /run/systemd/، /usr/local/lib/systemd/ [1]، /usr/lib/systemd/. نسخه ارائه‌شده توسط توزیع‌کننده (vendor) شامل ورودی‌های کامنت‌شده‌ای است که مقادیر پیش‌فرض را به عنوان راهنمایی برای مدیر سیستم نشان می‌دهد. بازنویسی‌های محلی را نیز می‌توان با ایجاد فایل‌های تکمیلی (drop-in) مطابق توضیحات زیر انجام داد. فایل پیکربندی اصلی را نیز می‌توان برای این منظور ویرایش کرد (یا یک رونوشت در /etc/ اگر تحت /usr/ عرضه شده باشد)، با این حال استفاده از فایل‌های تکمیلی (drop-in) برای پیکربندی محلی نسبت به ایجاد تغییرات در فایل پیکربندی اصلی توصیه می‌شود.

علاوه بر فایل پیکربندی اصلی، قطعه‌کدهای پیکربندی تکمیلی (drop-in) از دایرکتوری‌های /usr/lib/systemd/*.conf.d/، /usr/local/lib/systemd/*.conf.d/، و /etc/systemd/*.conf.d/ خوانده می‌شوند. این فایل‌های تکمیلی اولویت بالاتری دارند و فایل پیکربندی اصلی را بازنویسی (override) می‌کنند. فایل‌ها در زیردایرکتوری‌های پیکربندی *.conf.d/ صرف‌نظر از اینکه در کدام زیردایرکتوری قرار دارند، بر اساس نام فایل خود به ترتیب واژه‌نگاری (lexicographic) مرتب می‌شوند. هنگامی که چندین فایل یک گزینه یکسان را تعیین می‌کنند، برای گزینه‌هایی که فقط یک مقدار واحد را می‌پذیرند، ورودی موجود در فایلی که در آخرین جایگاه مرتب‌سازی قرار می‌گیرد اولویت دارد، و برای گزینه‌هایی که فهرستی از مقادیر را می‌پذیرند، ورودی‌ها به همان ترتیبی که در فایل‌های مرتب‌شده ظاهر می‌شوند جمع‌آوری می‌گردند.

هنگامی که بسته‌ها نیاز به سفارشی‌سازی پیکربندی دارند، می‌توانند فایل‌های تکمیلی (drop-in) را تحت /usr/ نصب کنند. فایل‌های موجود در /etc/ برای مدیر محلی سیستم رزرو شده‌اند، که می‌تواند از این منطق برای بازنویسی فایل‌های پیکربندی نصب‌شده توسط بسته‌های توزیع‌کننده استفاده کند. برای بازنویسی فایل‌های تکمیلی بسته، باید از فایل‌های تکمیلی استفاده شود، زیرا فایل پیکربندی اصلی اولویت پایین‌تری دارد. توصیه می‌شود نام تمام فایل‌ها در این زیردایرکتوری‌ها با یک عدد دو رقمی و یک خط تیره پیشوندگذاری شود تا ترتیب آن‌ها ساده‌تر شود. این کار همچنین مفهوم اولویت‌های تکمیلی را تعریف می‌کند تا به توزیع‌کنندگان سیستم‌عامل اجازه دهد فایل‌های تکمیلی را در محدوده خاصی پایین‌تر از محدوده مورد استفاده کاربران عرضه کنند. این امر باید خطر بازنویسی تصادفی فایل‌های تکمیلی تعریف‌شده توسط کاربران توسط فایل‌های تکمیلی بسته‌ها را کاهش دهد. توصیه می‌شود از محدوده 10-40 برای فایل‌های تکمیلی در /usr/ و از محدوده 60-90 برای فایل‌های تکمیلی در /etc/ و /run/ استفاده شود، تا اطمینان حاصل گردد که فایل‌های تکمیلی محلی و گذرا بر فایل‌های تکمیلی عرضه‌شده توسط توزیع‌کننده سیستم‌عامل اولویت دارند.

برای غیرفعال کردن یک فایل پیکربندی ارائه‌شده توسط توزیع‌کننده، روش توصیه‌شده قرار دادن یک پیوند نمادین (symlink) به /dev/null در دایرکتوری پیکربندی در /etc/، با همان نام فایل پیکربندی توزیع‌کننده است.

گزینه‌های زیر در بخش [Network] در دسترس هستند:

SpeedMeter=

یک مقدار بولی می‌گیرد. اگر روی yes تنظیم شود، آنگاه systemd-networkd میزان ترافیک هر رابط شبکه را اندازه می‌گیرد و networkctl status INTERFACE سرعت اندازه‌گیری‌شده را نشان می‌دهد. پیش‌فرض no است.

در نگارش 244 اضافه شد.

SpeedMeterIntervalSec=

بازه زمانی برای محاسبه سرعت ترافیک هر رابط را مشخص می‌کند. اگر SpeedMeter=no باشد، این مقدار نادیده گرفته می‌شود. پیش‌فرض 10sec است.

در نگارش 244 اضافه شد.

ManageForeignRoutingPolicyRules=

یک مقدار بولی. هنگامی که true باشد، systemd-networkd قوانینی را که در فایل‌های .network پیکربندی نشده‌اند (به جز قوانینی با پروتکل "kernel") حذف می‌کند. هنگامی که false باشد، هیچ قانون خارجی را حذف نخواهد کرد و آن‌ها را حفظ می‌کند حتی اگر در یک فایل .network پیکربندی نشده باشند. پیش‌فرض yes است.

در نگارش 249 اضافه شد.

ManageForeignRoutes=

یک مقدار بولی. هنگامی که true باشد، systemd-networkd مسیرهایی (routes) را که در فایل‌های .network پیکربندی نشده‌اند (به جز مسیرهایی با پروتکل "kernel"، "dhcp" هنگامی که KeepConfiguration= روی true یا "dhcp" باشد، و "static" هنگامی که KeepConfiguration= روی true یا "static" باشد) حذف می‌کند. هنگامی که false باشد، هیچ مسیر خارجی را حذف نخواهد کرد و آن‌ها را نگه می‌دارد حتی اگر در یک فایل .network پیکربندی نشده باشند. پیش‌فرض yes است.

در نگارش 246 اضافه شد.

ManageForeignNextHops=

یک مقدار بولی. هنگامی که true باشد، systemd-networkd گام‌های بعدی (nexthops) را که در فایل‌های .network پیکربندی نشده‌اند (به جز مسیرهایی با پروتکل "kernel") حذف می‌کند. هنگامی که false باشد، هیچ nexthop خارجی را حذف نخواهد کرد و آن‌ها را حفظ می‌کند حتی اگر در یک فایل .network پیکربندی نشده باشند. پیش‌فرض yes است.

در نگارش 256 اضافه شد.

RouteTable=

نام جدول مسیریابی را تعریف می‌کند. فهرستی از جفت‌های نام و شماره جدول مسیریابی جداشده با فاصله را می‌پذیرد. نام و شماره جدول مسیریابی در هر جفت با دو نقطه جدا می‌شوند، یعنی "name:number". نام جدول مسیریابی نباید "default"، "main"، یا "local" باشد، زیرا این نام‌های جدول مسیریابی به ترتیب با شماره‌های جدول مسیریابی 253، 254 و 255 از پیش تعریف شده‌اند. شماره جدول مسیریابی باید یک عدد صحیح در محدوده 1...4294967295 باشد، به جز شماره‌های از پیش تعریف‌شده 253، 254 و 255. این تنظیم می‌تواند چندین بار مشخص شود. اگر یک رشته خالی مشخص شود، فهرستی که قبلاً مشخص شده بود پاک می‌شود. پیش‌فرض تنظیم‌نشده (unset) است.

در نگارش 248 اضافه شد.

IPv4Forwarding=

هدایت (forwarding) بسته‌های IPv4 را برای سیستم پیکربندی می‌کند. یک مقدار بولی می‌پذیرد. این گزینه گزینه‌های sysctl شامل net.ipv4.conf.default.forwarding و net.ipv4.conf.all.forwarding را کنترل می‌کند. برای جزئیات بیشتر درباره گزینه‌های sysctl به IP Sysctl[2] مراجعه کنید. پیش‌فرض تنظیم‌نشده است و گزینه‌های sysctl تغییر نخواهند کرد.

اگر یک رابط با یک فایل .network پیکربندی شده باشد که IPMasquerade= را برای IPv4 فعال کند (یعنی "ipv4" یا "both")، این تنظیم به صورت ضمنی فعال تلقی می‌شود مگر اینکه به صراحت مشخص شده باشد. برای جزئیات بیشتر به IPMasquerade= در systemd.network(5) مراجعه کنید.

در نگارش 256 اضافه شد.

IPv6Forwarding=

هدایت (forwarding) بسته‌های IPv6 را برای سیستم پیکربندی می‌کند. یک مقدار بولی می‌پذیرد. این گزینه گزینه‌های sysctl شامل net.ipv6.conf.default.forwarding و net.ipv6.conf.all.forwarding را کنترل می‌کند. برای جزئیات بیشتر درباره گزینه‌های sysctl به IP Sysctl[2] مراجعه کنید. پیش‌فرض تنظیم‌نشده است و گزینه‌های sysctl تغییر نخواهند کرد.

اگر یک رابط با یک فایل .network پیکربندی شده باشد که IPMasquerade= را برای IPv6 فعال کند (یعنی "ipv6" یا "both")، این تنظیم به صورت ضمنی فعال تلقی می‌شود مگر اینکه به صراحت مشخص شده باشد. برای جزئیات بیشتر به IPMasquerade= در systemd.network(5) مراجعه کنید.

در نگارش 256 اضافه شد.

IPv6PrivacyExtensions=

مقدار پیش‌فرض را برای IPv6PrivacyExtensions= به ازای هر شبکه مشخص می‌کند. یک مقدار بولی یا مقادیر ویژه "prefer-public" و "kernel" را می‌پذیرد. برای جزئیات به systemd.network(5) مراجعه کنید. پیش‌فرض "no" است.

در نگارش 254 اضافه شد.

UseDomains=

مقدار پیش‌فرض مستقل از شبکه و پروتکل را برای تنظیمات مشابه در بخش‌های [IPv6AcceptRA]، [DHCPv4] و [DHCPv6] در زیر مشخص می‌کند. یک مقدار بولی یا مقدار ویژه route را می‌پذیرد. به همین تنظیم در systemd.network(5) مراجعه کنید. پیش‌فرض "no" است.

در نگارش 256 اضافه شد.

این بخش، تنظیمات پیش‌فرض کشف همسایه (Neighbor Discovery) را پیکربندی می‌کند. گزینه‌های زیر در بخش [IPv6AcceptRA] در دسترس هستند:

UseDomains=

مقدار پیش‌فرض مستقل از شبکه را برای تنظیم مشابه در بخش [IPv6AcceptRA] در systemd.network(5) مشخص می‌کند. یک مقدار بولی یا مقدار ویژه route را می‌پذیرد. در صورت عدم تعیین، مقدار مشخص‌شده در بخش [Network] در networkd.conf(5) که پیش‌فرض آن "no" است، استفاده خواهد شد.

در نگارش 256 اضافه شد.

یک بخش [IPv6AddressLabel] کلیدهای زیر را می‌پذیرد. چندین بخش [IPv6AddressLabel] را برای پیکربندی برچسب‌های آدرس متعدد مشخص کنید. برچسب‌های آدرس IPv6 برای انتخاب آدرس استفاده می‌شوند. به RFC 3484[3] مراجعه کنید. اولویت توسط فضای کاربری (userspace) مدیریت می‌شود، و تنها خود برچسب در هسته ذخیره می‌گردد.

Label=

برچسب برای پیشوند، یک عدد صحیح بدون علامت در محدوده 0...4294967294 است. مقدار 0xffffffff رزرو شده است. این تنظیم اجباری است.

در نگارش 257 اضافه شد.

Prefix=

پیشوند IPv6 آدرسی همراه با طول پیشوند است که با نویسه اسلش "/" جدا می‌شود. این تنظیم اجباری است.

در نگارش 257 اضافه شد.

این بخش، پیکربندی‌های پیش‌فرض کلاینت DHCPv4 را تنظیم می‌کند. اگر کلاینت DHCPv4 روی یک رابط شبکه فعال باشد، پیکربندی‌های زیر به صورت پیش‌فرض استفاده خواهند شد مگر اینکه صراحتاً در فایل .network مربوطه مشخص شده باشند. همچنین ببینید systemd.network(5).

گزینه‌های زیر پشتیبانی می‌شوند:

ClientIdentifier=

شناسه کلاینت DHCPv4 پیش‌فرض را برای استفاده مشخص می‌کند. یکی از مقادیر mac یا duid را می‌پذیرد. اگر روی mac تنظیم شود، آدرس MAC هر پیوند استفاده خواهد شد. اگر روی duid تنظیم شود، یک شناسه کلاینت منطبق با RFC4361، که ترکیبی از IAID و DUID است، استفاده می‌شود. مقدار IAID را می‌توان با IAID= در هر فایل .network منطبق پیکربندی کرد. مقدار DUID را می‌توان با DUIDType= و DUIDRawData= پیکربندی کرد. پیش‌فرض duid است.

در نگارش 258 اضافه شد.

DUIDType=

نحوه تولید DUID را مشخص می‌کند. برای شرح تمامی گزینه‌ها به RFC 3315[4] مراجعه کنید.

این گزینه یک عدد صحیح در محدوده 0...65535 یا یکی از مقادیر متنی زیر را می‌پذیرد:

vendor

اگر "DUIDType=vendor" باشد، آنگاه مقدار DUID با استفاده از "43793" به عنوان شناسه ارائه‌دهنده (systemd) و محتوای درهم‌سازی‌شده (هش‌شده) از machine-id(5) تولید می‌شود. اگر DUIDType= مشخص نشده باشد، این حالت پیش‌فرض است.

در نگارش 230 اضافه شد.

uuid

اگر "DUIDType=uuid" باشد و DUIDRawData= تنظیم نشده باشد، مقدار UUID محصول به عنوان مقدار DUID استفاده می‌شود. اگر سیستمی UUID محصول معتبر نداشته باشد، یک machine-id(5) مخصوص برنامه به عنوان مقدار DUID استفاده می‌شود. درباره شناسه ماشین مخصوص برنامه، به sd_id128_get_machine_app_specific(3) مراجعه کنید.

در نگارش 230 اضافه شد.

link-layer-time[:TIME], link-layer

اگر "link-layer-time" یا "link-layer" مشخص شده باشد، آنگاه آدرس MAC رابط به عنوان مقدار DUID استفاده می‌شود. مقدار "link-layer-time" می‌تواند یک مقدار زمان اضافی بعد از دو نقطه دریافت کند، به عنوان مثال "link-layer-time:2018-01-23 12:34:56 UTC". مقدار زمان پیش‌فرض "2000-01-01 00:00:00 UTC" است.

در نگارش 240 اضافه شد.

در تمام موارد، DUIDRawData= می‌تواند برای بازنویسی مقدار واقعی DUID استفاده‌شده به کار رود.

در نگارش 230 اضافه شد.

DUIDRawData=

مقدار DHCP DUID را به عنوان یک رشته هگزادسیمال منتهی به خط جدید که هر بایت آن با ":" جدا شده است، مشخص می‌کند. مقداری DUID که ارسال می‌شود از نوع DUID مشخص‌شده توسط DUIDType= و مقدار پیکربندی‌شده در اینجا تشکیل شده است.

مقدار DUID مشخص‌شده در اینجا بر DUID تولیدشده توسط systemd-networkd.service(8) از شناسه ماشین برتری دارد و آن را بازنویسی می‌کند. برای پیکربندی DUID به ازای هر شبکه، به systemd.network(5) مراجعه کنید. مقدار DHCP DUID پیکربندی‌شده باید با مشخصات در RFC 3315[5]، RFC 6355[6] مطابقت داشته باشد. برای پیکربندی IAID، به systemd.network(5) مراجعه کنید.

مثال ۱. یک DUIDType=vendor با مقدار سفارشی

DUIDType=vendor
DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00

این یک DUID به اندازه ۱۴ بایت را با نوع DUID-EN ("00:02")، شماره سازمانی 43793 ("00:00:ab:11")، و مقدار شناسه "f9:2a:c2:77:29:f9:5c:00" مشخص می‌کند.

در نگارش 230 اضافه شد.

UseDomains=

همانند گزینه موجود در بخش [IPv6AcceptRA] است، اما برای پروتکل DHCPv4 اعمال می‌شود.

در نگارش 256 اضافه شد.

این بخش، پیکربندی‌های پیش‌فرض کلاینت DHCPv6 را تنظیم می‌کند. اگر کلاینت DHCPv6 روی یک رابط شبکه فعال باشد، پیکربندی‌های زیر به صورت پیش‌فرض استفاده خواهند شد مگر اینکه صراحتاً در فایل .network مربوطه مشخص شده باشند. همچنین ببینید systemd.network(5).

گزینه‌های زیر پشتیبانی می‌شوند:

DUIDType=, DUIDRawData=

همانند بخش [DHCPv4].

در نگارش 249 اضافه شد.

UseDomains=

همانند بخش [DHCPv4].

در نگارش 256 اضافه شد.

بخش [DHCPRelay] شامل تنظیمات سراسری میزبان برای عامل بازپخش DHCP (DHCP relay agent) است.

ServerAddress=

آدرس IPv4 سرور بالادستی (upstream) DHCP را مشخص می‌کند. این تنظیم برای عمل کردن میزبان به عنوان یک عامل بازپخش DHCP ضروری است.

در نگارش 261 اضافه شد.

OverrideServerIdentifier=

یک مقدار بولی می‌پذیرد. هنگامی که فعال باشد، زیرگزینه Server Identifier Override و زیرگزینه Relay Agent Flags در گزینه Relay Agent Information به پیام DHCP که به سرور بالادستی DHCP هدایت می‌شود اضافه خواهند شد. پیش‌فرض false است.

در نگارش 261 اضافه شد.

RemoteId=

شناسه راه دور (remote ID) را مشخص می‌کند، که معمولاً توسط سرورهای DHCP برای شناسایی عامل بازپخش DHCP استفاده می‌شود. یک نوع داده و مقدار داده جداشده با دو نقطه ("type:value") را می‌پذیرد. نوع داده یکی از مقادیر "uint8"، "uint16"، "uint32"، "ipv4address"، "ipv6address" یا "string" را می‌پذیرد. کاراکترهای ویژه در رشته داده را می‌توان با استفاده از C-style escapes[7] اسکیپ کرد. در صورت عدم تنظیم، از یک UUID تولیدشده از شناسه ماشین محلی استفاده خواهد شد.

در نگارش 261 اضافه شد.

ExtraOption=

یک زیرگزینه اضافی در گزینه Relay Agent Information مشخص می‌کند که به پیام‌های DHCP هدایت‌شده به سرور بالادستی DHCP ضمیمه می‌شود. یک کد زیرگزینه، نوع داده، و مقدار داده جداشده با دو نقطه ("code:type:value") را می‌پذیرد. کد یک عدد صحیح در محدوده 1...254 است. برای نوع و داده‌های قابل قبول به RemoteId= در بالا مراجعه کنید. این تنظیم می‌تواند چندین بار مشخص شود. هنگامی که یک رشته خالی مشخص شود، تمام انتساب‌های قبلی پاک می‌شوند. پیش‌فرض تنظیم‌نشده است، و هیچ زیرگزینه اضافی ضمیمه نخواهد شد.

در نگارش 261 اضافه شد.

این بخش، تنظیمات پیش‌فرض سرور DHCP را پیکربندی می‌کند. گزینه‌های زیر در بخش [DHCPServer] در دسترس هستند:

PersistLeases=

مقدار پیش‌فرض را برای PersistLeases= به ازای هر شبکه مشخص می‌کند. یک مقدار بولی یا مقدار ویژه "runtime" را می‌پذیرد. برای جزئیات به systemd.network(5) مراجعه کنید. پیش‌فرض "yes" است.

در نگارش 256 اضافه شد.

systemd(1), systemd.network(5), systemd-networkd.service(8), machine-id(5), sd_id128_get_machine_app_specific(3)

1.
💣💥🧨💥💥💣 لطفاً توجه داشته باشید که این فایل‌های پیکربندی باید همیشه در دسترس باشند. اگر /usr/local/ یک پارتیشن جداگانه باشد، ممکن است در مراحل اولیه بوت در دسترس نباشد و نباید برای پیکربندی استفاده شود.
2.
IP Sysctl
3.
RFC 3484
4.
RFC 3315
5.
RFC 3315
6.
RFC 6355
7.
C-style escapes
systemd 261.2