LINUX.ORG.RU
ФорумAdmin

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

 


0

1

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

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

firkax ★★★★★
()

Выше все правильно написали. И дополню вопросом: Что в вашем понимании есть «клиентам необходимо синхронизироваться с ним?».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я все это прочитал, только это знание ни как не решает возникшей проблемы

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

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

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

Напиши клиент-серверное приложение. Сервер по бродкасту будет рассылать сигналы, а клиенты будут эти сигналы ловить и синхронизироваться по ntp

serg002 ★★★
()
Ответ на: комментарий от 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)
Ответ на: комментарий от Jameson

Что ж этого ответа я боялся больше всего, до конца надеялся что я чего не увидел в доках или что не до конца понял, жаль.

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

Требование к ПО такое, и в устройство не получится вставить что то не штатное, а штатного usb-разъема в нем нету.

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

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

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

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

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

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

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

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

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

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

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

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

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

если костылить костыли то имхо привязывать данные к UTC как универсальное средство. и gps и сотовая система дает время «UTC +TimeZone»

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

Что значит «задохнутся»? Если у вас их там не десятки тысяч, то на клиентах while [ 1 ]; do ntpdate -b $SrvIP; sleep 30; done.

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

Поставьте gps приемник с него и берите время. Ну или атомные часики заведите.

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

Ну и причем тут смена часового пояса?

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

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

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

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

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

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

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

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

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

Ну если можно воткнуть gsm, то тогда и жопорез можно воткнуть, говоришь, что синкешь через gsm, а сам пользуешь жопорез :)

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

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

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