Можно ли настроить, 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)",
Ответы:
После еще одного исследования кажется, что «обмануть» уровень слоя сетевого источника невозможно. Поэтому я двинулся дальше и попробовал ответ Дубели . К моему удивлению, простое превращение моего локального сервера времени в уровень 2 (равный стороннему устройству) не всегда приводило к тому, что он был предпочтительным источником времени. Мой локальный ntpd по-прежнему правил бы ими обоими как "ложными галочками". По какой причине я не уверен, но я предполагаю, потому что они были единственными источниками времени, а их время было так далеко.
Самая большая проблема здесь заключается в том, что мое стороннее устройство, кажется, не показывает очень стабильное время, на самом деле оно сильно колеблется. Решением моей проблемы было добавление нескольких других точных источников времени (pool.ntp.org) к моему
/etc/ntp.conf
. Теперь мой локальный сервер всегда выбирается в качестве предпочтительного источника времени, часто несмотря на более высокий уровень страты, чем у некоторых серверов в пуле.источник
Вы можете попробовать запустить свой локальный ntpd на уровне 2. Вместо того, чтобы указывать его на pool.ntp.org, просто создайте список из 5-7 серверов уровня 1 и добавьте их в конфигурацию напрямую. При использовании эталонного сервера на уровне 1 ваш сервер будет работать на уровне 2. Тогда ваш
prefer
вариант может работать.Однако, по моему опыту, уровень страты не всегда является победным фактором при выборе первичного источника. Я думаю, что латентность и джиттер также оказывают значительное влияние. Я несколько раз замечал, что сервер нижнего уровня был выбран в качестве основного источника, хотя было доступно несколько серверов более высокого уровня только потому, что он имел самую низкую задержку. Вот почему я не могу гарантировать, что предложенный подход сработает.
источник
У меня есть аппаратный источник времени GPS "high stratum (10)" в нашей локальной сети, который дает мне статус falsetick (x) в ntpq, я обнаружил, что использование
server [x.x.x.x] true
(x = IP-адрес) в ntp.conf пропустит проверку falsetick, позволяя ему быть возможным кандидатом. Похоже, что номер страты не всегда означает более высокий приоритет.источник
Если вам не нравится этот сервер 10.xxZ в качестве ссылки, это должно сработать:
Это полезно, если сервер следует использовать только для целей мониторинга. В качестве альтернативы вы также можете настроить:
Поэтому 10.xxZ не будет использоваться, если 10.xxX доступен.
источник
Одна из причин, почему это предпочтительнее, заключается в том, что ваш другой сервер времени был недавно недоступен. Видите колонку досягаемости?
источник