У цій статті навчимося з вами налаштовувати ntp клієнт та сервер на прикладі freebsd 10
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 приводимо до вигляду
server 0.europe.pool.ntp.org iburst server 1.europe.pool.ntp.org iburst 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 прискорити початковий процес синхронізації.
4) Створимо файл ntp.drift та ntp.log
touch /var/db/ntp.drift touch /var/log/ntp.log
Ntpd використовує його для автоматичної компенсації природного зміщення годинника, дозволяючи йому підтримувати досить правильне налаштування, навіть якщо він на деякий період відключається від зовнішнього джерела інформації про час.
5) Для запуску NTP при завантаженні додати файл /etc/rc.conf рядки
sysrc ntpd_enable="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 ================================================== ============================ 0.freebsd.pool. .POOL. 16 p - 64 0 0.000 0.000 0.000 +btr.skif.com.ua 62.149.0.30 2 u 17 64 377 8.671 21.958 1.479 -tgr1.komitex.ne 62.149.0.30 2 u 16 64 377 0.772 24.008 2.574 -magnat.ip-conne 193.190.230.65 2 u 17 128 177 17.254 19.096 7.318 *ntp.exact-time. . GPS. 1 u 62 64 377 9.221 23.474 2.253 +134.249.140.99. PPS. 1 u - 64 377 19.733 33.323 2.367
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 burst driftfile /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