Командировки, командировки…
Вот вернулся с очередной и тут сюрприз, одмины навсегда уложили 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) пишем :
serverrestrict 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
P.S.
Не забываем открывать в фаерволе порт UDP 123