У меня начались проблемы с парой наших серверов colo, которые вызывают изрядную головную боль.
Я был предупрежден о сдвиге часов на нескольких серверах, и когда я пошел исследовать, ntpq - = p показал следующее:
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
так ясно, что сервер не может связаться со своими серверами ntp. Однако на его дочерних серверах таких проблем нет, поэтому я предположил, что проблема связана с сервером. Вероятно, неправильная конфигурация в IPtables. Но нет, IPtables настроен правильно. Перезапустил ntpd, подождал несколько минут, но серверы ntp все еще были в INIT. В качестве проверки я побежал
ntpdate ntp1.hetzner.de
и я получаю ответ от сервера времени! Озадаченный, я запустил tcpdump для трафика UDP 123 и перезапустил ntpd. Пакетов нет. Не один. Даже через час. И все же, если я остановлю ntp и запустил ntpdate, я увижу, что пакеты, проходящие по сети на серверы времени, не проблема.
Итак, я попытался поместить IP-адреса серверов времени в ntp.conf и мгновенно синхронизировался.
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
*ntp1.hetzner.de 192.53.103.103 2 u 23 64 1 2.856 -2.246 0.016
ntp2.hetzner.de 192.53.103.103 2 u 22 64 1 0.246 -2.174 0.019
ntp3.hetzner.de 192.53.103.108 2 u 21 64 1 0.262 -1.282 0.037
в этом выводе шесть серверов, поскольку я добавил IP-адреса серверов в ntp.conf
Так что я в тупике. Есть ли какая-то странная проблема с DNS в ntpd, или я сделал что-то глупое в своей конфигурации? Это Debian 7.8, а версия ntpd - 4.2.6p5.
Моя конфигурация ntp теперь выглядит следующим образом:
driftfile /var/lib/ntp/ntp.drift
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
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
server ntp1.hetzner.de iburst
server ntp2.hetzner.com iburst
server ntp3.hetzner.net iburst
server 213.239.239.164 iburst
server 213.239.239.165 iburst
server 213.239.239.166 iburst
У меня есть несколько серверов в Hetzner, которые с конфигурацией ntpd по умолчанию из установочного образа будут использовать IPv6 для связи с серверами ntp, предоставленными Hetzner.
Учитывая, что вы видите повторяющиеся записи в выходных данных, я сильно подозреваю, что ваш ntpd преобразовал эти имена хостов в адреса IPv6, а не адреса IPv4. Вы можете проверить это, используя -n
флаг для ntpq
так что он будет отображать IP-адреса, а не имена хостов.
Нет ничего плохого в настройке ntpd таким образом, чтобы он использовал как некоторые адреса IPv4, так и некоторые адреса IPv6 в качестве источника времени. Я бы даже сказал, что это хорошая практика. Следовательно, я бы не сказал, что с вашей конфигурацией ntpd что-то не так.
Однако я подозреваю, что у вас есть неправильная конфигурация в вашей конфигурации IPv6, и это то, что вы должны исправить.