Как настроить частоту опроса NTP?

Я настраиваю Ubuntu на встроенной машине, которая работает по сотовой связи, где мы платим за байт. Машина также не имеет батареи RTC, поэтому она запускается со случайного времени при каждой загрузке.

Я хотел бы обеспечить синхронизацию времени, когда сотовая связь станет доступной, чтобы сообщения журнала и т. Д. Имели реальное время, но я также не хочу платить за NTP-трафик. 111]

Можно ли настроить частоту, с которой NTP обновляет время? В настоящее время я использую openntpd, но я не привязан к нему.

Интернет не обязательно загружается при загрузке, поэтому ntupdate и связанные с ним при запуске не будут работать. А планирование через cron означает ожидание запуска запланированной задачи, тогда как я хочу, чтобы демон времени получил синхронизацию времени как можно скорее.

17
задан 16 May 2012 в 06:20

9 ответов

Некоторые из этих ответов могут выиграть состязание по настройке NTP.

Используйте эталонную реализацию ntp и используйте iburst, чтобы быстро установить время после загрузки. После этого вы можете использовать директиву minpoll, чтобы ограничить частоту запросов ntpd к удаленным серверам времени. Это позволит вам воспользоваться дисциплиной часов ntpd и снизить пропускную способность.

minpoll minpoll
maxpoll maxpoll
    These options specify the minimum and maximum poll intervals for NTP 
    messages, in seconds as a power of two. The maximum poll interval 
    defaults to 10 (1024 s), but can be increased by the maxpoll option to 
    an upper limit of 17 (36 h). The minimum poll interval defaults to 6 (64 s), 
    but can be decreased by the minpoll option to a lower limit of 3 (8 s).

Chrony является хорошей альтернативой эталонной реализации ntp. Openntpd нет.

0
ответ дан 16 May 2012 в 06:20

Мой опыт работы с ntp, а не с openntpd.

Вы должны знать, что протокол NTP обычно начинается с отправки пакетов каждую минуту (64 секунды), но обычно устанавливается путем отправки и получения одного пакета каждые 17 минут для каждого сервера, который есть в вашем / etc / ntp. файл конф. Однако сбои в работе сети или нестабильные часы в вашем устройстве могут увеличить это. Каждый пакет имеет полезную нагрузку около 68 байтов, так что это, вероятно, чуть более 100 байтов, в каждом случае, за опрос.

rdate и ntpdate во время подключения к сети являются хорошими идеями для установки времени. И если это все, что вам нужно, вы должны хорошо работать.

Однако, если вам нужно синхронизировать время в течение продолжительного времени, протокол ntp был разработан для этого. Часы в вашем устройстве будут работать немного быстрее или медленнее, в зависимости от того, насколько он теплый или холодный, даже если на нем, вероятно, установлены часы с кварцевым управлением - и текущая хронометража предназначена для этого.

Вот несколько советов, если вам нужно постоянное хронометраж и вы хотите уменьшить используемую полосу пропускания. Они ссылаются на элементы в ntp.conf.

Не используйте iburst. (Но сначала потребуется больше времени, чтобы установить время).

Увеличьте minpoll вверх с 6 (2 ^ 6 секунд - 64 секунды). Это уменьшает трафик при запуске протокола после запуска сети.

Увеличьте maxpoll вверх с 10 (2 ^ 10 секунд - это 1024 секунды или примерно каждые 17 минут. Вы можете пройти до 17, чтобы опросить примерно каждые 36 часов. Я сам не пробовал это.

Используйте только минимальное количество серверов, если бы у вас был один, к которому можно было бы надежно подключиться со встроенных устройств, это было бы замечательно. Чем больше серверов, тем более надежным может быть время, но трафик увеличивается, поэтому это компромисс .

0
ответ дан 16 May 2012 в 06:20

При установке Ubuntu по умолчанию демон NTP не запускается. Вместо этого время устанавливается каждый раз, когда сетевой интерфейс вызывается ловушкой /etc/network/if-up.d/ntpdate.

Если вам нужна синхронизация разового времени, а не постоянная синхронизация, то этого может быть достаточно для вас.

Вы можете контролировать, какие серверы запрашиваются для установки времени, либо через стандартный файл /etc/ntp.conf, либо через переменную NTPSERVERS в /etc/default/ntpdate.

0
ответ дан 16 May 2012 в 06:20

Нужна ли вам точная и точная синхронизация, которую обеспечивает ntp? Если нет, вы можете избежать использования rdate или ntpdate при загрузке, а затем периодически через cron.

0
ответ дан 16 May 2012 в 06:20

Если я правильно помню, интервал опроса ntp может быть установлен максимум на 1024 секунды. Возможно, самым простым решением было бы запускать ntpdate при каждой загрузке, а затем время от времени из crontab.

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

0
ответ дан 16 May 2012 в 06:20

NTP, как и TCP, имеет некоторые глубокие теории и практический опыт, встроенные в протокол; если вы измените его основные параметры, он перестанет иметь свойства синхронизации, для которых он был разработан.

Если ваше устройство спорадически подключено, возможно, старый добрый RDATE будет вам полезен. Это не относится к повороту часов, усреднению сверстников и не может быть защищено от различных хитрых взломов, которые может сыграть человек посередине, если это того стоит. Он просто получает контрольную дату с удаленного сервера и бьет по местным часам молотком. Но он делает это, когда вы этого хотите, и его поведение является детерминированным.

Точность RDATE намного хуже, чем обеспечивает NTP, я бы не стал доверять ей лучше, чем ± 1 секунда, но если вы подключены только время от времени, более точная синхронизация не имеет значения; действительно, согласно , относительности это может даже не иметь смысла.

0
ответ дан 16 May 2012 в 06:20

Вы, вероятно, уже читали справочную страницу openntpd.

http://www.openbsd.org/cgi-bin/man.cgi?query=ntpd.conf

Вы, вероятно, уже заметили отсутствие опции опроса на время.

У меня есть следующие возможные варианты взлома:

  1. Не используйте ntpd, просто вызовите ntpdate через cron.
  2. Используйте cron и / или ваши скрипты сотового соединения, чтобы переключать правила iptables, чтобы сбрасывать или разрешать трафик порта 123, когда вы хотите это разрешить. Это может быть так просто, как

    0 12 * * * iptables -D OUTPUT -j DROP -p udp --dport 123 # at noon start allowing ntp

    0 13 * * * iptables -A OUTPUT -j DROP -p udp --dport 123 # at 1pm stop allowing ntp

  3. Встроить радиоприемник в вашу встроенную машину. Я почти ничего не знаю об этом, но такие продукты:

заставляет меня думать, что это не сложно, если вы можете получить радиосигнал.

0
ответ дан 16 May 2012 в 06:20

Чтобы принять во внимание minpool / maxpool, необходимо добавить для каждого сервера в ntp.conf.

Не совсем рекомендуется связываться с NTP-демоном (он имеет встроенный метод для оптимизации частоты), но вам нужно будет добавить эти опции следующим образом:

server time.google.com iburst minpoll 12 maxppol 17
server ntp.ubuntu.com iburst minpoll 12 maxppol 17
server europe.pool.ntp.org iburst minpoll 12 maxppol 17

Здесь, если установлено минимальная частота до 2 ^ 12 секунд, а максимальная до 2 ^ 17 секунд.

По умолчанию я узнал, что NTP будет делать запрос каждую минуту или около того. Это слишком много. Здесь я уменьшил частоту с одного часа до одного раза в день (приблизительно).

0
ответ дан 16 May 2012 в 06:20

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

0
ответ дан 16 May 2012 в 06:20

Другие вопросы по тегам:

Похожие вопросы: