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

Почему один из моих коммутаторов отключился на две минуты, несмотря на ntp?

Я просто случайно заметил, что у одного из моих коммутаторов Cisco 4500 часы идут неправильно: это более чем на 2 минуты позади несмотря на кажущуюся работоспособность ntp. На мой взгляд, даже одна секунда не должна считаться приемлемой для задействованных систем. Также я бы не заметил отличия от диагностики, если бы не сравнил ее с простыми настенными часами.

Некоторые детали

Вот информация ntp для некоторых из моих хостов (10.0.99.1, 10.0.99.2, 10.0.1.119, 10.0.99.241), которые частично ссылаются друг на друга для отката, но в основном все должны в конечном итоге синхронизироваться с 10.0.0.1, что снова вызывает время извне. Таким образом, расхождение во времени не может быть результатом разных исходных источников времени. Поскольку наблюдения сделали меня несколько параноиком, "правильно время" означает следующее: show clock (или date) выдал результат, который соответствует моим настенным часам и моим локальным системным часам (что нормально в соответствии с http://time.is) с ошибкой, конечно, менее 1 секунды (точность нажатия ENTER при просмотре моих локальных часов)

10.0.1.119 (Ubuntu) показывает правильное время

$ ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+10.0.99.1       10.0.0.1         3 u  855 1024  377    0.904   -2.658   0.113
*10.0.0.1        130.149.17.8     2 u  266 1024  377    0.253    0.909   0.127

10.0.99.241 (Cisco 2960) имеет правильное время

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.99.1       10.0.0.1         3     28     64   377  1.462  85.288 19.758
+~10.0.99.2       10.0.1.119       4     29     64   377  1.297  83.515  5.369
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.2 (Cico 4500) показывает правильное время

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
+~10.0.99.1       10.0.0.1         3      6   1024   111  1.148  -1.618 42.875
*~10.0.1.119      10.0.0.1         3     31   1024   377  0.043   1.687  1.064
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.1 (Cisco 4500) отстает примерно на 2 минуты 6 секунд

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.0.1        130.149.17.8     2    274   1024   377 15.625   3.681 30.403
+~10.0.99.2       10.0.1.119       4    415   1024   376 15.625   0.855 33.276
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

#sho ntp status 
Clock is synchronized, stratum 3, reference is 10.0.0.1      
nominal freq is 250.0000 Hz, actual freq is 249.9988 Hz, precision is 2**6
reference time is DAD8B428.54C6BAEA (20:36:24.331 MESZ Sat May 7 2016)
clock offset is 3.6818 msec, root delay is 32.80 msec
root dispersion is 71.74 msec, peer dispersion is 30.40 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000004720 s/s
system poll interval is 1024, last update was 683 sec ago.

Вопросы

  1. Почему 10.0.99.1 так далеко?
  2. Почему системы, которые синхронизируются с 10.0.99.1, правильные?
  3. Как мне узнать из вывода sho ntp status на 10.0.99.1, что часы на самом деле полностью не синхронизированы (по сравнению с все хосты и эталонные часы, упомянутые в sho ntp asso)? Для меня результат выглядит как очень тщательно продуманное «Я полностью счастлив».

РЕДАКТИРОВАТЬ: По многочисленным просьбам выпуск sho clock detail

10.0.99.1

#sho clock detail 
13:06:38.605 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016

10.0.99.2

#sho clock detail 
13:10:54.083 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016

Я немного не хочу публиковать это в качестве ответа, потому что первоначальная причина все еще неясна. Тем не менее проблема вроде бы решена - по крайней мере, на данный момент.


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

Но означает ли это, что новая прошивка была решением? К сожалению нет. При первой попытке загрузить новую прошивку я забыл изменить регистр конфигурации, который по-прежнему оставался заводским по умолчанию. Таким образом, моя первая перезагрузка закончилась тем же исходным образом ПЗУ, на котором маршрутизатор работал почти четыре года (т.е. с момента его первоначального включения). И все же этого было достаточно для того, чтобы часы сделали одну огромную корректировку и затем синхронизировались. Это говорит о том, что простая перезагрузка могла помочь - временно. В свою очередь, это означает, что текущее правильное время, показываемое в новой прошивке, может все еще отклоняться от времени ntp в ближайшие годы. Пройдет несколько дней, прежде чем я смогу с уверенностью сказать, теряли ли часы около 5 секунд в день ...

На данный момент дело закрыто.

Я довольно много поработал с проектом NTP Pool с середины 90-х и запустил здесь несколько серверов NTP Stratum-1 GPS Synced. Как утверждали другие, вам нужно более 2 серверов, чтобы получить время. Я обычно использую здесь 4 по причинам, указанным выше Роном Мопином. Также, как указано в списке, вам нужно следить за циклами и настраивать параметры как серверы против одноранговых.

Дрейф времени мог быть из-за известной ошибки в IOS, которая была исправлена ​​в этом обновлении IOS, касающегося того, что ntp.drift не удаляется или не обновляется правильно, и, следовательно, проблема дрейфа. Кроме того, 4 ГОДА без перезагрузки или обновления должны были оставить вас в довольно плохом месте с точки зрения безопасности, поскольку обновления безопасности IOS выходят довольно часто.

Вот отличный пост о настройке NTP на Cisco IOS http://packetlife.net/blog/2011/mar/28/cisco-ios-clocks-and-ntp/

Надеюсь, это будет полезно. Пожалуйста, спросите, есть ли у вас еще вопросы или проблемы.

Полное раскрытие: я лишь изредка возился с конфигурациями коммутаторов, и я ни в коем случае не эксперт по NTP.

Тем не менее, я раньше видел, как демон NTP в системах RHEL 5.x (да, я возвращаюсь назад, но вы сказали, что у вашего коммутатора изображение возрастом ~ 4 года ...) застревает в "счастливом" состоянии , где казалось, что это было идеально синхронизировано, но явно не было. Мы использовали бы сеанс ClusterSSH для одновременного запуска «даты» на всех системах, и это иногда показывало бы до 5 минут дрейфа между системами. Если я правильно помню, мы могли решить проблему только путем перезапуска демона и в конечном итоге просто заставили cron перезапускать службу каждую ночь ...

Ни в коем случае не идеальное решение, но вы могли бы применить аналогичный подход с заданием cron для подключения к коммутатору и инициировать перезагрузку, или каким-то образом «пнуть» демона NTP на коммутаторе?

Надеюсь это поможет!