Включить ntp что это
Перейти к содержимому

Включить ntp что это

  • автор:

Установка 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 он входит в стандартные репозитории операционной системы и достаточно выполнить его установку

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-пул.

Настройка NTP сервера в Windows

Начиная с Windows 2000 все операционные системы Windows включают в себя службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol).

По умолчанию служба времени в Windows сконфигурирована следующим образом:

• При установке операционной системы Windows запускает клиента NTP и синхронизируется с внешним источником времени;
• При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;
• При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;
• PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.

Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии, и надежным источником времени можно назначить любой компьютер. В качестве примера я опишу настройку NTP-сервера в Windows Server 2008 R2, хотя со времен Windows 2000 процедура не особо изменилась.

Запуск NTP сервера

Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2012) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.

Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.

включение сервера NTP

Затем перезапускаем службу времени командой net stop w32time && net start w32time

перезапуск службы времени в Windows

После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды w32tm /query /configuration. Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled :1 , то все в порядке, сервер времени работает.

просмотр параметров службы времени в Windows

Для того, чтобы NTP-сервер мог обслуживать клиентов, не забудьте на файерволле открыть UDP порт 123 для входящего и исходящего траффика.

Основные настройки NTP сервера

NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLM\System\CurrentControlSet\services\W32Time\Parameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.

И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.

В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:

0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).

настройка синхронизации NTP сервера

Еще один важный параметр AnnounceFlags находится в разделе реестра HKLM\System\CurrentControlSet\services\W32Time\Config. Он отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:

0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его, как источник времени;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени для всего леса даже при отсутствии связи с вышестоящими NTP-серверами. Ни один другой контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как надежном источнике времени, если он не может найти источник времени для себя.

Значение AnnounceFlags составляет сумму составляющих его флагов, например:

10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.

5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.

настройка представления NTP сервера

Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).

настройка интервала синхронизации NTP сервера

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой 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 выведет все параметры службы.

Ну и на крайний случай ��
w32tm /unregister — удаляет службу времени с компьютера.
w32tm /register – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.

Записки IT специалиста

NTP-server-debian-ubuntu-000.pngМы уже неоднократно поднимали вопрос важности синхронизации времени, особенно сейчас, когда даже в небольших сетях появляется все больше и больше служб критичных к точному времени. Это криптография, системы контроля доступа и видеонаблюдения, кассовые узлы. В этих условиях точности обычных аппаратных часов начинает не хватать и хотя во многих случаях допускается разбег времени не более пяти минут, лучше не ждать пока это случится (как всегда в самый неподходящий момент), а обеспечить свою инфраструктуру собственным сервером времени. В данной статье мы рассмотрим, как это сделать в системах основанных на Debian.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Данную и все последующие команды следует выполнять с правами суперпользователя.

После установки часового пояса обновите список пакетов и установите пакет NTP-сервера:

Пакет работоспособен сразу после установки и конфигурация из коробки достаточно актуальна, но лучше внести в нее некоторые дополнительные штрихи. Для изменения настроек откроем файл /etc/ntp.conf.

Начнем с вышестоящих серверов для синхронизации времени, рекомендуется выбирать ближайшие к вам сервера, их адреса можно получить на сайте ntppool.org. Затем найдем в конфигурационном файле следующую секцию:

NTP-server-debian-ubuntu-001.png

И заменим значения на следующие:

В нашем примере приведены настройки для использования российских серверов времени. Ниже зададим настройку для синхронизации с аппаратными часами на случай отсутствия синхронизации с серверами в интернет:

Первая строка задает адрес аппаратных часов — 127.127.1.0, вторая указывает приоритет — stratum — он выбран таким образом, чтобы при наличии интернета NTP-сервер не синхронизировался с аппаратными часами. У серверов входящих в пулы ntp.org значение stratum равно двум.

Затем перейдем к списку контроля доступа, который состоит из сетевых адресов отсортированных по возрастанию адресов и масок. Запись по умолчанию — default соответствует адресу 0.0.0.0 с маской 0.0.0.0, если в записи не указана маска, то автоматически подставляется значение 255.255.255.255, что соответствует конечному хосту.

Кроме адресов строки списка содержат флаги, флаги указывают на те или иные ограничения, если строка не содержит флагов — это означает полный доступ к серверу. По умолчанию список контроля доступа, следующий:

NTP-server-debian-ubuntu-002.png

Разберем его подробнее. Первые две строки задают значения по умолчанию, т.е. для любых клиентов, в сетях IPv4 и IPv6:

Перечисленные флаги имеют значения:

  • kod — отправка клиенту, посылающему нежелательные запросы, пакета KoD (Kiss O’Death), получатель такого пакета обязан выполнить предписанную ему проверку и изменить свое поведение, в противном случае такой клиент будет отключен от сервера.
  • notrap — запрет приема управляющих сообщений
  • nomodify — запрет приема сообщений, изменяющих состояние сервера
  • nopeer — запрет установки одноранговых отношений с другими NTP-серверами
  • noquery — запрет любых запросов для синхронизации времени поступающих с других серверов
  • limited — запрет обслуживания, если интервал между пакетами от клиента превышает разрешенные значения

Под ними расположены строки, дающие полный доступ к серверу локальной системе:

Отсутствие маски указывает на то, что это конечный узел, а отсутствие флагов предоставляет полный доступ.

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

Если нужно запретить доступ к серверу времени, то следует использовать флаг ignore. Допустим, мы хотим запретить доступ для всех клиентов доменной сети, кроме эмулятора PDC:

Расположение строк не имеет значения, так как при запуске сервера все адреса будут отсортированы по возрастанию адреса/маски.

После внесения изменений следует перезапустить службу:

Проверить ее статус можно командой:

Состояние синхронизации с вышестоящими серверами можно узнать командой:

Которая выдаст нам следующий вывод:

NTP-server-debian-ubuntu-003.png

На что следует обратить внимание? Прежде всего на символы слева от адреса сервера:

  • * — сервер выбран для синхронизации
  • + — сервер пригодный для синхронизации
  • — синхронизация с этим сервером не рекомендуется
  • x — сервер недоступен

Затем на колонку refid — показывающее вышестоящий сервер синхронизации и колонку offset, которое показывает расхождение ваших часов с эталоном, при положительном значении наши часы спешат, при отрицательном отстают.

В колонке st указывается stratum — приоритет сервера, а delay содержит задержку ответа от сервера. Как видим, в нашем случае служба времени выбрала для синхронизации сервер с приоритетом 1, который синхронизируется от GPS-часов, несмотря на более высокий уровень задержки при работе с ним.

Ну и не забудьте разрешить доступ к вашему NTP-серверу в брандмауэре, добавив в правила iptables строку:

При необходимости можно ограничить доступ сетевым интерфейсом:

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

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

Протокол сетевого времени NTP (Network Time Protocol) используется для синхронизации времени в вашей системе с централизованным NTP-сервером. В этой статье рассмотрим установку и настройку NTP сервера.

Установка NTP

В первую очередь нужно установить пакет NTP при помощи менеджера пакетов. Например, в RedHat или CentOS используется yum:

Настройка NTP-сервера

Установка ограничений в ntp.conf
В файл /etc/ntp.conf нужно добавить две строки restrict. Они разрешают синхронизацию с источником данных о времени, но не разрешают источнику опрашивать сервис на нашей системе или изменять его параметры.

Первая строка разрешает другим клиентам опрашивать ваш сервер времени. В ней заданы следующие параметры:

noquery – запрещает получение данных о состоянии ntpd
notrap – запрещает использование управляющих сообщений.
nomodify – запрещает все запросы ntpq, которые пытаются изменить параметры сервера.
nopeer – запрещает все пакеты, которые пытаются установить синхронизацию с узлом.
kod – отправка пакета об отказе в обслуживании “Kiss-o-death” для исключения нежелательных запросов, затем отключение от сервера.

Значение -6 во второй строке устанавливает аналогичные параметры для IPV6. Более подробная информация о параметрах приведена в соответствующей man-странице

Проверьте что у вас в фале конфигурации прописаны внешние NTP-сервера. При желании измените их на свои

Ограничение круга клиентов

Чтобы с вашим NTP-сервером могли синхронизироваться только машины вашей сети, добавьте в файл /etc/ntp.conf следующую строку (указав актуальные для вашей сети значения):

Если на локальном узле требуется полный доступ с возможностью изменения параметров, нужно добавить такую строку:

Резервное использование локальных часов

Чтобы при отключении от Интернета NTP-сервер определял время по своим локальным системным часам, в файле конфигурации нужно прописать соответствующие параметры.

Протокол NTP использует иерархию, называемую Stratum. Sratum 0 – это эталонные часы, Stratum 1 – серверы, получающие время от них напрямую (не по сети). Начиная со Stratum 2 и далее серверы получают время по сети от серверов предыдущего уровня. С каждым уровнем точность времени снижается. Лучше всего выбирать для синхронизации серверы уровня 2, так как несмотря на более высокую точность Stratum 1 они сильнее загружены, и задержка получения пакетов от них может быть слишком большой.

В двух следующих строках мы командой server указываем использование локального узла в качестве сервера времени, а командой fudge задаем его уровень в иерархии Stratum и исключаем обновление, когда доступ к Интернету есть.

Установка параметров журнала

Укажите в файле конфигурации расположение файла погрешности (driftfile) и файла журнала (logfile):

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

Запуск NTP-сервера

После задания необходимых параметров в файле конфигурации ntp.conf нужно запустить службу ntp.

И добавим в автозагрузку

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *