LINUX.ORG.RU
ФорумAdmin

Ерунда с NTP


0

0

Доброго времени суток
Ерунда какая-то творится с NTP.
Задача: синхронизировать часы компа с серверами времени, после чего синхронизировать время остальных в локалки с этим, выполняющим роль локального сервера времени.
Для этого была сделана предварительная синхронизация времени на всех компьютерах:

ntpdate -d ntp21.imvp.ru dmzs.com ntp.obspm.fr

Затем на локальный сервер времени и его клиенты был инсталлирован пакет ntp-server, произведено конфигурирование (/etc/ntp.conf), после чего сервис ntp был перезапущен.

Сервер:
# cat /etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd

# ntpd will use syslog() if logfile is not defined
logfile /var/log/ntpd

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

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


# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server ntp21.imvp.ru
server dmzs.com
server ntp.obspm.fr

# ... and use the local system clock as a reference if all else fails
# NOTE: in a local network, set the local stratum of *one* stable server
# to 10; otherwise your clocks will drift apart if you lose connectivity.
server 127.127.1.0
fudge 127.127.1.0 stratum 1 #3

# By default, exchange time with everybody, but don't allow configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1 nomodify
restrict 192.168.0.5 nomodify

остальное закомментировано

# ntpq -c peers -n
remote refid st t when poll reach delay offset jitter
==============================================================================
*127.127.1.0 LOCAL(0) 1 l 45 64 377 0.000 0.000 0.004

# ntpdc -c sysinfo -n
system peer: 127.127.1.0
system peer mode: client
leap indicator: 00
stratum: 2
precision: -18
root distance: 0.00000 s
root dispersion: 0.01262 s
reference ID: [127.127.1.0]
reference time: c8947abb.e49a88ac Mon, Aug 21 2006 22:32:27.892
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.003998 s
authdelay: 0.000000 s

Клиенты:

# cat /etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd

# ntpd will use syslog() if logfile is not defined
#logfile /var/log/ntpd

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

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


# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to more than 100 low-stratum NTP servers.
# Your server will pick a different set every time it starts up.
# *** Please consider joining the pool! ***
# *** <http://www.pool.ntp.org/#join>; ***
server 192.168.0.2
#server pool.ntp.org
## uncomment for extra reliability

# ... and use the local system clock as a reference if all else fails
# NOTE: in a local network, set the local stratum of *one* stable server
# to 10; otherwise your clocks will drift apart if you lose connectivity.
server 127.127.1.0
fudge 127.127.1.0 stratum 13

# By default, exchange time with everybody, but don't allow configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1 nomodify

остальное закомментировано

# ntpq -c peers -n
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.0.2 .INIT. 16 u - 1024 0 0.000 0.000 4000.00
*127.127.1.0 LOCAL(0) 13 l 31 64 377 0.000 0.000 0.002

# ntpdc -c sysinfo -n
system peer: 127.127.1.0
system peer mode: client
leap indicator: 00
stratum: 14
precision: -19
root distance: 0.00000 s
root dispersion: 0.01259 s
reference ID: [127.127.1.0]
reference time: c8947b48.32cfd8f0 Mon, Aug 21 2006 22:34:48.198
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.003998 s
authdelay: 0.000000 s

Интересно, с какой радости клиенты приписывают серверу stratum 16, хотя он сам себе присвоил stratum 2? Почему у клиента stratum такой низкий (14)? Далее, если пытаться получить время вручную с локального сервера, получаем:

# ntpdate -d 192.168.0.2
21 Aug 22:39:48 ntpdate[18993]: ntpdate 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 2610:30:13 UTC 2005 (1)
transmit(192.168.0.2)
transmit(192.168.0.2)
transmit(192.168.0.2)
transmit(192.168.0.2)
transmit(192.168.0.2)
192.168.0.2: Server dropped: no data
server 192.168.0.2, port 123
stratum 0, precision 0, leap 00, trust 000
refid [192.168.0.2], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 9:28:16.000
originate timestamp: 00000000.00000000 Thu, Feb 7 2036 9:28:16.000
transmit timestamp: c8947c77.cf0e2c12 Mon, Aug 21 2006 22:39:51.808
filter delay: 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

21 Aug 22:39:52 ntpdate[18993]: no server suitable for synchronization found

Откуда взялся stratum 0??? Что ему нужно, чем клиенту не понравился локальный сервер??

Посоветуйте плз, где собака зарыта. Доками уже обкурился, голова пухнет. Теоретически все просто, и где здесь можно ошибиться непонятно, конфиги простые. Видимо копать нужно в сторону локального сервера, но где ошибка??
HELP!

OMG! Я сделал это! Это ж надо было так проколоться - с файрволом перемудрил.

Что скажут знающие люди по поводу общей конфигурации системы?
И на сервер, и на клиенты поставил ntp-server, ибо он умеет подводить время плавно. Некоторые рекомендуют при загрузке вызывать дополнительно ntpdate, но я сомневаюсь в целесообразности этого по причине:
1. Время будет подводиться рывком => возможны коллизии в логах и крон - заданиях, особенно если часы будут бежать вперед.
2. Возможны конфликты ntpd и ntp-server`а за порт (их загрузку придется максимально разнести по времени)
3. Смысл запускать ntpd, когда затем все равно будет запущен ntp-server, который плавно подведет время куда нужно. Или связь между ntp-серверами происходит с большим интервалом? Этот момент я еще не уяснил.
В общем, есть ли смысл запускать при загрузке ntpdate на десктопе? На ноуте, который не всегда бывает в сети?
Спасибо.

Mousehouse
() автор топика
Ответ на: комментарий от Mousehouse

1. После перезагрузки время может очень сильно не совпадать и ntpd возможно переведет его рывком. ntpd начинает работать не сразу после перезапуска, а после некоторого таймаута (когда у тебя уже сервисы крутятся) и потом клиентам тоже не сразу отдает время, а после еще одного таймаута. При двух-ступенчатой структуре клиенты будут получать точное время с большой задержкой. Короче, если одновременно перезагружаешь сервер и клиента, то точное время настигнет клиента очень нескоро.

2. ntpdate умеет использовать непривилегированный порт вместо 123.

3. Если на клиентах использовать только ntpdate однократно при запуске или по крону раз в час, тоже неплохо, точность в пределах секунды оно обеспечит. Навряд-ли тебе нужна миллисекундная точность, а если нужна, то одного сервера все равно недостаточно.

ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.