В образовательных целях я хотел проследить цепочку серверов NTP, например, 0.de.pool.ntp.org назад к слою 1 сервер NTP. Как я могу сделать это?
Я нашел ntptrace, но он не работает:
/home/xyzdragon# ntptrace
localhost: stratum 2, offset -0.009285, synch distance 0.010221
192.53.103.104: timed out, nothing received
***Request timed out
Я пытался отладить /usr/bin/ntptrace
путем репродуцирования шагов того сценария Perl вручную:
home/xyzdragon# ntpq -n
ntpq> pe
remote refid st t when poll reach delay offset jitter
==============================================================================
+78.47.249.19 56.1.129.236 3 - 129 128 376 27.339 14.405 12.857
ntpq> host 78.47.249.19
current host set to 78.47.249.19
ntpq> pe
78.47.249.19: timed out, nothing received
***Request timed out
На самом деле ntptrace
использует комбинацию rv
и pstat
вместо pe
команда ntpq.
После нескольких попыток, заставляющих это работать с ntpq, я просто использовал обходное решение:
server 56.1.129.236
(пропуск 78.47.249.19) в /etc/ntp.conf
sudo service ntp restart
Это работает для трассировки цепочки NTP, но это очень утомительно. Мои вопросы поэтому:
ntpq
только прослеживать цепочку сервера NTP?Со страницы руководства ntptrace:
ntptrace - это сценарий Perl, который использует служебную программу ntpq для отслеживания цепочки серверов NTP от заданного хоста обратно к основному источнику времени. Для правильной работы ntptrace каждый из этих серверов должен реализовать протокол управления и мониторинга NTP, указанный в RFC 1305, и разрешить пакеты режима NTP 6 .