Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Служба точного времени

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Источник: http://wiki.lissyara.su/wiki/Ntp
Правки: RemiZOffAlex
Дата последнего обновления: 17 июля 2013


Содержание

[править] Установка

[править] Arch Linux

# pacman -S ntp
resolving dependencies...
looking for inter-conflicts...

Packages (1): ntp-4.2.6.p5-14

Total Download Size:    0.45 MiB
Total Installed Size:   1.55 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages ...
 ntp-4.2.6.p5-14-x86_64                                   464.2 KiB   300K/s 00:02 [###############################################] 100%
(1/1) checking keys in keyring                                                     [###############################################] 100%
(1/1) checking package integrity                                                   [###############################################] 100%
(1/1) loading package files                                                        [###############################################] 100%
(1/1) checking for file conflicts                                                  [###############################################] 100%
(1/1) checking available disk space                                                [###############################################] 100%
(1/1) installing ntp                                                               [###############################################] 100%

[править] openSUSE

# zypper install ntp

[править] Настройка

NTP сервера
Адрес Порт Уровень Устройство Доступ
ntp1.vniiftri.ru IPv4 UDP 123 stratum 1 Meinberg LANTIME M300/MRS свободный
ntp2.vniiftri.ru IPv4 UDP 123 stratum 1 Meinberg LANTIME M300/MRS свободный
ntp3.vniiftri.ru IPv4 UDP 123 stratum 1 Meinberg LANTIME M300/MRS свободный
ntp4.vniiftri.ru IPv4 UDP 123 stratum 1 MEINBERG LANTIME Version: 3.05 свободный
ntp21.vniiftri.ru IPv4 UDP 123 stratum 2 Linux kernel 2.6.32. ntpd 4.2.4p8 Intel Xeon свободный

[править] Установка часового пояса

[править] Linux

# tzsetup 
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 8
Please select a country.
 1) Aaland Islands        18) Greece                35) Norway
 2) Albania               19) Guernsey              36) Poland
 3) Andorra               20) Hungary               37) Portugal
 4) Austria               21) Ireland               38) Romania
 5) Belarus               22) Isle of Man           39) Russia
 6) Belgium               23) Italy                 40) San Marino
 7) Bosnia & Herzegovina  24) Jersey                41) Serbia
 8) Britain (UK)          25) Latvia                42) Slovakia
 9) Bulgaria              26) Liechtenstein         43) Slovenia
10) Croatia               27) Lithuania             44) Spain
11) Czech Republic        28) Luxembourg            45) Sweden
12) Denmark               29) Macedonia             46) Switzerland
13) Estonia               30) Malta                 47) Turkey
14) Finland               31) Moldova               48) Ukraine
15) France                32) Monaco                49) Vatican City
16) Germany               33) Montenegro
17) Gibraltar             34) Netherlands
#? 39
Please select one of the following time zone regions.
1) Moscow-01 - Kaliningrad             10) Moscow+05 - Lake Baikal
2) Moscow+00 - west Russia             11) Moscow+06 - Lena River
3) Moscow+00 - Caspian Sea             12) Moscow+06 - Tomponsky, Ust-Maysky
4) Moscow+00 - Samara, Udmurtia        13) Moscow+07 - Amur River
5) Moscow+02 - Urals                   14) Moscow+07 - Sakhalin Island
6) Moscow+03 - west Siberia            15) Moscow+07 - Oymyakonsky
7) Moscow+03 - Novosibirsk             16) Moscow+08 - Magadan
8) Moscow+03 - Novokuznetsk            17) Moscow+08 - Kamchatka
9) Moscow+04 - Yenisei River           18) Moscow+08 - Bering Sea
#? 2

The following information has been given:

        Russia
        Moscow+00 - west Russia

Therefore TZ='Europe/Moscow' will be used.
Local time is now:      Wed Jun 26 21:18:51 MSK 2013.
Universal Time is now:  Wed Jun 26 17:18:51 UTC 2013.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
        setenv TZ 'Europe/Moscow'
to the file '.login' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Europe/Moscow

[править] FreeBSD

И так, есть FreeBSD с которой идет ntpd. Для начала указываем часовой пояс.

# tzsetup Europe/Moscow

И синхронизируем время ручками.

# ntpdate ntp1.vniiftri.ru

Создаем drift - файл в котором храниться информация о смещении времени локальной машины относительно серверов точного времени.

# touch /etc/ntp/drift

[править] ntp.conf

Теперь приступим к написанию главного конфигурационного файла ntpd

[править] Linux

Code: /etc/ntp.conf
server ntp1.vniiftri.ru iburst prefer
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst

restrict default nomodify nopeer noquery
restrict 127.0.0.1

restrict ntp1.vniiftri.ru
restrict ntp2.vniiftri.ru
restrict ntp3.vniiftri.ru
restrict ntp4.vniiftri.ru
}}

==== [[FreeBSD]] ====

{{Code|/etc/ntp.conf|<pre>
#добавляем сервера, с которыми будет проводиться синхронизация
server ntp1.vniiftri.ru iburst prefer
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst
 
#путь к дрифт файлу
driftfile /etc/ntp/drift
#лог
logfile /var/log/ntp.log
 
#разрешаем обновляться только локальной сети
restrict default ignore
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict ntp1.vniiftri.ru
restrict ntp2.vniiftri.ru
restrict ntp3.vniiftri.ru
restrict ntp4.vniiftri.ru


Опция iburst позволяет ntpd ускорить начальный процесс синхронизации, prefer - отмечает предпочитаемый сервер.

[править] Логирование

[править] Arch Linux

Arch Linux:Система логирования

[править] FreeBSD

FreeBSD:Система логирования

По умолчанию лог ntpd имеет имя ntp.log и находится в папке /var/log. Для того, чтобы newsyslog(8) выполнял его ротацию, необходимо добавить в файл /etc/newsyslog.conf строку:

/var/log/ntp.log			644 3 128	* J

[править] Файервол

[править] Linux

[править] FreeBSD

Разрешаем клиентам обновляться от себя в качестве сервера:

# ipfw add add pass udp from 192.168.0.1/24 to me 123 in via re0
# ipfw add add pass udp from me 123 to 192.168.0.1/24 out via re0

Разрешаем себе синхронизацию с серверами:

# ipfw add add pass udp from me to any 123 out via re1
# ipfw add add pass udp from any 123 to me in via re1

[править] Использование

Конфиг готов, теперь добавляем в rc.conf следующие строчки:

# ee /etc/rc.conf
ntpd_enable="YES"

И стартуем демон:

# /etc/rc.d/ntpd start

Ждем порядка 2 минут.

Теперь можно проверить состояние синхронизации:

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.vniiftri.r .PPS.            1 u    -  256  377    7.917    3.725   0.667
-ntp2.vniiftri.r .PPS.            1 u  117  256  377    7.937    2.799   3.380
+ntp3.vniiftri.r .PPS.            1 u   87  256  377    8.034    3.840   0.680
+ntp4.vniiftri.r .PPS.            1 u  110  256  377    8.104    2.959   0.521

Тут остановимся по-подробнее.

Параметры и значения синхронизации
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 смещение времени на удаленном сервере

Теперь немного о значках, следа от имени пира:

* пир, с которым последний раз у нас была выполнена синхронизация
+ "хороший" (пригодный для обновления) сервер
- "плохой" (непригодный для обновления) сервер
х сервер не отвечает

Узнать, пригоден ли наш сервер для синхронизации, а также узнать некоторые его данные можно следующей командой:

# ntpdate -q localhost

В ответ должны получить что-то подобное:

Looking for host localhost and service ntp
host found : localhost
server 127.0.0.1, stratum 3, offset 0.000003, delay 0.02573
17 Nov 15:28:54 ntpdate[4918]: adjust time server 127.0.0.1 offset 0.000003 sec

Этот ответ означает, что наш сервер пригоден для синхронизации, его страта равна трем, смещение - 0.000003 а задержка при ответе равна 0.02573.

Аналогичной командой можно узнать эти параметры на удаленном сервере:

# ntpdate -q ntp1.vniiftri.ru
server 62.117.76.142, stratum 1, offset 0.002487, delay 0.03352
29 Oct 02:28:14 ntpdate[9245]: adjust time server 62.117.76.142 offset 0.002487 sec

Ниже приведен пример ответа сервера, непригодного для синхронизации:

server 62.117.76.142, stratum 1, offset 0.002487, delay 0.03352
29 Oct 02:28:14 ntpdate[9245]: no server suitable for synchronization found

В /var/log/ntp.log должны быть сообщения аналогичные нижеприведенным:

28 Oct 20:34:56 ntpd[6558]: synchronized to 62.117.76.142, stratum 1
28 Oct 20:35:09 ntpd[6558]: synchronized to 62.117.76.138, stratum 1
28 Oct 20:37:01 ntpd[6558]: synchronized to 62.117.76.142, stratum 1

Каждая запись соответствует успешной синхронизации с удаленным сервером.

В случае, если после запуска ntpd он только 1 раз синхронизируется с удаленным сервером а синхронизация не наблюдается, лог выглядит так:

17 Nov 15:47:17 ntpd[5059]: synchronized to 91.198.10.4, stratum=2
17 Nov 15:47:17 ntpd[5059]: kernel time sync disabled 0041
17 Nov 15:47:21 ntpd[5059]: kernel time sync enabled 0001

[править] Ссылки

Более подробно о настройке, мониторинге и траблшутинге ntpd можно почитать в следующих pdf'ках от SUN: