Avto-profi-evakuator.ru

Авто Профи
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Некорректное время на Ubuntu или Debian — проблемы с NTP синхронизацией времени

Некорректное время на Ubuntu или Debian — проблемы с NTP синхронизацией времени

Некорректное время на Ubuntu или Debian - проблемы с NTP синхронизацией времени

26 октября 2014 года был принят закон о смене часовых поясов в России. С данным законопроектам повсеместно возникали проблемы с синхронизацией местного времени по протоколу NTP.

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

За часовые пояса в системе Ubuntu и Debian отвечает пакет tzdata. Для корректной работы NTP синхронизации и системного времени нужно обновить базу часовых поясов tzdata. Так же, мы рассмотрим установку и настройку NTP клиента для синхронизации системного времени с NTP серверами или кластерами на примере Ubuntu,Debian.

Содержание

NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0.2 мс (1/5000 с) и лучше внутри локальных сетей.

NTP использует иерархическую систему «часовых уровней»: уровень 1 синхронизован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени; уровень 2 синхронизируется с одной из машин уровня 1, и так далее.

Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 -32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет).

Читайте так же:
Регулировка оборотов ручного фрезера

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

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

Для использования конечными пользователями рекомендуется использовать сервера Stratum 2, поскольку они имеют связь с несколькими серверами Stratum 1 и будут отдавать точное время в случае отсутствия связи до одного из них. Если же необходимо выбрать сервера для использования на маршрутизаторе, отдающем точное время внутрь локальной сети или же в интернет, рекомендуется использование не менее 3х (но не более 7и) авторитетных Stratum 1 серверов [2] .

Использование конечными пользователями серверов Stratum 1 строго не рекомендуется: By convention, Stratum 1 time servers should only be used by Stratum 2 servers, and by applications requiring extremely precise time measurements, such as scientific applications. [3]

Использование случайных серверов из пула pool.ntp.org не рекомендуется не для персонального использования [4] [5] . Так же не следует настраивать использование LOCAL clock [6] кроме редких случаев, когда нет постояного подключения к сети, а синхронизация времени все же необходима.

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

imageК сервису синхронизации времени по протоколу 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 мс.
image

Stratum-2
Это — разница с Stratum-2 серверами: 4 из Российского пулла, 1 из европейского, дефолтный сервер времени убунты (europium.canonical.com), и те же *.nist.gov:
image
Сразу бросаются в глаза сервера, имеющие постоянную ошибку до 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 сервер?

Сигналы и рабочие протоколы внешних устройств, синхронизируемые сервером Метроном М50-РТР

Синхронизация сервером внешних устройств возможна в таких протоколах:

  • NTP, PTP, SNTP через порт 10/100Base-T Ethernet;
  • NMEA 0183;
  • IRIG-B AM и DC

Выходы для сигнала 1PPS на внешние устройства:

  • два выхода RS-232;
  • TTL, 50 Ом;
  • оптореле, с поддержкой сигнала 1PPM.

Показатели мощности, которыми обладает сервер точного времени Метроном-РТР

Для питания синхронизатора используется постоянное напряжение 12-38В. Опционально постоянное напряжение питания можно увеличить до 18-70В или даже 110-230В. При этом потребляемая мощность в среднем не превышает 5Вт. Диапазон температур при работе без конденсата составляет от -5ºС до +50ºС. Все электронные элементы могут работать при индустриальном диапазоне температур от -40ºС до +85ºС

Производитель и комплектация синхронизатора Метроном-РТР

Метроном-РТР разработан и производится в РФ. Использует модули GPS/ГЛОНАСС, разработанные КБ Навис на ОС Linux. Размер корпуса — 46х118×127 мм. Крепится корпус на DIN-рейку. В комплектацию входят адаптер питания 220В, антенна с кабелем и руководство по эксплуатации.

Вы можете купить сервер времени Метроном-РТР по низкой цене в интернет-каталоге TINVEST с доставкой по РФ.

Читайте так же:
Стучат клапана регулировка не помогает

Например, NTP могут использовать, чтобы усилить трафик в DDoS-атаках. А чтобы избежать столкновения с различными злоупотреблениями, следует ограничить доступ для внешних клиентов. Говоря об ограничениях, то по умолчанию в /etc/ntp.conf файле выставлены такие:

  • restrict − 4 default kod notrap nomodify nopeer noquery
  • restrict − 6 default kod notrap nomodify nopeer noquery

Такие опции, как nomodify, notrap, nopeer и noquery, не позволяют внешним клиентам менять конфигурации на сервере. Параметр kod (расшифровывается как kiss of death, «смертельный поцелуй») дает дополнительный уровень защиты: клиент, который часто отправляет запросы, получает сперва kod-пакет, являющийся предупреждением о том, что в обслуживании отказано, а потом отключается от сервера.

Для синхронизации машин из локальной сети с сервером NTP в файл конфигурации добавляется такая строчка:

А для локального хоста устанавливается неограниченный доступ к серверу NTP:

Установка и настройка NTP-сервера

Самым известным и распространенным программным средством для синхронизации времени является демон ntpd. В зависимости от настроек, указанных в конфигурационном файле (об этом еще пойдет речь ниже), он может выступать как в качестве сервера, так и в качестве клиента (т.е может как принимать время с удаленных хостов, так и раздавать его другим хостам). Ниже мы подробно расскажем о том, как осуществляется установка и настройка этого демона в OC Ubuntu.

Подмена адреса time.windows.com локальным NTP на DNS-сервере

В крупных, постоянно меняющихся и развивающихся сетях установка адреса локального ntp-сервера на всех машинах, не подключенных к Active Directory, может представлять определенную проблему. В данном случае можно воспользоваться возможностями DNS-сервера BIND и подменить выдаваемый по запросу «time.windows.com» ip-адрес на принадлежащий локальному серверу NTP [21] .

На DNS сервере (на примере SLES 10) создадим интересующую нас зону следующего содержания:

Читайте так же:
Перепускной клапан системы отопления как регулировать

/var/lib/named/master/time.windows.com

где 192.0.2.30 — ip-адрес локального ntp-сервера

В конфигурационный файл /etc/named.conf добавляем строки:

где acls — используемые в локальной сети ACL’и

Если все правильно, то в логе /var/log/messages появится подобная строчка:

Проверяем результат на клиентской машине, предварительно сбросив кэш dns (How do I Flush DNS?):

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