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

ntp.conf пул против директив сервера

Я наткнулся на файл ntp.conf, в котором указаны директивы пула:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org

Тем не менее, он также содержит директивы сервера в том же файле, с которым я более знаком.

Читая о пуле, я вижу, что он предназначен для использования вместо сервера. Вы должны использовать одно или другое.

Однако что произойдет, если в ntp.conf есть и то, и другое? Один набор имеет приоритет над другим или будут использоваться все?

Это на Ubuntu 14.04, ntpd - это версия 4.2.6p5.

Ответ дал mboehn. Чтобы уточнить больше: см. документ, который он упомянул. Особенно последние строки:

Схема пула настраивается с помощью одной или нескольких команд пула с именами DNS, указывающими пул, из которого следует рисовать. Команду пула можно использовать более одного раза; обнаруживаются и отбрасываются дублирующиеся серверы. В принципе, можно использовать файл конфигурации, содержащий однострочный пул pool.ntp.org. Проект пула NTP предлагает инструкции при использовании пула с командой server, что не оптимально, но работает со старыми версиями ntpd, предшествующими команде pool. В недавнем ntpd рассмотрите возможность замены нескольких серверных команд в их примере одной командой пула

Моя конфигурация:

# Specify one or more NTP servers.
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst

# Provide your current local time as a default should you temporarly lose Internet connectivity
server 127.127.1.0
fudge 127.127.1.0 stratum 10

Теперь у меня есть несколько серверов ntp рядом с моим географическим местоположением (Нидерланды), когда я проверяю

$ ntpq -4np

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 127.127.1.0     .LOCL.          10 l    -   64    0    0.000    0.000   0.000
-85.255.214.66   193.190.230.66   2 u    5   64  177    6.937    1.588   1.645
-5.39.184.5      91.148.192.49    3 u   64   64   77    8.907    1.197   1.635
-91.198.87.229   193.79.237.14    2 u    5   64  177    8.447   -0.042   0.894
+37.34.57.151    193.79.237.14    2 u    1   64  177    7.463    0.168   0.297
*91.198.87.118   192.87.110.2     2 u    2   64  177    8.593    0.070   0.384
+88.159.1.197    80.94.65.10      2 u    2   64  177   10.497    0.454   0.213
+213.154.236.182 213.136.0.252    2 u   67   64   77    8.793    0.455   2.391
#178.21.23.127   91.121.157.10    3 u   66   64   77    9.129   -0.911   1.541
#213.109.127.195 193.79.237.14    2 u   66   64   77   11.766   -7.330   1.501
+213.154.229.24  80.50.231.226    2 u    4   64  177    8.496    0.121   0.538
-217.77.132.1    213.136.0.252    2 u    2   64  177    7.026   -0.782   1.253
#87.253.148.92   195.13.1.153     3 u    4   64  177    7.338   -3.859   0.964
-94.228.220.14   193.67.79.202    2 u    -   64  177    8.347    2.797   1.019

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

Все эти одноранговые узлы используются ntpd.

Магия механизма пула заключается в циклическом DNS: as ntpd разрешает имя пула через DNS, ответ на запрос DNS представляет собой один узел, который может отличаться каждый раз, когда запрашивается разрешение.

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

  • объявить доменное имя пула с pool команда (а не server)

  • разрешить пулу мобилизовать ассоциацию (т.е. добавить "restrict source ... "строка, которая не включает nopeer директива)