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

Ntp вызывает проблемы

У меня есть сервер FreeIPA, работающий на Centos 6, и одна из его функций - обеспечивать синхронизацию времени с клиентскими хостами. NTP - это версия 4.2.6

Проблема в том, что собственная синхронизация NTP не работает должным образом, и я не понимаю, почему. Затем это влияет на функции Kerberos / аутентификации.

Сервер FreeIPA не может напрямую подключиться к Интернету, поэтому ему необходимо использовать другой сервер, который может видеть Интернет.

Вот список nptq с «главного» сервера времени с IP-адресом 10.20.1.23.

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*46.101.52.119   81.174.136.35    2 u  111  128  377   10.234    0.865   3.491
+51.141.4.8      85.199.214.102   2 u  121  128  377   14.806   -0.365   2.858
+178.62.16.103   195.66.241.3     2 u  117  128  377   10.677    0.816   1.931
+129.250.35.250  249.224.99.213   2 u  100  128  377   14.064   -1.678   1.525

Все довольно стандартно. 46.101.52.119 используется как ссылка

Вот вывод другого клиента, использующего этот сервер для синхронизации времени.

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.20.1.23       46.101.52.119    3 u  230  256  377    0.439  1095.65  34.637
 127.127.1.0     .LOCL.           5 l  49m   64    0    0.000    0.000   0.000

Это нормально, что 10.20.1.23 использует 46.101.52.119 в качестве ссылки

Но когда я иду на свой сервер FreeIPA, я получаю

# ntpq -pn
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.20.1.23       LOCAL(0)         6 u   97  128  377   32.193  92334.0  17.646

Refid отличается, и он говорит мне, что у нас есть примерно полторы минуты смещения. Фактически, я вручную установил часы с точностью до секунды, но теперь это работает с помощью ntpd.

Также см: Почему NTP синхронизируется с ЛОКАЛЬНЫМ, а не с удаленным сервером?

Кажется, что происходит то, что ваши локальные часы идут слишком быстро по отношению к источнику времени, с которым они пытаются синхронизироваться. В результате он удаляет источник синхронизации и использует то, что считает лучшим ответом, а именно собственный локальный источник времени ядра. Есть несколько вещей, которые вы можете сделать, чтобы облегчить это состояние и попытаться привести свои местные часы в лучшую форму.

Во-первых, чтобы решить эту проблему, вы можете установить локальные часы на более высокий уровень, чем ваши источники синхронизации. Пример в вашем ntp.conf файл будет:

server 127.0.0.1
fudge 127.0.0.1 stratum 16   ## or some value greater than it's synchronization peer

Это сделает его менее желательным источником, когда NTP начнет выбор одноранговых узлов для синхронизации.

Затем, если ваши местные часы действительно не в порядке, вы можете настроить их, используя adjtimex. БУДЬТЕ ОСТОРОЖНЫ, в этот момент вы играете с аппаратными часами. Пример мог бы выглядеть примерно так:

# adjtimex -p         ## List out how the clock is currently running...
     mode: 0
   offset: 0
frequency: 0
 maxerror: 0
 esterror: 0
   status: 64
time_constant: 4
precision: 1
tolerance: 32768000
     tick: 9900
 raw time:  1272299204s 17444us = 1272299204.017444
return value = 5

И отрегулируйте значение поля «галочка»:

adjtimex -t 9800

Перезапустите ntpd и посмотрите, как он себя ведет. Если это делает джиттер более приемлемым, оставьте его на этом уровне или при необходимости отрегулируйте снова. NTP может быть несколько неясным, и я надеюсь, что помог кое-чему, но если вам нужна дополнительная информация, я бы доверял источнику на http://support.ntp.org

Ссылки

http://support.ntp.org/bin/view/Support/TroubleshootingNTP

http://log.or.cz/?p=80