ntpd распределяет время до его синхронизации

Я запускаю ntpd на raspberry pi 3. Несколько датчиков (на основе esp8266) получают время от указанного сервера. После сбоя питания pi перезагружается и запускает ntpd. Датчики запрашивают синхронизацию времени, а ntpd отвечает неправильным временем, так как он еще не синхронизирован. Есть ли способ предотвратить ответ ntpd до того, как он действительно синхронизируется? Журналы на pi показывают, что время неправильное, оно переходит к правильному значению через 3-5 минут, поэтому такое поведение не вызвано программным обеспечением датчика. ntpd запускается с параметром -g


person NameOfTheRose    schedule 10.08.2017    source источник


Ответы (1)


У меня была дискуссия на канале ntp irc. Кажется, нет способа запретить ntpd отвечать на запросы клиентов, пока не будет достигнута синхронизация. По их мнению, клиент обязан игнорировать пакет ntp, если часы не синхронизировались. Поэтому нужно либо изменить программное обеспечение esp8266, либо запретить ответы ntpd с помощью iptables. Я использовал второй метод и включил в rc.local следующее:

sudo iptables -A INPUT -p udp --dport ntp -m iprange --src-range 10.0.200-10.0.0.250 -j DROP
if /usr/sbin/ntp-wait
   then
       /usr/bin/sudo iptables -D INPUT -p udp --dport ntp -m iprange --src-range 10.0.0.200-10.0.0.250 -j DROP
fi
person NameOfTheRose    schedule 16.08.2017