у нас проблема с ntp-клиентом на нескольких ящиках linux. Во-первых, в нашей сети три ntp сервера. На большинстве наших боксов с синхронизацией все в порядке. Со вчерашнего дня у нескольких ящиков Linux возникли проблемы с синхронизацией. Ящики работают под управлением Debian 8.7 с установленным ntp 4.2.6.p5 + dfsg-7 + deb8u2.
Это выглядит так:
% sudo ntpq -pn
remote refid st t when poll reach delay offset jitter
==============================================================================
10.2.1.161 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.2.1.159 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.2.2.233 .INIT. 16 u - 64 0 0.000 0.000 0.000
Я понимаю, что значения задержки, смещения и джиттера равны 0, потому что stratum равен 16, поэтому клиент ntp отказывается синхронизироваться с серверами.
Чего я не понимаю, так это почему stratum находится в 16. Я разговаривал с ребятами из брандмауэра, ничего не сбрасывается. Итак, я сделал tcpdump, но не вижу ничего, что могло бы объяснить такое поведение.
Клиентский пакет выглядит так:
Network Time Protocol (NTP Version 4, client)
Flags: 0xe3, Leap Indicator: unknown (clock unsynchronized), Version number: NTP Version 4, Mode: client
Peer Clock Stratum: unspecified or invalid (0)
Peer Polling Interval: 6 (64 sec)
Peer Clock Precision: 0.000000 sec
Root Delay: 0 seconds
Root Dispersion: 0 seconds
Reference ID: (Initialization)
Reference Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Origin Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Receive Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Transmit Timestamp: Jul 26, 2017 08:20:14.664923929 UTC
А серверный пакет такой:
Network Time Protocol (NTP Version 4, server)
Flags: 0x24, Leap Indicator: no warning, Version number: NTP Version 4, Mode: server
Peer Clock Stratum: secondary reference (3)
Peer Polling Interval: 6 (64 sec)
Peer Clock Precision: 0.000000 sec
Root Delay: 0.0225830078125 seconds
Root Dispersion: 0.0608673095703125 seconds
Reference ID: 213.239.239.166
Reference Timestamp: Jul 26, 2017 08:05:26.414539267 UTC
Origin Timestamp: Jul 26, 2017 08:20:14.664923929 UTC
Receive Timestamp: Jul 26, 2017 08:20:14.664904341 UTC
Transmit Timestamp: Jul 26, 2017 08:20:14.664934357 UTC
Записи системного журнала также не показывают сообщений об ошибках:
Jul 26 10:55:10 servername systemd[1]: Starting LSB: Start NTP daemon...
Jul 26 10:55:10 servername ntpd[131489]: ntpd 4.2.6p5@1.2349-o Fri Jul 22 17:30:51 UTC 2016 (1)
Jul 26 10:55:10 servername ntpd[131490]: proto: precision = 0.101 usec
Jul 26 10:55:10 servername ntpd[131490]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Jul 26 10:55:10 servername ntp[131479]: Starting NTP server: ntpd.
Jul 26 10:55:10 servername systemd[1]: Started LSB: Start NTP daemon.
Jul 26 10:55:10 servername ntpd[131490]: Listen and drop on 1 v6wildcard :: UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 2 lo 127.0.0.1 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 3 bond0 10.2.32.121 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 4 lo ::1 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 5 bond0 fe80::1618:77ff:fe33:2309 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: peers refreshed
Jul 26 10:55:10 servername ntpd[131490]: Listening on routing socket on fd #22 for interface updates
Запуск ntpdate в командной строке работает нормально:
% ntpdate -u 10.2.1.161
26 Jul 11:00:05 ntpdate[132651]: adjust time server 10.2.1.161 offset 0.001240 sec
Так что, может быть, я не вижу леса за деревьями. В любом случае, любая помощь будет очень признательна :)
Танку, ребята!
Я нашел причину :)
Конфигурация, которая использовалась на ящиках, была сделана коллегой, которая здесь больше не работает. Здесь никто ничего не знает о ntp. Поэтому я перехожу к файлу конфигурации, который распространяется с пакетом ntp, и просто меняю серверы на наши. После перезапуска службы ntp конечно синхронизация времени заработала!
Большинство параметров были аналоговыми, но в нашей пользовательской конфигурации отсутствовали следующие:
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
У меня не было времени читать об этих параметрах, поэтому я ничего не могу о них рассказать. Самое главное, теперь он работает: D