Большинство пакетов NTP содержат сервер NTP и несколько вспомогательных программ. Компоненты пакета описаны ниже.
•
ntpd
. Основная программа, реализующая сервер NTP. (В некоторых поставках она называется
xntpd
.) Как было сказано ранее, несмотря на то, что эта программа считается сервером, она объединяет в себе функции клиента и сервера. Для вышестоящих серверов она является клиентом, а для нижележащих программ — сервером. (Вышестоящим считается сервер с меньшим значением уровня.)
•
ntpdate
. Данная программа намного проще, чем программа
ntpd
; она реализует лишь функции клиента. Если поддержка точного времени на компьютере не слишком важна, вы можете установить
вместо сервера программу
ntpdate
и обеспечить ее периодические вызовы. Работа
ntpdate
будет рассмотрена далее в этой главе.
•
ntptrace
. В некоторых случаях возникает необходимость проследить источник данных о времени. Данная программа отслеживает путь от локального компьютера к серверу NTP, используемому для синхронизации, и далее вверх по дереву NTP. Такая информация может быть полезной для диагностики системы.
•
ntpq
. Данная программа осуществляет NTP-мониторинг. Она будет рассмотрена далее в этой главе.
•
xntpdc
. Эта программа также предназначена для мониторинга и управления системой NTP. Она позволяет выполнять более сложные операции, чем
ntpq
.
Помимо NTP, в Linux для согласования времени могут быть использованы и другие программы. Одной из таких программ является
rdate
, которая по своим возможностям напоминает
ntpdate
; она используется для однократной установки системных часов. Программа
rdate
входит в состав некоторых дистрибутивных пакетов, но в ряде пакетов она отсутствует. Эта программа уступает по точности
ntpdate
. Если
ntpdate
может обеспечивать точность порядка нескольких миллисекунд, то
rdate
имеет точность около секунды.
Структура конфигурационного файла
ntp.conf
Для настройки средств NTP используется файл
ntp.conf
, который обычно размещается в каталоге
/etc
. Как и во многих других конфигурационных файлах, строки, содержащие комментарии, начинаются с символа
#
, а в остальных строках задаются различные опции NTP. Наиболее важными из этих опций являются следующие.
•
server адрес [key ключ] [version номер] [prefer]
. Данная опция задает имя сервера, который используется для синхронизации показаний времени с помощью протокола NTP. В качестве адреса может быть задан IP-адрес или имя узла. При необходимости в файл
ntp.conf
можно включить несколько опций
server
, в результате ваш сервер NTP установит соединение с каждым из указанных серверов и выберет для синхронизации наилучший из них. В составе данной опции может задаваться дополнительная информация. Значение, следующее после
key
, определяет ключ аутентификации, оно указывается, если доступ к серверу ограничен. Номер версии сообщает о том, какая версия протокола должна быть использована при взаимодействии. Ключевое слово
prefer
указывает, что данный сервер предпочтительнее других.
•
fudge адрес stratum номер
. Данная опция в основном используется для того, чтобы указать, что сервер 127.127.1.0 (локальные системные часы) должен интерпретироваться как сервер уровня 7 — сервер NTP с самым низким приоритетом. Это позволяет серверу продолжать работу даже в том случае, если другие серверы недоступны.
•
driftfile имя_файла
. Указанный в качестве значения данной опции файл включает информацию, которая используется при возобновлении работы после длительного отключения компьютера. Содержимое данного файла позволяет серверу NTP компенсировать погрешность внутреннего таймера и увеличить точность при работе в автономном режиме.
•
broadcast адрес [key ключ] [version номер] [ttl номер]
. Если вы укажете данную опцию, сервер будет периодически передавать в широковещательном режиме данные о текущем времени. Информация будет передаваться по сети, адрес которой является значением данной опции (это может быть также адрес группового вещания 224.0.1.1). Использование широковещательного адреса позволяет уменьшить трафик в больших сетях, в которых многие серверы NTP работают в качестве клиентов.
•
broadcastclient [yes|no]
. Данная опция указывает серверу NTP на то, что он должен принимать широковещательные сообщения от других локальных серверов NTP.
В файле
ntp.conf
могут быть указаны и другие опции, с помощью которых задаются специальные функции. Информацию о них можно получить в документации, представленной в формате HTML, которая поставляется в составе пакета и обычно находится в каталоге
/usr/share/doc/xntp-версия
.
Файл
ntp.conf
, поставляемый в составе дистрибутивного пакета, практически обеспечивает работу сервера. Вам надо лишь добавить одну или несколько опций server, указывающих на серверы NTP. К выбору сервера надо подходить очень внимательно. Если сервер, используемый для синхронизации, расположен далеко или работает ненадежно или синхронизирован с помощью некорректного источника, показания системных часов на компьютеров вашей сети будут неточными. Как было сказано ранее, для небольшой сети в качестве источника синхронизирующих данных целесообразно выбирать сервер уровня 2. Этот вопрос интенсивно обсуждается в сети; материалы дискуссий вы можете найти по адресу
http://www.eecis.udel.edu/~mills/ntp/servers.htm
. В конце этого документа даны ссылки на Web-страницы, содержащие списки временных серверов уровней 1 и 2. Постарайтесь использовать для синхронизации сервер, расположенный ближе других. Заметьте, что топология сетей отличается от географического размещения компьютеров. Так, например, компьютер, расположенный на другом континенте, может быть "ближе" к локальной машине, чем компьютер, находящийся в часе езды от нее.
Совет
Для того чтобы сравнить время передачи данных при обмене с различными серверами NTP, можно воспользоваться утилитой
ping
. Для синхронизации желательно использовать тот сервер, от которого ответы на ping-пакеты приходят быстрее.
Если в списке указано, что, прежде чем использовать некоторый сервер, надо оповестить об этом оператора, не забудьте послать соответствующее сообщение. Возможно, вам имеет смысл рассмотреть в качестве претендентов на роль источника данных о времени менее известные серверы, расположенные ближе к вашей сети. Подобные серверы поддерживают многие крупные организации, в том числе провайдеры Internet. Если вы устанавливаете временной сервер для отдела, обсудите этот вопрос с системным администратором, обслуживающим сеть всей организации, и с провайдером.
Если вы приобретете GPS либо другое устройство, позволяющее принимать эталонные данные времени, вы можете установить в своей сети сервер уровня 1. Для работы с таким оборудованием вам понадобятся специальные драйверы. Эти драйверы устанавливают принадлежность устройства сети 127.127.0.0/16, в результате для работы с ним можно использовать обычную опцию
server
. Дополнительную информацию об использовании указанных устройств вы можете найти в документации на драйверы Linux. Сведения о производителях устройств, позволяющих получать сигналы эталонного времени, приведены в документе