Трассировка цепочки 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, я просто использовал обходной путь:
- Прочитайте peer и выполните рефид из `ntpq -p
- Вставить
server 56.1.129.236
(пропуская 78.47.249.19) в/etc/ntp.conf
- Применить настройки с
sudo service ntp restart
- Перейти к 1.
Это работает для отслеживания цепочки NTP, но это очень утомительно. Поэтому мои вопросы:
- Как я могу использовать, может быть,
ntpq
только отследить цепочку серверов NTP? - Почему ntptrace не работает в первую очередь?
1 ответ
Со страницы руководства ntptrace:
ntptrace - это Perl-скрипт, использующий служебную программу ntpq для отслеживания цепочки серверов NTP от данного хоста до первичного источника времени. Для правильной работы ntptrace каждый из этих серверов должен реализовать протокол управления и контроля NTP, указанный в RFC 1305, и включить пакеты NTP режима 6.