Инструменты пользователя

Инструменты сайта


unix:ntpd

Сервер точного времени

Возникла необходимость синхронизировать время на машинах в локальной сети. Для этого желательно настроить свой собственный NTP сервер. Тем более, что во FreeBSD сделать это совсем просто. Начнем с файла конфигурации сервера /etc/ntp.conf

server ntp.psn.ru prefer
server time2.one4vision.de
server ntp.ucsd.edu
server time.nist.gov 
driftfile /var/db/ntp.drift
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

Создадим файл /var/db/ntp.drift

touch /var/db/ntp.drift

В файлик /etc/rc.conf добавим строки которые позволят при старте системы запустить наш NTP сервер.

ntpd_enable="YES"
ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"

На этом собственно говоря все. Самое главное после запуска сервера (/etc/rc.d/ntpd start) не торопиться. Именно не торопиться! Если сразу после старта сервера попробовать синхронизировать время с нашим сервером, то скорее всего ничего не получится. По крайней мере у меня было так. Нужно немного подождать, хотя бы минут 15-20.

Теперь, немного о том, как посмотреть что делает наш сервер. Делается это командой ntpq

[root@gw ~]# ntpq -np      
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-77.78.110.71    195.113.144.201  2 u  449 1024  377  273.777   19.438  86.737
+91.121.45.45    145.238.203.14   2 u  180 1024  377  234.006    1.136   6.294
*84.2.42.31      172.20.1.162     2 u  206 1024  377  224.046   -2.157  14.703
+83.229.210.18   195.216.64.208   3 u  448 1024  377  168.998  -11.696   1.752
+82.219.4.30     195.66.241.10    2 u  638 1024  377  238.655   -5.773  28.231

Теперь, о значениях колонок:

Символ в начале строки:

  • пробел - слишком большой страт, цикл или явная ошибка
  • x - фальшивый источник по алгоритму пересечения
  • . - исключен из списка кандидатов из-за большого расстояния
  • - - удалено из списка кандидатов алгоритмом кластеризации
  • + - входит в конечный список кандидатов
  • # - выбран для синхронизации, но есть 6 лучших кандидатов
  • * - выбран для синхронизации
  • o - выбран для синхронизации, но используется PPS

remote Имя удаленного NTP-сервера. Если указать ключ -n, вы получите IP-адреса серверов вместо имён.

refid Указывает, откуда каждый сервер получает время в данный момент. Это может быть имя хоста или что-то вроде .GPS., указывающее на источник глобальной системы позиционирования (Global Positioning System).

st Stratum (уровень) это число от 1 до 16, указывающее на точность сервера. Единица означает максимальную точность, 16 – сервер недоступен. Ваш уровень будет равен уровню наименее точного удаленного сервера плюс 1.

poll Интервал между опросами (в секундах). Значение будет изменяться между минимальной и максимальной частотой опросов. В начале интервал будет маленьким, чтобы синхронизация происходила быстро. После того как часы синхронизируются, интервал начинает увеличиваться, чтобы уменьшить трафик и нагрузку на популярные сервера времени.

reach Восьмеричное представление массива из 8 бит, отражающего результаты последних восьми попыток соединения с сервером. Бит выставлен, если удаленный сервер ответил.

delay Количество времени (в секундах) необходимого для получения ответа на запрос «который час? ».

offset Наиболее важное поле. Разница между временем локального и удаленного серверов. В ходе синхронизации это значение должно понижаться, указывая на то, что часы локальной машины идут все точнее.

jitter Дисперсия (Jitter) – это мера статистических отклонений от значения смещения (поле offset) по нескольким успешным парам запрос-ответ. Меньшее значение дисперсии предпочтительнее, поскольку позволяет точнее синхронизировать время.

unix/ntpd.txt · Последние изменения: Sat, 25 Jan 2014 18:32 (внешнее изменение)