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

ntpdate работает, но ntpd не может синхронизироваться

Это в RHEL 5.5.

Сначала работает ntpdate на удаленный хост:

$ ntpdate XXX.YYY.4.21
24 Oct 16:01:17 ntpdate[5276]: adjust time server XXX.YYY.4.21 offset 0.027291 sec

Во-вторых, вот строки сервера в моем /etc/ntp.conf. Все restrict строки были закомментированы для устранения неполадок.

server 127.127.1.0
server XXX.YYY.4.21

Я выполняю service ntpd start и проверьте с ntpq:

$ ntpq
ntpq> peer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.           5 l   36   64  377    0.000    0.000   0.001
 timeserver.doma .LOCL.           1 u   39  128  377    0.489   51.261  58.975

ntpq> opeer
 remote           local          st t when poll reach   delay   offset    disp
==============================================================================
*LOCAL(0)        127.0.0.1        5 l   40   64  377    0.000    0.000   0.001
 timeserver.doma XXX.YYY.22.169   1 u   43  128  377    0.489   51.261  58.975

XXX.YYY.22.169 - это адрес хоста, над которым я работаю. Обратный поиск по IP-адресу в моем файле ntp.conf подтверждает, что вывод ntpq правильно называет удаленный сервер. Однако, как вы можете видеть, похоже, что он просто перешел на мой .LOCL. сервер времени. Также, ntptrace просто возвращает локальный сервер времени и ntptrace XXX.YYY.4.21 время вышло.

$ ntptrace
localhost.localdomain: stratum 6, offset 0.000000, synch distance 0.948181

$ ntptrace XXX.YYY.4.21
XXX.YYY.4.21: timed out, nothing received
***Request timed out

Похоже, мой демон ntp просто запрашивает сам себя.

Я думаю о возможности того, что маршрутизатор, который я не контролирую, между моим тестовым сетевым сервером времени и сервером времени корпоративной сети блокирует исходный порт. (Я думаю, что ntpdate отправляет на порт 123, который обходит этот фильтр, и поэтому я не могу использовать его во время работы ntpd.) У меня есть электронная почта в сети, чтобы проверить это.

В заключение, telnet XXX.YYY.4.21 123 никогда не выходит из строя и не завершает соединение.

Вопросы:

Что мне здесь не хватает?

Что еще я могу проверить, чтобы выяснить, где происходит сбой подключения?

Бы strace ntptrace XXX.YYY.4.21 покажите мне исходный порт, с которого отправляет ntptrace? Я могу деконструировать большинство вызовов strace, но не могу определить местоположение этого элемента данных.

Если я не могу напрямую проверить шлюз-маршрутизатор между моей тестовой сетью и сервером времени, как я могу собрать доказательства того, что он несет ответственность за эти отключения? Или как я могу это исключить?

В 377 в reach столбец означает, что соединение в порядке; telnet не будет подключаться, потому что NTP - это UDP.

Попробуйте удалить server 127.127.1.0 из вашей конфигурации - * по *LOCAL(0) сообщает нам, что для синхронизации используется локальный сервер со слоем 5, предпочтительнее, чем удаленный сервер со слоем 1; и задержка, и смещение равны 0,000, вероятно, во многом с этим.

У меня такая же проблема:

ntpq -p показывал охват = 0

Тем не менее, 1- ntpd был запущен 2- ntp.conf имеет перечисленные серверы 3- ntpdate работал с этими серверами 4- ntpdate -u работал с этими серверами 5- nc показал, что TCP-порт 123 был открыт на этих серверах 6-nc показал, что UDP-порт 123 был открыть на этом сервере

Таким образом, в основном ntpdate работал, и проблем с брандмауэром не было, и все же ntpq -p показал охват = 0 для каждого из перечисленных серверов.

Оказалось, что это строки ограничения в ntp.conf. Я просто удалил все ограничивающие строки из ntp.conf и перезапустил ntpd, и оттуда все заработало.

Если вы собираетесь включить местные часы, немного измените их уровень. Похоже, у вас установлено значение 5. Обычно я устанавливаю не менее 8 (fudge 127.127.1.0 stratum 8). Если вы не обманываете его, вы можете показаться другим хостам в вашей сети как атомные часы. В одной просканированной мной сети я обнаружил множество низкоуровневых серверов, объявляющих время, которое обычно было неправильным по часам или дням.

Шейн прав насчет reach значение, которое указывает, что у вас есть доступ к серверу. Высота offset и jitter Значения для вашего сервера времени указывают на то, что он может быть не очень надежным. Они могут быть высокими, потому что ваш сервер все еще синхронизируется. Тот факт, что poll Интервал увеличился до 128, это означает, что ваш сервер получает стабильные результаты. Оно должно постепенно увеличиваться до 1024 секунд.

Попробуйте запустить такой цикл:

while sleep 60; do
    ntpq -n -c peers; done

Это даст вам представление о том, насколько хорошо работает ntp. Вы должны увидеть, как со временем он стабилизируется.

Существует ряд ограничений, которые можно установить на ntpd чтобы ограничить объем информации о сервере, к которому можно получить удаленный доступ. Возможно, вы ограничены использованием только вышестоящего сервера в качестве источника времени.

Возможны правила брандмауэра, ограничивающие трафик до порта 123 как для источника, так и для пункта назначения. Это обеспечивает рабочую настройку ntp, но ограничивает доступ для других инструментов. Некоторые инструменты позволяют использовать порт 123 в качестве исходного порта, если он доступен. Я неравнодушен к использованию ntpdate в режиме отладки.

Если вы правы насчет refid если исходящий сервер является вашим IP-адресом, похоже, он использует ваш сервер в качестве предпочтительного источника времени. Попробуйте добавить restrict noquery к вашей конфигурации. Возможно, ваш вышестоящий сервер плохо настроен. Попробуйте добавить свой маршрутизатор и / или серверы имен в качестве источников, я считаю, что они могут быть лучшими источниками, чем официальный корпоративный сервер.

Приношу свои извинения тем из вас, кто ищет грандиозное решение. Это будет глупо.

Да, сервер времени недоступен по причине, которую я никогда не мог определить. Хорошей новостью является то, что один из внешних DNS-серверов, к которым у меня есть доступ, сам обслуживает пакеты NTP, и Это подключается к этому внешнему серверу времени для своих тиков. Это обходной путь, а не исправление. Но я возьму все, что смогу.

Итак, в итоге я теряю только один слой обслуживания.

В качестве примечания я зарегистрировался в базе данных ошибок NTP, чтобы я мог написать улучшение ошибка 2297, запрашивая формальную документацию для одноранговых ссылок .INIT., .LOCL. и LOCAL (0).

Просто хотел добавить свои два цента в верхний результат поиска Google ... Я столкнулся с этой проблемой на хосте, где NTP не был привязан к внешнему интерфейсу хоста. Если у вас есть эта проблема, посмотрите на вывод netstat -tulpn.

Этот экземпляр ntpd не сможет синхронизироваться с известным надежным источником времени.

$ sudo netstat -tulpn | grep ntp
udp        0      0 127.0.0.1:123               0.0.0.0:*                                  31316/ntpd          
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               31316/ntpd          

Это будет.

$ sudo netstat -tulpn | grep ntp
udp        0      0 192.168.1.15:123            0.0.0.0:*                               32294/ntpd          
udp        0      0 127.0.0.1:123               0.0.0.0:*                               32294/ntpd          
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               32294/ntpd   

Это было результатом того, что файл конфигурации пытался ограничить привязку к интерфейсам IPv4 только с помощью подстановочного знака 0.0.0.0.

$ grep ^interface /etc/ntp.conf 
interface listen 0.0.0.0

Правильная (желаемая) конфигурация была следующей.

$ grep ^interface /etc/ntp.conf 
interface listen ipv4
interface ignore ipv6

(Или, чтобы удалить оба варианта конфигурации интерфейса.)

Вы также можете проверить /etc/sysconfig/ntp или эквивалент для любой конфигурации, которая может ограничивать привязку интерфейса.