На Hyper-v моя Freebsd резво убегает вперед, на несколько часов в день, поэтому решено настроить синхронизацию времени с внешними серверами, выбрал Саратовские).
В данной статье научимся с вами настраивать ntp клиент и сервер на примере freebsd (FreeBSD vpn 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64)
1) Выставляем нужный часовой пояс (например, Москва)
portsnap fetch update
cd /usr/ports/misc/zoneinfo && make install clean
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
2) Для включения ntpdate во время загрузки добавим в файл /etc/rc.conf строки
ntpdate_enable=»YES»
ntpdate_flags=»-b 0.europe.pool.ntp.org 1.europe.pool.ntp.org 2.europe.pool.ntp.org»
3) В /etc/ntp.conf приводим к виду
restrict 127.0.0.1
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap
restrict 172.16.0.0 mask 255.255.0.0 nomodify notrap
restrict default ignore
erver ntp5.stratum2.ru burst
server ntp1.stratum2.ru burst
server 2.europe.pool.ntp.org iburst
server 3.europe.pool.ntp.org iburst
driftfile /var/db/ntp.drift
logfile /var/log/ntp.log
,где iburst — параметр позволяет ntpd ускорить начальный процесс синхронизации;
burst — указывает ntpd посылать 8 пакетов вместо одного
restrict 192.168.0.0 mask 255.255.0.0 — Если вы хотите разрешить синхронизировать свои часы с вашим сервером только машинам в вашей подсети;
nomodify notrap — запретить им настраивать сервер или быть равноправными участниками синхронизации времени;
4) Создадим файл ntp.drift и ntp.log
touch /var/db/ntp.drift
touch /var/log/ntp.log
Ntpd использует его для автоматической компенсации естественного смещения часов, позволяя ему поддерживать достаточно правильную настройку, даже если он на некоторый период отключается от внешнего источника информации о времени.
5) Для запуска NTP при загрузке добавить в файл /etc/rc.conf строки
ntpd_enable="YES" # запускать (или NO) нет ntpd_config="/etc/ntp.conf" # путь к файлу настроек ntpd_sync_on_start="YES" # включить синхронизацию времени при загрузке
6) Что бы разрешить синхронизироваться с этой машины нужно в файле /etc/ntp.conf прописать
restrict default ignore
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Разрешит синхронизацию с IP-адресов 192.168.1.1 — 254 и 127.0.0.1
7) Запускаем ntpd
/etc/rc.d/ntpd start
8) Для проверки состояния синхронизации набираем
ntpq -p
и видим примерно следующее:
remote refid st t when poll reach delay offset jitter ============================================================================== *40.118.103.7 132.163.4.103 2 u 202 1024 377 73.810 34.115 43.457 +ru-led.v4v6.net 130.173.91.58 2 u 666 1024 373 58.615 39.830 76.547 +ntp1.ivlan.net 89.109.251.21 2 u 499 1024 377 142.480 -0.170 68.986 +lan.forstwoof.r 89.109.251.21 2 u 298 1024 377 73.709 32.586 41.680
remote — имена удаленных ntp серверов (в нашем случае полученные из пулов 0/1/2/3.ua.pool.ntp.org)
refid — сервер, с которым производит синхронизацию удаленный сервер ntp
st — стратум (уровень) удаленного сервера. 1 — самый высокий, эти сервера для вычисления точного времени используют специальное дорогостоящее оборудование; 16 — рядовая машина/клиент.
t — тип пира (u = unicast, m = multicast)
when — указывает на то, как давно была произведена синхронизация с сервером
poll — частота в секундах, с которой NTP демон синхронизируется с пиром
reach — состояние доступности сервера, это значение стабилизируется на уровне 377 если последних 8 попыток синхронизации с удаленным сервером были успешны
delay — он и в Африке delay — задержка (в миллисекундах) ответа от сервера
offset — разница в миллисекундах между системным временем и временем удаленного сервера; значение с минусом — отставание, с плюсом — наши часики спешат
jitter — смещение времени на удаленном сервере
Теперь немного о значках, следа от имени пира:
«*» — пир, с которым последний раз у нас была выполнена синхронизация
«+» — «хороший» (пригодный для обновления) сервер
«-» — «плохой» (непригодный для обновления) сервер
«х» — сервер не отвечает
9) Узнать, пригоден ли наш сервер для синхронизации, а также некоторые его данные можно командой
ntpdate -q localhost
и видим примерно следующее
server 127.0.0.1, stratum 3, offset 0.000004, delay 0.02567
server ::1, stratum 3, offset 0.000018, delay 0.02570
28 Dec 13:31:51 ntpdate[13707]: adjust time server 127.0.0.1 offset 0.000004 sec
Этот ответ означает, что наш сервер пригоден для синхронизации, его страта равна трем, смещение — 0.02567 а задержка при ответе равна 0.02570
10) В ntp.conf стоит добавить опцию burst
server 0.europe.pool.ntp.org iburst burst
server 1.europe.pool.ntp.org iburst burst
server 2.europe.pool.ntp.org iburst burst
server 3.europe.pool.ntp.org iburst burstdriftfile /var/db/ntp.drift
logfile /var/log/ntp.log
Опция burst, указывает ntpd посылать 8 пакетов вместо одного для попытки синхронизации, что повышает шансы на успешную синхронизацию.
11) Настройка клиентов на синхронизацию с нашим сервером (192.168.1.1).
В случае с клиентом под FreeBSD в /etc/ntp.conf пишем
server 192.168.1.1 iburst
driftfile /etc/ntp/drift
logfile /var/log/ntp.log
restrict default ignore
restrict 192.168.1.1