Настройка NTP сервера в локальной сети

Раздел: FreeBSD
Написано: 15.04.2012
Автор: Antonio

Делал проверку своих сервисов, решил написать заметку Как настраивать NTP сервер для синхронизации времени компьютеров в локальной сети.
Если у вас в локальной сети более 10 компьютеров и есть на чем развернуть сервер времени, то почему бы и нет?

NTP

У нас есть FreeBSD — интернет-шлюз, файловый сервер, DNS, VPN, локальный сайт, теперь еще сделаем NTP сервер или проще говоря сервер времени.

По-умолчанию FreeBSD уже содержит все необходимое, остается только настроить.

1. Заносим данные для автозапуска сервера NTP в

ee /etc/rc.conf
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_config="/etc/ntp/ntp.conf"
ntpd_sync_on_start="YES"
ntpd_flags="-p /var/run/ntpd.pid"

Этим мы задаем, что сервис разрешен, нужно стартовать и синхронизировать при старте, собственно где находится исполняемый файл, его файл конфигурации и пид файл (который содержит номер процесса для перезапуска или остановки ntpd)

Далее нам нужно создать и наполнить файл конфигурации ntp.conf

ee /etc/ntp/ntp.conf
# указываем сервера точного времени
server 78.152.160.1 iburst prefer
server 178.150.103.191 iburst
server 91.198.10.20 iburst
server 89.209.81.54 iburst
server 94.158.46.253 iburst
 
# задаем где хранится файл с информацией о смещении времени
# локального сервера относительно серверов точного времени
driftfile /var/db/ntp.drift
# место где хранится лог-файл
logfile /var/log/ntp.log
 
# раздаем доступы и ограничения
# по умолчанию никому ничего
restrict default ignore
# в локальном сервере можно все
restrict 127.0.0.1
 
# разрешаем синхронизироваться с удаленными серверами
restrict 78.152.160.1 noquery notrap
restrict 178.150.103.191 noquery notrap
restrict 91.198.10.20 noquery notrap
restrict 89.209.81.54 noquery notrap
restrict 94.158.46.253 noquery notrap
 
# наша сеть может только принимать точное время
restrict 10.0.0.0 mask 255.255.248.0 nomodify notrap

Внимание! Сервера задаю по IP, по имени работало не очень хорошо, тем более что я перед тем как их указывать проверил время доступа и стратум.

Создаем файл ntp.drift (лог файл процесс может создать сам)

touch /var/db/ntp.drift

Добавляем в фаерволл (ipfw) разрешение для 123 порта протокола UDP

ipfw add allow udp from any to any 123

Запускаем ntpd (чтобы не перезагружаться)

/etc/rc.d/ntpd start

После запуска ждем около 10 минут! (необходимо время для синхронизации)
И можно проверить список наших «доноров» (командой в консоли ntpq -p)

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*infocom.km.ua   62.149.0.30      2 u  490 1024  377   45.930  -16.149  21.967
+191.103.150.178 62.149.0.30      2 u  769 1024  377   64.991   -6.117   1.788
+shkvoren.tntu.e 62.149.0.30      2 u  645 1024  377   70.006   -7.799   0.304
+otrada.od.ua    32.246.249.54    2 u  521 1024  377   90.805    1.578  12.525
+jason-freebsd.l 81.17.128.133    2 u  507 1024  377   80.592   -4.894   3.034

Если стратум везде 2, то замечательно, бывает что сервер плохой или недоступен, то стратум (колонка st) станет 16.

Можно проверить наш сервер, для этого выполним (вместо 10.0.0.1 поставим свой IP адрес, который будет задаваться для компьютеров в локальной сети)

ntpdate -q 10.0.0.1
server 10.0.0.1, stratum 3, offset -0.000000, delay 0.02565
15 Apr 12:09:27 ntpdate[95916]: adjust time server 10.0.0.1 offset -0.000000 sec

Порядок.

Еще я присвоил в своем DNS запись time.windows.com = 10.0.0.1
таким образом не пришлось перенастраивать компьютеры с Windows (они по-умолчанию начали синхронизироваться с локальным сервером времени).

Можно сделать ротацию логов, но суда по тому насколько там мало записей, можно не ротироваться лет 50.

В ходе настройки вы можете сталкиваться с предупреждениями
ntpd : no IPv6 interfaces found
похоже что отключить шестой IP можно только при установке из порта (там есть опция [ ] IPV6 Enable IPv6)

ntpd как указать только ip
не понятно как заставить демона ntpd прослушивать только определенные IP
обычно решают настройками фаерволла

ntpd включить режим отладки
указать флаг -d (Specify debugging mode, но должна быть поддержка (по-умолчанию не включена))

Frequency format error in /var/db/ntp.drift
когда файл ntp.drift пустой, то может выводиться такое сообщение

ntpd Bad file descriptor
когда файла ntp.drift не существует (обычно путают путь к файлу в конфиге ntp.conf)

in_classd=0 flags=0 fails: Address already in usepid
ntpd: bind() fd 11, family 2, port 123, addr
с этим не совсем понятно ругается как будто порт уже занят, но sockstat | grep ‘123’ до запуска не показывал открытых портов

Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com