NTP Fudge сетевой источник источника

9

Можно ли настроить, ntpdчтобы выдумать уровень страты сетевого источника?

На первый взгляд, я подумал, что fudgeдиректива может это сделать, однако после просмотра страниц руководства ntp.conf(5)я обнаружил, что эта директива применима только к опорным часам.

Несколько деталей:

У меня есть локальный сервер, работающий ntpdв качестве основного источника времени для клиентов в локальной сети. Этот сервер указывает на пул ntp.org и обычно поддерживает уровень 3 уровня.

В дополнение к моему основному серверу у меня есть стороннее сетевое устройство, основной задачей которого является беспроводная синхронизация настенных часов. RF передача. В спецификации устройства сказано, что это «Сервер времени, совместимый с RFC2030», но в остальном это в значительной степени черный ящик. Я настроил устройство для использования моего основного сервера, так как это единственный источник времени:

Конфигурация черного ящика http://www.freeimagehosting.net/uploads/21bafb12bd.png

Моя проблема возникла, когда я настроил ntpdна своем персональном компьютере использование как основного NTP-сервера, так и беспроводного передатчика в качестве источников времени. Запрашивая мой локальный ntpd, я заметил, что «черный ящик» (10.xxZ) был предпочтительным источником времени:

$ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
x10.x.x.X        69.164.222.108   3 u   48   64  177    0.501  370.029   1.530
*10.x.x.Z        10.x.x.Z         2 u   50   64  377    1.354  -23.681  14.179

Поскольку 10.x.x.Zединственным источником времени для сервера является сервер 10.x.x.X(то есть уровень 3), это должен быть уровень 4. Я полагаю, что производитель жестко закодировал уровень своего уровня.

Есть ли способ заставить мою машину отдать предпочтение «хорошему» (10.xxX) серверу, несмотря на более высокий уровень его слоя? Я также попробовал preferдирективу в своем локальном ntp.confфайле, но безрезультатно, маленький черный ящик всегда побеждает: /

Как бы то ни было, моя локальная машина работает под управлением Mac OS X 10.6.

$ ntpq -c rv | grep version
version="ntpd 4.2.4p4@1.1520-o Mon May 18 19:38:25 UTC 2009 (1)",
joxl
источник
Этот вопрос является достаточно эзотерическим, и я бы порекомендовал задавать его в группе новостей USENET comp.protocols.time.ntp или, что то же самое, в списке рассылки вопросов на lists.ntp.org . Они, скорее всего, предложат вам добавить больше серверов, так как клиенты будут иметь проблемы с выбором между двумя серверами. Кроме того, я не уверен, какой ответ они будут иметь о манипулировании стратами.
Justarobert

Ответы:

6

После еще одного исследования кажется, что «обмануть» уровень слоя сетевого источника невозможно. Поэтому я двинулся дальше и попробовал ответ Дубели . К моему удивлению, простое превращение моего локального сервера времени в уровень 2 (равный стороннему устройству) не всегда приводило к тому, что он был предпочтительным источником времени. Мой локальный ntpd по-прежнему правил бы ими обоими как "ложными галочками". По какой причине я не уверен, но я предполагаю, потому что они были единственными источниками времени, а их время было так далеко.

Самая большая проблема здесь заключается в том, что мое стороннее устройство, кажется, не показывает очень стабильное время, на самом деле оно сильно колеблется. Решением моей проблемы было добавление нескольких других точных источников времени (pool.ntp.org) к моему /etc/ntp.conf. Теперь мой локальный сервер всегда выбирается в качестве предпочтительного источника времени, часто несмотря на более высокий уровень страты, чем у некоторых серверов в пуле.

joxl
источник
4

Вы можете попробовать запустить свой локальный ntpd на уровне 2. Вместо того, чтобы указывать его на pool.ntp.org, просто создайте список из 5-7 серверов уровня 1 и добавьте их в конфигурацию напрямую. При использовании эталонного сервера на уровне 1 ваш сервер будет работать на уровне 2. Тогда ваш preferвариант может работать.

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

dtoubelis
источник
2

У меня есть аппаратный источник времени GPS "high stratum (10)" в нашей локальной сети, который дает мне статус falsetick (x) в ntpq, я обнаружил, что использование server [x.x.x.x] true(x = IP-адрес) в ntp.conf пропустит проверку falsetick, позволяя ему быть возможным кандидатом. Похоже, что номер страты не всегда означает более высокий приоритет.

Tomofumi
источник
1

Если вам не нравится этот сервер 10.xxZ в качестве ссылки, это должно сработать:

server 10.x.x.Z noselect 

Это полезно, если сервер следует использовать только для целей мониторинга. В качестве альтернативы вы также можете настроить:

server 10.x.x.X prefer

Поэтому 10.xxZ не будет использоваться, если 10.xxX доступен.

ганс
источник
0

Одна из причин, почему это предпочтительнее, заключается в том, что ваш другой сервер времени был недавно недоступен. Видите колонку досягаемости?

DFC
источник