Назад | Перейти на главную страницу

Проблемы с NTPD на стороне клиента

у нас проблема с 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