Опубликован: 19.10.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 16:

Время в Solaris. Управление системой с помощью Solaris Management Console

< Лекция 15 || Лекция 16: 1234

Запуск сервера времени

Демон xntpd при старте читает файл /etc/inet/ntp.conf или принимает параметры из командной строки. Однако ему необходимо сообщить адрес эталонных серверов и (или) режим работы.

Если файл /etc/inet/ntp.conf не удается прочесть и с ключом -c не указан иной файл конфигурации, демон, если он был заранее скомпилирован с поддержкой NetInfo, прислушивается к широковещательным сообщениям в сети и пытается сам найти себе эталон времени. Маловероятно, что в этом его ждет успех, если сервер времени находится за фильтром пакетов (межсетевым экраном, firewall - что одно и то же).

Программа ntpq позволяет получать информацию о текущей конфигурации прямо от сервера времени и изменять настройки xntpd "на ходу", без перезапуска сервера.

В командной строке вызова xntpd доступны следующие ключи:

-a - включить аутентификацию (по умолчанию - выключена);

-A - выключить аутентификацию;

-b - синхронизироваться по широковещательным сообщениям NTP;

-c conffile - использовать указанный файл вместо /etc/inet/ntp.conf;

-d - включить режим отладки;

-e authdelay - указать явно время в секундах, которое требуется данной системе для вычисления ключа;

-f driftfile - указать путь к файлу со значением сдвига часов;

-k keyfile - указывает файл с ключами для аутентификации в NTP;

-l logfile - указывает файл протокола; по умолчанию протоколи- рование ведется через syslog() ;

-m - синхронизировать часы по multicast-сообщениям NTP на группу multicast-адресов 224.0.1.1; требует поддержки multicast в ядре;

-p pidfile - указывает файл, в который пишется PID процесса xntpd.

Файл конфигурации xntpd - ntp.conf

В файле /etc/inet/ntp.conf команды располагаются по одной в строке, за ключевым словом команды могут идти аргументы. Строки, начинающиеся со знака решетки ( # ), являются комментариями. Пустые строки игнорируются. Аргументы отделяются от команды и друг от друга пробелами.

Параметры настройки xntpd могут быть установлены в файле или из командной строки, ключи командной строки имеют преимущество перед установками в файле конфигурации.

Аргументы могут быть именами компьютеров или IP-адресами, а также спецификацией времени (числом с плавающей точкой) и текстовой строкой.

Рассмотрим пример конфигурации:

server ntp.cpsc.ucalgary.ca prefer
server ntp.my-provider.ru
server louie.udel.edu
driftfile /var/db/ntp.drift

Параметр server указывает, какие эталонные серверы времени следует использовать, они перечисляются по одному в каждой строке. Если один из серверов указан с модификатором prefer, как ntp.cpsc.ucalgary.ca в нашем примере, то ответу этого сервера отдается предпочтение перед остальными. Параметр server нельзя использовать в случае, если наш сервер определяет соседей, слушая широковещательные пакеты NTP.

Ответ даже от предпочитаемого сервера будет отброшен, если он значительно отличается от ответов других серверов. В ином случае он будет использоваться вне зависимости от других ответов. Модификатор prefer используется для тех серверов NTP, о которых известно, что они очень точны. Например, серверам из слоя 2 имеет смысл отдавать предпочтение перед серверами провайдера, филиала вашей фирмы или дружественной компании.

Параметр driftfile задает файл, который надо использовать для хранения смещения частоты системных часов. Файл требуется программе xntpd для автоматической компенсации естественного смещения часов. При этом обеспечивается правильная настройка часов, даже если компьютер на некоторое время отключается от внешнего источника синхронизации времени, что может быть вызвано сбоем сети или этого источника.

В файле, имя которого указанно в строке driftfile, хранится история ответов серверов NTP. Этот файл содержит служебную информацию для сервера NTP, и другие процессы не должны иметь доступа к этому файлу для записи в него.

Файл конфигурации /etc/inet/ntp.conf также определяет параметры доступа к нашему NTP-серверу. По умолчанию сервер NTP доступен любым хостам, которые могут к нему обратиться. При отсутствии фильтрации пакетов это означает свободный доступ из Интернета для всех.

Для ограничения группы компьютеров, имеющих право запрашивать время у xntpd, используется параметр restrict:

restrict 192.168.1.0 mask 255.255.255.0 nomodify

Такая установка разрешает обращаться к xntpd только компьютерам из сети 192.168.1.0 с маской сети 255.255.255.0, но запрещает им требовать от сервера NTP изменить его локальное время.

Директив restrict в файле /etc/inet/ntp.conf может быть несколько.

Демон xntpd также позволяет ввести аутентификацию для обращений к нему или настроить аутентификацию для обращения к тем эталонным серверам, которые ее требуют.

Если ваша сеть невелика, а требования к точности времени умеренные (часы могут спешить или отставать на 30 миллисекунд и немного больше), то xntpd может показаться не лучшим выбором. Для синхронизации часов только при загрузке системы достаточно использовать программу ntpdate.

Ее можно вызывать не только при загрузке системы. Если в процессе работы системные часы отклоняются несильно и высокая точность (30 мс или выше) не нужна, запускайте раз в два часа ntpdate для синхронизации с эталонным сервером из cron:

1 */2 * * * root /usr/sbin/ntpdate -b -s адрес_NTP-сервера

Проверка настроек сервера времени

Для просмотра и изменения параметров xntpd используйте программу ntpq. В частности, для вывода информации об известных источниках точного времени запустите ее с ключом -p:

ntpq -p
remote refid st t when poll reach delay offset disp
===================================================================
ensb.cpsc.ucalg montpelier 2 u 26 64 1 189.36 2879.39 15875.0

Если надо проследить цепочку, по которой точное время добирается до вашей сети, пригодится программа ntptrace:

ntptrace ntp.cpsc.ucalgary.ca
ensb.cpsc.ucalgary.ca: stratum 2, offset 2.867748, synch
distance 0.05968
montpelier.ilan.caltech.edu: stratum 1, offset 2.863728,
synch distance 0.00113, refid ''
ntptrace localhost
localhost: stratum 16, offset 0.000014, synch distance
1.00270
< Лекция 15 || Лекция 16: 1234
Алексей Антипин
Алексей Антипин
Россия, Томск, ТУСУР, 2010
Игорь Тарасенко
Игорь Тарасенко
Россия