Брал версию 5.90, полная реализация RFC-1305 (NTP, версия 3) с дополнительными возможностями предполагаемыми к включению в версию 4. Последняя реализация: xntp3-5.93e (на 6 октября 1999). Версия для использования в США с шифровкой и экспортный вариант. Готовится версия 4.
Где взять: ftp://ftp.udel.edu/pub/ntp
позволяет также конфигурировать на ходу (обязательно д.б. включена шифровка)
Руководство по установке:
http://www.eecis.udel.edu/~ntp/database/html_xntp3-5.90/build.html
а также файл INSTALL
Сначала надо
выполнить
./configure --disable-all-clock --enable-LOCAL-CLOCK
-делает config.h и Makefile в каждой
поддиректории, драйверы
аппаратных часов
отключить
make (не забудь добавить /usr/ccs/bin к PATH)
make check
make install (из-под
суперпользователя)
make clean
Приходит в готовом виде (/etc/ntp.conf, /etc/ntp/, /etc/rc.d/init.d/xntpd, /usr/doc/xntp3-5.93/, /usr/sbin/{ntpdate, ntpq, ntptime, ntptrace, tickadj, xntpd, xntpdc}). В /etc/ntp/step-tickers положить список опорных NTP-серверов. Для автоматического запуска/остановки /etc/rc.d/rc{2,3}.d сделать линки с {K,S}31xntpd на ../init.d/xntpd. Настроить /etc/ntp.conf. Подстроить часы вручную (лучше дождаться завершения ntpdate -B).
Перед запуском местное время не должно ошибаться больше, чем на 1000 секунд (CLOCK_WAYTOOBIG), round-trip delay д.б. меньше 1 секунды, ошибка частоты д.б. меньше 390 ppm.
по умолчанию ставится ignore и ntpport для собственных адресов (чтобы не синхронизоваться с собой), не очень надежное средство, лучше использовать аутентификацию.
Не забудь разрешить вход на порты ntp (UDP/123) для всех хостов, на которых работает ntp-сервера, питаемые снаружи.
Для тех
компьютеров, на которых точное (30мс) время не так
важно, можно не занимать ОЗУ
громадным xntpd (2 MB), а
запускать каждый час:
ntpdate -B ntp ntp2 ntp3
Надо сделать tickadj -s (оторвать системные часы от батареечных) перед запуском xntpd.
Запуск (Solaris 2.5):
/etc/rc2.d/S99xntpd
#!/bin/sh
if [ $1 = "start" ]; then
if [ -x /usr/local/bin/xntpd ]; then
echo "Starting NTP daemon, takes about 1 minute... "
# The following line is unnecessary if you turn off
# dosynctodr in /etc/system.
/usr/local/bin/tickadj -s
/usr/local/bin/ntpdate -v server1 server2
sleep 60
/usr/local/bin/xntpd
fi
else
if [ $1 = "stop" ]; then
pid=`/usr/bin/ps -e | /usr/bin/grep xntpd | /usr/bin/sed -e 's/^*//' -e 's/ .*//'`
if [ "${pid}" != "" ]; then
echo "Stopping Network Time Protocol daemon "
/usr/bin/kill ${pid}
fi
fi
fi
Проблема. Время от времени опорные NTP-сервера перестают нас обслуживать. xntpd переводит их при этом в стратум-0 и синхронизуется черт знает с чем. Необходим автоматический отлов этой ситуации.