Taxitaxitaxi.ru

Эволюшн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

Синхронизация времени с использованием сетевого сервера времени SyncServer S350, проста и доступна любому начинающему администратору сети.

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

Сервер S350 является единственным сервером времени, имеющим порт Gigabit Ethernet и три дополнительных порта 10/100Base-T. Это обеспечивает высокую готовность к работе и производительность, которые позволяют поддерживать тысячи сетевых клиентов и вести отсчет времени по синхронизирующему протоколу NTP с точностью до микросекунд.

Четыре полностью независимых порта обеспечивают гибкость, необходимую для простой адаптации к сетям с различной и меняющейся топологией, а также позволяют удовлетворить требования, предъявляемые системой безопасности. Stratum 1 сервера S350 может автоматически синхронизироваться с такими источниками, как GPS, IRIG, 1PPS и генератором частоты 10 МГц.

Пользователи могут установить приоритет, а сервер S350 беспрепятственно осуществит переход от одного источника эталонного времени к другому, при потере или восстановлении сигнала от более предпочтительного источника.

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

Сервер S350 можно также вернуть в режим Stratum 2, тогда оно будет получать сигналы точного времени от другого сервера времени, указанного пользователем. Подобным же образом сервер S350 генерирует множество временных кодов через выходы 1PPS и 10 МГц, кроме того, его можно модернизировать, модернизировать до встроенного рубидиевого атомного генератора, который обеспечивает точность с отклонением порядка микросекунд в сутки.

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

Ключевые характеристики
— Сервер времени со сверхвысокой пропускной способностью, использующий синхронизирующий сетевой протокол NTP.
— Режим работы Stratum 1 от спутника GPS.
— Основной порт Gigabit Ethernet плюс 3 дополнительных.
— Независимые порты 10/100Base-T.
— Встроенный модем коммутируемой линии передачи, является резервным каналом для эталонной избыточности времени.
— Независимые источники сигналов точного времени: GPS, Timecodes, 1 PPS, генератор частоты 10 МГц.
— Универсальные синхровыходы: IRIG A/B/E/G/NASA36/XR3/2137 AM или DCLS, 1PPS, 10 МГц, Sysplex.
— Режим работы Stratum 2 через серверы NTP.
— RADIUS, Autokey для NTP версии 4, система аутентификации MD5
— Безопасная диспетчеризации, основанная на средствах Интернета.
— SSH, SSL, SCP, SNMP, Custom MIB, HTTPS, Telnet и прочее.
— Совместимость с протоколами IPv6 и IPv4.
— Точность синхронизации универсального глобального времени (УГВ) порядка наносекунд.
— Реле аварийной сигнализации.
— Возможность модернизации посредством рубидиевого и термостатированного кварцевого генератора.
— Модификация, обеспечивающая синхронизацию по радио.
— По отдельному заказу вход/выход T1/E1.

Преимущества прибора SyncServer® S350 с GPS
— Синхронизация тысяч часов клиентов, серверов и рабочих станций.
— Надежный и безопасный сетевой источник времени.
— Несколько NTP-портов, что облегчает настройку и адаптацию сети.
— Сверхточный источник времени для сетевой синхронизации.
— Развитые сетевая функциональность и средства обеспечения безопасности.
— Возможность выбора предпочтительного для пользователя источника эталонной синхронизации: GPS, Timecode, 1PPS и генератор частоты 10 МГц.
— Доступ к нескольким источникам времени, что обеспечивает надежность и безопасность хронометража.
— Интуитивно понятный веб-интерфейс, облегчающий управление и обслуживание.

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

Как сделать так, чтобы время per se не врало, если у вас есть миллион больших и малых устройств, взаимодействующих по TCP/IP? Ведь на каждом из них есть часы, а время должно быть верным на всех. Эту проблему без ntp невозможно обойти.

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

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

  • истечет срок действия паролей учетных записей пользователей;
  • истечет срок действия X.509 сертификатов;
  • двухфакторная аутентификация TOTP перестанет работать;
  • бэкапы «устареют» и система удалит их;
  • сломается DNSSec.
Читайте так же:
Стенд для проверки и регулировки дизельной топливной аппаратуры

Сломать NTP за 25 минут

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

Основная претензия к классическому NTP в отсутствии надежных механизмов защиты от атак злоумышленников. Предпринимались разнообразные попытки решить эту проблему. Для этого сначала внедрили механизм заранее установленных ключей (PSK) для обмена симметричными ключами.

К сожалению этот способ себя не оправдал в виду простой причины — он плохо масштабируется. Нужна ручная настройка на стороне клиента в зависимости от сервера. Это значит, что вот так вот просто нельзя добавить еще одного клиента. Если на сервере NTP что-то меняется, надо перенастраивать все клиенты.

Тогда придумали AutoKey, но сразу же в нем обнаружили ряд серьезных уязвимостей в самом дизайне алгоритма и от него пришлось отказаться. Все дело в том, что начальное число (seed) содержит всего лишь 32-бита, оно слишком мало и не содержит достаточно вычислительной сложности для лобовой атаки.

  • Key ID — симметричный 32-битный ключ;
  • MAC (message authentication code) — контрольная сумма NTP пакета;

Где H() — криптографическая хэш функция.

Для расчета контрольной суммы пакеты используется та же функция.

Так получается, что вся целостность проверок пакетов держится на аутентичности кукис. Завладев ими, можно восстановить autokey и затем подделать MAC. Однако сервер NTP при их генерации использует начальное число (seed). Именно тут кроется подвох.

Функция MSB_32 отрезает от результата вычисления md5 хэша 32 старших бита. Клиентский куки не меняется до тех пор, пока параметры сервера неизменны. Дальше злоумышленнику остается лишь восстановить начальное число и получить возможность самостоятельно генерить куки.

Для начала следует подключиться к серверу NTP в качестве клиента и получить куки. После этого методом перебора злоумышленник восстанавливает начальное число следуя простому алгоритму.

Алгоритм атаки на вычисление начального числа методом перебора.

IP адреса известны, так что остается лишь создать 2^32 хэша до тех пор пока созданный куки не совпадет с тем, что получен от NTP сервера. На обычной домашней станции с Intel Core i5 на это уйдет 25 мин.

NTS — новый Autokey

Мириться с такими дырами в безопасности Autokey было невозможно и в 2012 г. появилась новая версия протокола. В целях скомпрометированного названия решили провести ребрендинг, так Autokey v.2 окрестили Network Time Security.

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

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

NTS состоит из двух протоколов нижнего уровня: Network Time Security Key Exchange (NTS-KE), инициализация безопасного соединения поверх TLS, и NTPv4 — последней инкарнации протокола NTP. Чуть подробнее об этом ниже.

Первый этап — NTS KE

На данном этапе NTP клиент инициирует TLS 1.2/1.3 сеанс по отдельному TCP соединению с сервером NTS KE. Во время этой сессии происходит следующее.

  • Стороны определяют параметры AEAD алгоритма для второго этапа.
  • Стороны определяют второй протокол нижнего уровня, но на данный момент лишь NTPv4поддерживается.
  • Стороны определяют IP адрес и порт NTP сервера.
  • NTS KE сервер выдает куки под NTPv4.
  • Стороны извлекают из материала куки пару симметричных ключей (C2S и S2C).

Второй этап — NTP под защитой NTS

На втором этапе клиент безопасно синхронизирует время с NTP сервером. Для этой цели он передает четыре специальных расширения (extension field) в структуре NTPv4 пакета.

  • Unique Identifier Extension содержит случайный nonce для предотвращения атак путем повтора.
  • NTS Cookie Extension содержит один из имеющихся в наличие у клиента NTP куки. Поскольку только клиент располагает симметричными AAED ключами C2S и S2C, сервер NTP должен извлечь их из материала куки.
  • NTS Cookie Placeholder Extension способ для клиента запросить дополнительные куки с сервера. Это расширение необходимо, чтобы ответ сервера NTP не был намного длиннее, чем запрос. Это позволяет предотвратить атаки усиления.
  • NTS Authenticator and Encrypted Extension Fields Extension содержит шифр алгоритма AAED с C2S ключем, заголовком NTP, временными отметками, и упомянутыми выше EF в качестве сопутствующих данных. Без этого расширения возможно подделать временные отметки.
Читайте так же:
Как пользоваться щупами для регулировки клапанов

Получив запрос от клиента, сервер проверяет подлинность NTP пакета. Для этого он должен расшифровать куки, извлечь алгоритм AAED и ключи. После успешной проверки NTP пакета на валидность сервер отвечает клиенту в следующем формате.

  • Unique Identifier Extension зеркальная копия клиентского запроса, мера против атак путем повтора.
  • NTS Cookie Extension больше куки для продолжения сеанса.
  • NTS Authenticator and Encrypted Extension Fields Extension содержит шифр AEAD с S2C ключем.

NTPSec

В чем особенность NTP? Несмотря на то, что автор проекта Dave Mills старался как можно лучше документировать свой код, редкий программист сумеет разобраться в хитросплетениях алгоритмов синхронизации времени 35-детней давности. Часть кода написана до эпохи POSIX, а Unix API тогда сильно отличался от того, что используется в наши дни. Кроме того, нужны знания по статистике, чтобы очистить сигнала от помех на шумных линиях.

NTS была не первой попыткой починить NTP. После того, как злоумышленники научились использовать уязвимости NTP для усиления DDoS атак, стало ясно, что нужны радикальные перемены. И пока готовились и доводились до ума черновики NTS, National Science Foundation США в конце 2014 г. срочно выделил грант на модернизацию NTP.

Рабочую группу возглавил не абы кто, а Эрик Стивен Реймонд — один из основателей и столпов сообщества Open Source и автор книги Собор и Базар. Первым делом Эрик со товарищи попробовали перенести код NTP из платформы BitKeeper на git, но не тут-то было. Лидер проекта Harlan Stenn был против этого решения и переговоры зашли в тупик. Тогда было решено форкнуть код проекта, так возник NTPSec.

Солидный опыт, в том числе работа над GPSD, математический бэкграунд и магический навык чтения древнего кода — Эрик Реймонд был именно тем хакером, который мог вытащить такой проект. В команде нашелся специалист по миграции кода и всего за 10 недель NTP обосновалсяна GitLab-е. Работа закипела.

Команда Эрика Раймонда взялась за дело так же, как Огюст Роден при работе с глыбой камня. Удалив 175 KLOC старого кода, им удалось значительно сократить площадь атаки, закрыв множество дыр безопасности.

Вот неполный список попавших под раздачу:

  • Недокументированные, устаревшие, устаревшие или сломанные refclock.
  • Неиспользуемая библиотека ICS.
  • libopts/autogen.
  • Старый код для Windows.
  • ntpdc.
  • Autokey.
  • C код ntpq переписан на Python.
  • C код sntp/ntpdig переписан на Python.
  • Значительно усилена защита кода от переполнения буфера. Чтобы предотвратить переполнение буфера, все небезопасные строковые функции (strcpy / strcat / strtok / sprintf / vsprintf / gets) заменили безопасными версиями, которые реализуют ограничение размера буфера.
  • Добавлена поддержка NTS.
  • Десятикратно повысили точность временного шага с помощью привязки физического оборудования. Это связано с тем, что современные компьютерные часы стали гораздо точнее тех, что были в момент зарождения NTP. Больше всех от этого выиграли GPSDO и выделенные радиостанции времени.
  • Количество языков программирования сократилось до двух. Вместо скриптов Perl, awk и даже S, теперь сплошной Python. За счет этого больше возможностей повторного использования кода.
  • Вместо лапши скриптов autotools проект стал использовать систему сборки программного обеспечения waf.
  • Обновили и реорганизовали документацию проекта. Из противоречивой, и местами архаичной коллекции документов создали вполне сносную документацию. Каждый ключ командной строки и каждая сущность конфигурации теперь имеют единую версию правды. Кроме того, страницы руководства и веб документация теперь создаются из одних и тех же основных файлов.

Chrony

Была еще одна попытка заменить старый NTP более безопасный аналог. Chrony в отличие от NTPSec написан с нуля и предназначен для надежной работы в широком диапазоне условий, включая нестабильные сетевые соединения, частичная доступность или перегрузки сети и изменения температуры. Кроме того chrony обладает и другими преимуществами:

  • chrony может быстрее синхронизировать системные часы с большей точностью;
  • chrony меньше, потребляет меньше памяти и обращается к процессору только тогда, когда это необходимо. Для экономии ресурсов и энергии это большой плюc;
  • chrony поддерживает метки времени на аппаратном уровне в Linux, что обеспечивает чрезвычайно точную синхронизацию в локальных сетях.
Читайте так же:
Регулировка геометрии турбины кайрон

Для отключения функциональности сервера и NTP запросов к процессу chronyd достаточно прописать port 0 в файл chrony.conf. Это делается в тех случаях, когда нет нужды обслуживать время для NTP клиентов или одноранговых узлов. Начиная с версии 2.0, порт сервера NTP открыт только в тех случаях, когда доступ разрешен директивой allow или соответствующей командой, либо же настроен одноранговый узел NTP, или используется директива broadcast.

Программа состоит из двух модулей.

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

Как настроить собственный удаленный сервер chrony в интернете для синхронизации времени в офисной сети. Далее пример настройки на VPS.

Пример настройки Chrony на RHEL / CentOS на VPS

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

Переходим к настройке сервиса и первым делом ставим пакет chrony.

RHEL 8 / CentOS 8 используют другой пакетный менеджер.

После установки chrony нужно запустить и активировать сервис.

При желании можно внести правки в /etc/chrony.conf, заменив сервера NPT на ближайшие локальные для сокращения времени отклика.

Далее настраиваем синхронизацию NTP сервера с узлами из указанного пула.

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

На стороне клиента достаточно правильно выставить часовой пояс.

В файле /etc/chrony.conf указывает IP или название хоста нашего VPS сервера, на котором запущен NTP server chrony.

И наконец запуск синхронизации времени на клиенте.

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

Синхронизация времени Siprotec 5

Добрый день. Имеется вот такая схема локальной сети терминалов РЗА. Нужно реализовать синхронизацию времени терминалов РЗА (главное Сименс, с МРЗС я подозреваю , не получится). Для 5го сипротека рассматриваю синхронизацию с помощью SNTP, IRIG-B либо IEC 60870-5-103. С синхронизацией никогда не сталкивался, поэтому возникли сложности — можно ли выполнить синхронизацию, не меняя структуру локальной сети. В даной сети терминалы с портом RS-485. Если рассмотреть SNTP, подключаем источник точного времени который поддерживает SNTP к Moxa, но будут ли терминалы синхронизироваться, т.к. терминалы обвязаны по RS-485, а уже Moxa преобразует в Ethernet? Я так пониманию SNTP — это Ethernet протокол. Правильно ли я понимаю, что для такого способа нужно поставить коммутатор с большим количеством Ethernet портов и подключить к нему терминалы способом точка-точка? Если рассмотреть IRIG-B, то в Сименсе есть этот порт, нужно только выбрать источник времени с этим протоколом, но он только для синхронизации, прийдеться отдельно обвязывать терминалы для локальной сети и отдельно — для синхронизации. При существующей схеме локальной сети порты RS-485 Сименса поддерживают IEC 60870-5-103, терминал также поддерживает этот протокол для синхронизации, но что то я не нашел, есть ли источники времени с таким протоколом и можно ли вообще как-то синхронизироваться данным методом.

Локальная сеть.pdf 28.19 Кб, 31 скачиваний с 2016-10-13

You don’t have the permssions to download the attachments of this post.

2 Ответ от Chichkin.A.B 2016-10-13 15:45:58

  • Chichkin.A.B
  • Пользователь
  • Неактивен
  • Откуда: г.Москва
  • Зарегистрирован: 2016-07-14
  • Сообщений: 585
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

Как вариант засинхрите MoxИ подняв NTP сервер на АРМе а терминалы засинхрятся от нее, какой протокол на RS-485. (101 не бось)

3 Ответ от sanja1927 2016-10-13 16:25:23 (2016-10-13 16:25:40 отредактировано sanja1927)

  • sanja1927
  • Пользователь
  • Неактивен
  • Откуда: Одесса
  • Зарегистрирован: 2013-04-26
  • Сообщений: 38
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

Поднять сервер NTP — это через интернет? АРМ без доступа к интернету. Описание RS-485 Сименса — 1 x electric serial RS485, RJ45, applicable for serial protocols, e.g. IEC60870-5-103, DNP3.0 etc.

4 Ответ от dominator 2016-10-13 16:49:00 (2016-10-13 16:52:12 отредактировано dominator)

  • dominator
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2011-01-07
  • Сообщений: 710
  • Репутация : [ 1 | 0 ]
Читайте так же:
Регулировка кранового тормоза ткт
Re: Синхронизация времени Siprotec 5

Можно, конечно, и по МЭК 60870-5-103 синхронизироваться, но есть ли там мастер МЭК 60870-5-103? Какой софт на компе?
Проще подключить терминалы в кольцо и синхронизировать по NTP, ну, или по IRIG-B.

Страницы из SIP5_Com-IEC60870-5-103_V06.00_Manual_C005-5_en.pdf 133.29 Кб, 16 скачиваний с 2016-10-13

You don’t have the permssions to download the attachments of this post.

5 Ответ от Mendosa 2016-10-13 17:30:13

  • Mendosa
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2012-12-06
  • Сообщений: 47
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

Какую точность синхронизации требуется обеспечить?
Какой софт опрашивает терминалы?

6 Ответ от sanja1927 2016-10-13 21:09:20

  • sanja1927
  • Пользователь
  • Неактивен
  • Откуда: Одесса
  • Зарегистрирован: 2013-04-26
  • Сообщений: 38
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

Можно, конечно, и по МЭК 60870-5-103 синхронизироваться, но есть ли там мастер МЭК 60870-5-103? Какой софт на компе?
Проще подключить терминалы в кольцо и синхронизировать по NTP, ну, или по IRIG-B.

Что из себя представляет мастер МЭК 60870-5-103? Никаких специализированных прог на компе кроме Digsi не будет. В кольцо нужно по Ethernet портам соединять, верно?

Добавлено: 2016-10-13 21:09:20

Какую точность синхронизации требуется обеспечить?
Какой софт опрашивает терминалы?

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

7 Ответ от dominator 2016-10-13 22:20:24

  • dominator
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2011-01-07
  • Сообщений: 710
  • Репутация : [ 1 | 0 ]
Re: Синхронизация времени Siprotec 5

Что из себя представляет мастер МЭК 60870-5-103?

Софт, который будет опрашивать терминалы и рассылать сигналы точного времени в соответствии со стандартом МЭК 60870-5-103. Например, Sicam PAS в минимальной комплектации с библиотекой МЭК 60870-5-103.

В кольцо нужно по Ethernet портам соединять, верно?

Да, кольцо Ethernet.

8 Ответ от Chichkin.A.B 2016-10-14 08:52:14 (2016-10-14 09:11:04 отредактировано Chichkin.A.B)

  • Chichkin.A.B
  • Пользователь
  • Неактивен
  • Откуда: г.Москва
  • Зарегистрирован: 2016-07-14
  • Сообщений: 585
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

Требуется получить просто единое время АРМа на терминалах без привязки его к "реально" точному времени? Если так то действительно просто поднимите NTP сервер встроенный в винду а на мохах настройте интервалы синхронизации принудительной с терминалами если на них есть такая возможность. Если нужно получать действительно точное время "астрономическое" то тогда GPS приемник и IRIG правда в зависимости от спецификации IRIG может не синхриться год.

UPD. Посмотрел мануал мельком Моха самостоятельно не может синхрить подчиненные устройства, предлагаемый мной вариант с NTP бесполезен

9 Ответ от sanja1927 2016-10-17 09:00:12

  • sanja1927
  • Пользователь
  • Неактивен
  • Откуда: Одесса
  • Зарегистрирован: 2013-04-26
  • Сообщений: 38
  • Репутация : [ 0 | 0 ]
Re: Синхронизация времени Siprotec 5

UPD. Посмотрел мануал мельком Моха самостоятельно не может синхрить подчиненные устройства, предлагаемый мной вариант с NTP бесполезен

Не могли бы вы подсказать, где это увидели.
Склоняюсь к тому ,что нужно завязать терминалы в Ethernet сеть, поставить SICLOCK и синхронизировать по SNTP.

NTP (Network Time Protocol)

NTP (англ.  Network Time Protocol — протокол сетевого времени) — сетевой протокол, используемый для синхронизации внутренних системных часов компьютера с помощью сетей с переменной латентностью.

NTP использует для своей работы протокол UDP и учитывает время передачи. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0,2 мс (1/5000 с) и лучше внутри локальных сетей.

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

Содержание

Принцип работы

NTP-серверы работают в иерархической сети, каждый уровень иерархии называется ярусом (stratum). Ярус 0 представлен эталонными часами. За эталон берется сигнал GPS (Global Positioning System) или службы ACTS (Automated Computer Time Service). На нулевом ярусе NTP-серверы не работают.

NTP-серверы яруса 1 получают данные о времени от эталонных часов. NTP-серверы яруса 2 синхронизируются с серверами яруса 1. Всего может быть до 15 ярусов.

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

Читайте так же:
Как регулировать зазор клапанов мотоцикл

Иерархическая структура протокола NTP является отказоустойчивой и избыточной. Рассмотрим пример его работы. Два NTP-сервера яруса 2 синхронизируются с шестью различными серверами яруса 1, каждый — по независимому каналу. Внутренние узлы синхронизируются с внутренними NTP-серверами. Два NTP-сервера яруса 2 координируют время друг с другом. В случае отказа линии связи с сервером яруса 1 или с одним из серверов уровня 2 избыточный сервер уровня 2 берет на себя процесс синхронизации.

Аналогично узлы и устройства яруса 3 могут использовать любой из серверов яруса 2. Что еще более важно, так это то, что наличие избыточной сети серверов NTP гарантирует постоянную доступность серверов времени. Синхронизируясь с несколькими серверами точного времени, NTP использует данные всех источников, чтобы высчитать наиболее точное время.

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

Заголовок

Заголовок NTP

ОтступОктет123
|ОктетБит12345678910111213141516171819202122232425262728293031
Индикатор коррекцииНомер версииРежимЧасовой слойИнтервал опросаТочность
432Задержка
864Дисперсия
1296Идентификатор источника
16128Время обновления
20160
24192Начальное время
28224
32256Время приёма
36288
40320Время отправки
44352
Часовой слой

При следующих значениях: 0 — Не определено или недопустим 1 — Первичный сервер 2-15 — Вторичный сервер, использующий NTP 16 — Не синхронизировано 17-255 — Зарезервировано

Индикатор коррекции

При следующих значениях:

Номер версии
Режим

При следующих значениях:

Интервал опроса
Задержка
Точность
Идентификатор источника

Длина — 32 бита. Код источника синхронизации. Зависит от значения в поле Часовой слой. Для слоя 0 — это четыре ASCII символа, называемые «kiss code», используются для отладки и мониторинга. Для слоя 1 — это четыре октета ASCII символов, дополненные слева нулями, назначенные для опорного времени. В таблице ниже представлен список, поддерживаемый Internet Assigned Numbers Authority(Администрация адресного пространства Интернет).

IDИсточник
GOESГеостационарный спутник системы экологического мониторинга и наблюдения
GPSСистема глобального позиционирования
GALСистема местоопределения «Галилео»
PPSОбщий радиосигнал с длительностью импульса, равной 1 секунде
IRIGГруппа стандартизации в телеметрии
WWVBНизкочастотный радиопередатчик, 60 кГц (США)
DCFНизкочастотный радиопередатчик, 77.5 кГц (Германия)
HBGНизкочастотный радиопередатчик, 75 кГц (Швейцария)
MSFНизкочастотный радиопередатчик, 60 кГц (Великобритания)
JJYНизкочастотный радиопередатчик, 40 кГц (Япония)
LORCСреднечастотный радиопередатчик, 100 кГц (США)
TDFСреднечастотный радиопередатчик, 162 кГц (Франция)
CHUВысокочастотный радиопередатчик (Канада)
WWVВысокочастотный радиопередатчик (США)
WWVHВысокочастотный радиопередатчик (США)
NISTТелефонный модем Национального института стандартов и технологий США
ACTSТелефонный модем Национального института стандартов и технологий США
USNOТелефонный модем Национальной обсерватории США
PTBТелефонный модем Национального метрологического института Германии

Для слоя 2 и выше — это идентификатор сервера и может быть использован для фиксирования временных петель. Если используется IPv4, то идентификатор представляет из себя четыре октета IP адреса. Если используется IPv6, то это первые четыре октета MD5 хэша адреса. Стоит отметить, что при использовании IPv6 адресов для сервере с NTPv4 и клиента с NTPv3 идентификатор может принимать случайное значение, из-за чего временные петли могут быть не зафиксированы.

Временные характеристики
  • Начальное время
  • Время приема
  • Время отправки

Формат времени

Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 −32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 68 лет). Также следует учитывать, что время отсчитывается с полуночи 1 января 1900 года, а не с 1970, поэтому из времени NTP нужно вычитать почти 70 лет (с учётом високосных годов), чтобы корректно совместить время с Windows или Unix-системами.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector