Как синхронизировать часы в локальной сети?

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

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

1 ответ

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

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

1a  1b     1c  1d     1e  1f      outside
. \ / ...... \ / ...... \ / ..............
   2a ---p--- 2b ---p--- 2c        inside
  /|\        /|\        /|\
 / | \      / | \      / | \
3a 3b 3c   3e 3f 3g   3h 3i 3j

Key: 1 = stratum-1, 2 = stratum-2, 3 = stratum-3, p = peer
#Diagram + more info: http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm

NTP-сервер A (myntp.server.a)

# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0
fudge 127.127.1.0 stratum 10

server 0.pool.ntp.org iburst 
server 1.pool.ntp.org iburst 
peer myntp.server.b
peer myntp.server.c

NTP-сервер B (myntp.server.b)

server 2.pool.ntp.org iburst 
server 3.pool.ntp.org iburst
peer myntp.server.a
peer myntp.server.c

Если ОДИН сервер (например, myntp.server.a) запускает локальные часы, все будет синхронизироваться с этим - как бы плохо это ни было - но по крайней мере часы в сети останутся вместе - подробнее на: http://compgroups.net/comp.protocols.time.ntp/undisciplined-local-clocks/1874258

Дополнительная информация: http://doc.ntp.org/4.1.1/confopt.htm

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