Господа, прошу не бить ногами, но излазил весь интернет, но не смог найти ответа на свой вопрос.
И так, имеется локальная сеть без выхода в интернет, в ней есть виндовый домен, локальные часы которого считаются эталонными, это время он будучи доменом раздает всем клиентским машинам.
Имеется linux сервер с БД, время которого я хотел бы синхронизировать с доменным. Для чего использую ntpd. Скажу сразу что вариант с ntpdate запиханым в крон очень не подходит для моего случая.
Так вот, после настройки дефалтового конфига /etc/ntp.conf на свой виндовый сервер я получил вот такую картину
root@s3800r12 ~ # ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.38.0.9 .LOCL. 1 u 23 1024 377 0.227 -46460. 20.632
*LOCAL(0) .LOCL. 10 l 3 64 377 0.000 0.000 0.001
* напротив LOCAL говорит о том что синхронизация происходит с самим собой. И никаким боком он синхронизировать время с 10.38.0.9.
При этом ntpdate 10.38.0.9 синхронизирует все спокойно. Перерыв весь чертов интернет я докатился до такого конфига
server 10.38.0.9
driftfile /var/lib/ntp/drift
logfile /var/log/ntpd.log
В итоге ntpq -p дает следующее
root@s3800r12 ~ # ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.38.0.9 .LOCL. 1 u 60 64 377 0.206 -47136. 8.280
При этом команда as в консоли ntpq показывает следующее
root@s3800r12 ~ # ntpq
ntpq> as
ind assID status conf reach auth condition last_event cnt
===========================================================
1 62980 9014 yes yes none reject reachable 1
По итогу время так и не синхронизируется автоматом.
Куда копать ребята, что проверять?
> * напротив LOCAL говорит о том что синхронизация происходит с самим собой.
> И никаким боком он синхронизировать время с 10.38.0.9.Добавить:
server 127.127.1.0
restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notrap
fudge 127.127.1.0 stratum 10 refid LCLrestrict default ignore
restrict -6 default ignore> server 10.38.0.9
> driftfile /var/lib/ntp/drift
> logfile /var/log/ntpd.logКлассику жанра надо почитать и конфиг дописать:
https://wiki.archlinux.org/index.php/Network_Time_Protocol_d...п═я┐я│я│п╨п╦п╧)
> Добавить:
> server 127.127.1.0
> restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notrap
> fudge 127.127.1.0 stratum 10 refid LCL
> restrict default ignore
> restrict -6 default ignoreДобавил, в итоге получился вот такой конфиг
server 10.38.0.9 prefer
server 127.127.1.0
restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notrap
fudge 127.127.1.0 stratum 10 refid LCL
restrict default ignore
restrict -6 default ignore
driftfile /var/lib/ntp/drift
logfile /var/log/ntpd.logС ним ntpq вообще ничего не возвращает
root@s3800r12 ~ # service ntpd restart
Shutting down ntpd: [ OK ]
Starting ntpd: [ OK ]
root@s3800r12 ~ # ntpq -p
localhost.localdomain: timed out, nothing received
***Request timed out> Классику жанра надо почитать и конфиг дописать:
> https://wiki.archlinux.org/index.php/Network_Time_Protocol_d...п═я┐я│я│п╨п╦п╧)Все так говорят, читал, все делал и по готовым конфигам и сам составлял только все равно не работает.
>> Классику жанра надо почитать и конфиг дописать:
>> https://wiki.archlinux.org/index.php/Network_Time_Protocol_d...п═я┐я│я│п╨п╦п╧)
> Все так говорят, читал, все делал и по готовым конфигам и сам
> составлял только все равно не работает.Подозреваю, что работает, просто ты попался с переводом слова "clock".
"synchronize the software clock" совсем не означает, что часы будут показывать одно и то же время. ntpd синхронизирует частоту "программного таймера", а не текущее значение счётчика.
Ты непрерывно вычисляешь дрейф своего таймера, чтобы поправлять его и его частота совпадала с вышестоящим. Когда получаешь достаточную точность частоты, подводишь стрелки (с помощью ntpdate), чтобы совпало значение текущего времени.
Продолжаешь вычислять дрейф.
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.restrict 10.38.0.9 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
> restrict 10.38.0.9 default kod notrap nomodify nopeer noquery
> restrict 127.0.0.1
> restrict ::1Добавил Ваше замечание в свой конфиг, в итоге получилось следующее:
server 10.38.0.9 prefer
server 127.127.1.0
restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notrap
fudge 127.127.1.0 stratum 10 refid LCL
restrict default ignore
restrict -6 default ignore
restrict 10.38.0.9 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
driftfile /var/lib/ntp/drift
logfile /var/log/ntpd.logС таким конфигом вообще не получает ответ от сервера времени. ntpq -p показывает следующее:
root@s3800r12 ~ # ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.38.0.9 .INIT. 16 u - 64 0 0.000 0.000 0.000
LOCAL(0) .LCL. 10 l 22 64 3 0.000 0.000 0.001
> Добавил Ваше замечание в свой конфиг, в итоге получилось следующее:
>
> server 10.38.0.9 preferserver 10.38.0.9 prefer iburst maxpoll 9
> server 127.127.1.0
> restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notrap
> fudge 127.127.1.0 stratum 10 refid LCL
> restrict default ignore
> restrict -6 default ignore
> restrict 10.38.0.9 default kod notrap nomodify nopeer noqueryrestrict 10.38.0.9 mask 255.255.255.255 kod notrap nomodify noquery
Отдельные параметры меняли смысл в зависимости от версии ntpd.
> restrict 127.0.0.1
> restrict ::1
> driftfile /var/lib/ntp/drift
> logfile /var/log/ntpd.log
>
> root@s3800r12 ~ # ntpq -p
> remote refid st t when poll reach delay offset jitter
> ==============================================================================
> 10.38.0.9 .INIT. 16 u - 64 0 0.000 0.000 0.000^^^^^^
Этот сервер не доступен . Если через некоторое время значение reach увеличиться до 377 ,
то этого будет достаточно для синхронизации. Вернее статистических данных для
синхронизации.
> LOCAL(0) .LCL. 10 l 22 64 3 0.000 0.000 0.001^^^^^
Сервер доступен, но мало статистики, надо подождать.
>[оверквотинг удален]
> увеличиться до 377 ,
> то этого будет достаточно для синхронизации. Вернее статистических данных для
> синхронизации.
>> LOCAL(0) .LCL. 10 l 22 64 3 0.000 0.000 0.001
>
>
>
>
> ^^^^^
> Сервер доступен, но мало статистики, надо подождать.Сервер не доступен только с этим конфигом, в первом посте привожу что сервер как раз доступен но синхронизация по какой то причине не проходит.
> Сервер не доступен только с этим конфигом, в первом посте привожу что
> сервер как раз доступен но синхронизация по какой то причине не
> проходит.1. Посмотрите tcpdump'ом обмен пакетами по протоколу ntp между компьютерами.
2. В конфиге по умолчанию все запрещено
restrict default ignore
restrict -6 default ignoreНеобходимо настроить access control для IP адресов в ntp.conf , например:
restrict 10.38.0.9 mask 255.255.255.255 kod notrap nomodify noqueryПосмотрите пост 8 и почитайте man ntp.conf
server 10.38.0.9 prefer iburst maxpoll 9
> 1. Посмотрите tcpdump'ом обмен пакетами по протоколу ntp между компьютерами.Я новичек, что именно я должен там увидеть?
> 2. В конфиге по умолчанию все запрещено
> restrict default ignore
> restrict -6 default ignore
> Необходимо настроить access control для IP адресов в ntp.conf , например:
> restrict 10.38.0.9 mask 255.255.255.255 kod notrap nomodify noqueryЯ делал конфиг с единсвтенной строкой server 10.38.0.9 это работает на другой, соверщенно сторонней машине. Мне ненадо что бы этот сервер сам потом раздавал время, мненадо только что бы он сам синхронизировался.
>> 1. Посмотрите tcpdump'ом обмен пакетами по протоколу ntp между компьютерами.
> Я новичек, что именно я должен там увидеть?:-(
Пакеты должно ходить между компьютерами.
# tcpdump -n -i "имя сетевого интерфейса" 'port 123'>> 2. В конфиге по умолчанию все запрещено
>> restrict default ignore
>> restrict -6 default ignore
>> Необходимо настроить access control для IP адресов в ntp.conf , например:
>> restrict 10.38.0.9 mask 255.255.255.255 kod notrap nomodify noquery
> Я делал конфиг с единсвтенной строкой server 10.38.0.9 это работает на другой,
> соверщенно сторонней машине.Повторите конфигурацию на нужной машине и закройте тему.
Если не получиться, то еще раз читайте man ntp.conf и посты.
Вам всё неоднократно написали.> Мне ненадо что бы этот сервер сам потом
> раздавал время, мненадо только что бы он сам синхронизировался.Используйте для этого restrict xxx.yyy.zzz.mmm mask ...
> :-(
> Пакеты должно ходить между компьютерами.
> # tcpdump -n -i "имя сетевого интерфейса" 'port 123'Вы издеваетесь? ntpdate спокойно синхронизиурет время, ntpd видит сервер и показывает разницу с ним. Это не подтверждение того, что пакеты ходят? Что еще мне покажет tcpdump?
> Повторите конфигурацию на нужной машине и закройте тему.
> Если не получиться, то еще раз читайте man ntp.conf и посты.
> Вам всё неоднократно написали.Очень жаль что Вы так и не удосужились прочитать суть моего самого первого поста, или не можете себе представить что и на линуксе могут быть не "типичные проблемы".
На свежеставленом редхате для того что бы работала синхронизация достаточно в конфиге 1 единсвтенно стороки server IP_ADR и синхронизация будет работать. В моем случае не работает, и именно по этому я создал эту тему, что бы местные гуру помогли мне с АНАЛИЗОМ проблеммы, как правильно докопаться до сути. А по итогу Вы мне потыкали шаблонными фразами ну и разумеется "читайте ман". Да почитали уж, не дурнее паровоза.
> Вы издеваетесь? ntpdate спокойно синхронизиурет время, ntpd видит сервер и показывает разницу
> с ним.Читайте man ntpd
...
-g Normally, ntpd exits with a message to the system log if the off-
set exceeds the panic threshold, which is 1000 s by default.
...
-q Exit the ntpd just after the first time the clock is set. This
behavior mimics that of the ntpdate(8) program, which is to be
retired. The -g and -x options can be used with this option.
Note: The kernel time discipline is disabled with this option.
...Читайте man ntp.conf
...
iburst When the server is unreachable, send a burst of eight packets
instead of the usual one. The packet spacing is normally 2 s;
however, the spacing between the first two packets can be changed
with the calldelay command to allow additional time for a modem
or ISDN call to complete. This is designed to speed the initial
synchronization acquisition with the server command and s
addresses and when ntpd(8) is started with the -q option.server 10.38.0.9 prefer iburst maxpoll 9
> Это не подтверждение того, что пакеты ходят? Что еще
> мне покажет tcpdump?Полагаю, что недостаточное подтверждение.
ntpdate и ntpd разные программы, реакция последней на
пришедшие пакеты зависит от конфига.> Очень жаль что Вы так и не удосужились прочитать суть моего самого
> первого поста, или не можете себе представить что и на линуксе
> могут быть не "типичные проблемы".Проблема типичная для "новичков" - это нежелание внимательно читать посты и man.
В посте 14 приведен рабочий конфиг, Вам только необходимо было подправить под свои нужды.> На свежеставленом редхате для того что бы работала синхронизация достаточно в конфиге
> 1 единсвтенно стороки server IP_ADR и синхронизация будет работать. В моем
> случае не работает, и именно по этому я создал эту тему,
> что бы местные гуру помогли мне с АНАЛИЗОМ проблеммы, как правильно
> докопаться до сути. А по итогу Вы мне потыкали шаблонными фразами
> ну и разумеется "читайте ман". Да почитали уж, не дурнее паровоза.Плохо читали.
Я Вам уже писал, что параметры в ntp.conf меняли свой функционал в зависимости
от версии ntpd. Хотелось бы посмотреть версию ntpd, опции запуска ntpd, ntp.conf ,
время в CMOS, лог ntpd. Включите логирование (см. пост 14).
Записываете Вы хотя бы раз в сутки правильно время в CMOS?
Иначе часы в CMOS могут сильно убежать.
А что дает ntpdate -q 10.38.0.9 на выходе? Какой стратум?
> А что дает ntpdate -q 10.38.0.9 на выходе? Какой стратум?root@s3800r12 ~ # ntpdate -q 10.38.0.9
server 10.38.0.9, stratum 1, offset -53.888388, delay 0.04138
10 Mar 12:00:27 ntpdate[26150]: step time server 10.38.0.9 offset -53.888388 sec
> Господа, прошу не бить ногами, но излазил весь интернет, но не смог
> root@s3800r12 ~ # ntpq -p
> offset
>=======
>-47136.
> По итогу время так и не синхронизируется автоматом.
> Куда копать ребята, что проверять?Может, разница слишком велика на вкус ntpd?
Сделай сначала установку с ntpdate (или как тамм, ntpqd -gqx ?), потом запускай ntpd.
> Может, разница слишком велика на вкус ntpd?
> Сделай сначала установку с ntpdate (или как тамм, ntpqd -gqx ?), потом
> запускай ntpd.Строго говоря у меня 2 одинаковых сервера, 1 сервер приложений, 2 БД.
На сервере приложений совершенно аналогичная проблема и там я предварительно делал ntpdate 10.38.0.9 синхронизация прошла успешно, однако все равно после этого ntpd синхронизироваться не хочет.
> однако все равно после этого ntpd синхронизироваться не хочет.Фаервол выруби, или настрой правильно.
Ах да, после того как стартанёшь сервер, покури минут 15-20
и только потом запускай ntpq -p.
>> однако все равно после этого ntpd синхронизироваться не хочет.
> Фаервол выруби, или настрой правильно.
> Ах да, после того как стартанёшь сервер, покури минут 15-20
> и только потом запускай ntpq -p.Фаервол не используется.
У меня так, раздаёт 172.16/ сети без проблем, время берёт с ntp.org
driftfile /var/lib/ntp/ntp.driftstatistics loopstats peerstats clockstats
filegen clockstats file clockstats type day enable
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enablerestrict default ignore
server 127.127.1.0
fudge 127.127.1.0 stratum 3
restrict 127.0.0.1 nomodify notrap
restrict 127.127.1.0 mask 255.255.255.255 nomodify noquery notraprestrict 172.16.0.0 mask 255.224.0.0 nomodify notrap
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
restrict 0.debian.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.debian.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery# ntpdate -q 172.16.0.1
server 172.16.0.1, stratum 3, offset 0.000020, delay 0.02573
10 Mar 12:20:38 ntpdate[8277]: adjust time server 172.16.0.1 offset 0.000020 sec# ntpdate -q 127.0.0.1
server 127.0.0.1, stratum 3, offset -0.000017, delay 0.02579
10 Mar 12:20:46 ntpdate[9255]: adjust time server 127.0.0.1 offset -0.000017 sec
> jitter
> 20.632
> Куда копать ребята, что проверять?jitter что-то великоват для первого stratum
Столкнулся с той-же проблемой на виртуалке с FreeBSD 8.1-RELEASE (ядро пересобранное). До этого не одну машину и сеть с ntpd настроил. Пока копаю. Думаю где-то в сторону кода 9014 в столбце status вывода ntpq -c as
Ну и раньше использовал в конфиге sync_on_start, а теперь выключил. Может это как-то влияет. Сейчас проверяю версию, что за время набора демоном статистики (reach) по пиру offset успевает превысить умолчальный порог в 1000 секунд. Возможно при старте с немедленной синхронизацией скачком пир выбирается сразу без набора статистики и потом уже не отпускается.А от советов некоторых советчиков (похожих на бездумных копипастеров конфигов) хочется поржать. Хоть бы вникли, что дают restrict и fudge с локалсорцем и каким боком они сюда относятся. И ладно бы вели себя скромнее или правы были. А так гонору как у "академиков", а объективности и связи с темой - ноль без палочки.
Ну вот, пока писал, вариант "не успевает набрать статистику" проверил. Reach уже давно и стабильно 377 (максимум), offset за это время стал около 200 секунд (пятая часть от трешолда). Т. е. причина реджекта не в оффсете, а в чём-то другом.
> Столкнулся с той-же проблемой на виртуалке с FreeBSD 8.1-RELEASE (ядро пересобранное).Нашёл у себя причину в VBoxService из пакета (или порта - не помню) дополнений VirtualBox'а для гостевых ОС. Если его запустить без ключа --disable-timesync, то он что-то где-то ломает или под себя перестраивает. После этого его можно остановить, запустить ntpd и получить описанную проблему. Перезагрузка это лечит. Для железных машин в инете рекомендуют попробовать смену таймеров. Их обычно в системе несколько и можно выбирать через sysctl или ещё где-то. Бывает часть таймеров подглючивает и ntpd не может что-то типа подстроиться под частоту.
Код 9014 искать не надо. Это составное шестнадцатиричное слово предоставляет информацию, которую видно и так (пир взят из конфига и находится в состоянии reject). Т.е. для диагностики этот статус бесполезен, а алгоритм его расшифровки не интуитивен.