Назад | Перейти на главную страницу

Настройка серверов NTP

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

Есть два резервных сервера NTP под управлением RHEL 5.4 и несколько клиентов Windows XP. Требования заключаются в том, что сеть синхронизируется с сервером A, а сервер B действует как резервный. У нас есть GPS, который действует как сервер времени, контролирующий и сервер A, и сервер B, но он не всегда доступен. Когда присутствует GPS, оба сервера синхронизируются с GPS.

Клиенты XP, кажется, делятся на две группы, когда серверы расходятся; с одним из следующих серверов A и другим сервером B.

Как я могу предотвратить разнос двух моих серверов?

Могу ли я контролировать, за каким сервером следят клиенты XP?

Два файла ntp.conf выглядят следующим образом

ntp.conf для сервера A (10.203.224.13)

# Tweek NTP's behavior
tinker panic 0 step 0.01 stepout 64

# GPS
server 10.203.220.12 burst iburst minpoll 4 maxpoll 6

# Server A
server 10.203.224.13 burst iburst minpoll 4 maxpoll 6

# Server B
server 10.203.224.14 burst iburst minpoll 4 maxpoll 6

# Configure the local clock to serve from
server 127.127.1.1
fudge 127.127.1.1 stratum 11

# Establish the drift file location
driftfile /etc/ntp.drift 

ntp.conf для Сервера B (10.203.224.14)

# Tweek NTP's behavior
tinker panic 0 step 0.01 stepout 64

# GPS
server 10.203.220.12 burst iburst minpoll 4 maxpoll 6

# Server A
server 10.203.224.13 burst iburst minpoll 4 maxpoll 6

# Server B
server 10.203.224.14 burst iburst minpoll 4 maxpoll 6

# Configure the local clock to serve from
server 127.127.1.1
fudge 127.127.1.1 stratum 13

# Establish the drift file location
driftfile /etc/ntp.drift

На сервере A

[root@serverA]# ntpq -p

     remote           refid          st t when poll reach   delay   offset  jitter
==============================================================================
 10.203.220.12   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 10.203.224.13   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 10.203.224.14   LOCAL(1)        14 u   27   64  377    0.312  359.753   0.289
*LOCAL(1)       .LOCL.          11 l   55   64  377    0.000    0.000   0.001

На сервере B

[root@serverB]# ntpq -p

     remote           refid          st t when poll reach   delay   offset  jitter
==============================================================================
 10.203.220.12   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 10.203.224.13   LOCAL(1)        12 u   55   64  377    0.346  -359.56   0.107
 10.203.224.14   .INIT.          16 u    -   64    0    0.000    0.000   0.000
*LOCAL(1)       .LOCL.          13 l   54   64  377    0.000    0.000   0.001

На сервере A удалите линии, указывающие на него самого и на сервер B, оставив только «выдуманную» линию локальных часов и GPS. На сервере B удалите линию «выдумки» и линию сервера B, оставив только линию сервера A и GPS.

Идея состоит в том, что сервер A должен использовать GPS, если он доступен, в противном случае он должен доверять своим собственным часам. Сервер B должен использовать сервер A, независимо от того, получает ли сервер A время, или GPS. Если серверу B разрешено доверять самому себе, он будет рекламировать надежный источник времени для своих клиентов, даже если это время отличается от времени сервера A - что вы видите.

Здесь есть ряд проблем:

  1. Устройство GPS работает неправильно. Скорее всего, это проблема с подключением. Либо брандмауэр блокирует пакеты, либо он не прослушивает правильный интерфейс, либо он не может получить сигнал GPS или что-то подобное. Это может быть та периодическая недоступность, о которой вы упомянули. Если да, попробуйте показать ntpq -p когда он работает.
  2. GPS - это stratum 16. Когда он работает, он должен быть 1. Все, что выше 11, вызовет ту же проблему, что и у вас, потому что сервер A будет доверять своим локальным часам больше, чем чему-либо с 11 или выше.
  3. Сервер A настроен на получение времени от сервера B, а сервер B настроен на получение времени от сервера A. Этот тип настройки должен быть пиринговым, а не циклическим отношением главный / подчиненный. Использовать peer ключевое слово, а не server ключевое слово для этого.
  4. Сервер A и сервер B настроены на использование себя в качестве источника времени по протоколу ntp. Это избыточно и не работает. Либо соединение не работает, либо текущий уровень 16 и не может быть выше.
  5. Оба сервера выбрали свои собственные часы в качестве наиболее надежного источника времени (обозначены * рядом с LOCAL источник. Им обоим также удалось подключиться друг к другу. Я не уверен, почему сервер B не выбрал сервер A в качестве лучшего источника времени, поскольку он имеет наименьшее значение страты, но, вероятно, потому, что он имеет значительно более высокий джиттер, чем LOCAL источник времени.

Получите работу GPS, измените два сервера, чтобы они могли взаимодействовать друг с другом, и удалите линии, чтобы получить время с их собственного IP-адреса. (Локальные часы в порядке, но добавлять задержку сетевого протокола для локальных часов глупо.)