В нашем коде мы используем ntpd для получения времени с серверов и установки времени. После выполнения команды ntpd мы запускаем «ntpq -p», чтобы проверить смещения сервера. Мы запускаем приведенные ниже команды для ntpd в другом процессе и после завершения этого ntpq.
/bin/ntpd -g -c /etc/ntp.conf /bin/ntpq -p
На одном лабораторном маршрутизаторе мы можем наблюдать, что устройство правильно получает время, но когда мы запустили «/bin/ntpq -p», оно блокируется на некоторое время и возвращается по тайм-ауту. Мы пытаемся непрерывно в течение одного часа, прежде чем сдаться в коде. Только в лабораторной установке это создает проблемы. За пределами лаборатории, где устройства подключены к другим маршрутизаторам, все работает нормально. Когда я беру устройство, которое работает за пределами лаборатории (подключено к другому маршрутизатору), и если я подключаю устройство к лабораторному маршрутизатору, оно получает тайм-аут.
Я думал, что у настройки лабораторного маршрутизатора есть некоторые проблемы, и именно поэтому он не может подключиться к серверам ntp. Но мне было интересно, не может ли устройство связаться с серверами NTP, как устройство получает правильное время. Очень странно, что устройство получает время от серверов ntp, но ntpq -p возвращает тайм-аут. И еще одно странное поведение, если я перезагружаю роутер (устройство работает), устройство работает нормально, пока устройство не перезагрузится, и если я перезагружаю устройство, происходит тот же тайм-аут. Может кто-нибудь, пожалуйста, дайте мне знать причины этого странного поведения.