NTPD.CONF(5) File Formats Manual NTPD.CONF(5)

ntpd.conf — فایل پیکربندی دیمون پروتکل زمان شبکه OpenNTPD

این صفحه راهنما قالب فایل پیکربندی ntpd(8) را شرح می‌دهد.

قالب ntpd.conf به صورت زیر است:

خطوط خالی و خطوطی که با نویسه ‘#’ آغاز می‌شوند نادیده گرفته می‌شوند.

کلمات کلیدی ممکن است چندین بار در فایل پیکربندی مشخص شوند. گزینه‌های اصلی پیکربندی به شرح زیر هستند:

address [rtable table-id]
دیمون ntpd(8) توانایی همگام‌سازی ساعت محلی با سرورهای راه دور NTP را دارد و در صورتی که این دستورالعمل مشخص شده باشد، می‌تواند خودش نیز به عنوان یک سرور NTP عمل کرده و ساعت محلی را بازتوزیع کند.

یک نشانی IP محلی یا نام میزبان را مشخص می‌کند که دیمون ntpd(8) باید روی آن گوش فرا دهد تا همگام‌سازی کلاینت‌های راه دور فعال شود. اگر این دستور چندین بار تکرار شود، ntpd(8) روی هر یک از نشانی‌های داده‌شده گوش فرا خواهد داد. اگر ‘*’ به عنوان نشانی داده شود، ntpd(8) با استفاده از جدول مسیریابی مشخص‌شده روی تمام نشانی‌های محلی گوش فرا خواهد داد. ntpd(8) به‌طور پیش‌فرض روی هیچ نشانی گوش فرا نمی‌دهد. کلمه کلیدی اختیاری rtable در صورتی که سیستم‌عامل از دامنه‌های مسیریابی (rdomainها) پشتیبانی کند، جدول مسیریابی مورد نظر برای گوش دادن را مشخص می‌کند. به‌طور پیش‌فرض ntpd(8) با استفاده از جدول مسیریابی فعلی گوش فرا می‌دهد. برای نمونه:

listen on *

یا

listen on 127.0.0.1
listen on ::1
listen on 127.0.0.1 rtable 4
sourceaddr
نشانی IP محلی‌ای را مشخص می‌کند که دیمون ntpd(8) باید برای پرس‌وجوهای ارسالی به سرورهایی که در ادامه مشخص می‌شوند استفاده کند؛ این گزینه در دستگاه‌هایی با چندین رابط شبکه کاربرد دارد. برای نمونه:
query from 192.0.2.1
query from 2001:db8::1
device [correction microseconds] [refid ID-string] [stratum stratum-value] [trusted] [weight weight-value]
در صورتی که سیستم‌عامل از حسگرها پشتیبانی کند، یک دستگاه حسگر تفاضل زمانی (timedelta) را مشخص می‌کند که ntpd(8) باید استفاده کند. حسگر می‌تواند چندین بار مشخص شود؛ ntpd(8) از هر حسگر داده‌شده‌ای که واقعاً وجود داشته باشد استفاده خواهد کرد. حسگرهای ناموجود نادیده گرفته می‌شوند. اگر ‘*’ به عنوان نام دستگاه داده شود، ntpd(8) از تمام حسگرهای تفاضل زمانی که می‌یابد استفاده خواهد کرد. ntpd(8) به‌طور پیش‌فرض از هیچ حسگر تفاضل زمانی استفاده نمی‌کند. برای نمونه:
sensor *
sensor nmea0

یک مقدار تصحیح correction بر حسب میکروثانیه می‌تواند برای جبران انحراف حسگر تعیین شود. حداکثر مقدار تصحیح ۱۲۷ ثانیه است. برای نمونه، اگر یک گیرنده DCF77 به اندازه ۷۰ میلی‌ثانیه از زمان واقعی عقب باشد:

sensor udcf0 correction 70000

یک شناسه refid ID-string حداکثر تا ۴ نویسه اسکی (ASCII) می‌تواند برای اعلام نوع حسگر به کلاینت‌ها مشخص شود. سند RFC 2030 شناسه‌های مرجع متداولی را پیشنهاد می‌کند، اما شناسه‌های جدید نیز «می‌توانند بر حسب نیاز ابداع شوند». اگر ID-string مشخص نشود، ntpd(8) از یک شناسه مرجع عمومی استفاده خواهد کرد. برای نمونه:

sensor nmea0 refid GPS

کلمه کلیدی stratum می‌تواند برای تغییر مقدار لایه (stratum) از مقدار پیش‌فرض ۱ استفاده شود.

کلمه کلیدی trusted نشان می‌دهد که زمان دریافت شده امن، قابل اعتماد و در برابر حملات مرد میانی آسیب‌پذیر نیست، بنابراین اعتبارسنجی محدودیت‌ها (constraints) نادیده گرفته می‌شود. این گزینه برای تصحیح زمان در هنگام راه‌اندازی سیستم در محیط‌هایی که امکان استفاده از constraints وجود ندارد، مفید است.

کلمه کلیدی weight امکان کنترل دقیق‌تر روی اهمیت نسبی منابع زمان (سرورها یا دستگاه‌های حسگر) را فراهم می‌کند. وزن‌ها در بازه ۱ تا ۱۰ تعیین می‌شوند؛ اگر وزنی مشخص نشود، مقدار پیش‌فرض ۱ است. به عنوان نمونه، سروری با وزن ۵، پنج برابر بیشتر از سروری با وزن ۱ روی محاسبه انحراف زمان تأثیر خواهد داشت.

address [trusted] [weight weight-value]
نشانی IP یا نام میزبان یک سرور NTP را برای همگام‌سازی با آن مشخص می‌کند. اگر این گزینه چندین بار ذکر شود، ntpd(8) تلاش خواهد کرد با تمام سرورهای مشخص‌شده همگام شود. اگر یک نام میزبان به چندین نشانی IPv4 و/یا IPv6 تفکیک شود، ntpd(8) از نخستین نشانی استفاده می‌کند. اگر پاسخی دریافت نکند، ntpd(8) با نشانی بعدی تلاش مجدد می‌کند و این کار را تا زمانی که نشانی کارآمدی پیدا شود ادامه می‌دهد. برای نمونه:
server 10.0.0.2 weight 5
server ntp.example.org weight 1

برای ایجاد افزونگی (redundancy)، پیکربندی چندین سرور روش مناسبی است. به‌طور کلی، بیشترین دقت با استفاده از سرورهایی به دست می‌آید که تأخیر شبکه پایینی دارند.

address [trusted] [weight weight-value]
همانند server, نشانی IP یا نام میزبان یک سرور NTP را برای همگام‌سازی با آن مشخص می‌کند. اگر چندین بار ذکر شود، ntpd(8) تلاش خواهد کرد با تمام سرورهای مشخص‌شده همگام شود. چنانچه نام میزبان به چندین نشانی IP تفکیک شود، ntpd(8) تلاش خواهد کرد با تمامی آن‌ها همگام‌سازی را انجام دهد. برای نمونه:
servers pool.ntp.org
servers pool.ntp.org weight 5

دیمون ntpd(8) می‌تواند پیکربندی شود تا هدر ‘Date’ را از سرورهای مورد اعتماد HTTPS از طریق TLS استعلام کند. این اطلاعات زمانی برای دقت بالا استفاده نمی‌شود، بلکه به عنوان یک محدودیت اعتبارسنجی‌شده عمل می‌کند و در نتیجه اثرات حملات مرد میانی در NTP بدون احراز هویت را کاهش می‌دهد. بسته‌های NTP دریافتی با اطلاعات زمانی که خارج از محدوده نزدیک به این محدودیت قرار گیرند نادیده گرفته شده و این سرورهای NTP به عنوان نامعتبر علامت‌گذاری می‌شوند.

پشتیبانی از محدودیت‌ها تنها در صورتی در دسترس است که ntpd(8) با کتابخانه libtls از LibreSSL پیوند (link) خورده باشد. پیکربندی یک محدودیت بدون libtls باعث می‌شود ntpd(8) هنگام راه‌اندازی پیامی هشدارآمیز را ثبت کند.

url [ip...]
نشانی اینترنتی (URL)، نشانی IP یا نام میزبان یک سرور HTTPS را برای ارائه محدودیت زمانی مشخص می‌کند. اگر پس از نشانی اینترنتی یک یا چند نشانی IP بیاید، نشانی اینترنتی و این IPها به نوبت آزمایش می‌شوند تا یک مورد کارآمد پیدا شود. مسیر URL و نام گواهی مورد انتظار همواره از URL مشخص‌شده استخراج می‌شود. اگر constraint from بیش از یک بار استفاده شود، ntpd(8) یک مقدار میانه را از تمام سرورهای مشخص‌شده برای محدودیت محاسبه خواهد کرد.
server ntp.example.org
constraint from www.example.com
constraint from "https://9.9.9.9" "2620:fe::9"
url
همانند constraint from, نشانی اینترنتی (URL)، نشانی IP یا نام میزبان یک سرور HTTPS را برای ارائه محدودیت زمانی مشخص می‌کند. چنانچه نام میزبان به چندین نشانی IP تفکیک شود، ntpd(8) یک محدودیت میانه از تمامی آن‌ها محاسبه خواهد کرد. برای نمونه:
servers pool.ntp.org
constraints from "https://www.google.com"

/etc/ntpd.conf
فایل پیکربندی پیش‌فرض ntpd(8).

ntpctl(8), ntpd(8), sysctl(8)

قالب فایل ntpd.conf نخستین بار در OpenBSD 3.6 ظاهر شد.

March 2, 2023 Linux 6.12.107+deb13-amd64