LINUX.ORG.RU
ФорумAdmin

Оповещение для клиентов сервера ntp о необходимости синхронизации

 


0

1

Собственно вопрос простой и банальный - Что нужно сделать чтобы ntp сервер по broadcast адресу известил о том, что клиентам необходимо синхронизироваться с ним? Я пару дней потратил на поиски ответа, но ничего так и не нашел.

Никак. С чего это клиентам должно быть необходимо синхронизироваться по желанию сервера? Отклонения хода клиентских часов и необходимость переуточнения текущего времени - дело исключительно клиента. Сервер (точнее, много севреров по всему миру) только предосталяет по запросу клиента информацию.

firkax ★★★★★
()
Ответ на: комментарий от anc

И так, есть локальная сеть, на одном устройстве крутиться ПО и сервер ntp, есть еще ряд устройств которые как клиенты синхронизируются с серваком и взаимодействую с ПО. У ПО есть алгоритм в котором используются данные этих самых устройств в частности метка времени, если метки времени будут отличатся на несколько секунд или еще хуже минут, то результат алгоритма будет не правильным, что приведет к критическим проблемам. А теперь ситуация: на серваке меняют метку времени, а затем приступают к выполнению алгоритма, результатом будет как я выше сказал ошибка, для этого и нужно просигналить клиентам о том, что нужна синхронизация.

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

поставь в локалке свой сервер ntp и синхронизируйся с ним хоть по несколько раз в минуту, это твой сервер.
вариант2: с сервера через ssh запустить синхронизацию на клиентах апосля смены метки времени. и прочие варианты с методом посылки команды в клиентов.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Если начну синхронизацию с такой частотой, то некоторые клиенты могут «задохнутся» от этого и банально отвалятся, не у всех клиентов есть ssh поэтому не получится запустить у них синхронизацию

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

Изучите как работает ntp. Разовые синхронизации, приводящие к скачкам локального времени в будущее или, не дай Джа, в прошлое, это не основной режим работы. В штатном режиме клиент и сервер обеспечивают «плавную» синхронизацию путём вычисления дельты между таймерами и управления течением времени на клиенте для сведения этой дельты к нулю, путём замедления или ускорения «хода» локальных часов.

ssh тут вообще не причём, на клиенте исполняется демон ntpd который общается с сервером времени по протоколу ntp. Просто изучите уже матчасть.

PS. Чо реально уже никто не понимает как ntp работает? Почему тут уже столько постов на тему велосипедостроения? Или большинству просто лень этот локальный тупнячок на путь истинный наставить?

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)
Ответ на: комментарий от sasuke4514

тогда выставь ту частоту, которой тебе хватит и клиенты не отвалятся.
такто нтп не столько жрущий протокол чтобы заддосить сервер или клиента. но тебе решать.

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

pfg ★★★★★
()
Ответ на: комментарий от pfg

Если бы все было так просто, видишь ли внешние устройства производятся отдельно от ПО в разных компаниях и доступа к их «внутренностям» нету, поэтому я и хотел узнать есть ли возможность заставить клиентов ntp сервера синхронизироваться по сигналу.

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

Я правильно понял что корень проблем в

на серваке меняют метку времени, а затем приступают

и избежать скачков времени на серваке никак нельзя? То бишь у вас на самом сервере времени время течёт не равномерно, а с прыжками в будущее?

Jameson ★★★★★
()
Ответ на: комментарий от sasuke4514

Протокол ntp совершенно не рассчитан на прыгающее на сервере время. Обеспечь сервер более качественным таймером, который не будет прыгать. Например, можно запустить на нём ntp-клиент к ru.pool.ntp.org.

firkax ★★★★★
()
Ответ на: комментарий от serg002

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

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

Боюсь что ntp не рассчитан на работу во Вселенной с такой странной физикой, лол. Видимо тут придётся самостоятельно изобретать сигнальный протокол. Хотя если у вас «клиенты» закрыты для модификаций это тоже не поможет, «штатный» ntp так не умеет совсем.

Jameson ★★★★★
()
Ответ на: комментарий от firkax

Смена часово пояса например, когда забыли поменять сразу, замена устройства на котором крутиться ПО, банальное уточнение, имеет место быть даже причина «просто, потому что могу»

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

Так эти «скачки» это фича такая, или особенность сервера, от которой хотелось бы избавиться? Так то демон ntp умеет вполне себе без интернета синхронизироваться с часами спутников gps (и ЕМНИП базами сотовой связи) через любой умеюющий в gps\gsm usb свисток. Организовать свой собственный изолированный от инета «сервер точного времени» несложно...

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от sasuke4514

Часовой пояс на метку времени не влияет. Он учитывается только при конвертации метки в человеко-удобный вид с датой и часами минутами секундами.

Замена устройства - ну, надо обеспечить чтобы время правильное стояло и до и после замены. «Уточнение» надо делать плавно, например подгоняя по 1 секунде за час. «Просто так» - ну это вредительство, проблема не техническая уже, таких деятелей надо наказывать.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ну к сожалению не всегда соблюдаются все требования, отсюда и возникла задача именно в таком формате. А насчет часового пояса то меняется он изменением самого времени так как на устройстве есть доступ только к ПО, там и клавиатуры то нету как таковой, только цифры и пару функциональных клавиш.

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

Смена часово пояса например, когда забыли поменять сразу, замена устройства на котором крутиться ПО, банальное уточнение, имеет место быть даже причина «просто, потому что могу»

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

По вопросам техническим, раз уж сервер тоже являет собой нечто закрытое и без usb портов, можно же поднять в локалке ещё один сервер, «сервер точного времени», на самой дешёвой железке, так как максимум что от него потребуется это иметь в usb свисток и держать запущенным демон ntpd. Он будет получать через свисток точное время со станций сотовой связи или спутников GPS и раздавать его по сети. А сам «рабочий» сервер и железячных клиентов уже с ним синхронизировать штатным способом, так как на «сервере точного времени» ничего прыгать не будет. И на «рабочем» сервере тоже не будет, он будет клиентом «сервера точного времени», таким же как железки, и всё станет синхронизированно.

Конечно от «просто, потому что могу» программно не защититься, но может сделать так чтобы за это стучали по рукам? Или физически железку изолировать так чтобы «просто потому что могу» превратилось в «не могу, заперто». Потому что выше правильно писали, такое поведение называется «саботаж».

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Если бы можно было просто объяснить, те кто выдвигают такие требования далеки от процессов разработки, да и что то добавить в имеющуюся систему так же получится, короче тупики со всех сторон. Буду пытаться изобрести какую нибудь инвалидную коляску хоть как то работающую. Спасибо всем за помощь!

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

Только с gsm нэнадо, косяк у опсоса и «чудесные» последствия разгребать ещё долго будете, а косяки у опсосов случаются.

Ну я gsm как возможный вариант упомянул, вдруг они в подвале без окон и спутники не ловятся. А сотовая сеть ловится. «Атомные часы» это тоже хорошо, но я думаю найти железку труднее и стоить она будет дороже чем gsm-свисток в usb.

Сам то я на базе GPS приёмника cделал в тот единственный раз когда мне это понадобилось. А «атомные часы» даже не гуглил.

Jameson ★★★★★
()
Ответ на: комментарий от sasuke4514

Тогда пусть клиент перед началом использования алгоритма сервера и запроса к нему проверяет время сервера и корректирует своё. То есть когда надо тогда и всё и приводится к единому знаменателю. ИМХО конечно.

LINUX-ORG-RU ★★★★★
()