Как настроить NTP-сервер времени

Синхронизация времени имеет решающее значение в современных компьютерных сетях, потому что такие важные задачи, как управление, обеспечение безопасности, планирование и отладка сети, требуют точно установленного времени. При этом поддержание точного времени — сложная задача, поскольку часы компьютера смещаются на несколько минут или секунд каждый день. Решить проблему синхронизации временем на устройствах помогает протокол сетевого времени (NTP — Network Time Protocol). В статье рассказываем, что такое протокол NTP, зачем нужна настройка NTP-сервера, как включить NTP и как поменять время на сервере.

Что такое NTP

Протокол сетевого времени (NTP) — это протокол, который помогает синхронизировать время устройств (компьютеров, серверов, коммутаторов, маршрутизаторов) в сети.

Внешним источником точного времени, к которому делается запрос, является NTP-сервер синхронизации времени. В то же время сам NTP-сервер получает точное всемирное координированное время (UTC — Coordinated Universal Time) от авторитетного источника времени, такого как атомные часы или GPS.

Для обозначения того, кто запрашивает время, используется термин «NTP-клиент». А источником информации о времени служит NTP-сервер.

Конечной целью NTP является синхронизация часов всех участвующих устройств с высокой точностью относительно UTC.

Почему протокол NTP важен и как он используется

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

Вот несколько примеров использования NTP:

  • Распределенные процедуры зависят от скоординированного времени, чтобы обеспечить правильную последовательность.
  • Механизмы безопасности зависят от последовательного хронометража в сети.
  • Обновления файловой системы, выполняемые на нескольких компьютерах, зависят от синхронизированного времени.
  • Система управления сетью полагается на точность времени для измерения производительности и устранения неполадок.

Как устроен протокол NTP

Как мы уже говорили выше, для обозначения связи между участниками синхронизации времени используют термины «NTP-сервер» и «клиент». Где клиент — это система, стремящаяся синхронизировать свои часы с сервером, а сервер — источник информации о времени. Чтобы понять, как устроен протокол сетевого времени, обратимся к его структуре.

Протокол NTP использует иерархическую структуру источников времени. Каждый уровень этой иерархии называется слоем (от англ. stratum).

Первый слой образуют первичные серверы (главные серверы), которые синхронизируются непосредственно с авторитетными и самыми точными источниками времени — атомными часами или GPS.

Вторичные серверы уже получают время от первичных серверов, а также могут синхронизироваться между собой. А серверы третьего уровня синхронизируются с вторичным серверами и так далее. Всего может быть 15 слоев. Меньшее значение указывает на более высокую точность. Но все равно разница будет незначительной и составит микросек isунды.

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

Как синхронизировать время с NTP-сервером

Обеспечить бесперебойную работу программного обеспечения NTP возможно в режиме системной службы. В операционной системе Windows — это служба W32Time, для Linux — демон Ntpd.

Далее расскажем, как установить сервер времени, на каждой из этих систем.

Установка сервера времени NTP в Windows

Служба времени W32Time в операционной системе Windows синхронизирует время в домене Active Directory. Для начала нужно открыть открыть 123 udp порт для контроллера домена.

  1. Запустите cmd от имени администратора.
  2. Остановите службу W32Time.

net stop w32time

  1. Задайте адреса внешних источников времени.

w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org"

  1. Настройте ответ контроллера клиентам на запросы о синхронизации времени.

w32tm /config /reliable:yes

  1. Запустите службу W32Time.

net start w32time

  1. Проверьте результат.

w32tm /query /configuration

Готово! Синхронизация времени в домене Windows настроена.

NetTime: как синхронизировать время с сервером с помощью программы

С помощью утилиты NetTime можно быстро настроить синхронизацию времени с NTP серверами.

Так выглядят настройки программы:

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

Настройка времени на сервере для Linux

Ntpd (Network Time Protocol daemon) — это демон операционной системы Linux, который устанавливает и поддерживает системное время синхронно с серверами точного времени в интернете.

По шагам рассказываем, как установить и настроить ntpd в Linux.

Шаг 1. Установка.

Для установки используется менеджер пакетов sudo apt-get install ntp

Шаг 2. Редактирование файла конфигурации.

Откройте файл /etc/ntp.conf.

sudo nano /etc/ntp.conf

Шаг 3. Ввод серверов времени.

Укажите несколько NTP-серверов.

server 0.ubuntu.pool.ntp.org

server 1.ubuntu.pool.ntp.org

server 2.ubuntu.pool.ntp.org

server 3.ubuntu.pool.ntp.org

Шаг 4. Перезапуск.

Перезапустите ntpd.

sudo service ntp restart

Шаг 5. Проверка результата.

Проверьте, запущен ли ntpd.

sudo ntpq -p

Заключение

Протокол NTP нужен для синхронизации времени компьютеров и других устройств в сети. Компьютер, который хочет получить точное время, запрашивает его у NTP-сервера. В свою очередь NTP-сервер работает с точными атомными часами и GPS и синхронизируют время между клиентами (устройствами, которые запрашивают время), используя эти точные часы в качестве эталонного времени.

У протокола NTP иерархическая структура. На первом уровне иерархии находятся серверы, которые синхронизируются с эталонными часами. Вторичные серверы запрашивают время у серверов первого уровня. Серверы, которые находятся на третьем уровне, синхронизируются с серверами второго уровня и т.д. При этом каждый уровень показывает точное время, а разница составляет микросекунды.

Также в статье мы рассказали, как поставить время на сервере в операционных системах Windows и Linux. В Windows это можно сделать с помощью службы времени W32Time. В качестве альтернативы можно установить утилиту NetTime и синхронизировать время. Для настройки времени в операционной системе Linux используется демон ntpd.

  Туториал: как настроить NTP-сервер времени

Всё ещё остались вопросы?