Я настраиваю сервер времени с помощью chronyd, но он не синхронизируется.
# chronyc sources
210 Number of sources = 5
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? smtp.visionnet.us 0 10 0 10y +0ns[ +0ns] +/- 0ns
^? nist1-lnk.binary.net 0 10 0 10y +0ns[ +0ns] +/- 0ns
^? c-73-98-218-154.hsd1.ut.c 0 10 0 10y +0ns[ +0ns] +/- 0ns
^? clock.xmission.com 0 10 0 10y +0ns[ +0ns] +/- 0ns
^? time-c.timefreq.bldrdoc.g 0 10 0 10y +0ns[ +0ns] +/- 0ns
Спустя несколько часов синхронизация все еще невозможна.
Однако, если я настраиваю ntpd на том же хосте с теми же серверами ntp, он немедленно синхронизируется:
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
-lithium.constan 18.26.4.105 2 u 50 64 7 74.746 13.677 1.487
*nist1-lnk.binar .ACTS. 1 u 49 64 7 48.827 6.845 4.008
+c-73-98-218-154 .GPS. 1 u 47 64 7 12.792 2.418 1.338
+clock.xmission. .XMIS. 1 u 49 64 7 22.799 12.845 1.272
-time-c.timefreq .NIST. 1 u 49 64 7 59.498 -2.968 1.434
Если я смотрю tcpdump во время обеих попыток, я вижу, что при попытках chrony он отправляет пакет клиента NTPv4, и я никогда не вижу ответа, но когда это делает ntpd, я сразу же вижу пакет клиента NTPv4 и пакет сервера NTPv4.
Что-то мне не хватает? Говорит ли chrony по какому-либо другому порту, кроме udp 123? (У нас есть брандмауэр центра обработки данных, в котором нужно было открыть дыру, чтобы выйти, но я не могу избавиться от ощущения, что chronyd может быть что-то еще нужно)
ОКРУЖАЮЩАЯ СРЕДА:
Система RHEL 7.3 пропатчена неделю назад
Вот мой chrony.conf
server us.pool.ntp.org iburst
server time.nist.gov iburst
server time.nc7j.com iburst
server time.xmission.com iburst
server time-c.timefreq.bldrdoc.gov iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
allow 0.0.0.0/0
и для сравнения мой ntp.conf
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server us.pool.ntp.org iburst
server time.nist.gov iburst
server time.nc7j.com iburst
server time.xmission.com iburst
server time-c.timefreq.bldrdoc.gov iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntp.log
Разница в том, что chronyd по умолчанию использует случайный исходный порт для каждого клиентского запроса. Если брандмауэр не разрешает клиентские запросы с портов, отличных от 123, вам необходимо указать порт, добавив acquisitionport 123
в chrony.conf. Директива задокументирована Вот.