Синхронизация времени (NTP)

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


Введение

Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью, основанных на коммутации пакетов.

Хотя традиционно NTP использует для своей работы протокол UDP, он также способен работать и поверх TCP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.

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

NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера и в настоящее время продолжает совершенствование. Текущая версия — NTP 4.

Демон NTP — программа пользовательского уровня, работает постоянно.

NTP использует иерархическую систему «часовых уровней», уровень 1 синхронизован с высокоточными часами, например, система GPS или эталоны времени. NTP уровень 2 синхронизируется с одной из машин уровня 1, и так далее.

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

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

Подробная реализация протокола и системы в целом описана в:

  • RFC 778
  • RFC 891
  • RFC 956
  • RFC 958
  • RFC 1305
  • RFC 2030

NTP не следует путать с daytime protocol RFC 867 или time protocol RFC 868.

Настройка для *nix-систем

Для корректной работы синхронизации времени нам понадобится пакет ntp.

1. Для установки выполняем (если еще не установлено):

# yum install ntp

2. Конфигурируем /etc/ntp.conf: Ищем строки начинающиеся с server и меняем данные на:

server md.pool.ntp.org
server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

3. Запускаем или перезапускам сервис ntpd:

# service ntpd restart

Теперь Ваши системные часы будут всегда точные.

Настройка для Win-систем

Для Windows систем необходимо выполнить следующую команду:

net time /setsntp:md.pool.ntp.org