Сервер точного времени
Есть две утилитки:
1.ntpdate — служит для синхронизации времени при загрузке
2. демон ntpd — служит для постоянной синхронизации с серверами точного времени в инете, а так же для раздачи его другим машинам.
Для включения синхронизации во время загрузки добавим в файл /etc/rc.conf следующие строки:
1 2 | ntpdate_enable="YES" ntpdate_flags="-b ru.pool.ntp.org ru.pool.ntp.org ru.pool.ntp.org" |
Троекратное упоминание сервера ru.pool.ntp.org говорит об использовании трех разных серверов, включенных в пул серверов времени.
Настройка ntpd:
Создадим файлик /etc/ntp.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #Сервера, используемые для синхронизации server 0.ru.pool.ntp.org prefer server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org #Файл, который используется для хранения смещения частоты системных часов. Программа ntpd использует его для автоматической компенсации естественного смещения часов, позволяя ему поддерживать достаточно правильную настройку, даже если он на некоторый период отключается от внешнего источника информации о времени driftfile /var/log/ntp.drift #Лог logfile /var/log/ntp.log #Разрешаем обновляться только локалхосту и компьютерам локальной сети restrict default ignore restrict 10.73.0.0 mask 255.255.0.0 nomodify notrap restrict 127.0.0.1 #Разрешаем синхронизацию с удаленными серверами restrict 0.ru.pool.ntp.org restrict 1.ru.pool.ntp.org restrict 2.ru.pool.ntp.org restrict 3.ru.pool.ntp.org |
Опция prefer указывает предпочтительный сервер, опция iburst указывает ntpd ускорить начальный процесс синхронизации.
Создадим drift-файл
1 | touch /var/log/ntp.drift |
Некоторые не особо достоверные источники утверждают что дрифт-файл и лог-файл должны бытЬ в одной директории. Ничего по этому поводу не скажу, но на всякий случай поместим их в одну директорию :)
Многие другие источники утверждают что лучше использовать в конфиге ИП-адреса, вместо доменных имен. Возможно правы.
В rc.conf добавляем строки
1 2 3 | ntpd_enable="YES" ntpd_program="/usr/sbin/ntpd" ntpd_flags="-l /var/log/ntp.log -p /var/run/ntpd.pid -f /var/log/ntp.drift" |
Запускаем демон:
1 | /etc/rc.d/ntpd start |
Ждем минут 10 и проверяем
1 2 3 4 5 6 7 | # ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *ground.corbina. 193.79.237.14 2 u 4 512 377 85.473 2.124 0.940 +93.185.187.89 193.190.230.65 2 u 27 512 377 52.348 -14.038 1.642 mail.datatel.ru .INIT. 16 u 805 1024 0 0.000 0.000 4000.00 +hornet.itconnec 193.125.143.172 3 u 110 512 177 50.188 -28.313 4.331 |
Что то подобное мы увидим, если всё сделали правильно и всё работает.
Подробнее:
remote — имена удаленных ntp серверов (в нашем случае полученные из пулов 0/1/2/3.ru.pool.ntp.org)
refid — сервер, с которым производит синхронизацию удаленный сервер ntp
st — стратум (уровень) удаленного сервера. 1 — самый высокий, эти сервера для вычисления точного времени используют специальное дорогостоящее оборудование; 16 — рядовая машина/клиент.
t — тип пира (u = unicast, m = multicast)
when — указывает на то, как давно была произведена синхронизация с сервером
poll — частота в секундах, с которой NTP демон синхронизируется с пиром
reach — состояние доступности сервера, это значение стабилизируется на уровне 377 если последних 8 попыток синхронизации с удаленным сервером были успешны
delay — задержка (в миллисекундах) ответа от сервера
offset — разница в миллисекундах между системным временем и временем удаленного сервера; значение с минусом — отставание, с плюсом — наши часики спешат
jitter — смещение времени на удаленном сервере
Теперь немного о значках, следа от имени пира:
«*» — пир, с которым последний раз у нас была выполнена синхронизация
«+» — «хороший» (пригодный для обновления) сервер
«—» — «плохой» (непригодный для обновления) сервер
«х» — сервер не отвечает
Проверить профпригодность нашего сервера для синхронизации времени можно следующим образом
1 | ntpdate -q localhost |
Увидим нечто похожее
1 2 | server 127.0.0.1, stratum 3, offset 0.000001, delay 0.02567 27 Jul 17:18:18 ntpdate[87667]: adjust time server 127.0.0.1 offset 0.000001 sec |
Этот ответ означает, что наш сервер пригоден для синхронизации, его страта равна трем, смещение — 0.000001 а задержка при ответе равна 0.02567