Рейтинг:0

ntpd не синхронизирует часы, если немного запаздывает подключение к интернету

флаг cn

В нашей производственной коробке у меня возникла проблема с ntpd. Я включаю функцию NTP для нашей рабочей коробки и наблюдаю одну проблему.

Запускаем демон ntpd в процессе инициализации нашего бокса. В это время интернета нет. Ниже мой маленький ntp.conf файл

файл дрейфа /etc/ntp.drift
logconfig = состояние синхронизации
сервер pool.ntp.org iburst

Наша коробка подключается к Интернету немного позже, когда появляется интерфейс. В этот раз я вижу, что ntpd не синхронизирует часы. Когда я делаю ntpq -c как , Я получил идентификатор ассоциации не найден. Я ждал почти 30 минут, но все же получил идентификатор ассоциации не найден

Мне нужно перезапустить ntpd. После перезапуска ntpd синхронизирует часы и все работает нормально. Но опять же, если я перезагружу свою коробку, произойдет та же проблема. Я снова должен перезапустить ntpd, как только появится окно и появится доступ в Интернет.

Кто-нибудь сталкивался с подобной проблемой?

Должен ли я отложить запуск ntpd до появления интерфейса времени?

Обновлять

Я провел еще несколько экспериментов и заменил сервер pool.ntp.org iburst с пул pool.ntp.org iburst и с этим изменением ntpd синхронизирует часы автоматически. Мне не пришлось перезапускать ntpd. Так вот у меня возникает еще один вопрос.

Что произошло, когда я заменил сервер с бассейн?

Должен ли я всегда использовать бассейн ключевое слово вместо сервер?

Когда я должен использовать бассейн и когда я должен использовать сервер?

Я провел небольшое исследование и обнаружил, что пул аналогичен серверу, за исключением того, что он разрешает одно имя в несколько адресов и использует их все если они делают одно и то же, то почему сервер pool.ntp.org iburst не работал для меня, но пул pool.ntp.org iburst работал.

Обновлять

Как было предложено, я использовал бассейн вместо сервер но все же мои часы не могут синхронизироваться при загрузке. Ранее идентификатор ассоциации не найден приближался, но после использования пула он отображает список.

GW:/admin# ntpq -c lpeer
     удаленный refid st t при достижении опроса джиттер смещения задержки
================================================== =================== =========
 time.google.com .POOL. 16 р - 64 0 0,000 +0,000 0,002

GW:/admin# ntpq -np
      удаленный refid st t дрожание смещения задержки при достижении опроса

 time.google.com .POOL. 16 р - 64 0 0,000 +0,000 0,002

GW:/admin# ntpq -c как
ind assid status conf достичь условия аутентификации last_event cnt
================================================== =========
  1 34173 8811 да нет нет отклонить мобилизовать 1

GW:/admin# ntpq -c "rv 34173"
associd=34173 status=8811 conf, bcast, sel_reject, 1 событие, мобилизовать,
srcadr=0.0.0.0, srcport=0, srchost="time.google.com", dstadr=0.0.0.0,
dstport=0, jump=11, stratum=16, точность=-19, rootdelay=0,000,
rootdisp=0.000, refid=POOL, reftime=(нет времени), rec=(нет времени),reach=000,
unreach=0, hmode=3, pmode=0, hpoll=6, ppoll=10, прогресс=0,
flash=1400 peer_dist, peer_unreach, keyid=0, offset=+0,000, delay=0,000,
дисперсия=16000.000, джиттер=0.002,
задержка фильтра = 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00,
filtoffset= +0,00 +0,00 +0,00 +0,00 +0,00 +0,00 +0,00 +0,00,
filtdisp= 16000,0 16000,0 16000,0 16000,0 16000,0 16000,0 16000,0 16000,0

Я вижу состояние вспышки как 1400. Каково значение 1400 Я не смог найти статус вспышки 1400 в документации по нтп.

Обновлять

Он начал работать. я заменил взрыв с минполл 3 максполл 4 и после этого работает при перезагрузке. Я использовал такой пул пул pool.ntp.org minpoll 3 maxpoll 4. Я не уверен, какое значение имеет это изменение.

Я также читал, что нам следует избегать использования minpoll и maxpoll. Слишком частые в течение длительного периода, и общедоступные службы NTP могут заблокировать вас. ntpd уже умеет динамически выбирать интервал пула.

В любом случае спасибо всем за помощь.

Paul Gear avatar
флаг cn
Если у вас нет особой причины, вы всегда должны использовать «пул» вместо «сервер». Он имеет лучшие эксплуатационные характеристики почти во всех отношениях, в том числе поведение DNS-запросов, которое вы обнаружили.
user10489 avatar
флаг nc
«Особые причины» использования серверной линии включают локальные аппаратные эталонные часы, аутентификацию с использованием ключей и (необязательно) локальные серверы со статическими IP-адресами.
vivek avatar
флаг cn
@user10489 user10489 «аутентификация с использованием ключей» означает ли это, что мы не можем использовать «пул» при аутентификации? Должен ли он всегда быть «сервером»
user10489 avatar
флаг nc
По крайней мере, согласно справочной странице, вы не можете использовать директиву key или autokey в строке пула.
vivek avatar
флаг cn
@ user10489 Просто интересно, нужна ли нам аутентификация для имени хоста, тогда это становится двусмысленным. Что касается разрешения имени хоста, предпочтительным способом является использование строки «пул», а для ключа я не могу использовать «пул».
user10489 avatar
флаг nc
Если у вас достаточно контроля над обоими хостами, чтобы использовать ключевую директиву, вы также должны иметь возможность использовать IP-адрес вместо DNS-имени. И ничто не мешает вам иметь несколько записей разных типов на разных хостах для избыточности.
user10489 avatar
флаг nc
Обновление 2: либо ваш DNS все еще не работает, либо вы недостаточно долго ждали проверки. Вы должны протестировать DNS с помощью dig или host, и если он работает, подождите не менее 64-128 секунд.
Рейтинг:1
флаг nc

Когда вы предоставляете сервер ntpd, при запуске он преобразует имя хоста в IP-адрес и пытается использовать IP-адрес для синхронизации времени. Если это имя хоста не разрешается, оно удаляется. Даже если он разрешит это, он не помнит имя хоста, только IP-адрес.

Если сервер в вашем сервер строка была локальным хостом с фиксированным IP-адресом (а не динамическим пулом), вы можете заменить имя хоста реальным IP-адресом, и его не следует удалять, даже если сеть не работает при запуске.

Если вместо этого указать пул для ntpd, он сохранит имя хоста (и пометит его тегом .БАССЕЙН.). Периодически (в том числе при запуске) он разрешает это имя хоста в DNS и добавляет любые IP-адреса, которые он получает, в виде отдельных записей, а некоторые из наименее благоприятных удаляются.

Вы можете увидеть некоторые из них с помощью команды нтпк-нп или эквивалентно ntpq -n -c одноранговые узлы

Обратите внимание, что во всем этом есть также проблемы с синхронизацией и версиями ntpd. Эта точная проблема была зарегистрирована как ошибка в ntpd, и было несколько вариантов исправления. Некоторые версии ntpd откладывают разрешение имени хоста в случае сбоя, но в конечном итоге он все равно может отказаться; поэтому, если вы тестируете, кратковременно отключая сеть и снова подключая ее, проблема может не возникнуть. Кроме того, ntp использует алгоритм опроса, который экспоненциально увеличивает время опроса хоста как для доступных, так и для недоступных хостов (в зависимости от стабильности ваших часов и полезности хоста для синхронизации времени) с верхним пределом 1024 секунды (32 минуты), поэтому, если изменяется доступность сети, это может занять много времени, прежде чем он это заметит. (Время и интервалы опроса указаны в нтпк-нп)

Кроме того, некоторые загрузочные сценарии запуска используют ntpdate или аналогичные инструменты для установки системных часов на сервер из ntp.conf, чтобы часы частично синхронизировались перед запуском ntpd. Это разовая попытка, и если она не удастся, ntpd может запуститься с совершенно неправильными часами. Если ошибка незначительна, ntp исправит ее, но если ошибка существенная, ntpd может отказаться синхронизировать часы, а в некоторых случаях и версиях ntpd может выйти из строя или выйти из строя. В некоторых версиях ntpd есть свои собственные параметры большого шага.

vivek avatar
флаг cn
Японял твою точку зрения. Мой вопрос: можем ли мы указать IP-адрес для пула или это всегда должно быть имя хоста.
user10489 avatar
флаг nc
Вы можете указать IP-адрес в строке сервера. Не имеет смысла указывать IP-адрес в строке пула.
vivek avatar
флаг cn
Я сделал один небольшой тест, в котором я отключил интерфейс, чтобы отключить подключение к Интернету. После этого я настроил `server pool.ntp.org iburst` и запустил ntpd. Через некоторое время я открыл интерфейс и вижу, что ntpd может синхронизировать часы. Итак, как вы сказали, «при запуске он разрешает имя хоста в IP-адрес и пытается использовать IP-адрес для синхронизации времени. Если это имя хоста не разрешается, оно удаляется, на этот раз это не кажется правильным.
user10489 avatar
флаг nc
Также могут быть проблемы со временем. Я добавлю это к ответу.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.