Поиск по этому блогу

25.08.2010

Синхронизация времени по NTP

В данной заметке приводится пример настройки синхронизации времени по протоколу NTP на маршрутизаторах Cisco, Juniper.
Для начала необходимо выбрать несколько источников синхронизации и устройство, которое будет от них синхронизироваться. Примем следующую схему:



Настроим ntp на граничном маршрутизаторе, подключенному к сети Интернет. Источники синхронизации рекомендую выбирать самостоятельно:
interface Loopback0
ip address 999.999.999.1 255.255.255.255
!
access-list 5 permit 999.999.999.0 0.0.0.255
access-list 6 permit 58.73.137.250
access-list 6 permit 146.164.48.5
access-list 6 permit 193.67.79.202
access-list 6 permit 130.149.17.8
access-list 6 permit 192.38.7.240
access-list 6 permit 199.165.76.11
access-list 6 permit 193.49.205.19
access-list 6 permit 140.31.199.8
access-list 6 permit 18.26.4.105
access-list 6 permit 192.36.133.17
access-list 6 permit 192.36.134.25
access-list 6 permit 62.117.76.142
access-list 6 permit 62.117.76.141
access-list 6 permit 62.117.76.140
access-list 6 permit 193.62.22.98
access-list 6 permit 129.6.15.28
access-list 6 permit 192.5.41.40
access-list 6 permit 193.2.4.2
access-list 6 permit 193.190.230.66
access-list 6 permit 131.188.3.220
access-list 6 permit 133.100.9.2
!
ntp source Loopback0
ntp access-group peer 6
ntp access-group serve-only 5
ntp master 5
ntp server 133.100.9.2
ntp server 193.2.4.2
ntp server 146.164.48.5
ntp server 130.149.17.8
ntp server 140.31.199.8
ntp server 199.165.76.11
ntp server 62.117.76.140
ntp server 62.117.76.141
ntp server 62.117.76.142
ntp server 192.36.133.17
ntp server 192.36.134.25
ntp server 129.6.15.28
ntp server 192.5.41.40
ntp server 193.190.230.66
ntp server 193.67.79.202
ntp server 131.188.3.220
ntp server 193.62.22.98
ntp server 18.26.4.105
ntp server 192.38.7.240
В данной конфигурации ntp делает запросы от интерфейса lo0. Порядок команд неслучаен. В случае, когда сначала задаются сервера, а потом интерфейс, обращения идут от ближайшего к серверу NTP интерфейса. Потребуется перезагрузка, либо удаление всех серверов и добавление их заново. Критично для случаев, когда у вас какие-либо ACL разрешают доступ по ntp для определенных адресов, либо NAT транслирует только Loopback'и, а запросы от них могут не идти, если порядок команд нарушен.
ntp access-group peer - разрешаем синхронизироваться от нашего маршрутизатора только устройствам из собственной сети.
ntp access-group serve-only - разрешаем синхронизироваться нашему маршрутизатору только от указанных устройств.
ntp master 5 - повысим немного stratum до 5.
Проверка:
BORDER#show ntp associations 

address ref clock st when poll reach delay offset disp
~127.127.1.1 .LOCL. 4 1 16 377 0.000 0.000 0.239
-~133.100.9.2 .GPS. 1 329 1024 377 388.76 -10.480 14.844
+~193.2.4.2 .GPS. 1 868 1024 377 138.63 -4.156 18.690
-~146.164.48.5 .GPS. 1 314 1024 377 329.80 5.906 14.825
+~130.149.17.8 .PPS. 1 53 1024 377 124.31 -3.582 18.644
-~140.31.199.8 140.31.199.67 2 347 1024 377 347.89 -28.847 14.845
-~199.165.76.11 .GPS. 1 858 1024 377 309.38 3.031 18.684
+~62.117.76.140 .PPS. 1 892 1024 377 54.026 -3.515 18.692
*~62.117.76.141 .PPS. 1 313 1024 377 53.562 -9.441 14.849
+~62.117.76.142 .PPS. 1 333 1024 377 57.318 -7.557 18.681
+~192.36.133.17 .PPS. 1 874 1024 377 130.73 -2.285 18.667
+~192.36.134.25 .PPS. 1 352 1024 377 129.74 -5.566 18.663
-~129.6.15.28 .ACTS. 1 880 1024 377 206.10 -19.655 14.827
-~192.5.41.40 .USNO. 1 296 1024 377 217.28 0.761 18.689
+~193.190.230.66 .PPS. 1 342 1024 377 130.40 -9.481 14.822
-~193.67.79.202 .PPS. 1 828 1024 377 117.07 1.319 14.826
+~131.188.3.220 .GPS. 1 874 1024 377 131.95 -4.950 14.835
+~193.62.22.98 .MSF. 1 354 1024 377 121.55 -2.656 18.648
+~18.26.4.105 .PPS. 1 874 1024 377 213.95 -5.532 14.825
+~192.38.7.240 .GPS. 1 83 1024 377 146.92 -8.415 14.828
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

BORDER#show ntp status
Clock is synchronized, stratum 2, reference is 62.117.76.141
nominal freq is 250.0000 Hz, actual freq is 249.9828 Hz, precision is 2**24
reference time is D01F0B38.43F765F3 (11:23:36.265 KRSK Wed Aug 25 2010)
clock offset is -0.0094 msec, root delay is 0.05 msec
root dispersion is 0.03 msec, peer dispersion is 0.01 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000068667 s/s
system poll interval is 1024, last update was 434 sec ago.

BORDER#show clock detail
11:29:59.076 KRSK Wed Aug 25 2010
Time source is NTP
Summer time starts 02:00:00 KRSK Sun Mar 28 2010
Summer time ends 03:00:00 KRSK Sun Oct 31 2010

Внешний источник синхронизации настроен, но есть еще и внутри сети атомные часы 10.10.10.10 на случай ядерной войны. Настройка маршрутизаторов 10.0.0.1 и 10.0.0.2 примитивна:

access-list 5 permit 10.0.0.0 0.255.255.255
access-list 6 permit 999.999.999.1
access-list 6 permit 10.10.10.10
ntp access-group serve-only 5
ntp access-group peer 6
ntp source Loopback0
ntp server 10.10.10.10
ntp server 999.999.999.1 prefer
В такой конфигурации (ntp server и больше ничего) любой маршрутизатор, коммутатор Cisco (короче нечто, где есть IOS) превращается в ntp-сервер, от которого может синхронизироваться кто угодно. Соответственно, на маршрутизаторах, коммутаторах прописывается:

access-list 6 permit 10.0.0.0 0.0.0.3
ntp access-group peer 6
ntp server 10.0.0.1
ntp server 10.0.0.2
Проверка:
router#show ntp associations 

address ref clock st when poll reach delay offset disp
~10.0.0.1 10.10.10.10 2 80 256 377 0.000 1.215 5.865
*~10.0.0.2 999.999.999.1 3 172 256 377 0.000 6.293 10.214
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
Следует отметить, что считается хорошей практикой устанавливать на маршрутизаторах при новой инсталляции время вручную, чтобы после перезагрузки получить время приближенное к действительности, а не 1993 год. Это критично как для логирования, сбора netflow, radius-аккаунтинга.
router#clock set 23:59:00 Dec 21 2012
Теперь синхронизировать будем Juniper:
root@junos> show configuration | display set | match ntp    
set system ntp server 10.0.0.1
set system ntp server 10.0.0.2
Проверка:
root@junos> show ntp associations 
remote refid st t when poll reach delay offset jitter
==============================================================================
*10.0.0.1 999.999.999.1 3 u 14 64 3 16.288 -27.760 23.627
+10.0.0.1 999.999.999.1 3 - 10 64 3 6.145 -27.633 19.544

root@junos> show ntp status
status=0644 leap_none, sync_ntp, 4 events, event_peer/strat_chg,
version="ntpd 4.2.0-a Tue Nov 3 09:45:49 UTC 2009 (1)",
processor="mips", system="JUNOS10.0R1.8", leap=00, stratum=4,
precision=-17, rootdelay=70.747, rootdispersion=83.134, peer=13748,
refid=10.0.0.1,
reftime=d01eff82.d5c61a6f Wed, Aug 25 2010 10:33:38.835, poll=6,
clock=d01eff9c.b10f3a5e Wed, Aug 25 2010 10:34:04.691, state=4,
offset=-27.693, frequency=68.926, jitter=17.191, stability=0.118

При синхронизации серверов следует учитывать, что ntpd - демон, который используется для автоматической синхронизации, позволяет синхронизировать только в случае, если разница во времени не слишком велика:
ntpd[1234]: time correction of -3600 seconds exceeds sanity limit (1000); set clock manually to the correct UTC time.
Необходимо в таких случаях выставить время вручную, либо использовать программу ntpdate, а только после перезапустить ntpd