Чтение онлайн

на главную

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:

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

Из протоколов, обеспечивающих работу временных серверов, наиболее популярен NTP (Network Time Protocol — сетевой протокол времени), который описан в документе RFC 1305 (

http://www.ietf.org/rfc/rfc1305.txt
). Рассмотрению более старых версий этого протокола посвящены документы RFC 958, RFC 1059 и RFC 1119. На момент написания данной книги, т.е. в 2002 году, последней версией NTP была версия 4, но версия 3 продолжала широко использоваться. Основной Web-узел NTP располагается по адресу
http://www.eecis.udel.edu/~ntp/
. NTP поддерживает иерархическую структуру временных серверов, в которой сервер, непосредственно получающий данные об эталонном времени, предоставляет их серверам, взаимодействующим с ним; те, в свою очередь, обслуживают другие серверы и т.д. до тех
пор, пока информация о времени не доставляется клиентам. Серверы и клиенты NTP разработаны для различных операционных систем, в частности для Linux. Чтобы настроить сервер NTP для работы в системе Linux, необходимо отредактировать лишь один конфигурационный файл. Контроль за действиями сервера осуществляется с помощью специальных инструментов. На компьютерах, находящихся на самом нижнем уровне иерархии NTP, могут быть запущены клиентские программы, которые также просты в использовании.

На заметку

Существует упрощенный вариант NTP, который называется SNTP (Simple NTP — простой NTP). Клиенты SNTP осуществляют синхронизацию времени, взаимодействуя с серверами NTP.

Функционирование временных серверов

Работа временных серверов начинается с получения сведений о времени от официальных источников. Эти сведения получаются путем считывания показаний атомных часов, приема специальных радиосигналов и т.д. Служба GPS (Global Positioning System — глобальная система позиционирования) принимает временные сигналы со спутников, поэтому может быть использована в качестве официального источника данных о времени. (Информацию об устройствах отсчета времени можно получить, обратившись по адресу

http://www.eecis.udel.edu/~ntp/hardware.html
.)

Атомные часы, устройства приема радиосигналов и прочее оборудование принято называть эталонными временными серверами, или серверами уровня 0. Эти серверы не поддерживают сетевые соединения (они взаимодействуют с компьютерами через последовательные порты, и для обмена данными с ними требуются дополнительные устройства). Компьютеры, которые синхронизируют свои системные часы, используя такие устройства, называются серверами уровня 1. Может показаться, что на них поддерживается наиболее точное время в Internet, однако исследования показали, что приблизительно треть из них имеют погрешность в секунду и больше. Компьютеры, которые используют для синхронизации серверы уровня называются серверами уровня 2 и т.д.

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

Полнофункциональный сервер NTP работает постоянно и время от времени опрашивает вышестоящий сервер (первоначально обращения осуществляются каждые 64 секунды, но при некоторых вариантах конфигурации системы интервал между обращениями может увеличиться до 1024 секунд). Сервер NTP корректирует показания часов компьютера, на котором он выполняется, различными способами. Большие расхождения во времени (порядка секунды или больше) сначала игнорируются — сервер считает, что они могут быть вызваны ошибками при обмене данными. Но если такая ситуация сохраняется в течение некоторого времени, NTP компенсирует ошибку; он либо непосредственно устанавливает требуемое значение времени, либо ускоряет или замедляет ход системных часов до тех пор, пока системное время и время внешнего сервера не сравняются. (Процедура ускорения и замедления хода называется подстройкой системных часов.) Сервер NTP также поддерживает специальный файл (обычно это

/etc/ntp/drift
,
/var/state/ntp.drift
или другой файл с подобным именем), в котором он хранит данные об ошибке или о "дрейфе" системного таймера. Информация в этом файле помогает серверу компенсировать ошибку системных часов в том случае, если компьютер на длительное время остается выключенным или если вышестоящий сервер NTP не доступен.

Совет

Если

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

В обычных условиях сервер NTP, работающий в небольшой сети, использует для синхронизации данные, предоставляемые тремя внешними серверами. (Число три выбрано произвольно, при желании вы можете увеличить или уменьшить количество внешних серверов, с которым будет взаимодействовать сервер NTP в вашей сети. Использование трех серверов обеспечивает избыточность данных, требуемую для надежной работы.) Для небольшой сети роль внешних серверов, как правило, выполняют серверы уровня 2. Количество серверов уровня 1 относительно невелико, и они обычно используются для синхронизации серверов NTP, которые обслуживают сотни клиентов. Клиентские компьютеры в небольшой сети практически постоянно обращаются к серверу уровня 3 для получения сведений о текущем времени. Вместо серверов на компьютерах могут быть установлены клиенты NTP, в этом случае опрос сервера может производиться не так часто. Если ваша сеть насчитывает несколько десятков компьютеров и для их работы необходимо обеспечивать точные показания системных часов, в ней имеет смысл установить два сервера NTP уровня 3. Это позволит избежать проблем, если сервер выйдет из строя или станет работать ненадежно. Если по каким-либо причинам необходимо, чтобы системные часы клиентских компьютеров работали особенно точно, вам следует рассмотреть возможность приобретения специального устройства и организации в вашей сети сервера уровня 1. Необходимое для этого устройство может стоить несколько сотен долларов.

В системе NTP используется универсальное время (Coordinated Universal Time — UTC), которое практически совпадает с гринвичским временем (Greenwich Mean Time — GMT) без учета переходов на летнее и зимнее время. UTC отличается от GMT лишь некоторыми деталями. В частности, UTC не определяется исходя из скорости вращения Земли, а отсчитывается на основании показаний высокоточных и высоконадежных атомных часов. При необходимости значение UTC можно привести в соответствие со скоростью вращения Земли, прибавляя или вычитая около секунды в день. Локальное время отличается от UTC смещением часового пояса. Кроме того, при определении локального времени также должны учитываться правила перехода на летнее и зимнее время.

Большинство операционных систем, установленных на компьютерах x86, требуют, чтобы системные часы показывали локальное время. Linux может работать с системным таймером, отсчитывающим либо локальное время, либо UTC, а также поддерживает отдельные программные часы, установленные в соответствии с UTC. Если на компьютере установлена только система Linux, желательно применять UTC, так как при этом нет необходимости переводить таймер на летнее и зимнее время. Если же на компьютере кроме Linux инсталлирована Windows (или другая операционная система, использующая локальное время), вам придется установить таймер по локальному времени. Кроме того, при этом возникает проблема при переходе на летнее и зимнее время. Устранить ее можно, запуская средства поддержки временного протокола при загрузке системы. Заметьте, что преимущества применения NTP в Linux не распространяются на другие системы, так как при коррекции системных часов Linux не изменяет значение аппаратного таймера. Для приведения аппаратного таймера в соответствие с системными часами можно использовать команду

hwclock --systohc --localtime
; в этом случае на аппаратном таймере устанавливается локальное время. Если на вашем компьютере показания времени хранятся в формате UTC, то при вызове данной команды надо заменить
– -localtime
на
– -utc.

Временные серверы для Linux

Сервер NTP для работы в Linux реализуется с помощью программы

ntp
или ее разновидностей:
xntp
,
xntp3
и
xntpd
. Символ x в начале имени означает "экспериментальный" (experimental), что не совсем верно, так как эти программы успешно используются в течение нескольких лет. В именах программ, содержащихся в пакете NTP 4, символ x отсутствует. В составе большинства версий Linux поставляется версия 4 пакета NTP, но нередко встречается также версия 3.

Поделиться:
Популярные книги

Лорд Системы 8

Токсик Саша
8. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 8

Осознание. Пятый пояс

Игнатов Михаил Павлович
14. Путь
Фантастика:
героическая фантастика
5.00
рейтинг книги
Осознание. Пятый пояс

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Огненный князь 5

Машуков Тимур
5. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 5

Новый Рал 4

Северный Лис
4. Рал!
Фантастика:
попаданцы
5.00
рейтинг книги
Новый Рал 4

Варлорд

Астахов Евгений Евгеньевич
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Варлорд

Пропала, или Как влюбить в себя жену

Юнина Наталья
2. Исцели меня
Любовные романы:
современные любовные романы
6.70
рейтинг книги
Пропала, или Как влюбить в себя жену

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Приручитель женщин-монстров. Том 5

Дорничев Дмитрий
5. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 5

Довлатов. Сонный лекарь

Голд Джон
1. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь