Я наткнулся на файл 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
директива)