Книга: Сетевые средства Linux

Использование клиентских средств NTP

Использование клиентских средств NTP

Ранее уже шла речь о том, что при формировании сети можно расположить на одном из компьютеров сервер NTP, который получал бы информацию о времени от внешнего сервера, и настроить остальные компьютеры так, чтобы они обращались за этой информацией к серверу NTP, расположенному в локальной сети. В результате во всей сети будет поддерживаться точное время, а трафик, связанный с NTP-обменом будет относительно невелик. На каждом из компьютеров такой сети будет выполняться программа ntpd, но на всех машинах, кроме одной, она выступит в роли клиента. В сложной сети вы можете организовать несколько уровней серверов NTP. Например, для обслуживания клиентов в каждой подсети можно установить отдельный сервер NTP, а один из них настроить так, чтобы он обращался за сведениями о текущем времени в Internet. Такой подход минимизирует трафик NTP в локальной сети.

На подавляющем большинстве компьютеров используется лишь незначительная часть возможностей, предоставляемых ntpd. Эта программа синхронизирует показания системных часов на узлах локальной сети с точностью до миллисекунд и обеспечивает отклонение от UTC меньше секунды. Кроме того, программа ntpd работает постоянно и корректирует "дрейф" часов в течение дня. Но, как правило, потребности пользователей, работающих в сети, гораздо скромнее, для них вполне допустима погрешность в несколько секунд. Заметьте также, что ntpd представляет собой сервер и при работе этой программы на компьютере возникает определенная угроза безопасности системы. Если в программе будет обнаружена ошибка, создающая "лазейку" для злоумышленников (а подобные ошибки были выявлены в ранних реализациях сервера), ваш компьютер окажется открытым для всех пользователей локальной сети, а возможно, и для всей Internet. По этой причине ntpd в некоторых случаях целесообразно заменить программой ntpdate. В качестве клиента службы времени также может применяться программа rdate, но она использует отдельный протокол и уступает ntpdate в точности.

На заметку

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

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

• -B. По умолчанию ntpdate поступает следующим образом. Если погрешность системных часов превышает половину секунды, программа устанавливает новое значение времени; при меньшей погрешности она выполняет подстройку часов, т.е. замедляет или ускоряет их ход. Данная опция указывает на то, что подстройка должна применяться в любом случае, даже если значение ошибки очень велико.

• -b. Данная опция указывает на то, что даже при малом значении ошибки должно устанавливаться новое показание часов.

• версия. С помощью этой опции вы можете указать программе версию NTP для использования.

• число_показаний_времени. В обычных условиях ntpdate устанавливает системные часы на основании четырех показаний времени, полученных с сервера.

С помощью данной опции вы можете увеличить или уменьшить это значение (но оно должно оставаться в диапазоне от 1 до 8).

• -q. При указании опции -q программа опрашивает сервер, не изменяя значение системного времени. В этом случае сервер не возвращает данные в формате, удобном для восприятия; результаты опроса могут быть использованы для вычисления времени задержки при взаимодействии с сервером.

• -s. Данная опция применяется при запуске программы с помощью инструмента cron.

• -u. В обычных условиях ntpdate использует при передаче пакетов стандартный порт 123. С помощью этой опции вы можете указать на необходимость применения непривилегированного порта (с номером выше 1024). В некоторых случаях это приходится делать при работе через брандмауэр.

После запуска программа ntpdate выводит различные статические данные, в частности, уровень сервера, используемого для синхронизации, смещение и задержку. Если при выполнении программы не возникнет ошибка и если при ее вызове не была задана опция -q, ntpdate скорректирует показания системных часов, установив новое значение либо выполнив их подстройку.

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

Внимание

Если вы используете для синхронизации времени общедоступный сервер, не планируйте вызов ntpdate на полуночь. Почему-то многие администраторы считают, что полночь — наилучшее время для коррекции системных часов, в результате в это время на сервер обрушивается лавина запросов. Указывайте для вызова ntpdate любое другое подходящее время, например 1:23 или 3:48. Это обеспечит более равномерную нагрузку на сервер, а ваша служба времени будет работать более точно и надежно, так как при обращении к серверу не возникнут непредвиденные задержки.

Оглавление книги


Генерация: 1.260. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз