Поиск программного обеспечения NTP-сервера для Windows

Поиск программного обеспечения NTP-сервера для Windows

Я ищу, желательно бесплатный, NTP-сервер для Windows Server 2003/2008. Мы уже пробовали встроенный Windows Time Server, но наши тесты показали, что он не очень точен, мы видим разницу во времени до 500 мс. Максимальная разница во времени, которую мы можем допустить для нашего приложения, составляет ~100 мс.

Теперь мы уже использовалиМейнберг НТПддля Windows. Он отлично работает, за исключением одной большой проблемы: если между клиентом и сервером возникают проблемы с сетевым подключением, сервер ntp переходит в состояние паники. Он не даст клиенту новое время, пока мы не перезапустим службу ntp. Это большая проблема, которая доставила нам некоторые неприятности. Он работал нормально в течение нескольких месяцев, пока не возникла проблема с сетью, которую мы не заметили, мы заметили ее только через неделю, когда разница во времени уже составляла 30 сек. на клиентах.

Поэтому, пожалуйста, предложите какой-нибудь альтернативный NTP-сервер для Windows. Я гуглил, но получаю много не связанных результатов поиска.

Редактировать: До сих пор версия ntpd для Windows была очень точной, и я бы хотел ее придерживаться. Единственная проблема — это «состояние паники» после отключения сети. Может быть, кто-то знает, в чем причина этого и как это исправить. Кроме того, я забыл упомянуть, что у нас есть такая настройка сервера/клиента:

Сервер1 --> Сервер2 --> Сервер3 --> Клиент1 --> Клиент2 --> Клиент3

Итак, Server2 получает свое время от Server1, Server3 получает свое время от Server2, а Clients получают свое время от Server3. Также есть клиенты, подключенные напрямую к Server2. Важно, чтобы все Servers и Clients имели одинаковое время (в пределах ~100 мс)

Теперь возникла проблема с сетью Server3 и его клиентами. Серверы используют порт ntpd для Windows, который действует как сервер и клиент NTP. У клиентов Dimension4 является клиентом NTP. После сетевой проблемы сообщение об ошибке в D4 было примерно таким (вылетело из головы, точного сообщения об ошибке у меня нет):

Ответ сервера: Сервер находится в состоянии паники (не удалось синхронизировать часы)

Я прочитал документацию ntpd, и единственное упоминание о "панике" - это когда разница во времени составляет 10000 секунд, что приведет к выходу из сервера ntpd, но это не тот случай. Также есть ключ командной строки "-g" для отключения выхода из паники, но он уже установлен по умолчанию.

Есть идеи, что может вызвать паническое состояние и как от него избавиться в следующий раз?

решение1

Я используюNetTime, на протяжении многих лет, как клиент, так и сервер.

Это программное обеспечение в первую очередь является NTP-клиентом, но оно также хорошо работает в качестве NTP-сервера в локальной сети (опция: разрешить другому компьютеру синхронизироваться с этим компьютером).

решение2

Мы видим гораздо больше, чем 500 мс от W32time, скорее 16 мс, что является разрешением системных таймеров Windows. Это измеряется реальными серверами Linux stratum-2 NTPd в той же гигабитной локальной сети. Погуглите "windows time service tools and settings" и прочтите о настройке "updateinteval", которую можно изменить через групповую политику или напрямую в реестре. Сейчас не могу проверить, но я помню, что у нас она установлена ​​на 100 для всех наших серверов, что является значением по умолчанию для контроллеров домена, но не для других членов домена Windows.

Обновлено: На самом деле для всех наших серверов это значение установлено на 100. Подробности настройки UpdateInterval:

UpdateInterval

Путь к реестру: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

Версия: Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008 и Windows Server 2008 R2.

Эта запись определяет количество тактов часов между корректировками фазовой коррекции. Значение по умолчанию для контроллеров домена — 100. Значение по умолчанию для членов домена — 30 000. Значение по умолчанию для автономных клиентов и серверов — 360 000.

Как вы можете видеть, по умолчанию W32time "регулирует" часы только раз в 30 000 тактов для не-контроллеров домена, или гораздо хуже, если они не являются членами домена. Такт в Windows обычно составляет 1/64 секунды в зависимости от оборудования, так что это означает, что часы корректируются только раз в 8 минут или около того в конфигурации по умолчанию. Это нормально для большинства приложений, но не для приложений, чувствительных к времени.

Более подробную информацию можно найти здесь: http://technet.microsoft.com/en-us/library/cc773263(v=ws.10).aspx#w2k3tr_times_tools_uhlp

решение3

Список программного обеспечения всех времен, составленный NIST, выглядит следующим образом:здесь. Тот, который я использовал в прошлом, — это сервер clockwatch. Я бы также рекомендовал вам изменить топологию синхронизации. server1 должен быть источником для всего времени в сети (с серверами 2 и 3 в качестве резервных). Клиенты должны выполнять одноранговую синхронизацию только в том случае, если сервер недоступен.

Связанный контент