Назад | Перейти на главную страницу

Есть ли способ заставить ntpd итеративно обращаться к адресам серверов, указанным в файле ntp.conf?

Предположим, на машине есть файл ntp.conf, который выглядит следующим образом:

дрифтфайл <path-to-drift-file>
сервер <NTP-server-1>
сервер <NTP-server-2>
сервер <NTP-server-2>

По какой-то причине допустим, что сервер NTP не запускается при первом запросе ко всем серверам. Можем ли мы заставить ntpd повторно запрашивать эти источники (т.е. снова обращаться к серверу 1 с сервером 3 в цикле)? Как мы это делаем?

Изменить: есть ли способ количественно определить, какой сервер вызвал фактическую синхронизацию времени из списка серверов, указанного в ntp.conf на машине?

Все определенные серверы в /etc/ntp.conf используются для синхронизации времени. Нет необходимости в том, чтобы он «перебирал» серверы, поскольку алгоритм уже обрабатывает несколько источников.

Программа ntpd работает путем обмена сообщениями с одним или несколькими сконфигурированными серверами через определенные интервалы опроса.

Из: человек ntpd

Вы можете увидеть это, выполнив ntpq -p в командной строке, чтобы показать коллег и их статус.

Вы можете увидеть результат, как показано здесь:

  remote           refid      st when poll reach   delay  offset    disp
========================================================================
+128.4.2.6    132.249.16.1     2  131  256  373     9.89   16.28   23.25
*128.4.1.20   .WWVB.           1  137  256  377   280.62   21.74   20.23
-128.8.2.88   128.8.10.1       2   49  128  376   294.14    5.94   17.47
+128.4.2.17   .WWVB.           1  173  256  377   279.95   20.56   16.40

Вывод также поясняется на страницах руководства. Но со временем я собрал несколько заметок:

удаленный: узлы, указанные в файле ntp.conf
* = текущий источник времени
# = источник выбран, расстояние превышает максимальное значение
o = выбран источник, используется частота импульсов в секунду (PPS)
+ = источник выбран, включен в окончательный набор
x = исходный ложный тикер
. = источник выбран из конца списка кандидатов
- = источник отброшен кластерным алгоритмом
blank = источник отброшен высокий уровень, рассудок

исправлять: источник синхронизации удаленного источника

слой: stratum level источника

т: доступные типы
l = местный (например, GPS, WWVB)
u = одноадресная (наиболее распространенная)
m = многоадресная передача
b = трансляция
- = netaddr

когда: количество секунд, прошедших с момента последнего ответа

голосование: интервал опроса в секундах для источника

достичь: указывает на успех / неудачу в достижении источника, 377 все попытки успешны

задержка: указывает время приема-передачи в миллисекундах туда и обратно.

смещение: указывает разницу во времени в миллисекундах между клиентским сервером и источником.

дисп / джиттер: указывает разницу в миллисекундах между двумя выборками.

Наконец, чтобы ответить на последний вопрос;

Есть ли способ количественно определить, какой сервер вызвал фактическую синхронизацию времени из списка серверов, указанного в ntp.conf на машине?

Хост, обозначенный (*), является вашим текущим выбранным источником времени. Это может измениться во время опроса.

При запуске Ntpd опрашивает все настроенные серверы и выбирает тот, у которого самый низкий уровень. Если тот не сработает, он автоматически перейдет к следующему серверу. Так зачем вам это менять?

Википедия: Протокол сетевого времени - страты часов

Изменить: после проверки я нашел некоторую информацию о iburst параметр, который на самом деле предназначен для ускорения синхронизации часов. Разница здесь в том, что он заставит ntpd-сервер завершиться, когда он не сможет связаться ни с одним из серверов. Вы можете злоупотребить этим способом, чтобы убедиться, что экземпляр ntpd работает постоянно, например, используя сторожевой таймер или простой скрипт, время от времени запускаемый cron.

К сожалению, я не мог понять, как работает ntpd по умолчанию, когда сервер недоступен; хотя я нашел много ссылок о том, как он будет вести себя, когда серверы не разрешаются в DNS (например, эта ошибка) или когда интерфейс выходит из строя.