Чому один із моїх вимикачів вимкнений на дві хвилини, незважаючи на ntp?


11

Я щойно випадково помітив, що у одного з моїх комутаторів 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 status10.0.99.1, що годинник насправді повністю синхронізований (порівняно з усіма хостами та референтними годинниками, згаданими в sho ntp asso)? Для мене результат виглядає як дуже витончений "я цілком задоволений".

EDIT: За попитом населення, вихід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

Я не можу помітити жодну систему, в якій IP-адреси, які ви налаштували як ntp-сервери, що використовуються кожним пристроєм. І я помічаю цикл, а також пару, використовуючи один одного як ntp-сервери. Я вважаю, що в тих випадках ви повинні вказати їх як однолітків ntp, а не серверів. Хоча я мушу визнати, що я не знаю, яка саме різниця це робить, вказуючи його як рівний або серверний. Крім того, я не переконаний, що це гарна ідея, щоб все синхронізувалося через один хост ( 10.0.0.1). Але я не думаю, що жодне з моїх спостережень не може прямо пояснити причину вашої поточної проблеми.
kasperd

2
Одна з найголовніших проблем у вашій конфігурації ntp полягає в тому, що кожен хост налаштований з найгіршою можливою кількістю джерел часу. "Людина з одним годинником знає, котрий час, людина з двома годинниками ніколи не впевнений ..." Будь-яке інше число краще двох, чотирьох - це, мабуть, найкращий вибір, воно дає подушку, якщо один недоступний і все-таки залишає три джерела.
dfc

4
Потрібно переглянути всю конфігурацію NTP. Вам потрібно працювати з рівнями прошарку. Як зазначав @kasperd, у вас може виникнути проблема з циклом. Вам слід синхронізуватись лише із серверами з нижчим рівнем шару, і ті, що знаходяться на тому ж рівні шару, можуть вдивлятися, але не використовувати один одного як сервери. Пристроєним пристроям все ще потрібен один або більше серверів на нижчому рівні шару як авторитетного джерела (джерел), але вони намагатимуться узгодити себе з іншими колегами. Не використовуйте зайняті пристрої (наприклад, основні комутатори) як сервери NTP.
Рон Моупін

3
Щось дуже дивне відбувається. Весь вихід ntp досить нормальний і демонструє гарну синхронізацію. І все ж ваша команда отримати час від пристрою дала час, який зовсім не виходить. Це говорить про те, що чомусь пристрій у відключений час не налаштовує свій системний годинник зі своєї підсистеми ntp.
Девід Шварц

1
Це дійсно звучить так, ніби ви знайшли помилку, і, мабуть, єдиний шлях вперед - це перезавантажити її і сподіватися, що вона пройде або зв’язатися з Cisco.
дероберт

Відповіді:


2

Я трохи не бажаю розміщувати це як відповідь, оскільки первісна причина все ще незрозуміла. Тим не менш, проблема, здається, вирішена - принаймні на даний момент.


Після коментарів htm11h я вирішив оновити прошивку. І справді, тепер, коли я працюю з новішою прошивкою, годинник, здається, відповідає правильному часу.

Але чи означає це, що нова прошивка була рішенням? На жаль, немає. У першій моїй спробі завантажити нову прошивку я забув змінити конфігурацію конфігурації, яка все ще була за замовчуванням. Тому моє перше перезавантаження закінчилось тим самим оригінальним зображенням ПЗУ, який маршрутизатор працював майже чотири роки (тобто з моменту його початкового включення). І все-таки цього було достатньо, щоб годинник здійснив одну величезну коригування, а потім залишився синхронізованим. Це говорить про те, що просте перезавантаження може допомогти - тимчасово. У свою чергу, це означає, що тепер правильний час, показаний з новішою прошивкою, все ще може відійти від ntp часу протягом наступних років. Мине кілька днів, поки я сміливо можу сказати, чи втрачав годинник близько 5 секунд на день ...

Наразі справа закрита.


1

Я провів досить багато роботи з проектом 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/

Сподіваюся, це корисно. Будь ласка, запитайте, чи є у вас більше запитань чи проблем.


0

Повне розкриття: я лише іноді взагалі обмінювався з конфігураціями комутаторів, і я жодним чином не є експертом NTP.

Однак, я бачив демон NTP в системах RHEL 5.x (так, я повертаюсь назад, але ви сказали, що ваш перемикач мав зображення у віці ~ 4 років ...) застряг у "щасливому" стані , де здавалося, що це ідеально синхронізовано, але явно не було. Ми використовували б сеанс ClusterSSH, щоб одночасно запустити "дату" на всіх системах, і це може іноді показувати цілих 5 хвилин дрейфу між системами. Якщо я пам'ятаю правильно, ми могли, здається, вирішити проблему лише перезапустивши демон, і в кінцевому підсумку просто змусили cron перезапускати послугу щовечора ...

Ні в якому разі не є ідеальним рішенням, але ви, можливо, зможете застосувати аналогічний підхід із завданням cron, щоб підключитися до комутатора і ініціювати перезавантаження, або якось "вдарити" демон NTP на комутатор?

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.