ntp сервер

Командировки, командировки…
Вот вернулся с очередной и тут сюрприз, одмины навсегда уложили ntp сервер, и пофиг что пол области оттуда днс и время берет… а у меня много телефончиков, и люди не любят звонить из прошлого, 1 января 1900 — моветон. Нет ничего более постоянного чем временное, поэтому разворачивать часы будем на тестовом серваке)))))

Собственно по сабжу можно сказать не много, все есть в хендбуке, для тех, кто не любит читать хендбуки
1. Правим /etc/ntp.conf

#указываем сервера откуда будем брать точное время
# iburst для быстрой начальной синхронизации
# maxpoll 9 для предотвращения  PLL/FLL flipping 
# prefer этому серверу отдается предпочтение перед остальными(надежный сервер)
 server 0.ua.pool.ntp.org prefer iburst maxpoll 9
 server 1.ua.pool.ntp.org prefer iburst maxpoll 9
 server 2.ua.pool.ntp.org prefer iburst maxpoll 9
 server 3.ua.pool.ntp.org prefer iburst maxpoll 9
#Блокируем все (если не хотим проблем с доступностью серверов комментим)
restrict default ignore
# Разрешаем доступ от серверов, поскольку из пула
# ntp.org возвращает несколько адресов на одну А запись
# то для успешной работы нужно еще разрешить и по IP
# в Украине таких 70 штук, я добавил несколько(
# можно использовать произвольные маски подсетей
restrict 0.ua.pool.ntp.org noquery notrap
restrict 1.ua.pool.ntp.org noquery notrap
restrict 2.ua.pool.ntp.org noquery notrap
restrict 3.ua.pool.ntp.org noquery notrap
#INET
restrict 82.207.71.0 mask 255.255.255.0 noquery notrap
restrict 193.34.155.0 mask 255.255.255.0 noquery notrap
restrict 91.198.10.4 mask 255.255.255.255 noquery notrap
restrict 92.249.120.2 mask 255.255.255.255 noquery notrap
restrict 94.158.46.253 mask 255.255.255.255 noquery notrap
restrict 79.142.192.0 mask 255.255.255.0 noquery notrap
restrict 193.193.193.107 mask 255.255.255.255 noquery notrap
restrict 62.149.0.30 mask 255.255.255.255 noquery notrap
restrict 91.198.10.1 mask 255.255.255.255 noquery notrap
restrict 31.28.161.68 mask 255.255.255.255 noquery notrap
restrict 213.179.228.0 mask 255.255.255.0 noquery notrap
restrict 193.192.36.3 mask 255.255.255.255 noquery notrap
#Локально
restrict 127.0.0.1
restrict -6 ::1
restrict 127.127.1.0
restrict localhost
# Разрешаем этим машинкам синхронизироваться с нами(внутри сети)
restrict 10.109.0.0 mask 255.255.0.0 nomodify notrap
# задаем файл, который используется для хранения смещения 
# частоты системных часов.
driftfile /var/db/ntp.drift
# Если вдруг у нас пропал доступ ко всем серверам точного времени
# будем генерить часы локально
server 127.127.1.0
fudge  127.127.1.0 stratum 10
#Лог синхронизации
logfile /var/log/ntp.log

2. В /etc/rc.conf добавляем:

ntpd_enable="YES"
ntpd_sync_on_start="YES"

3. Настраиваем ротацию по newsyslog(8) в /etc/newsyslog.conf строку:

/var/log/ntp.log 644 3 100 * J

4. Делаем /etc/rc.d/ntpd start
5. Делаем /etc/rc.d/ntpd status Если выдаст сообщение ntpd is running as pid…, все нормально, если нет читаем лог)
6. Стоит немного подождать 5-10 минут
7. Выполняем ntpq -p или -pn если хотим видеть IP

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+pechkin.vc.ukrt 130.149.17.21    2 u  342  512  377   19.789    0.741   0.048
*ns1.infomir.com 198.123.30.132   2 u  471  512  377   18.719    0.198   0.272
+jason-freebsd.l 62.149.0.30      2 u  385  512  377   22.458    0.334   0.111
+ntp.exact-time. .GPS.            1 u  449  512  377    7.803    0.439   0.265

Строки данной таблицы соответствует публичным NTP-серверам, которые определены в файле /etc/ntp.conf,
cтолбцы содержат следующие значения:
——————-
‘*’ — сервер, с которым в настоящий момент выполняется синхронизация,
‘#’ — сервер отобран для синхронизации, но дистанция до него превышает максимально возможную,
‘ο’ — сервер отобран для синхронизации и использует сигнал PPS,
‘+’ — сервер добавлен в список серверов, отобранных для синхронизации,
‘x’ — сервер использует некорректный алгоритм,
‘.’ — сервер выбран из конца списка серверов, отобранных для синхронизации,
‘-‘ — сервер отвергнут группирующим алгоритмом,
пробел — сервер имеет слишком высокий stratum и/или не может быть проверен;

remote — FQDN или IP-адрес сервера к какому мы подключаемся;
refid — IP-адрес сервера или источник к какому подключается сервер из столбца remote;
st — stratum сервера;
t — режим работы сервера:
‘u’ — unicast,
‘m’ — multicast,
‘b’ — broadcast,
‘-‘ — manycast;

when — время, прошедшее с момента последнего ответа сервера в секундах или ‘-‘, если сервер еще ни разу не ответил (скорее всего, «умер», и сведения о нем пора удалить из файла конфигурации);

poll — интервал опроса сервера в секундах (после запуска имеет небольшое значение, чтобы синхронизация происходила быстрее, с течением времени значение увеличивается);

reach — состояние восьми последних попыток запроса времени у сервера в восьмеричном представлении (в случае успешной попытки устанавливается соответствующий бит);

delay — задержка ответа сервера в секундах;

offset — самое важное значение — различие локального времени и времени на сервере (с течением времени значение уменьшается, т.к. время становится более точным);

jitter — дисперсия(джиттер) -более низкие значения обеспечивают более точную синхронизацию.
——————-
Если такая картинка то все хорошо, если в столбце st все 16, то проверяем фаервол и поля restrict и передергиваем сервер ntp

8. Проверяем как там наши дела, какой у нас стратум

$ ntpdate -q localhost
server 127.0.0.1, stratum 3, offset -0.000001, delay 0.02562
server ::1, stratum 3, offset -0.000001, delay 0.02562

9. Остальные сервера синхронизируем либо с этим либо аналогично первому. Обычно настраивают главный ntp сервер а потом от него пляшут, тогда в настройках других серверов(ntp.conf) пишем :

server 
restrict default ignore
restrict  nomodify noquery notrap
restrict 127.0.0.1 nomodify notrap  

Минутка доп инфы:
stratum (в русской интерпретации — страта) — величина, которая отражает уровень системных часов и может принимать значения:
0 — не специфицировано / недоступно,
1 — первичный (primary) эталон (например, атомные часы),
2-15 — вторичный (secondary) эталон,
16-255 — зарезервировано на будущее.
Серверы, которые синхронизируются с серверами, имеющими stratum 1, получают stratum 2, серверы, которые синхронизируются с серверами, имеющими stratum 2, получают stratum 3 и т.д.
Для проверки доступности и значения stratum выбранных серверов необходимо выполнить соответствующее число команд ntpdate -q . Эти команды служат для запроса времени и значений параметров stratum, offset, delay
P.S.
Не забываем открывать в фаерволе порт UDP 123

Комментарии: