NTS 03-G Plus – гибкий сервер времени NTP/PTP
NTS 03-G Plus – гибкий сервер времени NTP/PTP
Устройство NTS Plus представляет собой расширяемый и гибко конфигурируемый сервер времени с приемником ГНСС, соответствующий высоким требованиям по точности и надежности работы, которые предъявляются в энергетической, телекоммуникационной и производственной отраслях.
Имея до 6 портов Ethernet, сервер NTS Plus позволяет реализовывать передовые решения по синхронизации времени на базе протоколов PTP и NTP, а наличие опции с большой нагрузочной способностью обеспечивает совместимость с традиционно используемой в энергетике синхронизируемой аппаратурой. Данное устройство представляет собой гибко конфигурируемую платформу, гарантирующую высокую надежность функционирования. Она достигается благодаря возможности использования опциональных оптических портов Ethernet и , достаточно точной продолжительной работе в режиме удержания за счет использования рубидиевого стандарта или термостатированного кварцевого генератора (OCXO), резервированию средств временной синхронизации с применением протокола Parallel Redundancy Protocol (PRP).
Повышенный уровень информационной безопасности при использовании данного сервера времени обеспечивается посредством аутентифицируемого доступа к его функциям конфигурирования. Поддерживаются многочисленные учетные записи пользователей с редактируемыми правами доступа. Порты Ethernet в данном сервере независимо адресуемы и логически изолированы, что позволяет подключать к нему несколько сетей одновременно без снижения уровня их информационной безопасности. Совместимость с SNMPv3, устойчивость к атаке NTP amplification, поддержка и PTP делают NTS Plus эксплуатационно гибким синхронизирующим решением.
Преимущества
- В новых версиях TimeVisor2 и TimeVisor3 полностью обновлен Web-конфигуратор (с сохранением функциональности конфигуратора предыдущей версии), среди новых функций которого можно назвать:
- возможность оперативного контроля состояния связи с источником точного времени (со спутниками) и статуса синхронизации времени
- возможность анализа статистики синхронизации времени за временной промежуток на основе графического представления данных
- возможность выполнения сложных сетевых настроек, в том числе использование дополнительных сетевых адресов, сетевых шлюзов и маршрутов
- возможность защитить WEB-интерфейс от случайного изменения настроек использованием авторизованного доступа с настройкой учетных записей и паролей
Структура пакета NTP
Структура пакета NTP описана в RFC 958 (v1), 1119 (v2), 1305 (v3) и 5905 (v4). Нас интересует версия 3, как довольно распространенная и простая, хотя ты свободно можешь пользоваться версией 4, она почти не отличается.
Для прожженных программистов на C есть псевдокод:
Теперь немного о назначении этих полей.
- Leap indicator (LI), 2 бита — число, предупреждающее о секунде координации. Может быть от 0 до 3, где 0 — нет коррекции, 1 — последняя минута дня содержит 61 с, 2 — последняя минута дня содержит 59 с, 3 — неисправность сервера. При значении 3 полученным данным доверять не следует. Вместо этого нужно обратиться к другому серверу. Наш псевдосервер будет всегда возвращать 0.
- Version number (VN), 2 бита — номер версии протокола NTP (1–4). Мы поставим туда 3.
- Mode — режим работы отправителя пакета. Значение от 0 до 7, где 3 — клиент, а 4 — сервер.
- Stratum — сколько посредников между клиентом и эталонными часами (включая сам NTP-сервер). 1 — сервер берет данные непосредственно с атомных (или других точных) часов, то есть между клиентом и часами только один посредник (сам сервер); 2 — сервер берет данные с сервера со значением Stratum 1 и так далее.
- Poll — целое число, задающее интервал в секундах между последовательными обращениями. Клиент может указать здесь интервал, с которым он хочет отправлять запросы на сервер, а сервер — интервал, с которым он разрешает, чтобы его опрашивали.
- Precision (точность) — число, которое сообщает точность локальных системных часов. Значение равно двоичному логарифму секунд.
- Root delay (задержка сервера) — время, за которое показания эталонных часов доходят до сервера NTP. Задается как число секунд с фиксированной запятой.
- Root dispersion — разброс показаний сервера.
- RefID (идентификатор источника) — ID часов. Если поле Stratum равно единице, то RefID — имя атомных часов (четыре символа ASCII). Если текущий сервер NTP использует показания другого сервера, то в RefID записан IP-адрес этого сервера.
- Reference — последние показания часов сервера.
- Originate — время, когда пакет был отправлен, по версии сервера.
- Receive — время получения запроса сервером.
- Transmit — время отправки ответа сервера клиенту, которое заполняет клиент.
В целом процесс крайне прост и понятен, если изучить картинку. Клиент посылает запрос на сервер, запоминая, когда этот запрос был отправлен. Сервер принимает пакет, запоминает и записывает в пакет время приема, заполняет время отправки и отвечает клиенту. Клиент запоминает, когда он получил ответ, и получает нечто вроде RTT (Round-Trip Time, в простонародье — пинг) до сервера. Дальше он определяет, сколько времени понадобилось пакету, чтобы дойти от сервера обратно ему (время между запросом и ответом клиента минус время обработки пакета на сервере, деленное на два).
Чтобы получить текущее время, нужно прибавить полученную задержку канала к времени отправки ответа сервером. Вот только UDP на то и UDP, что задержки могут быть случайные и непредсказуемые, так что замеры повторяются по многу раз в день, вычисляется средняя ошибка, и локальные часы корректируются.
Первый этап — NTS KE
На данном этапе NTP клиент инициирует TLS 1.2/1.3 сеанс по отдельному TCP соединению с сервером NTS KE. Во время этой сессии происходит следующее.
- Стороны определяют параметры AEAD алгоритма для второго этапа.
- Стороны определяют второй протокол нижнего уровня, но на данный момент лишь NTPv4поддерживается.
- Стороны определяют IP адрес и порт NTP сервера.
- NTS KE сервер выдает куки под NTPv4.
- Стороны извлекают из материала куки пару симметричных ключей (C2S и S2C).
2. Аппаратная поддержка
Проверьте, поддерживает ли сетевая карта программную и аппаратную метку времени:
sudo ethtool -T eno1Отметка времени программного обеспечения должна включать параметры
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_RX_SOFTWAREОтметка времени оборудования должна включать параметры
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_RX_HARDWAREОперационные системы семейства Windows содержат службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP.
По умолчанию служба времени в Windows сконфигурирована следующим образом:
Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии и надежным источником времени можно назначить любой компьютер.
В качестве примера приведем настройку NTP-сервера в Windows Server 2008 R2, по аналогии можно настроить NTP сервер и в Windows 7.
Запуск NTP сервера
Служба времени в Windows Server не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Рассмотрим второй способ:
В редакторе «regedit» открываем ветку реестра: HKLMSystem CurrentControlSetservices W32TimeTimeProviders NtpServer .
Для включения NTP сервера параметру Enabled надо задать значение 1. Для применения изменений перезапустите службу времени командой net stop w32time && net start w32time .После перезапуска службы NTP, сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды w32tm /query /configuration . Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled:1, то все в порядке, сервер времени работает.
Для того, чтобы NTP-сервер мог обслуживать клиентов, в брандмауэре необходимо открыть UDP порт 123 для входящего и исходящего трафика.
Основные настройки NTP сервера и клиента
Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.
Чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5 (1+4).
После изменения настроек необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update .
Список команд службы времени
Список команд для настройки, мониторинга и диагностики службы времени:
Команда Описание w32tm /monitor при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov w32tm /resync при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени. w32tm /stripchart показывает разницу во времени между текущим и удаленным компьютером. Команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выдаст результат в текстовом виде. w32tm /config это основная команда, используемая для настройки службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update w32tm /query показывает текущие настройки службы. Например команда w32tm /query /source покажет текущий источник времени, ээw32tm /query /configuration выведет все параметры службы. net stop w32time останавливает службу времени, если запущена. w32tm /unregister удаляет службу времени с компьютера. w32tm /register регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре. net start w32time запускает службу Устранение неполадок
В Windows 7 — служба времени не запускается автоматически при старте Windows. Исправлено в SP1 для Windows 7.
Настройка FreeBSD на синхронизацию времени с сервером NTP Mobatime
Настройка выполняется под рутовой учётной записью.
Для однократной синхронизации можно воспользоватьсяntpdate сервер_NTP_mobatime
Для синхронизации при каждой загрузке FreeBSD пропишите в rc.conf следующее
ntpdate_enable=»YES»
ntpdate_flags=сервер_NTP_mobatime
Этот способ хорошо подходит для машин, которые достаточно часто перезагружаются. Более правильным видится настройка демона ntpd.
Создайте (если не существует) файл /etc/ntp.conf Включите в него следующую строку
server сервер_NTP_mobatime prefer
Аргумент prefer указывает на предпочтение этого сервера перед остальными, т.к. Мобатайм Системс предоставляет Вам доступ к Time Server — серверу NTP, а не к компьютеру с работающим демоном ntpd.
На следующем этапе настройки нужно прописать в rc.conf
ntpd_enable=»YES»
Теперь FreeBSD будет постоянно сверять свои часы с NTP сервером Mobatime.