Сервер времени для apple

О точном времени

К сервису синхронизации времени по протоколу NTP все уже привыкли — оно включено по умолчанию или легко включается для большинства популярных операционных систем. Однако какая точность при этом достигается? Какие бывают сервера точного времени, и с какими можно работать простым смертным? Какие есть подводные камни, и как выбрать «правильные» сервера времени?

Типы серверов

Сервера бывают Stratum 1 и 2, 3(выше редко).

Stratum 1 — получают точное время непосредственно от источника точного времени: атомных часов (например time-a.nist.gov, точность — трилионные доли секунды) или GPS приемника (ntpx.imvp.ru точность — миллиардные доли секунды). Есть сервера получающие точное время через сотовую сеть CDMA (миллионные доли секунды). При работе с ntpd узнать тип сервера можно командой ntpq -np: «PPS» значит GPS, «ACTS» значит прямое соединение с атомными часами (там же и другая ценная статистика — пинг, «дрожжание» пинга(jitter), ранг сервера(1,2. ) ).

«Простым» смертным обращаться к Stratum-1 серверам строго запрещено, т.к. нагрузка на них и так очень большая (а на многие Stratum-1 сервера вообще нет публичного доступа). Считается что вы можете подключаться к Stratum-1 серверам или просить доступ к ним, если вы держите NTP сервер, обслуживающий не менее 100 клиентов. Полный список серверов можно увидеть тут: support.ntp.org/bin/view/Servers/StratumOneTimeServers. Естественно, желательно подключатся к серверам в своей стране.

Stratum 2 — получают точное время от Stratum-1 серверов. При правильной настройке и выборе серверов-источников точного времени имеют погрешность менее 1мс. Подключатся обычно можно всем, но многие сервера регулярно умирают от нагрузки (например time.windows.com). www.pool.ntp.org поддерживает round-robin списки публичных Stratum-2 NTP серверов. Таким образом обеспечивается балансировка нагрузки, и они практически всегда доступны. Подключиться к этим серверам можно по адресам 0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org и 3.ru.pool.ntp.org (это для России, выбираются случайно из списка

Stratum 3 — получают время от Stratum-2 серверов, и т.д.

Практическая точность

Stratum-1
Это график разницы системного времени с временем полученным со Stratum-1 серверов (canonical.com — Stratum-2 сервер, для сравнения).
*.nist.gov — расположены в США, из-за «большого» пинга иногда случаются жуткие «выбросы». Ошибка с Российских Stratum-1 серверов обычно укладыватся в +- 1 мс.

Stratum-2
Это — разница с Stratum-2 серверами: 4 из Российского пулла, 1 из европейского, дефолтный сервер времени убунты (europium.canonical.com), и те же *.nist.gov:

Сразу бросаются в глаза сервера, имеющие постоянную ошибку до 20 мс.

Резюме

  • Время на серверах и рабочих станциях нельзя пускать на «самотёк», иначе отклонение времени может достичь минут.
  • Если точность +-0.05 секунды вас устраивает, можно не заморачиваться с выбором серверов, и синхронизироваться с сервером по умолчанию
  • Если необходима точность до +-0.01 секунды, нужно найти Stratum-2 NTP в вашей стране, построить с них графики отклонения (Munin+плагин ntp_peers), и отбросить «кривые». Под windows это конечно будет затруднительно сделать. Затем в linux установить демон ntpd, и дать ему 3-6 серверов для синхронизации (он сам будет выбирать наиболее «качественные»).
  • Если нужна точность до +-0.001 секунды И вы будете предоставлять сервис точного времени в вашей организации — подключайтесь к Stratum-1 серверам в вашей стране. Ваш сервис крайне желательно делать публичным.
  • Если нужно точнее 0.001 секунды — остается только настраивать свой Stratum-1 сервер от GPS или CDMA. В обоих случаях нужно либо антенну с улицы вести, или чтобы сигнал «добивал» (в случае с GPS — малореально). Атомные часы объемом менее кубометра пока не делают, так что этот вариант отпадает

PS. Кстати, по умолчанию в Ubuntu синхронизация времени происходит один раз при загрузке системы. Если аптайм под полгода — время может сильно уехать. Устанавливаете ntpd — он корректирует время постоянно и «плавно» (без резких рывков, «размазывая» замедление/ускорение времени). В Windows синхронизация происходит раз в сутки неделю одним «скачком», что может вызвать сложности при обработке логов, если набежала большая разница.

Товарищи!

Даешь большое публичных NTP серверов в России! Особенно Stratum-1 (с ними вообще у нас напряженка, 2-3 штуки на весь exUSSR). Кстати, точное время можно брать и с Глонасс, кто возьмётся запустить первый Глонасс-powered сервер?

Читайте также:  Как отличить оригинал айфона от рефреша

PPS. Не могу понять, в какой блог перенести, подскажите 🙂

Источник

Mac OS X Синхронизация даты и времени

Когда я установил Mac OS X для автоматической установки даты и времени, как часто это делается? И есть ли способ заставить обновление?

NTPd (используемый Mac OSX) будет синхронизироваться со скоростью, которую он считает более подходящей — это зависит от вашего перекоса часов. Это будет чаще, когда вы сначала включите его / подключитесь к сети, а затем будете подключаться через более длительные промежутки времени, когда он достаточно стабилизирует ваши часы.

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

Если вы хотите узнать подробности, зайдите в Википедию и на сайт NTP .

Обновить

Поскольку команда OS X 10.14 (Mojave) ntpdate была удалена — используйте sntp вместо:

Оригинальный ответ

Для более старых версий OX X (до 10.14) оригинальный ответ ниже по-прежнему применим.

Чтобы вручную обновить время с помощью NTP, используйте ntpdate из оболочки:

Ссылки:

Опции ntpdate:

-v

    Будьте многословны. Эта опция приведет ntpdate к регистрации строки идентификации версии.

-u

    Непосредственно ntpdate использовать непривилегированный порт для исходящих пакетов. Это наиболее полезно, когда за брандмауэром блокируется входящий трафик на привилегированные порты, и вы хотите синхронизироваться с хостами за брандмауэром. Обратите внимание, что -d опция всегда использует непривилегированные порты.

-q

    Только запрос — не устанавливайте часы.

Отказ от ответственности: функциональность этой программы теперь доступна в ntpd программе.
См. Параметр -q командной строки на ntpd странице демона NTP .
После подходящего периода траура ntpdate программа должна быть удалена из этого распределения.

Сетевой демон времени (ntpd) регистрирует активность в /var/log/system.log. Вы можете увидеть последние действия с grep:

Прочтите справочную страницу ntp.conf ( man ntp.conf ) для получения дополнительной информации о дальнейшей настройке ntpd, включая объем зарегистрированной информации и (я предполагаю) частоту обновлений.

Также, если выход из строя, выключите сервер времени, сначала установите дату вручную. Затем при включении NTP он будет синхронизироваться. В противном случае он просто игнорирует то, что говорит время. 1944 и 1970 годы не будут синхронизировать часы.

Автоматическая проверка / отмена установки часового пояса на вкладке настроек даты и времени мне не помогла.

Я в конечном итоге с помощью клиента Sntp из командной строки

Как вы можете видеть ниже, мое время составляет

30 секунд слишком быстро.

❯ sntp pool.ntp.org sntp 4.2.8p10@1.3728-o Tue Mar 21 14:36:42 UTC 2017 (136.200.1

2533) kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory 2018-10-30 10:03:35.514209 (-0300) -27.660871 +/- 18.459649 pool.ntp.org 197.84.150.123 s2 no-leap

Я убил свои часы как корень

sh-3.2# sntp -S pool.ntp.org sntp 4.2.8p10@1.3728-o Tue Mar 21 14:36:42 UTC 2017 (136.200.1

2533) kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory 2018-10-30 10:06:26.214299 (-0300) -27.574985 +/- 18.423331 pool.ntp.org 41.231.53.4 s2 no-leap

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

Источник

Как работает синхронизация времени в интернете

Можно ли синхронизировать свой комп по атомным часам

В прошлый раз мы рассказали, какие сложности могут ждать программистов, когда они пишут код для работы со временем. Сегодня перейдём на более сложный уровень: как компьютеры и другие устройства синхронизируют время между собой.

Зачем нужна синхронизация

От того, какое на компьютере установлено время, зависит многое:

  • отображение спецпредложений и акций на сайтах;
  • публикация и сортировка комментариев к статьям;
  • совместная работа компьютеров в локальной сети — если время на компьютерах будет различаться, это может привести к сбоям;
  • если одна база данных обслуживается с нескольких компьютеров, они должны чётко синхронизироваться во времени; иначе запрос одного компьютера может прилететь из будущего, а реальный запрос из будущего попасть в далекое прошлое;
  • если вы используете телефон для двойной аутентификации, то с неправильным временем телефон будет выдавать неправильный код, и аутентификация не пройдёт;
  • от времени зависят сертификаты безопасности: если ваше локальное время намного отличается от общемирового, то для вас все сертификаты безопасности будут недействительными, сайты не откроются.
Читайте также:  Не могу вывести iphone dfu

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

Как работает синхронизация

В общем виде синхронизация времени работает так:

  1. Устройство посылает запрос на сервер синхронизации и запоминает время, когда ушёл запрос. Запрос идёт по протоколу NTP, о нём ниже.
  2. Сервер получает запрос, и, если всё в порядке, — записывает, когда он его получил, и отправляет данные с точным временем на сервере.
  3. Устройство получает ответ от сервера и записывает, во сколько оно его получило.
  4. Зная время отправки и получения запроса и точное время на сервере, можно рассчитать глобальное время (но с какой-то точностью).

Это всё повторяется с какой-то периодичностью — раз в час, раз в день или с любым другим интервалом.

Что такое NTP

NTP — это сокращение от Network Time Protocol, что переводится как «протокол сетевого времени».

Протокол спроектирован так, чтобы заниматься только синхронизацией времени. Для этого используются пакеты объёмом всего 48 байт, причём 24 из них заполняет устройство, а 24 — сервер. Это значит, что для точности в 0,01 секунды достаточно один раз получить и передать 48 символов. Если размер пакета сделать слишком большим, то задержки при передаче будут больше и может пострадать точность синхронизации.

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

В операционной системе Windows точное время берётся с сервера time.windows.com У компании Apple сервер точного времени — time.apple.com

Какие бывают серверы синхронизации

В протоколе NTP есть несколько классов серверов точного времени, в зависимости от точности. Эти классы называются Stratum, а цифра после названия показывает уровень сервера по отношению к самому точному времени.

Stratum 1 — самые точные серверы, которые могут учитывать время с точностью в одну триллионную долю секунды. Они получают время напрямую от атомных часов либо от сервисов GRS или «Глонасс». Для запуска и обслуживания такого сервера нужно сложное оборудование, поэтому серверов первого уровня в мире мало. Большинство из них не отвечает на запросы от обычных пользователей и обслуживает только другие серверы уровнем пониже.

Stratum 2 — серверы точного времени второго уровня. Они получают данные от серверов первого уровня и работают с погрешностью примерно 0,001 секунды. Такие серверы уже могут отвечать на большинство запросов и обслуживать серверы поменьше.

Stratum 3 получают данные от серверов второго уровня, и тут уже точность может падать до 0,05 секунды. Дальше идут уровни 4, 5 и так далее, ограничений снизу нет.

Какая точность нужна для синхронизации

Если вам просто нужно «обычное» точное время с точностью до секунды (например, на телефоне или в часах), то подойдёт любой сервер синхронизации времени. Обычно это будут сервера Stratum 3, потому что их больше всего.

Если нужно что-то обрабатывать с точностью до 0,01 секунды, то нужно найти сервер второго уровня в своей стране и подключиться к нему (так будет точнее). Например, можно использовать серверы в Саратове.

Если же вам нужна точность 0,001 секунды или выше — договаривайтесь с владельцем сервера первого уровня или создавайте свой сервер.

Источник

Установка NTP сервера для включения его в pool.ntp.org

Большинство дистрибутивов операционных систем на базе Linux и многих сетевых устройств используют для установки часов сервера вида *.pool.ntp.org.

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

Как сказано на сайте https://www.ntppool.org/ru/ — это огромный кластер серверов точного времени, предоставляющий надежный и простой в использовании NTP-сервис для миллионов клиентов и его услугами пользуются десятки миллионов систем по всему миру.

Как же установить свой сервер, что для этого требуется?

Требуется обычный сервер со статическим реальным IP адресом с актуальной операционной системой будь то Linux/BSD или подобное устройство которое в состоянии стабильно работать в роли ntp-сервера по протоколу NTP https://ru.wikipedia.org/wiki/NTP который работает через интернет-сети по порту 123/UDP.

Из-за небольшого потребления ресурсов и канала (до 10-15 килобит в секунду) подойдет практически любая конфигурация, например, VPS/VDS на базе KVM с минимальными ресурсами.

“В настоящее время большинство серверов получают порядка 5-15 NTP-пакетов в секунду. Несколько раз в день могут возникать пики по 60-120 пакетов в секунду. Переводя в килобиты, получаем примерно 10-15Кбит/с в среднем и порядка 50-120Кбит/с на пиках нагрузки. В пул постепенно входит все больше серверов, поэтому резкое возрастание нагрузки в будущем не ожидается. Таким образом, вам вряд ли потребуется полоса больше 384-512Кбит (на прием и отдачу)”.

Устанавливаем NTP-сервер

В большинстве дистрибутивов Linux он входит в стандартные репозитории операционной системы и достаточно выполнить его установку

Читайте также:  Табак b3 apple pie

apt install ntp для Debian/Ubuntu или yum install ntp для CentOS

Теперь откройте файл конфигурации в вашем /etc/ntp.conf и там в 99% случаев будут сервера из пула:

pool 0.debian.pool.ntp.org iburst

pool 1.debian.pool.ntp.org iburst

pool 2.debian.pool.ntp.org iburst

pool 3.debian.pool.ntp.org iburst

Просто закомментируйте их символом #, сервер который будет входить в пул не должен синхронизироваться с ними

Также рекомендуется использовать google по запросу вида “ntp server ваша_страна”

Рекомендуется использовать не меньше 4 и не больше 6 серверов

Руководствуйтесь правилом 2+2+2 —

2 сервера — StratumOne

2 сервера — StratumTwo

2 сервера — в геолокациях соседних с вашей

Отмечу, что существуют также сервера (пулы серверов) точного времени принадлежащие крупным корпорациям — такие как time.apple.com / time.facebook.com / time.google.com. Использовать их или нет — сложный вопрос, так как мы используем пул для «интернет-независимости» и свободных операционных систем, то я бы не рекомендовал их использовать, кроме того сервера google не поддерживают передачу leap second.

Работу сервера следует проверить командой ntpdate -q имя-сервера должен быть ответ вида

# ntpdate -q ntp4.vniiftri.ru

server 89.109.251.24, stratum 1, offset 0.001008, delay 0.08249

8 Jan 03:50:07 ntpdate[1414]: adjust time server 89.109.251.24 offset 0.001008 sec

Это означает, что сервер работает, есть ответ и он представляет собой сервер “первого яруса” (stratum 1).

Подробнее об ярусах (stratum) можно прочитать по ссылке https://habr.com/ru/post/79461/

Сервера которые являются эталонными часами (атомными, GPS-спутник) являются сервера так называемого нулевого уровня (stratum 0).

Сервера которые синхронизируются с ними напрямую (например, через GPS-приемник) имеют уровень 1.

Следом идут сервера 2 и 3 — их вполне достаточно для синхронизации времени часов большинства компьютерных систем.

Проверка работоспособности

После добавления новых серверов (предварительно проверенных через ntpdate -q) следует перезапустить ntp-сервер (service ntp restart) и проверить его работу командой ntpq -pn

remote refid st t when poll reach delay offset jitter

-51.15.74.121 131.176.107.13 2 u 48 64 17 1.009 -0.030 0.246

*193.190.230.37 .EXT. 1 u 41 64 17 4.825 -0.263 0.853

+145.238.203.14 .MRS. 1 u 41 64 17 14.549 -0.857 0.127

-89.109.251.24 .MRS. 1 u 44 64 17 46.043 0.501 1.539

+62.231.6.98 .GPS. 1 u 43 64 17 41.770 -1.292 0.647

-80.60.208.118 193.67.79.202 2 u 43 64 17 8.324 -1.364 1.338

Когда есть сервер который начинается с * — значит синхронизирован успешно.

Понаблюдайте за работой ntp сервера некоторое время. Оставьте сервера с минимальным delay и jitter, рекомендуется потратить на это около часа времени и отобрать действительно лучшие сервера.

Также проверьте работу сервера с внешнего подключения через интернет выполнив ntpdate -q ip-адрес тем самым убедитесь что все работает, udp/123 нигде не фильтруется

Добавление сервера в пул pool.ntp.org

Дальше следует перейти на сайт https://www.ntppool.org/ru/join.html и добавить сервер — все предельно просто после быстрой регистрации

Сервер работает по IP адресу, доменное имя можно указать на этапе добавления и оно будет использоваться только в момент первоначальной настройки и для отображения в списке.

После чего выполняется проверка стабильности работы сервера (так называемый score) и как он станет больше 10 — ваш сервер будет добавлен в пул.

На странице управления серверами есть мониторинг в виде графика и csv-формата, где можно отслеживать стабильность часов и ответы вашего NTP-сервера, в случае его недоступности отправится email о проблеме.

Наблюдать пакеты можно командой tcpdump port 123 — будут видны запросы с различных сетей различных провайдеров, в основном конечно с клиентских устройств (интернет-роутеров).

04:00:50.531801 IP gw.mytimeserver.net.ntp > 82-217-46-231.cable.dynamic.v4.ziggo.nl.59634: NTPv4, Server, length 48

04:00:50.888803 Imytimeserver.netP 51.144.84.29.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:50.888998 IP gw.mytimeserver.net.ntp > 51.144.84.29.ntp: NTPv4, Server, length 48

04:00:51.621673 IP 46.11.105.3.54627 > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:51.621916 IP gw.mytimeserver.net.ntp > 46.11.105.3.54627: NTPv4, Server, length 48

04:00:52.037807 IP 51.136.36.226.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:52.052103 IP gw.mytimeserver.net.ntp > 40.68.72.138.ntp: NTPv4, Server, length 48

В связи с этим настоятельно рекомендую провайдерам интернет-услуг установить в своей сети ntp-сервер и включить его в ntp-пул.

Источник

Оцените статью