Я ищу, желательно бесплатный, NTP-сервер для Windows Server 2003/2008. Мы уже пробовали встроенный Windows Time Server, но наши тесты показали, что он не очень точен, мы видим разницу во времени до 500 мс. Максимальная разница во времени, которую мы можем допустить для нашего приложения, составляет ~ 100 мс.
Теперь мы уже использовали Майнберг NTPd для Windows. Он отлично работает, за исключением того, что у нас есть одна большая проблема: если есть проблема с сетевым подключением между клиентом и сервером, сервер ntp находится в состоянии паники. Он не даст клиенту новое время, пока мы не перезапустим службу ntp. Это большая проблема, которая доставила нам некоторые проблемы. Он работал нормально в течение нескольких месяцев, пока не возникла проблема с сетью, которую мы не заметили, мы заметили ее только через неделю, когда разница во времени составила уже 30 секунд. по клиентам.
Поэтому, пожалуйста, предложите альтернативный NTP-сервер для Windows. Я использовал Google, но получаю много несвязанных результатов поиска.
Редактировать: Пока что версия ntpd для Windows была очень точной, и я бы хотел ее придерживаться. Единственная проблема - "состояние паники" после отключения сети. Может быть, здесь кто-то знает, в чем причина этого и как это исправить. Кроме того, я забыл упомянуть, что у нас есть такая настройка сервера / клиента:
Сервер1 -> Сервер2 -> Сервер3 -> Клиент1 -> Клиент2 -> Клиент3
Таким образом, Server2 получает время от Server1, Server3 получает свое время от Server2, а клиенты получают свое время от Server3. Также есть клиенты, подключенные напрямую к Server2. Важно, чтобы все серверы и клиенты имели одно и то же время (в пределах ~ 100 мс).
Теперь возникла сетевая проблема с Server3 и его клиентами. На серверах работает порт ntpd для Windows, который действует как сервер и клиент NTP. У клиентов есть Dimension4 в качестве клиента NTP. После проблемы с сетью сообщение об ошибке в D4 было примерно таким (в моей голове нет точного сообщения об ошибке):
Ответ сервера: сервер находится в состоянии паники (не удалось синхронизировать часы)
Я прочитал документацию по ntpd, и единственное упоминание о «панике» - это когда разница во времени составляет 10000 секунд, что приведет к выходу с сервера ntpd, но это было не так. Также есть переключатель командной строки «-g» для отключения аварийного выхода, но он уже установлен по умолчанию.
Есть идеи, что могло вызвать паническое состояние и как от него избавиться в следующий раз?
Я использую NetTimeкак клиент, так и сервер.
Это программное обеспечение является основным клиентом NTP, но оно также хорошо работает как сервер NTP в локальной сети (опция: разрешить другому компьютеру синхронизироваться с этим компьютером).
Мы видим намного лучше, чем 500 мс от W32time, больше похоже на 16 мс, что является разрешением системных таймеров Windows. Это измеряется реальными серверами Linux stratum-2 NTPd в той же гигабитной локальной сети. Google "инструменты и настройки службы времени Windows" и прочтите о настройке "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 тиков для контроллеров, не относящихся к домену, или, что еще хуже, если они не являются членами домена. Галочка в окнах обычно составляет 1/64 секунды в зависимости от оборудования, так что это означает, что в конфигурации по умолчанию часы корректируются только каждые 8 минут или около того. Это нормально для большинства приложений, но не для приложений, чувствительных к времени.
Более подробную информацию можно найти здесь: http://technet.microsoft.com/en-us/library/cc773263(v=ws.10).aspx#w2k3tr_times_tools_uhlp
Список ссылок на все время программного обеспечения, перечисленный NIST: Вот. Раньше я использовал сервер часов. Я также рекомендую вам изменить топологию синхронизации. server1 должен быть источником для всех времен в сети (с серверами 2 и 3 в качестве резервных копий). Клиенты должны выполнять одноранговую синхронизацию только при отсутствии доступного сервера.