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

ntpd использует неправильный сервер

Недавно я переместил свой основной сервер времени в другую систему, например 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, чтобы добиться такого поведения.