OpenNTPD - OpenNTPD

OpenNTPD (также известный как OpenBSD NTP Daemon)
«Спасение мира снова ... вовремя»
«Спасение мира снова ... вовремя»
Разработчики)В OpenBSD Проект
Стабильный выпуск
6.2p3 / 30 октября 2017; 3 года назад (2017-10-30)[1]
Репозиторийhttps://github.com/openntpd-portable
Написано вC
Операционная системаOpenBSD, FreeBSD, NetBSD, Linux, macOS, Солярис[2]
Стандарт (s)RFC 1305, RFC 5905
ТипСинхронизация времени
ЛицензияISC
Интернет сайтwww.openntpd.org
По состоянию наОктябрь 2017 г.

OpenNTPD (также известный как Демон OpenBSD NTP) это Unix демон реализация Сетевой протокол времени для синхронизации локальных часов компьютерной системы с удаленными серверами NTP. Он также может действовать как NTP-сервер для NTP-совместимых клиентов.

OpenBSD NTP Daemon в первую очередь разработан Хеннинг Брауэр как часть OpenBSD проект. Цели его дизайна включают безопасность (непригодный для использования ), проста в настройке и достаточно точна для большинства целей. Его портативный версия, как у OpenSSH,[3] разработан как дочерний проект, который добавляет код переносимости к версии OpenBSD и выпускает его отдельно. Портативная версия разработана Брентом Куком.[4] Самая последняя портативная версия была выпущена в 2017 году.. Разработчики проекта получают финансирование от Фонд OpenBSD.

История

Разработка OpenNTPD была мотивирована сочетанием проблем с текущими демонами NTP: сложной конфигурацией, сложным и трудным для аудита кодом и неподходящим лицензированием.[5] OpenNTPD был разработан, чтобы решить эти проблемы и сделать синхронизацию времени доступной для более широкой базы пользователей. После периода разработки OpenNTPD впервые появился в OpenBSD 3.6.[6] О его первом выпуске было объявлено 2 ноября 2004 года.[7]

Цели

OpenNTPD - это попытка команды OpenBSD создать безопасную и простую в использовании реализацию демона NTP. аудит, проста в настройке и администрировании, достаточно точна и не требует больших ресурсов системы. Таким образом, целями разработки OpenNTPD являются: безопасность, простота использования и производительность.[8] Безопасность в OpenNTPD достигается за счет надежной проверки достоверности входного сетевого пути, использования ограниченных буферных операций через strlcpy, и разделение привилегий для смягчения последствий возможных ошибок безопасности, использующих демон через повышение привилегий. Чтобы упростить использование NTP, OpenNTPD реализует меньший набор функций, чем те, которые доступны в других демонах NTP, например, предоставляемых проектом Network Time Protocol Project. Цель состоит в том, чтобы предоставить достаточно функций, чтобы удовлетворить типичное использование с риском непригодности для эзотерических или нишевых требований. OpenNTPD настраивается через файл конфигурации, ntpd.conf.[9] Предлагается минимальное количество опций: IP-адрес или имя хоста, на котором OpenNTPD должен слушать, датчик timedelta который будет использоваться, и набор серверов, с которых будет синхронизироваться время. Точность OpenNTPD максимальна; демон пытается быть как можно более точным, но конкретная точность не гарантируется.

Пример

OpenNTPD постепенно регулирует системные часы, как показано здесь в выходных данных OpenNTPD, запущенного на Linux система:

$ grep ntpd /var/log/daemon.log | grep adjustingAug 4 03:32:20 nikolai ntpd [4784]: настройка локальных часов на -1,162333sAug 4 03:36:08 nikolai ntpd [4784]: настройка локальных часов на -1,023899sAug 4 03:40:02 nikolai ntpd [4784 | 50:45 nikolai ntpd [4784]: настройка локальных часов на -0,605858sAug 4 03:53:31 nikolai ntpd [4784]: настройка локальных часов на -0,529821s

Критика

OpenNTPD был раскритикован как менее точный, чем Демон NTP произведено проектом NTP (ntp.org).[10] Внутренне OpenNTPD не поддерживает точность в миллисекундах и может отличаться от «реального» времени на 50–200 мс, поскольку в нем отсутствуют различные параметры. алгоритмы которые повышают точность в пользу простоты кода. Проект OpenNTPD признал критику, но заявил, что отсутствие точности в микросекундах является компромиссом при проектировании, который способствует простоте и безопасности.[10] Цели разработки OpenNTPD заявляют, что цель проекта - «обеспечить разумную точность каждого из них», не жертвуя «безопасным дизайном для получения последней наносекунды или непонятного крайнего случая».[11]

В сентябре 2004 года, вскоре после выпуска OpenNTPD 3.6, участник ntp.org Брэд Ноулз опубликовал статью под названием OpenNTPd считается вредным[12] критикуя различные аспекты реализации OpenNTPD протокола NTP, а также модель раздельной разработки, которую использует проект, которая также используется при разработке OpenSSH и OpenBGPD. В декабре 2004 года Даррен Такер, главный разработчик переносимой ветки OpenNTPD, написал подробный ответ Ноулзу, признав некоторые проблемы действительными, отклонив некоторые другие как необоснованные и считая другие вводящими в заблуждение.[13] Среди более серьезных проблем, поднятых Ноулзом, было то, что серверы OpenNTPD назывались серверами первого уровня. Однако к моменту ответа Такера проблема уже была устранена. В марте 2005 года Ноулз подтвердил ответ Такера и заявил, что он «собирается сделать все [он может], чтобы работать с [Такером], чтобы решить оставшиеся проблемы».[14] Кроме того, FAQ по сетям OpenBSD был расширен в ответ на первоначальную критику Ноулза.[15]

Високосные секунды

OpenNTPD (и OpenBSD ядро) игнорировать високосные секунды.[16] Следует проявлять осторожность при использовании OpenNTPD в качестве источника более высокого уровня для других серверов ntpd или с требованиями к времени высокого разрешения, которые относятся к Всемирное координированное время. Високосные секунды используются во всемирном координированном времени, но не Международное атомное время или же спутниковая система навигации сигналы времени.

В Военно-морская обсерватория США и Bureau International des Poids et Mesures рекомендует, чтобы системы, не использующие дополнительные секунды, ссылались на Международное атомное время или непосредственно на сигналы времени GPS.[17]

Рекомендации

  1. ^ «OpenNTPD». Получено 8 декабря 2019.
  2. ^ «Портативный релиз OpenNTPD». OpenBSD. Получено 3 апреля 2016.
  3. ^ "openssh / openssh-Portable". GitHub. Получено 13 мая 2016.
  4. ^ "openntpd-Portable / openntpd-Portable". GitHub. Получено 13 мая 2016.
  5. ^ Проект OpenNTPD. «Цели OpenNTPD». Проект OpenNTPD. Получено 3 апреля 2016.
  6. ^ Проект OpenBSD (1 ноября 2004 г.). «OpenBSD 3.6». Проект OpenBSD. Получено 3 апреля 2016.
  7. ^ Брауэр, Хеннинг (2 ноября 2004 г.). «Выпущен OpenNTPD 3.6». openbsd-анонс (Список рассылки). MARC. Получено 7 июн 2014.
  8. ^ Брауэр, Хеннинг (сентябрь 2004 г.). «Страница 3: OpenNTPD - Цели проектирования». Проект OpenBSD. Получено 16 сентября 2006.
  9. ^ ntpd.conf (5) – OpenBSD Форматы файлов Руководство. 26 мая 2006 г. Проверено 16 сентября 2006 г.
  10. ^ а б Проект OpenBSD (21 августа 2006 г.). "FAQ 6.12.1: 'Но OpenNTPD не так точен, как демон ntp.org!'". Проект OpenBSD. Архивировано из оригинал 5 февраля 2016 г.. Получено 14 мая 2020.
  11. ^ Авторы OpenNTPD (2004), "Цели", OpenNTPD, Проект OpenNTPD.
  12. ^ Ноулз, Брэд (22 сентября 2004 г.). «OpenNTPd считается вредным». Считается вредным. Архивировано из оригинал 4 марта 2005 г.. Получено 16 сентября 2006.
  13. ^ Такер, Даррен (12 декабря 2004 г.). «Ответ на OpenNTPd считается вредным». Advogato: Блог для dtucker. Получено 16 сентября 2006.
  14. ^ Ноулз, Брэд (12 марта 2005 г.). «Обновление: OpenNTPd ...» Считается вредным. Архивировано из оригинал 25 мая 2006 г.. Получено 16 сентября 2006.
  15. ^ Проект OpenBSD (21 августа 2006 г.). «FAQ: 6.12.2:» Кто-то заявил, что OpenNTPD «вреден»!'". Проект OpenBSD. Архивировано из оригинал 24 сентября 2006 г.. Получено 16 сентября 2006.
  16. ^ "Обработка дополнительных секунд в духе OpenBSD". Журнал OpenBSD. 28 июня 2015 г.. Получено 9 октября 2018.
  17. ^ "Високосные секунды". Военно-морская обсерватория США. Архивировано из оригинал 24 декабря 2017 г.. Получено 27 февраля 2019.

внешняя ссылка