. Как и во многих других конфигурационных файлах, строки, содержащие комментарии, начинаются с символа
#
, а в остальных строках задаются различные опции 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. Сведения о производителях устройств, позволяющих получать сигналы эталонного времени, приведены в документе
http://www.eecis.udel.edu/~ntp/hardware.html
.
После редактирования
ntp.conf
надо перезапустить сервер NTP. Сделать это можно с помощью сценария запуска SysV (подробно вопрос использования сценариев SysV обсуждался в главе 4). Если в сценарии запуска не предусмотрен вызов
ntpdate
, перезапуск
ntpd
не приведет к резкому изменению показаний системных часов, даже если компьютер был выключен в течение нескольких минут. Вначале
ntpd
несколько раз сравнит показания системных часов с данными, предоставленными удаленным сервером, а лишь затем предпримет меры для коррекции системного времени. Вопросы контроля операций, выполняемых
ntpd
, будут обсуждаться в следующем разделе.
Контроль операций NTP
Помимо визуального контроля показаний часов с помощью программы
xclock
, для мониторинга операций NTP часто применяется программа
ntpq
. После вызова эта программа запрашивает команды, определяющие ее дальнейшую работу. Команды вводятся в текстовом режиме. В процессе выполнения программа отображает информацию о работе сервера. Некоторые наиболее важные команды
ntpq
описаны ниже.
•
host имя_узла
. По умолчанию
ntpq
опрашивает сервер, находящийся на локальном компьютере. Задавая команду
host
, можно использовать данную программу для проверки любого сервера NTP в сети. Аналогичный результат можно получить, задавая имя целевого узла при вызове
ntpq
, например
ntpq remote.threeroomco.com
.
•
hostnames [yes | no]
. Если вы укажете опцию
yes
, программа
ntpq
, сообщая о действиях удаленных компьютеров, будет отображать имена узлов (подобная конфигурация предусмотрена по умолчанию). Опция
no
указывает на то, что вместо имен должны отображаться IP-адреса. Такой же эффект вызовет опция
– n
, заданная при вызове программы
ntpq
.
•
ntpversion номер_версии.
Данная команда позволяет указать версию протокола NTP, которая будет использоваться при передаче запросов серверу NTP.
•
quit
. Данная команда задается после окончания работы с программой
ntpq
и завершает ее выполнение.
•
peers
. Данная команда предоставляет одно из самых мощных средств диагностики. Она отображает список серверов, с которыми взаимодействует ваш сервер. Если вы предварительно не задали команду
host
, в этом списке будут содержаться сервер на локальном компьютере и все серверы, указанные в файле
ntp.conf
. Кроме того, при вызове этой команды будет отображена дополнительная информация, в частности, серверы, используемые для синхронизации; уровень каждого сервера; время последнего обращения к каждому серверу и интервал между обращениями; числовой код, отражающий надежность соединения между компьютерами; задержка, смещение и погрешность синхронизации. В начале каждой записи отображается символ, указывающий на то, каким образом ваш сервер использует данные, предоставляемые другими серверами. Символ + означает, что сервер рассматривался как претендент на роль источника синхронизации, но вместо него был выбран другой сервер; символ
*
указывает на то, что сервер является вышестоящим по отношению к вашему серверу; символ × определяет "испорченные часы" — сервер, показания которого признаны неверными. Кроме того,
ntpq
может отображать другие символы, определяющие различные характеристики серверов. Разновидностями команды
peers
являются
lpeers
(она может отображать информацию о большем количестве серверов) и
opeers
(не выводит имена серверов, с которым взаимодействует ваш сервер).