Трассировка цепочки NTP серверов

В образовательных целях я хотел отследить цепочку NTP-серверов, например, 0.de.pool.ntp.org, обратно на NTP-сервер уровня 1. Как я могу это сделать?


Я нашел 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, я просто использовал обходной путь:

  1. Прочитайте peer и выполните рефид из `ntpq -p
  2. Вставить server 56.1.129.236 (пропуская 78.47.249.19) в /etc/ntp.conf
  3. Применить настройки с sudo service ntp restart
  4. Перейти к 1.

Это работает для отслеживания цепочки NTP, но это очень утомительно. Поэтому мои вопросы:

  • Как я могу использовать, может быть, ntpq только отследить цепочку серверов NTP?
  • Почему ntptrace не работает в первую очередь?

1 ответ

Решение

Со страницы руководства ntptrace:

ntptrace - это Perl-скрипт, использующий служебную программу ntpq для отслеживания цепочки серверов NTP от данного хоста до первичного источника времени. Для правильной работы ntptrace каждый из этих серверов должен реализовать протокол управления и контроля NTP, указанный в RFC 1305, и включить пакеты NTP режима 6.

Другие вопросы по тегам