Синхронизация времени контроллера Wiren Board 6 с локальным сервером времени

Синхронизация времени контроллера Wiren Board 6 с локальным сервером времени

Доброго времени суток!

Задача: настроить контроллер WB6, чтоб он синхронизировал время с локальным сервером, например, 10.0.8.10 (Windows 10). На локальном сервере развернут ntp-server (стандартная служба - w32tm)

В локальной сети нет доступа в интернет, поэтому контроллер не может синхронизировать время способом по умолчанию через пул серверов debian.pool.ntp.org

Настройки в web-интерфейсе контроллера:
{
“type”: “server”,
“address”: “10.0.8.10”,
“iburst”: true
}

Содержание файла /etc/ntp.conf

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.

#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable

filegen peerstats file peerstats type day enable

filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).

#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will

# pick a different set every time it starts up. Please consider joining the

# pool: <http://www.pool.ntp.org/join.html>

server 10.0.8.10 iburst

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for

# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>

# might also be helpful.

#

# Note that "restrict" applies to both servers and clients, so a configuration

# that might be intended to block requests from certain clients could also end

# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.

restrict -4 default kod notrap nomodify nopeer noquery limited

restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.

restrict 127.0.0.1

restrict ::1

# Needed for adding pool entries

restrict source notrap nomodify noquery

# Clients from this (example!) subnet have unlimited access, but only if

# cryptographically authenticated.

#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.

# (Again, the address is an example only.)

#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the

# next lines. Please do this only if you trust everybody on the network!

#disable auth

#broadcastclient

Контроллер видит ntp сервер, видит расхождение по времени (offset), но время не синхронизирует:
wb6

Подскажите пожалуйста, что сделано не так?

Добрый день!

А что выдаёт systemctl status ntp
?

root@wirenboard-AUSN3D5D:~# systemctl status ntp

● ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
Active: active (running) since Tue 2016-11-08 19:58:37 UTC; 17h ago
Docs: man:systemd-sysv-generator(8)
Process: 2833 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/ntp.service
└─3171 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 101:103

Nov 08 19:58:32 wirenboard-AUSN3D5D systemd[1]: Starting LSB: Start NTP daemon…
Nov 08 19:58:37 wirenboard-AUSN3D5D ntp[2833]: Starting NTP server: ntpd.
Nov 08 19:58:37 wirenboard-AUSN3D5D systemd[1]: Started LSB: Start NTP daemon.

Добрый день!

Кажется, у вас слишком большое расхождение между локальным временем и сервером (больше 1000 с), и поэтому ntp отказывается синхронизировать время: https://askubuntu.com/a/443077
Попробуйте вручную изменить время на более точное.

В данном описании серверном выступает машина с другим адресом: 10.0.8.17

Действовал по инструкции:
Пробовал выставлять время в ручную командой date MMDDhhmmCCYY.ss
где MM —месяц, DD — день, hh — часы, mm — минуты, CCYY — год (вводим так – хххх), ss — секунды. Обязательно МесяцДеньЧасМинута, остальное [MMDDhhmm[[CC]YY][.ss]] не обязательно.

Например
date 12021129
Согласно рекомендации, проверил наличие опции–g в файле /etc/default/ntp. Она там уже была установлена.
image
В файле /etc/ntp.conf второй строкой написалtinker panic 0, чтоб не реагировал на порог в 1000с. Результат:

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

tinker panic 0

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.

#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable

filegen peerstats file peerstats type day enable

filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).

#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will

# pick a different set every time it starts up. Please consider joining the

# pool: <http://www.pool.ntp.org/join.html>

server 10.0.8.17 iburst

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for

# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>

# might also be helpful.

#

# Note that "restrict" applies to both servers and clients, so a configuration

# that might be intended to block requests from certain clients could also end

# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.

restrict -4 default kod notrap nomodify nopeer noquery limited

restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.

restrict 127.0.0.1

restrict ::1

# Needed for adding pool entries

restrict source notrap nomodify noquery

# Clients from this (example!) subnet have unlimited access, but only if

# cryptographically authenticated.

#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.

# (Again, the address is an example only.)

#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the

# next lines. Please do this only if you trust everybody on the network!

#disable auth

#broadcastclient

Затем, проверял время – и безрезультатно. Синхронизации не происходило.

Вот, чего удалось добиться потом:
Пробовал выставлять время в ручную командой date.
Затем, выполнял команду
hwclock --systohc
которая устанавливает RTC из системного времени.
После чего проверял состояние получения эталонного времени командой
ntpq –p
И получал либо отставание, либо опережение, хотя время выставлялось с точностью до минут.

 remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u    3   64  377    1.451  2449.98 31744.9
 remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u   36   64  377    1.595  -5713.7 25964.9

Выполнение команды для проверки отдави времени сервером выдавало следующее сообщение:

root@wirenboard-AUSN3D5D:~# ntpdate 10.0.8.17

 2 Dec 13:24:18 ntpdate[21455]: the NTP socket is in use, exiting

Тогда, как рекомендуется, отключил сервис ntpd командой service ntp stop.
Правда, в этом случае нельзя выполнить команду для проверки состояния получения эталонного времени – выдает ошибку:

root@wirenboard-AUSN3D5D:~# ntpq -p
ntpq: read: Connection refused

И снова выполнил команду для проверки отдави времени сервером

root@wirenboard-AUSN3D5D:~# ntpdate 10.0.8.17

2 Dec 13:33:38 ntpdate[22163]: step time server 10.0.8.17 offset 2.529067 sec

Время, после этого синхронизировалось, так как это ручная разовая команда синхронизации времени.

Включил сервис ntpd командой service ntp start и выполнил команду получения эталонного времени несколько раз. И обнаружил, что время “уползает” или скачет – не совсем ясно. Отставание или опережение в десятки секунд.

root@wirenboard-AUSN3D5D:~# service ntp start
root@wirenboard-AUSN3D5D:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u    1   64    1    1.504   31.778   0.002
root@wirenboard-AUSN3D5D:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u   60   64    3    1.561   36.937   4.773
root@wirenboard-AUSN3D5D:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u    2   64    7    1.099   42.271   9.569
root@wirenboard-AUSN3D5D:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u   55   64  377    1.699  -30.003  46.555
root@wirenboard-AUSN3D5D:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ENG17.local     20.189.79.72     4 u   52   64  377    1.565  -40.403  46.534

И так далее.

Как избежать “ручной” синхронизации, чтоб это происходило автоматически? Как можно добиться более точной синхронизации и избавится от “уползания” времени?

Появились какие-нибудь идеи или рекомендации?

Не появились.
Насколько я вижу ситуацию, тут нет ничего специфического для Wiren Board 6, и это больше вопрос про настройку времени в Debian (в которой я разбираюсь не очень хорошо).
Можете попробовать выполнить полный сброс прошивки: https://wirenboard.com/wiki/index.php/Обновление_прошивки#.D0.A1.D0.B1.D1.80.D0.BE.D1.81_Wiren_Board_6_.D0.BA_.D0.B7.D0.B0.D0.B2.D0.BE.D0.B4.D1.81.D0.BA.D0.B8.D0.BC_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0.D0.BC, и посмотреть, останется ли проблема.