Time sync — различия между версиями
Andy (обсуждение | вклад) (→Общая информация) |
Andy (обсуждение | вклад) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 16: | Строка 16: | ||
== Конфигурирование chrony == | == Конфигурирование chrony == | ||
+ | Сервис <code>chronyd</code> читает конфигурационный файл <code>/etc/chrony.conf</code>. Заменим серверы точного времени по-умолчанию, на серверы | ||
+ | предоставляемые [http://www.vniiftri.ru/index.php/ru/services/22-ntp ФГУП «Всероссийский научно-исследовательский институт физико-технических и радиотехнических измерений»], в результате файл <code>/etc/chrony.conf</code> примет следующий вид: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# grep "^[^#]" /etc/chrony.conf | ||
+ | server ntp1.vniiftri.ru iburst | ||
+ | server ntp2.vniiftri.ru iburst | ||
+ | server ntp3.vniiftri.ru iburst | ||
+ | server ntp4.vniiftri.ru iburst | ||
+ | stratumweight 0 | ||
+ | driftfile /var/lib/chrony/drift | ||
+ | rtcsync | ||
+ | makestep 10 3 | ||
+ | bindcmdaddress 127.0.0.1 | ||
+ | bindcmdaddress ::1 | ||
+ | keyfile /etc/chrony.keys | ||
+ | commandkey 1 | ||
+ | generatecommandkey | ||
+ | noclientlog | ||
+ | logchange 0.5 | ||
+ | logdir /var/log/chrony | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Запуск ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# systemctl start chronyd | ||
+ | [root@vm-01 ~]# systemctl is-active chronyd.service | ||
+ | active | ||
+ | [root@vm-01 ~]# systemctl status -l chronyd | ||
+ | ● chronyd.service - NTP client/server | ||
+ | Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) | ||
+ | Active: active (running) since Mon 2018-03-12 10:10:47 MSK; 17s ago | ||
+ | Process: 18534 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) | ||
+ | Process: 18530 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS) | ||
+ | Main PID: 18532 (chronyd) | ||
+ | CGroup: /system.slice/chronyd.service | ||
+ | └─18532 /usr/sbin/chronyd | ||
+ | |||
+ | Mar 12 10:10:47 vm-01 systemd[1]: Starting NTP client/server... | ||
+ | Mar 12 10:10:47 vm-01 chronyd[18532]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +DEBUG +ASYNCDNS +IPV6 +SECHASH) | ||
+ | Mar 12 10:10:47 vm-01 chronyd[18532]: Frequency -4.154 +/- 0.091 ppm read from /var/lib/chrony/drift | ||
+ | Mar 12 10:10:47 vm-01 systemd[1]: Started NTP client/server. | ||
+ | Mar 12 10:10:52 vm-01 chronyd[18532]: Selected source 89.109.251.24 | ||
+ | Mar 12 10:10:53 vm-01 chronyd[18532]: Selected source 89.109.251.21 | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Проверка ==== | ||
+ | Для проверки запустим утилиту <code>timedatectl</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# timedatectl | ||
+ | Local time: Mon 2018-03-12 10:12:33 MSK | ||
+ | Universal time: Mon 2018-03-12 07:12:33 UTC | ||
+ | RTC time: Mon 2018-03-12 07:12:33 | ||
+ | Time zone: Europe/Moscow (MSK, +0300) | ||
+ | NTP enabled: yes | ||
+ | NTP synchronized: yes | ||
+ | RTC in local TZ: no | ||
+ | DST active: n/a | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Теперь посмотрим информацию, которая выдает утилита <code>chornyc</code> с опцией <code>tracking</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# chronyc tracking -v | ||
+ | Reference ID : 89.109.251.21 (ntp1.vniiftri.ru) | ||
+ | Stratum : 2 | ||
+ | Ref time (UTC) : Mon Mar 12 07:16:17 2018 | ||
+ | System time : 0.000026197 seconds fast of NTP time | ||
+ | Last offset : +0.000290393 seconds | ||
+ | RMS offset : 0.000422688 seconds | ||
+ | Frequency : 6.000 ppm slow | ||
+ | Residual freq : -3.410 ppm | ||
+ | Skew : 6.876 ppm | ||
+ | Root delay : 0.006987 seconds | ||
+ | Root dispersion : 0.001164 seconds | ||
+ | Update interval : 64.9 seconds | ||
+ | Leap status : Normal | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
== Конфигурирование ntpd == | == Конфигурирование ntpd == | ||
Строка 30: | Строка 110: | ||
подгонкой времени на 0.5 миллисекунд в секунду, для каждой следующей секундной подгонки требуется интервал в 2000 секунд, таким образом корректировка 600 секунд займет примерно 14 дней. Поскольку время | подгонкой времени на 0.5 миллисекунд в секунду, для каждой следующей секундной подгонки требуется интервал в 2000 секунд, таким образом корректировка 600 секунд займет примерно 14 дней. Поскольку время | ||
может меняться на клиентской машине как вперед, так и назад, то некоторое программное обеспечение может выдавать ошибки, в связи с резкой сменой времени. | может меняться на клиентской машине как вперед, так и назад, то некоторое программное обеспечение может выдавать ошибки, в связи с резкой сменой времени. | ||
+ | В конфигурационном файле изменим серверы точного времени на те, что предоставляются [http://www.vniiftri.ru/index.php/ru/services/22-ntp ФГУП «Всероссийский научно-исследовательский институт физико-технических и радиотехнических измерений»], в результате файл <code>/etc/ntp.conf</code> примет следующий вид: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# grep "^[^#]" /etc/ntp.conf | ||
+ | driftfile /var/lib/ntp/drift | ||
+ | restrict default nomodify notrap nopeer noquery | ||
+ | restrict 127.0.0.1 | ||
+ | restrict ::1 | ||
+ | server ntp1.vniiftri.ru iburst | ||
+ | server ntp2.vniiftri.ru iburst | ||
+ | server ntp3.vniiftri.ru iburst | ||
+ | server ntp4.vniiftri.ru iburst | ||
+ | includefile /etc/ntp/crypto/pw | ||
+ | keys /etc/ntp/keys | ||
+ | disable monitor | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | Доступ к демону <code>ntpd</code> регулируется списками доступа, указанными в директиве <code>restrict</code>, конфигурационного файла <code>/etc/ntp.conf</code>. | ||
+ | По-умолчанию запрещены: | ||
+ | # <code>nomodify</code> - попытки модифицировать состояние сервера (то есть переконфигурировать время) утилитами <code>ntpq</code> и <code>ntpdc</code> | ||
+ | # <code>notrap</code> - получения трапов, созданых утилитой <code>ntpdc</code> | ||
+ | # <code>nopeer</code> - попытки неатунтицированного обмена информацией | ||
+ | # <code>noquery</code> - попытки запросов не касающихся времени, при помощи утилит <code>ntpq</code> и <code>ntpdc</code> | ||
+ | Управление разрешается только с <code>localhost</code>'а по протоколам <code>ipv4</code> и <code>ipv6</code> | ||
+ | |||
+ | ==== Запуск ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# systemctl status -l ntpd | ||
+ | ● ntpd.service - Network Time Service | ||
+ | Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled) | ||
+ | Active: inactive (dead) | ||
+ | [root@vm-01 ~]# systemctl enable ntpd | ||
+ | Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service. | ||
+ | [root@vm-01 ~]# systemctl start ntpd | ||
+ | [root@vm-01 ~]# systemctl is-active ntpd | ||
+ | active | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Проверка ==== | ||
+ | Для проверки запустим утилиту <code>timedatectl</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# timedatectl | ||
+ | Local time: Wed 2018-03-07 12:54:33 MSK | ||
+ | Universal time: Wed 2018-03-07 09:54:33 UTC | ||
+ | RTC time: Wed 2018-03-07 09:54:33 | ||
+ | Time zone: Europe/Moscow (MSK, +0300) | ||
+ | NTP enabled: yes | ||
+ | NTP synchronized: yes | ||
+ | RTC in local TZ: no | ||
+ | DST active: n/a | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | Теперь посмотрим статистику, которая выдает утилита <code>ntpstat</code> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# ntpstat | ||
+ | synchronised to NTP server (89.109.251.21) at stratum 2 | ||
+ | time correct to within 3942 ms | ||
+ | polling server every 64 s | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | При необходимости раздавать точное время в локальной сети, следует открыть порт в файрволле: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# firewall-cmd --permanent --zone=public --add-port=123/udp | ||
+ | </syntaxhighlight> | ||
== Ссылки == | == Ссылки == | ||
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite Configuring NTP using chrony]<br /> | [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite Configuring NTP using chrony]<br /> | ||
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_ntpd Configuring NTP using ntpd]<br /> | [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_ntpd Configuring NTP using ntpd]<br /> |
Текущая версия на 10:17, 12 марта 2018
Содержание
Конфигурирование сервера точного времени
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion
,chorny
, либоntpd
иntpdate
Общая информация
Сервер точного времени необходим для определения точного времени наступления событий, которые будут записаны в журнал,
так же он чрезвычайно важен для системы билетов kerberos
, так как при расхождении времени между сервером и
клиентом kerberos
, больше чем в 5 минут, клиент билета не получит. При синхронизации времени,
разница между источником и клиетом хранится в так называемом driftfile
. При запуске системы, сервис точного
времени читает данный файл и корректирует время на клиенте, согласно разнице записанной в driftfile
.
Так же протокол точного времени вводит понятие stratum
. stratum
- это величина удаления от
атомных часов, градации 0-15
. Атомные часы, имеют stratum 0
, но они не имеют открытого доступа в интернет и все подключены
к серверам, раздающим точное время и имеющим stratum 1
.
Конфигурирование chrony
Сервис chronyd
читает конфигурационный файл /etc/chrony.conf
. Заменим серверы точного времени по-умолчанию, на серверы
предоставляемые ФГУП «Всероссийский научно-исследовательский институт физико-технических и радиотехнических измерений», в результате файл /etc/chrony.conf
примет следующий вид:
[root@vm-01 ~]# grep "^[^#]" /etc/chrony.conf
server ntp1.vniiftri.ru iburst
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
[root@vm-01 ~]#
Запуск
[root@vm-01 ~]# systemctl start chronyd
[root@vm-01 ~]# systemctl is-active chronyd.service
active
[root@vm-01 ~]# systemctl status -l chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-03-12 10:10:47 MSK; 17s ago
Process: 18534 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 18530 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 18532 (chronyd)
CGroup: /system.slice/chronyd.service
└─18532 /usr/sbin/chronyd
Mar 12 10:10:47 vm-01 systemd[1]: Starting NTP client/server...
Mar 12 10:10:47 vm-01 chronyd[18532]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +DEBUG +ASYNCDNS +IPV6 +SECHASH)
Mar 12 10:10:47 vm-01 chronyd[18532]: Frequency -4.154 +/- 0.091 ppm read from /var/lib/chrony/drift
Mar 12 10:10:47 vm-01 systemd[1]: Started NTP client/server.
Mar 12 10:10:52 vm-01 chronyd[18532]: Selected source 89.109.251.24
Mar 12 10:10:53 vm-01 chronyd[18532]: Selected source 89.109.251.21
[root@vm-01 ~]#
Проверка
Для проверки запустим утилиту timedatectl
:
[root@vm-01 ~]# timedatectl
Local time: Mon 2018-03-12 10:12:33 MSK
Universal time: Mon 2018-03-12 07:12:33 UTC
RTC time: Mon 2018-03-12 07:12:33
Time zone: Europe/Moscow (MSK, +0300)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
[root@vm-01 ~]#
Теперь посмотрим информацию, которая выдает утилита chornyc
с опцией tracking
:
[root@vm-01 ~]# chronyc tracking -v
Reference ID : 89.109.251.21 (ntp1.vniiftri.ru)
Stratum : 2
Ref time (UTC) : Mon Mar 12 07:16:17 2018
System time : 0.000026197 seconds fast of NTP time
Last offset : +0.000290393 seconds
RMS offset : 0.000422688 seconds
Frequency : 6.000 ppm slow
Residual freq : -3.410 ppm
Skew : 6.876 ppm
Root delay : 0.006987 seconds
Root dispersion : 0.001164 seconds
Update interval : 64.9 seconds
Leap status : Normal
[root@vm-01 ~]#
Конфигурирование ntpd
Сервис ntpd
читает конфигурационный файл /etc/ntp.conf
, однако
ключи, с которыми запускается демон находятся в файле /etc/sysconfig/ntpd
:
[root@vm-01 ~]# cat /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g"
[root@vm-01 ~]#
По-умолчанию, в нем находится опция -g
, которая разрешает один раз скорректировать время, если разница между источником и приемником составляет более 1000 секунд (без этого ключа,
ntpd
пишет сообщение в системный журнал и прекращает работу). Если после корректировки времени, разница все еще превышает 1000 секунд, ntpd
пишет сообщение в системный журнал и прекращает работу. В некоторых случаях, бывает полезно добавить опцию -x
которая, увеличивает шаг подгонки времени (по-умолчанию 128 миллисекунд) до 600 секунд, однако nix ядра ограничены
подгонкой времени на 0.5 миллисекунд в секунду, для каждой следующей секундной подгонки требуется интервал в 2000 секунд, таким образом корректировка 600 секунд займет примерно 14 дней. Поскольку время
может меняться на клиентской машине как вперед, так и назад, то некоторое программное обеспечение может выдавать ошибки, в связи с резкой сменой времени.
В конфигурационном файле изменим серверы точного времени на те, что предоставляются ФГУП «Всероссийский научно-исследовательский институт физико-технических и радиотехнических измерений», в результате файл /etc/ntp.conf
примет следующий вид:
[root@vm-01 ~]# grep "^[^#]" /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server ntp1.vniiftri.ru iburst
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
[root@vm-01 ~]#
Доступ к демону ntpd
регулируется списками доступа, указанными в директиве restrict
, конфигурационного файла /etc/ntp.conf
.
По-умолчанию запрещены:
-
nomodify
- попытки модифицировать состояние сервера (то есть переконфигурировать время) утилитамиntpq
иntpdc
-
notrap
- получения трапов, созданых утилитойntpdc
-
nopeer
- попытки неатунтицированного обмена информацией -
noquery
- попытки запросов не касающихся времени, при помощи утилитntpq
иntpdc
Управление разрешается только с localhost
'а по протоколам ipv4
и ipv6
Запуск
[root@vm-01 ~]# systemctl status -l ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@vm-01 ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@vm-01 ~]# systemctl start ntpd
[root@vm-01 ~]# systemctl is-active ntpd
active
[root@vm-01 ~]#
Проверка
Для проверки запустим утилиту timedatectl
:
[root@vm-01 ~]# timedatectl
Local time: Wed 2018-03-07 12:54:33 MSK
Universal time: Wed 2018-03-07 09:54:33 UTC
RTC time: Wed 2018-03-07 09:54:33
Time zone: Europe/Moscow (MSK, +0300)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
[root@vm-01 ~]#
Теперь посмотрим статистику, которая выдает утилита ntpstat
[root@vm-01 ~]# ntpstat
synchronised to NTP server (89.109.251.21) at stratum 2
time correct to within 3942 ms
polling server every 64 s
[root@vm-01 ~]#
При необходимости раздавать точное время в локальной сети, следует открыть порт в файрволле:
[root@vm-01 ~]# firewall-cmd --permanent --zone=public --add-port=123/udp