У меня (в большинстве случаев) изолированная сеть, состоящая из нескольких компьютеров.
computer 0 -- external NTP server
/
switch -- computer 1 -- external NTP server
\
computer n -- external NTP server
В любой момент времени может быть доступна только небольшая часть соединений на приведенном выше графике. В частности, подключение к внешнему серверу NTP будет недоступно большую часть времени.
Как я могу использовать chrony для синхронизации всех компьютеров без явных ролей клиент / сервер?
Требования:
Я подумал о настройке каждого компьютера в сети с внешним NTP-сервером (изначально помеченным как автономный), а затем о перечислении всех компьютеров как одноранговых друг друга. Это правильный путь? Я не смог найти никакой информации о том, что происходит, если в сети есть только одноранговые узлы NTP без доступного сервера NTP. Сойдутся ли часы с разумным временем или эта конфигурация может стать нестабильной, так что общий дрейф может быть даже хуже, чем худший дрейф аппаратных часов одного компьютера в сети?
Редактировать:
Подчеркну свою идею о подходящей конфигурации хронистов: является ли следующий подход хорошей идеей?
/etc/chrony/chrony.conf
на компьютере 0:
pool external.ntp.pool offline
peer computer_1
peer computer_2
peer computer_n
local stratum 10
/etc/chrony/chrony.conf
на компьютере 1:
pool external.ntp.pool offline
peer computer_0
peer computer_2
peer computer_n
local stratum 10
И так далее ...
Самое простое и лучшее (но не менее дорогое) решение вашей проблемы - установить в этой сети небольшое устройство с радиочасами (GPS или WWVB / коротковолновое). Устройства должны использовать это в качестве сервера в конфигурации NTP, а затем взаимодействовать друг с другом для восстановления после сбоя устройства.
Поскольку широковещательный радиосигнал является односторонним, это отвечает вашим требованиям безопасности для изоляции сети.
Устройства GPS и WWVB, которые действуют как серверы NTP, широко доступны во многих ценовых категориях.
Если сеть не может принимать радиосигналы в любом случае (подводная лодка, укрепленный бункер и т. Д.), Это решение не сработает. Но если это ваш сценарий, у вас, вероятно, есть деньги на установку какого-либо местного стандарта частоты.
offline
- в pool
директива автоматически повторит попытку, когда chronyd
запускает или восстанавливает подключение к сети.orphan
на ваш local
line - это функция NTP, специально разработанная для компенсации вашего сценария. Это приведет к тому, что один из партнеров будет выбран локальным мастером, когда подключение к восходящему потоку недоступно.chronyd
автоматически проигнорирует это. Это удобство, которое означает, что вы можете отправить одну и ту же конфигурацию на каждый хост.