| NTP.TOML(5) | ntpd-rs | NTP.TOML(5) |
نام (NAME)
ntp.toml - فایل پیکربندی دیمن زمان ntpd-rs
توضیحات (DESCRIPTION)
پیکربندی ntpd-rs در قالب فایل ntp.toml انجام میشود. قالب TOML از جهات متعددی شبیه به فرمت ساده INI به همراه چندین افزونه است که سینتکسی شبیه به JSON را امکانپذیر میسازد.
فایل پیکربندی ntpd-rs از چندین بخش تشکیل شده است که هر کدام بخش مجزایی از فرایند ntp-daemon را پیکربندی میکنند. هر یک از این بخشها در ادامه این سند شرح داده شدهاند. بسیاری از تنظیمات دارای مقادیر پیشفرضی هستند که در کنار هر تنظیم پیکربندی نشان داده شده است.
دیمن NTP تنها از اتصالات کلاینت-سرور تکپخشی (unicast) پشتیبانی میکند. بیشتر ترافیک NTP، بهویژه در سراسر اینترنت عمومی، تقریباً منحصراً از این حالت استفاده میکند؛ بنابراین این موضوع برای اکثر سناریوها یک محدودیت عملی به شمار نمیآید.
حالتهای منبع (SOURCE MODES)
انواع مختلفی از منابع (برای جزئیات بیشتر به بخش زیر مراجعه کنید) توسط دیمن NTP پشتیبانی میشوند. برای تعیین نوع منبع، میتوانید فیلد mode را با هر یک از این گزینهها پیکربندی کنید:
- server
- یک منبع server به یک سرور NTP خاص متصل میشود. در صورت قطع اتصال، تلاشهایی برای اتصال مجدد به منبع صورت خواهد گرفت.
- pool
- یک منبع pool با حل نام میزبان از طریق DNS، چندین سرور NTP را بازیابی میکند. سپس سعی میکند به طور همزمان به چندین سرور از این سرورها متصل شود. اگر اتصالی قطع شود، سرور جدیدی از استخر بازیابی خواهد شد.
- nts
- اتصال به یک منبع واحد امنیت زمان شبکه (NTS). پروتکل NTS از دستتکانی TLS برای تبادل اسرار با سرور استفاده میکند تا امکان تأیید عدم دستکاری در پیامهای NTP فراهم شود. توجه داشته باشید که پروتکل TLS نیازمند آن است که هم کلاینت و هم سرور تخمینی تقریبی از زمان فعلی داشته باشند.
- nts-pool
- اتصال به یک استخر از منابع امنیت زمان شبکه (NTS). این ویژگی در حال حاضر آزمایشی است و ممکن است در نسخههای بعدی به شیوههایی تغییر کند که با نسخههای قبلی سازگار نباشد.
- sock
- یک منبع sock به یک سوکت GPSd متصل میشود تا دادههای زمانی را از گیرندههای GPS دریافت کند. توجه داشته باشید که GPSd باید پس از اجرای ntpd-rs (مجدداً) راهاندازی شود تا بتواند به سوکت متصل گردد.
- pps
- یک منبع PPS به یک دستگاه پالس در ثانیه (Pulse Per Second) متصل میشود که به طور پیشفرض فرض میشود در هر ثانیه رند شده یک پالس ارسال میکند. از آنجایی که این دستگاهها فقط دادههای دورهای ارائه میدهند، جزو minimum-agreeing-sources به حساب نمیآیند.
پیکربندی (CONFIGURATION)
[source-defaults]
برخی از رفتارهای یک منبع قابل پیکربندی هستند. میتوانید مقادیر پیشفرض آن تنظیمات را در بخش [source-defaults] تعیین کنید.
- poll-interval-limits = { min = min, max = max } ({ min = 4, max = 10})
- محدودیت تعداد دفعات پرسوجوی زمان جدید از یک منبع را مشخص میکند. برای اکثر موارد، مقادیر پیشفرض کافی خواهند بود. مقادیر min و max بر حسب log2 تعداد ثانیهها (یعنی دو به توان مقدار بازه) مشخص میشوند. بازه ۴ معادل ۱۶ ثانیه و بازه ۱۰ معادل ۱۰۲۴ ثانیه است. در صورت مشخص شدن، هر دو مقدار min و max باید تعیین شوند.
- initial-poll-interval = interval (4)
- بازه نظرسنجی اولیه که هنگام راهاندازی استفاده میشود. مقدار بر حسب log2 تعداد ثانیهها داده میشود (یعنی دو به توان مقدار بازه). مقدار پیشفرض ۴ معادل بازه ۱۶ ثانیهای است.
[[source]]
هر [[source]] مجموعهای از یک یا چند منبع زمانی برای دیمن است تا اطلاعات زمان را از آنها دریافت کند. هر تعداد منبع را میتوان با تکرار بخش [[source]] (به براکتهای دوتایی توجه کنید) به تعداد دفعات مورد نیاز پیکربندی کرد. هر منبع را میتوان برای اتصال به یک مکان راه دور خاص تنظیم کرد. حالتهای متعددی برای اتصال به منابع پشتیبانی میشوند. اگر کمتر از minimum-agreeing-sources منبع زمانی پیکربندی شده باشد، هیچ زمانی با ساعت محلی همگام نخواهد شد. توجه داشته باشید که یک pool به عنوان چندین منبع زمانی به حساب میآید.
- mode = mode
- یکی از حالتهای منبع را که ntpd-rs پشتیبانی میکند مشخص کنید: server، pool، nts، nts-pool، sock یا pps. برای شرح حالتهای مختلف منبع، بخش SOURCE MODES را ببینید. توجه داشته باشید که منابع از نوع nts-pool آزمایشی هستند و رفتار آنها ممکن است بین نسخهها دچار تغییرات ناسازگار با قبل شود.
- address = address
- آدرس راه دور منبع را مشخص میکند. برای منابع server، این آدرس سرور راه دور NTP خواهد بود. برای منابع pool، این آدرس DNS استخر NTP و برای NTS آدرس سرور تبادل کلید خواهد بود. آدرس سرور ممکن است شامل شماره درگاه (پورت) باشد که با اضافه کردن یک دونقطه (:) به دنبال شماره پورت مشخص میشود. در صورت عدم تعیین، دیمن به سرورهای server و pool از طریق درگاه 123 متصل میشود؛ برای منابع nts درگاه پیشفرض 4460 است.
- certificate-authority = cert
- تنها در منابع دارای حالت nts قابل تنظیم است. مسیر گواهی مرجع صدور گواهی (CA) اضافی برای استفاده، علاوه بر مراجع مشخصشده در پیکربندی سیستم. توجه داشته باشید که از این گزینه نمیتوان برای تعیین گواهی خودامضا (self-signed) استفاده کرد.
- count = number (4)
- تنها در منابع دارای حالت pool قابل تنظیم است. حداکثر تعداد سرورهایی را که دیمن تلاش میکند از یک استخر به آنها متصل شود مشخص میکند. دیمن در هنگام قطع ارتباط، تا سقف تعیینشده در این مقدار، برای دریافت منابع بیشتر از استخر تلاش مجدد خواهد کرد.
- enable-srv-resolution = bool (false)
- تنها در منابع دارای حالت nts یا nts-pool قابل تنظیم است. دنبال کردن رکوردهای SRV را هنگام حل آدرس سرور NTS-ke فعال میکند. چنین رکوردهایی باید دارای امضای DNSSEC باشند. توجه داشته باشید که این ویژگی هنوز آزمایشی است و ممکن است به شیوههای ناسازگار با قبل تغییر کند.
- ignore = ip addresses
- فقط در حالت pool. فهرستی از آدرسهای IP سرورهای موجود در استخر را مشخص میکند که نباید استفاده شوند. به عنوان مثال: ["127.0.0.1"]. به طور پیشفرض خالی است.
- measurement_noise_estimate = Noise variance (seconds squared)
- فقط در حالتهای pps و sock. منسوخ شده است؛ به جای آن از precision استفاده کنید.
- precision = Noise standard deviation (seconds)
- فقط در حالتهای pps و sock. دقت منبع. این مقدار باید تخمینی از میزان نویز مورد انتظار اندازهگیری باشد. از نظر فنی به عنوان کران ۱-انحراف معیار روی خطای اندازهگیری تعریف میشود. این گزینه از آنجا لازم است که منابع sock و pps راه مناسبی برای برآورد خطای خود ندارند.
- accuracy = Uncertainty standard deviation (seconds)
- فقط در حالتهای pps و sock. صحت منبع زمانی زیربنایی. این باید تخمینی از میزان خطای ساعتی باشد که با آن همگام میشوید، و همچنین هرگونه آفست عمدتاً ثابت در فرایند اندازهگیری. این مقدار میتواند برای کاهش اولویت منابعی استفاده شود که آفستهای زیادی در فرایند اندازهگیری دارند یا نسبت به سایرین کیفیت پایینتری دارند.
- poll-interval-limits = { min = min, max = max } (پیشفرضها از [source-defaults])
- محدودیت تعداد دفعات پرسوجوی زمان جدید از منبع را مشخص میکند. برای اکثر موارد، مقادیر پیشفرض کافی خواهند بود. مقادیر min و max بر حسب log2 تعداد ثانیهها (یعنی دو به توان بازه) مشخص میشوند. بازه ۴ معادل ۱۶ ثانیه و ۱۰ معادل ۱۰۲۴ ثانیه است. اگر تنها یکی از دو مرز مشخص شود، مرز دیگر از [source-defaults] به ارث میرسد.
- initial-poll-interval = interval (پیشفرضها از [source-defaults])
- بازه نظرسنجی اولیه که هنگام راهاندازی استفاده میشود. مقدار بر حسب log2 تعداد ثانیهها داده میشود (یعنی دو به توان بازه). مقدار پیشفرض ۴ معادل بازه ۱۶ ثانیهای است.
- ntp-version = 4 | 5 | "auto" (4)
- نسخه NTP مورد استفاده برای این منبع را مشخص میکند. به طور پیشفرض از نسخه ۴ NTP استفاده میشود. میتوانید از 5 برای تنظیم نسخه پروتکل روی پیشنویس مشخصات NTPv5 استفاده کنید، اما منبع شما نیز باید از همان پیشنویس پشتیبانی کند. برای استفاده از پروتکل ارتقای آزمایشی، نسخه NTP را روی "auto" تنظیم کنید. این حالت از یک بسته NTPv4 با ساختار ویژه برای تلاش به منظور ارتقا به نسخه پشتیبانیشده از پیشنویس NTPv5 استفاده میکند، در صورتی که منبع نیز از همان نسخه پیشنویس پشتیبانی کند. پشتیبانی از NTPv5 در حال حاضر آزمایشی (بتا) است و ممکن است به شیوهای ناسازگار با قبل تغییر کند.
[[server]]
دیمن NTP را میتوان برای توزیع زمان از طریق هر تعداد بخش [[server]] پیکربندی کرد. اگر چنین بخشهایی تعریف نشده باشند، دیمن تنها در حالت کلاینت اجرا میشود. هر تعداد سرور را میتوان با تکرار بخش [[server]] (به براکتهای دوتایی توجه کنید) به تعداد دفعات مورد نیاز پیکربندی نمود. هر سرور میتواند به یک آدرس سوکت خاص سرویس دهد یا روی تمام رابطهای شبکه موجود در یک پورت خاص شنود کند. سرورها همیشه زمان ساعت سیستم را سرویسدهی میکنند.
- listen = socketaddr
- آدرس یک سوکت UDP که سرور باید برای درخواستهای ورودی NTP روی آن شنود کند. به صورت آدرس IP رابط شبکه، دونقطه و شماره درگاه مشخص میشود. شماره درگاه استاندارد برای NTP پورت 123 UDP است. هر دو نسخه IPv4 و IPv6 پشتیبانی میشوند. برای مثال جهت شنود روی درگاه 123 لوکالهاست در IPv4 میتوانید از 127.0.0.1:123 استفاده کنید. میتوانید به طور همزمان روی تمام رابطهای شبکه موجود با استفاده از 0.0.0.0:123 برای IPv4 یا [::]:123 برای IPv6 شنود کنید.
- rate-limiting-cache-size = size (0)
- تعداد عناصر موجود در حافظه پنهان محدودیت نرخ (rate limiting). حداکثر size عنصر در حافظه پنهان نگهداری میشود. این بدان معناست که اگر بیش از size کلاینت مختلف تلاش کنند بیش از حد به سرور متصل شوند، کارایی اندازه کش کاهش مییابد، زیرا با اتصال کلاینتهای جدید، اطلاعات محدودیت نرخ از بین میرود. در صورت تنظیم روی صفر، از کش استفاده نمیشود؛ این مقدار پیشفرض است.
- rate-limiting-cutoff-ms = cutoff (0)
- حداقل زمان بین دو درخواست از یک کلاینت یکسان؛ اگر درخواستی زودتر از زمان قطع (cutoff) ارسال شود، سرور با پاسخ دادن با یک بسته حاوی کد kiss از نوع RATE در NTP، از کلاینت میخواهد سرعت درخواستهای خود را کاهش دهد. در این حالت هیچ اندازهگیری زمانی واقعی به کلاینت بازگردانده نمیشود. اگر روی صفر تنظیم شود، هیچ محدودیت نرخی اعمال نخواهد شد؛ این مقدار پیشفرض است.
- allowlist = { filter = [ subnet, .. ], action = "deny" | "ignore" } (unset)
- تنها به تعداد مشخصی از زیرشبکههای (subnets) فیلترشده اجازه اتصال به دیمن را میدهد. هر IP که با یکی از زیرشبکههای مشخصشده مطابقت داشته باشد، مجاز به تماس با این سرور است. زیرشبکهها باید در نمادگذاری CIDR مشخص شوند (یک آدرس IP به همراه یک اسلش و تعداد بیتهای ماسک، به عنوان مثال 127.0.0.1/8 یا 192.168.1.1/24). کنش (action) تعیین میکند که چه اقدامی برای آدرسهای IP خارج از زیرشبکههای مشخصشده انجام شود. هنگامی که روی deny باشد، یک بسته صریح با کد kiss از نوع DENY در NTP به فرستنده بازگردانده میشود که نشان میدهد مجاز به انجام این کار نیست. هنگامی که ignore مشخص شود، پیامها بدون ارسال هیچ پاسخی دور ریخته میشوند. مقدار پیشفرض معادل اجازه دادن به هر آدرس IP است و با تنظیم فیلتر روی ["0.0.0.0/0", "::/0"] با هر یک از کنشها برابر است.
- denylist = { filter = [ subnet, .. ], action = "deny" | "ignore" } (unset)
- به زیرشبکههای (subnets) فیلترشده اجازه اتصال به دیمن را نمیدهد. هر IP که با یکی از زیرشبکههای مشخصشده مطابقت داشته باشد مجاز به تماس با این سرور نیست. زیرشبکهها باید در نمادگذاری CIDR مشخص شوند (یک آدرس IP به همراه یک اسلش و تعداد بیتهای ماسک، به عنوان مثال 127.0.0.1/8 یا 192.168.1.1/24). کنش تعیین میکند چه اقدامی برای آدرسهای IP موجود در هر یک از زیرشبکههای مشخصشده انجام شود. هنگامی که deny باشد، یک بسته صریح با کد kiss از نوع DENY به فرستنده بازگردانده میشود که نشان میدهد مجاز به این کار نیست. هنگامی که ignore مشخص شود، پیامها بدون ارسال پاسخ دور ریخته میشوند. مقدار پیشفرض معادل مجاز بودن هر آدرس IP است و با تنظیم فیلتر روی [] با هر یک از کنشها برابر خواهد بود.
- require-nts = true | false | "deny" | "ignore" (false)
- مشخص میکند که آیا درخواستهای ورودی به سرور باید دارای NTS فعال باشند یا خیر. هنگامی که روی true یا "ignore" تنظیم شود، هرگونه پیام بدون NTS نادیده گرفته میشود. هنگامی که روی "deny" تنظیم شود، پیامهای بدون NTS صراحتاً با کد kiss از نوع DENY رد میشوند. هنگامی که روی false (پیشفرض) تنظیم شود، پیامهای عادی NTP نیز مجاز هستند.
- accept-ntp-versions = [ 3 | 4 | 5, .. ] ([3, 4])
- آرایهای از نسخههای NTP که توسط سرور پذیرفته میشوند. به طور پیشفرض فقط بستههای NTPv3 و NTPv4 پشتیبانی میشوند. برای مجاز کردن بستههای پیشنویس NTPv5 نیز میتوانید این مقدار را روی [3, 4, 5] تنظیم کنید. پشتیبانی از NTPv5 در حال حاضر به صورت بتا است و ممکن است به شیوهای ناسازگار با قبل تغییر کند.
[observability]
تنظیمات این بخش نحوه نظارت و مشاهده رفتار دیمن را پیکربندی میکنند. در حال حاضر، دیمن را میتوان یا از طریق لاگها و یا با بازیابی چندین معیار کلیدی از طریق ntp-ctl(8) یا ntp-metrics-exporter(8) مشاهده کرد.
- log-level = "trace" | "debug" | "info" | "warn" | "error" (info)
- سطح ثبت گزارش برای پیامهای چاپشده در stdout را تعیین میکند. پایینترین سطح trace اطلاعات بسیار دقیقی درباره هر اتفاقی که در دیمن رخ میدهد ارائه میدهد، در حالی که بالاترین سطح error فقط شرایط خطای دیمن را ثبت میکند. سطوح بالاتر از سطح لاگ دادهشده نیز ثبت میشوند.
- log-path = path (unset)
- مسیری که دیمن باید خروجی لاگ خود را به آن هدایت کند. فایل در این مسیر هنگام دریافت سیگنال SIGHUP مجدداً باز میشود. در صورت عدم وجود، خروجی لاگ به stdout هدایت خواهد شد.
- log-path-metrics-exporter = path (unset)
- مسیری که دیمن صادرکننده معیارها (metrics exporter daemon) باید خروجی لاگ خود را به آن هدایت کند. فایل در این مسیر هنگام دریافت سیگنال SIGHUP مجدداً باز میشود. در صورت عدم وجود، خروجی لاگ به stdout هدایت خواهد شد.
- ansi-colors = true | false (یادداشت را ببینید)
- میتواند برای کنترل کدهای گریز ANSI در لاگها استفاده شود. به طور پیشفرض، کدهای گریز ANSI برای افزودن رنگها و سایر قالببندیها به لاگها در زمانی که مقصد لاگ یک ترمینال است استفاده میشوند.
- observation-path = path (unset)
- مسیری که دیمن یک سوکت یونیکس (Unix domain socket) برای نظارت ایجاد خواهد کرد. این سوکت توسط ntp-ctl و ntp-metrics-exporter برای خواندن وضعیت فعلی دیمن استفاده میشود. اگر تنظیم نشود (پیشفرض)، هیچ سوکت نظارتی ایجاد نخواهد شد و امکان استفاده از ntp-ctl یا ntp-metrics-exporter برای مشاهده دیمن وجود نخواهد داشت.
- observation-permissions = mode (0o666)
- مجوزهای فایلسیستم که سوکت نظارت باید با آن ایجاد شود. هشدار: همیشه باید این عدد را با پیشوند هشتهشتی 0o بنویسید، در غیر این صورت ممکن است مجوزهای شما به اشتباه تفسیر شوند. با این حال، مقدار پیشفرض باید برای بیشتر کاربردها مناسب باشد.
- metrics-exporter-listen = socketaddr (127.0.0.1:9975)
- آدرس شنودی که برای ntp-metrics-exporter(8) استفاده میشود.
[keyset]
بخش keyset زیرساخت کلید داخلی را برای بستههای NTS پیکربندی میکند. توجه داشته باشید که این مورد جدا از گواهی TLS و کلید خصوصی است؛ برای آنها به پیکربندی مربوطه در بخش [[nts-ke-server]] مراجعه کنید.
- stale-key-count = count (7)
- حداکثر تعداد کلیدهای قدیمی جهت نگهداری در حافظه پنهان. هر بار که کلیدها چرخش (rotate) مییابند، کلیدهای قدیمی نامعتبر میشوند، اما کلاینتها ممکن است هنوز کوکیهای NTS رمزگذاریشده با هر یک از کلیدهای قدیمی را داشته باشند.
- key-rotation-interval = seconds (86400)
- زمان بین رویدادهای چرخش کلید. هر بار که seconds سپری شود، یک کلید داخلی جدید برای ایجاد کوکیهای NTS تولید خواهد شد. به طور پیشفرض این مقدار روی یک روز تنظیم شده است.
- key-storage-path = path (unset)
- در صورت تنظیم، کلیدهای داخلی NTS را در فایل مشخصشده توسط path ذخیره میکند. این امکان باعث میشود کلیدها پس از راهاندازی مجدد سرور حفظ شوند. اگر تنظیم نشود، کلاینتهای استفادهکننده از NTS ممکن است برای دریافت کوکیهای جدید NTS نیاز به انجام مجدد عملیات تبادل کلید داشته باشند. اگر پوشههای والد وجود نداشته باشند، دیمن آنها را ایجاد نخواهد کرد. اگر فایل وجود نداشته باشد، آن را ایجاد خواهد کرد.
[[nts-ke-server]]
دیمن میتواند با تکرار هر تعداد بخش [[nts-ke-server]]، به عنوان سرور تبادل کلید NTS عمل کند. اگر چنین بخشهایی تعریف نشده باشند، دیمن هیچ سرویس تبادل کلید NTS ارائه نخواهد داد. تمام سرورهای NTS-KE از مجموعه کلیدهای مشترک استفاده میکنند. هدف سرور تبادل کلید توزیع ایمن کوکیها بین کلاینتها است. این کوکیها سپس میتوانند در بستههای NTP با سرور معمولی استفاده شوند تا تأیید شود که ترافیک دستکاری نشده است.
- listen = socket
- آدرس یک سوکت TCP که سرور باید برای درخواستهای تبادل کلید NTS ورودی روی آن شنود کند. به صورت آدرس IP رابط شبکه، دونقطه و شماره درگاه مشخص میشود. شماره درگاه استاندارد برای سرور تبادل کلید NTS پورت 4460 TCP است. هر دو نسخه IPv4 و IPv6 پشتیبانی میشوند. برای مثال جهت شنود روی درگاه 4460 لوکالهاست در IPv4 میتوانید از 127.0.0.1:4460 استفاده کنید. میتوانید به طور همزمان روی تمام رابطهای شبکه موجود با استفاده از 0.0.0.0:4460 برای IPv4 یا [::]:4460 برای IPv6 شنود کنید.
- certificate-chain-path = path
- مسیر زنجیره گواهی برای گواهی عمومی که سرور به کلاینتها ارائه میدهد.
- private-key-path = path
- مسیر کلید خصوصی مرتبط با گواهی سرور در زنجیره گواهی.
- key-exchange-timeout-ms = timeout (1000)
- مهلت زمانی (timeout) بر حسب میلیثانیه برای مدت زمانی که تبادل کلید ممکن است طول بکشد. در صورت اتمام مهلت، اتصال قطع خواهد شد.
- concurrent-connections = number (512)
- حداکثر تعداد اتصالات همزمانی که سرور تبادل کلید مدیریت خواهد کرد. هر اتصالی فراتر از این آستانه در صفی در سطح سیستمعامل نگهداشته میشود.
- longlived-connections = number (concurrent-connections/10)
- حداکثر تعداد اتصالات طولانیمدت همزمان از استخرهای nts که سرور تبادل کلید مدیریت خواهد کرد. توجه داشته باشید که پشتیبانی از استخر در حال حاضر در وضعیت بتا است و ممکن است به شیوههای ناسازگار با قبل تغییر کند.
ntp-port = port شماره درگاهی که سرور تبادل کلید باید به کلاینتها برای استفاده ابلاغ کند. هنگامی که شماره درگاه سرور NTP پیشفرض نیست باید استفاده شود.
ntp-server = server-name آدرس سرور (به صورت ip یا نام دامنه) که در آن کلاینتها میتوانند سرور NTP را پیدا کنند. هنگامی که این نام با نام سرور تبادل کلید NTS مطابقت ندارد باید استفاده شود.
- accept-ntp-versions = [ 4 | 5, .. ] ([4])
- آرایهای از نسخههای NTP که توسط سرور پذیرفته میشوند. به طور پیشفرض فقط NTS برای بستههای NTPv4 پشتیبانی میشود. برای مجاز کردن مذاکره NTS برای بستههای پیشنویس NTPv5 نیز میتوانید این مقدار را روی [4, 5] تنظیم کنید. پشتیبانی از NTPv5 در حال حاضر به صورت بتا است و همچنان ممکن است به شیوهای ناسازگار با قبل تغییر کند.
- accepted-pool-authentication-tokens = list of keys ([])
- توکنهایی که استخرها میتوانند برای احراز هویت درخواستهای مخصوص استخر به این سرور NTS استفاده کنند. توجه داشته باشید که پشتیبانی از استخر در حال حاضر در وضعیت بتا است و ممکن است به شیوهای ناسازگار با قبل تغییر کند.
[synchronization]
این بخش از پیکربندی بر نحوه جمعآوری اطلاعات زمانی از منابع و اعمال آن بر ساعت سیستم تمرکز دارد.
- minimum-agreeing-sources = count (3)
- حداقل تعداد منابعی که باید روی زمان فعلی توافق داشته باشند، پیش از آنکه دیمن هرگونه عملیات هدایت (steering) را روی ساعت انجام دهد. توجه داشته باشید که اگر کمتر از این تعداد منبع پیکربندی کرده باشید، ممکن است باعث شود دیمن هرگز ساعت را بهروز نکند.
- single-step-panic-threshold = seconds | { forward = forward, backward = backward } (1000)
- آستانه بر حسب ثانیه که در آن دیمن هنگام رخ دادن یک جهش (step) غیر از زمان راهاندازی، کاملاً خارج میشود (پنیک میکند). به طور کلی در طول عملکرد عادی، ساعت سیستم شما باید کم و بیش نزدیک به زمانی باشد که با آن همگام شده است. به همین دلیل، بسیار بعید است که چنین گام بزرگی رخ دهد، و دیمن برای جلوگیری از هرگونه اشتباه تصادفی خارج خواهد شد. در صورت تنظیم روی مقدار "inf"، هر گامی مجاز خواهد بود. میتواند یا به صورت یک عدد بر حسب ثانیه برای هر دو جهش رو به جلو و عقب پیکربندی شود، یا مقادیر جداگانه برای جهشهای رو به جلو و عقب.
- startup-step-panic-threshold = seconds | { forward = forward, backward = backward } ({ forward = “inf”, backward = “86400” })
- آستانه بر حسب ثانیه که در آن دیمن هنگام رخ دادن جهش زمان در هنگام راهاندازی، کاملاً خارج میشود (پنیک میکند). مقدار پیشفرض هرگونه جهش به جلو را مجاز میداند، اما از جهشهای به عقب بزرگتر از یک روز جلوگیری میکند. به طور کلی ساعتهای کامپیوتری که همگام نشدهاند به جای جلو افتادن، از زمان واقعی عقب میافتند. اگر کامپیوتری جلوتر کار کند و زمان زیادی به عقب برگردد، این امر معمولاً نشاندهنده یک مشکل است. در صورت تنظیم روی مقدار "inf"، هر گامی مجاز خواهد بود. میتواند یا به صورت یک عدد ثانیه برای هر دو جهش به جلو و عقب یا مقادیر مجزا برای جهشهای به جلو و عقب پیکربندی شود. هنگام استفاده از این، دستور force-sync در ntp-ctl همچنان میتواند برای تنظیم دستی زمان سیستم فراتر از این محدودیتها جهت بازیابی از ساعت خراب سیستم استفاده شود.
- accumulated-step-panic-threshold = seconds (unset)
- هر بار که دیمن به جای تنظیم آرام ساعت با استفاده از تغییرات فرکانس، زمان را با جهش (step) تغییر میدهد، این شمارنده به اندازه مقدار مطلق جهش افزایش مییابد (یعنی هم جهشهای رو به جلو و هم رو به عقب شمرده میشوند). هنگامی که این آستانه برسد، دیمن فوراً خارج میشود (پنیک میکند). در طول کارکرد عادی، وقوع جهشها بعید است و به همین دلیل، جهشها ممکن است نشاندهنده این باشند که کسی یا چیزی در حال ایجاد جهشهای غیرمجاز است. با این حال، به طور پیشفرض این سازوکار پنیک غیرفعال است. اگر تنظیم نشود یا روی مقدار 0 تنظیم گردد، غیرفعال خواهد بود.
- warn-on-jump = bool (true)
- آیا دیمن هنگام پرش (step) ساعت باید هشدار صادر کند یا خیر. چنین پرشهایی میتوانند برای سایر نرمافزارها مانند سرورهای پایگاه داده مشکلساز باشند. این تنظیم میتواند در سیستمهایی که در آنها پرشها مورد انتظار بوده و برای سایر نرمافزارها مضر نیستند، غیرفعال شود.
- local-stratum = stratum (16)
- لایه (stratum) ساعت NTP سیستم را زمانی که هیچ منبع زمانی NTP پیکربندی نشده است، یا زمانی که زمان هنوز از یک منبع زمانی NTP همگام نشده است، تعیین میکند. میتواند در سرورها برای نشان دادن این که سازوکارهای خارجی در حال همگامسازی ساعت هستند استفاده شود.
- reference-id = reference-id (XNON)
- شناسه مرجع (reference id) گزارششده ساعت NTP را هنگامی که local-stratum روی 1 تنظیم شده است تعیین میکند. این مقدار برای مشخص کردن منبع مرجع زمان (GPS و غیره) استفاده میشود.
[synchronization.algorithm]
هشدار: بخش الگوریتم عمدتاً شامل تنظیمات جزئی الگوریتمی داخلی است که عموماً نیازی به تغییر ندارند. با این حال، آنها در اینجا برای موارد کاربرد خاص ارائه شدهاند. این تنظیمات جزئیات پیادهسازی در نظر گرفته میشوند و به همین دلیل ممکن است در نسخههای آینده ntpd-rs تغییر کنند.
- precision-low-probability = probability (1/3)
- کران احتمالی که پایینتر از آن به سمت کاهش برآورد دقت خود حرکت میکنیم. واحد: احتمال، 0-1
- precision-high-probability = probability (2/3)
- کران احتمالی که بالاتر از آن به سمت افزایش برآورد دقت خود حرکت میکنیم. واحد: احتمال، 0-1
- precision-hysteresis = hysteresis (16)
- میزان هیسترزیس در تغییر برآورد دقت. واحد: تعداد، +1
- precision-minimum-weight = weight (0.1)
- کران پایین میزان تأثیر برآورد دقت ما بر برآورد کل نویز، قبل از آنکه اجازه کاهش برآورد دقت را بدهیم. واحد: وزن، 0-1
- poll-interval-low-weight = weight (0.4)
- میزانی که یک اندازهگیری در وضعیت مشارکت دارد و کمتر از آن شروع به افزایش بازه نظرسنجی میکنیم. واحد: وزن، 0-1
- poll-interval-high-weight = weight (0.6)
- میزانی که یک اندازهگیری در وضعیت مشارکت دارد و بالاتر از آن شروع به کاهش بازه نظرسنجی میکنیم. واحد: وزن، 0-1
- poll-interval-hysteresis = hysteresis (16)
- میزان هیسترزیس در تغییر بازه نظرسنجی. واحد: تعداد، +1
- poll-interval-step-threshold = threshold (1e-6)
- آستانه احتمال برای زمانی که یک اندازهگیری به اندازه کافی داده پرت (outlier) قابل توجهی در نظر گرفته میشود که به این نتیجه برسیم اتفاق عجیبی در حال رخ دادن است و باید اندازهگیریهای بیشتری انجام دهیم. واحد: احتمال، 0-1
- delay-outlier-threshold = threshold (5.0)
- آستانه (بر حسب تعداد انحراف معیار) که بالاتر از آن اندازهگیریهای با تأخیر شبکه به طور قابل توجه بیشتر، رد میشوند. واحد: انحراف معیار، +0
- initial-wander = wander (1e-8)
- برآورد اولیه سرگردانی ساعت (clock wander) حاصل از ترکیب ساعت محلی ما و ساعت منبع. واحد: s/s^2
- initial-frequency-uncertainty = uncertainty (100e-6)
- عدم قطعیت اولیه اختلاف فرکانس بین ساعت ما و ساعت منبع. واحد: s/s
- maximum-source-uncertainty = uncertainty (0.25)
- حداکثر عدم قطعیت منبع قبل از آنکه شروع به نادیده گرفتن آن کنیم. توجه داشته باشید که این عدم قطعیت ترکیبی ناشی از نویز و خطای عدم تقارن احتمالی است (همچنین وزنهای زیر را ببینید). واحد: ثانیه
- range-statistical-weight = weight (2.0)
- وزن عدم قطعیت آماری هنگام ساخت محدودههای همپوشانی. واحد: انحراف معیار، +0
- range-delay-weight = weight (0.25)
- وزن عدم قطعیت تأخیر هنگام ساخت محدودههای همپوشانی. واحد: وزن، 0-1
- steer-offset-threshold = threshold (2.0)
- میزان فاصله آفست از ۰ (بر حسب مضارب عدم قطعیت) قبل از آنکه اقدام به اصلاح کنیم. واحد: انحراف معیار، +0
- steer-offset-leftover = stddev (1.0)
- چند انحراف معیار پس از تصحیح آفست باقی میگذاریم؟ واحد: انحراف معیار، +0
- steer-frequency-threshold = threshold (0.0)
- میزان فاصله برآورد فرکانس از ۰ (بر حسب مضارب عدم قطعیت) قبل از آنکه اقدام به اصلاح کنیم. واحد: انحراف معیار، +0
- steer-frequency-leftover = stddev (0.0)
- چند انحراف معیار پس از تصحیح فرکانس باقی میگذاریم؟ واحد: انحراف معیار، +0
- step-threshold = threshold (0.010)
- از چه آفستی به بعد باید به جای تلاش برای تنظیم تدریجی، ساعت را با جهش (step) تنظیم کنیم؟ واحد: ثانیه، +0
- slew-maximum-frequency-offset = offset (200e-6)
- حداکثر آفست فرکانس در طول یک تنظیم تدریجی (slew). واحد: s/s
- slew-minimum-duration = duration (8.0)
- حداقل مدت زمان یک slew. واحد: ثانیه
- maximum-frequency-steer = frequency (495e-6)
- حداکثر تصحیح مطلق فرکانس. واحد: s/s
- ignore-server-dispersion = bool (false)
- نادیده گرفتن پراکندگی (dispersion) اعلامشده توسط سرور هنگام همگامسازی. میتواند کیفیت همگامسازی را با سرورهایی که پراکندگی ریشه (root dispersion) بیش از حد محافظهکارانه گزارش میدهند بهبود بخشد.
- meddling-threshold = threshold (5.0)
- آستانه تشخیص دستکاری خارجی ساعت. واحد: ثانیه
همچنین ببینید (SEE ALSO)
ntp-daemon(8), ntp-ctl(8), ntp-metrics-exporter(8)
| ntpd-rs 1.9.0 |