Ntpd

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Ntpd (Network Time Protocol daemon) - программа-демон, которая устанавливает и поддерживает системное время, используется для синхронизации серверами точного времени.

Описание[править | править вики-текст]

Программа ntpd — это демон операционной системы, который устанавливает и поддерживает системное время, синхронизированное с серверами точного времени. Является полной имплементацией протокола NTP версии 4, но также сохраняет совместимость с версией 3, как определено в RFC-1305[1], и версиями 1 и 2, определенными в RFC-1059[2] и RFC-1119[3] соответственно. Ntpd выполняет большинство вычислений, используя 64-битную арифметику с плавающей запятой и сравнительно неплохо выполняет 64-битные операции с фиксированной запятой, только когда необходимо добиться высокой точности около 232 пикосекунд. Тогда как сегодня столь высокая точность недостижима на обычных компьютерах и в сетях, она может потребоваться в будущих гигагерцовых CPU и гигабитных сетях.

xntpd - демон NTP третьей версии. "x" был добавлен в название, так как ветвь кода ставшая в конечном итоге NTPDv3 была "экспериментальной". Название демона было изменено к начальному "ntpd" к четвёртой версии, поскольку создатель NTP David Mills решил, что вероятно что-либо не может быть "экспериментальным" в течение двадцати лет и не претерпеть за это время каких-либо значительных изменений.

Ntpd использует два варианта хранения файлов конфигурации:

  • Первый вариант - с единым конфигурационным файлом для запуска демона в режиме сервера или клиента. В этом случае файл конфигурации обычно называется ntp.conf и размещается в директории /etc.
  • Второй вариант размещения файла конфигурации NTP: /etc/ntp/ntpd.conf для демона и /etc/ntp/ntp.conf для клиента.

Другой важный файл - файл "дрифта" (drift file), который используется ntpd для коррекции аппаратных часов в случае отсутствия подключения к более точному серверу времени и располагается обычно в /var/db/ntp.drift.

Принцип работы[править | править вики-текст]

Точное время можно получить с помощью специальной аппаратуры, основанной на частоте электронов атома или циклотронах. Также существует метод, основанный на GPS (Global Positioning System), глобальной системе позиционирования). Оба способа требуют специализированного и дорогого оборудования, но их владельцы (обычно университеты и исследовательские лаборатории) подключают это оборудование к компьютерам, на которых запущен демон NTP. Зачастую эти же машины подключены к Интернету, что в конечном итоге дает людям возможность бесплатно узнавать точное время.

Ntpd выполняет обмен сообщениями с одним или более сконфигурированными серверами через определенные интервалы времени. При старте, в первый либо последующие разы, программе требуется несколько раз обменяться сообщениями с большинством этих серверов, чтобы алгоритмы обработки сигналов и оптимизации могли собрать и подготовить данные и установить время. По умолчанию интервал равен 64 секунды, поэтому для установки времени может потребоваться несколько минут. Начальная задержка в установке часов может быть уменьшена при использовании ключевого слова iburst с конфигурационной командой server, как описано на странице Configuration Options[4].

Большинство операционных систем и аппаратного обеспечения сегодня используют встроенный TOY(time-of-year) чип, чтобы поддерживать время, когда питание отключено. При включении машины чип используется для инициализации часов операционной системы. После того, как машина синхронизировала свои часы с NTP сервером, операционная система время от времени корректирует часы чипа. В случае, когда TOY чип отсутствует либо, по какой-то причине, время на нём отличается от серверного более чем на 1000 секунд, ntpd считает, что что-то пошло не так и единственным правильным действием в такой ситуации является вмешательство оператора и установка часов руками. В этом случае ntpd завершает работу с сообщением об ошибке в системном логе. Опция -g позволяет игнорировать эту проверку и устанавливать серверное время вне зависимости от времени на чипе.

После настройки NTP будет поддерживать точность времени, выполняя очень маленькие корректировки часов, такие маленькие, что они никак не будут влиять на работающие приложения.

Режимы работы[править | править вики-текст]

По умолчанию, ntpd работает в непрерывном режиме, в котором каждый из нескольких внешних серверов опрашивается через временные промежутки, определяемые сложным эвристическим алгоритмом, учитывающим джиттер задержки и погрешность частоты. Обычно, в большинстве операционных систем, начальный интервал равен 64 секунды и пошагово увеличивается до 1024 секунд.

В некоторых случаях может быть непрактично использовать ntpd в непрерывном режиме. Типичным обходом проблемы является запуск ntpdate из cron'а в назначенное время. Однако, ntpdate не имеет встроенных алгоритмов проверки ошибок и оптимизации. Для такого случая предназначена опция -q. Запущенный с ней, ntpd выставит время только один раз и закончит после этого свою работу.

Опции командной строки[править | править вики-текст]

-4

Использовать пространство адресов IPv4

-6

Использовать пространство адресов IPv6

-a

Запрашивать криптографическую аутентификацию. Используется по умолчанию.

-A

Не запрашивать криптографическую аутентификацию. Не рекомендуется.

-b

Позволяет клиенту синхронизироваться с широковещательными серверами.

-c conffile

Определяет имя и путь к конфигурационному файлу, по умолчанию /etc/ntp.conf

-d

Определяет режим отладки.

-D level

Определяет уровень режима отладки напрямую.

-f driftfile

Определяет имя и путь к файлу частоты.

-g

Снимает ограничение на разницу серверного и локального времени.

-l logfile

Определяет имя и путь к файлу лога.

-q

Копирует действие программы ntpdate - выполняет синхронизацию часов один раз.

История[править | править вики-текст]

Программа ntpd впервые появилась в OpenBSD 3.6

Примечания[править | править вики-текст]

  1. D. Mills. Network Time Protocol (Version 3) Specification, Implementation and Analysis. tools.ietf.org. Проверено 8 ноября 2015.
  2. D.L. Mills. Network Time Protocol (version 1) specification and implementation. tools.ietf.org. Проверено 8 ноября 2015.
  3. D.L. Mills. Network Time Protocol (version 2) specification and implementation. tools.ietf.org. Проверено 8 ноября 2015.
  4. Configuration Options. doc.ntp.org. Проверено 8 ноября 2015.

Ссылки[править | править вики-текст]