Недавно я переместил свой основной сервер времени в другую систему, например old.fqdn
к new.fqdn
. Все подчиненные демоны ntpd используют ntp.fqdn
как сервер, который теперь является CNAME, указывающим на new.fqdn
, т.е. host ntp.fqdn
в этой системе дает:
ntp.fqdn is an alias for new.fqdn.
new.fqdn has address xxx.xxx.xxx.xxx
тем не мение ntpq -p
дает:
remote refid st t when poll reach delay offset jitter
==============================================================================
old.fqdn .INIT. 16 u - 1024 0 0.000 0.000 0.000
что согласовано, поскольку old.fqdn
был закрыт. Но почему он привязан к этому серверу? Это /etc/ntp.conf
:
driftfile /var/lib/ntp/ntp.drift
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
server ntp.fqdn iburst
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
И конечно ntpd
был перезапущен после изменения DNS. Также ntpdate -s ntp.fqdn
может синхронизировать, и другие системы в сети, использующие ту же самую конфигурацию, работают отлично. Единственная очевидная разница в том, что эти системы никогда не использовались. old.fqdn
перед. Есть ли другое место, где ntpd
ведет учет своего родительского сервера?
Текущая система Debian Jessie: ntp 1: 4.2.6.p5 + dfsg-7 + deb8u2, amd64
Обновить: Стал переустанавливать ntp (apt-get --purge remove ntp && apt-get install ntp
) на рабочих станциях. После переустановки та же конфигурация работает должным образом.
Решение: Причина в том, что ntpd не запускается с /etc/ntp.conf
, но с /var/lib/ntp/ntp.conf.dhcp
. Последний имел IP old.fqdn
жестко запрограммирован. Да, в прошлом системы настраивались с помощью DHCP, в настоящее время это не так.
Скрипт запуска Debian /etc/init.d/ntp
проверяет, существует ли файл, и вместо этого использует его для конфигурации. Так что решение проблемы - удалить /var/lib/ntp/ntp.conf.dhcp
. Не знаю, почему я не проверил ps aux
ранее.
Думаю, ntpd
вернуть первую запись PTR как имя сервера, и это old.fqdn
. Если вы удалите эту запись, вы получите вторую запись PTR new.fqdn
для того же IP-адреса сервера времени. Ntpd работает с IP-адресами, при запуске разрешает доменные имена в ip.
Вы можете увидеть этот IP-адрес командой на рабочей станции:
ntpq -p -n localhost
NTP не пытается автоматически повторять поиск DNS при использовании server
директива. Переключатель server
к pool
и перезапустите NTP, чтобы добиться такого поведения.