Cisco IOSのNTPサーバとNTPクライアントの設定をまとめます。NTPにはclient mode, active mode, peer modeの3種類の設定方法が存在します。
概要
NTPについてまとめます。NTPには以下3つの時刻同期の方法があります。
モード | 説明 |
---|---|
server client mode | 信頼できる時刻源(server)への時刻要求を送るモードです。serverは時刻要求を受信すると、clientに時刻を返します。 |
synmetric active mode | NTPサーバ同士が互いに時刻同期を取り合うモードです。 |
broadcast mode | NTPサーバがブロードキャストまたはマルチキャストで時刻を送信するモードです。 |
時刻同期の設定
基本設定
以下のコマンドで上位のNTPサーバと同期を取る事ができます。NTPサーバを複数台指定した場合は、preferキーワードを指定したサーバを優先して同期します。
Router(config)# ntp server <addr> [prefer]
以下のコマンドで、ルータをNTPサーバとして動作させる事ができます。なお、前述のntp serverコマンドと併用し外部NTPより大きなstratumを指定すると、外部NTPサーバと同期できない時のみmasterとして動作するようになります。
Router(config)# ntp master <stratum>
上記のntp masterコマンドと併用し、NTPサーバ同士で互いに同期を取ります。
Router(config)# ntp peer <addr>
NTPサーバとの通信で使用する送信元interfaceを指定します。
Router(config)# ntp source <interface>
ブロードキャストまたはマルチキャストで、時刻同期情報を送信します。なお、マルチキャストアドレスを省略した場合は、NTPがよく使用する224.0.1.1宛てに送信されます。
Router(config-if)# ntp { broadcast | multicast <addr> }
上記ブロードキャストまたはマルチキャストで送信された時刻同期情報を受信します。
Router(config)# ntp { broadcast client | multicast client <addr> }
動作確認
以下の構成で動作確認を行います。なお、NTPに関する仕様は以下の通りです。
- BB1はstratum 5のNTPサーバです。
- R1はBB1と時刻同期します。もし、BB1との通信が途絶えた場合は、R1自身の時刻をstratum 7として他のサーバに提供できるようにします。
- R2はBB1と時刻同期します。もし、BB1との通信が途絶えた場合は、R2自身の時刻をstratum 7として他のサーバに提供できるようにします。
- R1, R2は互いに時刻同期を取ります。
- R3はR1, R2と時刻同期を取り、なるべくR1の時刻を優先するようにします。
- R2からR4へブロードキャストで時刻情報を送信します。
e0/0 .3+--------+ ┌----+ R3 | +--------+ +--------+ │ +--------+ | BB1 +--------+ R1 +----┤ +--------+.254 .1+--------+.1 │ +--------+ +--------+ e0/1 e0/1 e0/0 └----+ R2 +----------+ R4 | 200.1.1.0/24 .2+--------+.2 .4+--------+ e0/0 e0/1 e0/1 192.168.123.0/24 192.168.24.0/24 R1 Loopback0 R2 Loopback0 R3 Loopback0 R4 Loopback0 10.1.1.1/32 10.2.2.2/32 10.3.3.3/32 10.4.4.4/32
[BB1] ntp master 5 [R1] ntp source Loopback0 ntp master 7 ntp peer 10.2.2.2 ntp server 200.1.1.254 [R2] ntp source Loopback0 ntp master 7 ntp peer 10.1.1.1 ntp server 200.1.1.254 ! interface Ethernet0/1 ntp broadcast [R3] ntp source Loopback0 ntp server 10.1.1.1 prefer ntp server 10.2.2.2 [R4] interface Ethernet0/1 ntp broadcast client
設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。
外部サーバとの同期
NTPサーバの状態確認は以下のコマンドを使用します。show ntp statusは自身のstratumを確認でき、show ntp associationsで時刻同期の状況が確認できます。時刻同期しているサーバに関しては、*(アスタリスク)のマークが付与されます。
R1#show ntp status Clock is synchronized, stratum 6, reference is 200.1.1.254 nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**24 reference time is D33172DE.565CF2EF (15:27:26.337 UTC Thu Apr 12 2012) clock offset is -7.2357 msec, root delay is 27.95 msec root dispersion is 7894.03 msec, peer dispersion is 7886.75 msec R1# R1#show ntp associations address ref clock st when poll reach delay offset disp ~10.2.2.2 200.1.1.254 6 45 64 2 -2.3 15.07 15876. +~127.127.7.1 127.127.7.1 6 23 64 7 0.0 0.00 3875.0 *~200.1.1.254 127.127.7.1 5 43 64 3 28.0 -7.24 7881.3 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R1#
R1, R2の状態について考察します。R1, R2はstratum 5のBB1と同期しているため、R1, R2のstratumは6になります。*(アスタリスク)マークが付与されている事から、BB1(200.1.1.254)と時刻同期している事が確認できます。また、+(プラス)マークが付与されている事から、R1(10.1.1.1), R2(10.2.2.2)が互いに同期している事が確認できます。
[R1] R1#show ntp status | include stratum Clock is synchronized, stratum 6, reference is 200.1.1.254 R1# R1# R1#show ntp associations address ref clock st when poll reach delay offset disp +~10.2.2.2 200.1.1.254 6 3 64 176 -2.3 15.07 387.3 +~127.127.7.1 127.127.7.1 6 45 64 177 0.0 0.00 125.0 *~200.1.1.254 127.127.7.1 5 1 64 177 16.1 -0.79 136.7 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R1# [R2] R2#show ntp status | include stratum Clock is synchronized, stratum 6, reference is 200.1.1.254 R2# R2# R2#show ntp associations address ref clock st when poll reach delay offset disp +~10.1.1.1 200.1.1.254 6 48 64 37 4.3 -4.76 890.7 +~127.127.7.1 127.127.7.1 6 6 64 177 0.0 0.00 125.0 *~200.1.1.254 127.127.7.1 5 49 64 77 52.2 -31.40 406.8 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R2#
R3の状態について考察します。*(アスタリスク)マーク, +(プラス)マークが付与されている事から、R1(10.1.1.1), R2(10.2.2.2)と時刻同期している事が確認できます。
[R3] R3#show ntp status | include stratum Clock is synchronized, stratum 7, reference is 10.1.1.1 R3# R3# R3#show ntp associations address ref clock st when poll reach delay offset disp *~10.1.1.1 200.1.1.254 6 53 64 7 36.1 -0.50 3881.1 +~10.2.2.2 200.1.1.254 6 8 64 17 32.1 -44.90 1901.0 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R3#
R4の状態について考察します。*(アスタリスク)マークが付与されている事から、R2(192.168.24.2)と時刻同期している事が確認できます。
[R4] R4#show ntp status | include stratum Clock is synchronized, stratum 7, reference is 192.168.24.2 R4# R4# R4#show ntp associations address ref clock st when poll reach delay offset disp * 192.168.24.2 200.1.1.254 6 9 64 77 44.2 57.14 933.5 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R4#
LAN内の同期
BB1と疎通不能になっても、R1, R2だけで時刻が提供できる事を確認します。BB1との疎通を断ち、20, 30分待ちます。
interface Ethernet0/1 shutdown
R1, R2の状態について考察します。R1, R2はBB1との時刻同期ができなくなったので、自身を最も信頼できる時刻源としている事が分かります。stratumが6から7に変わった事と、自身(127.127.7.1)に*(アスタリスク)マークが付与されている事を確認して下さい。
[R1] R1#show ntp status | include stratum Clock is synchronized, stratum 7, reference is 127.127.7.1 R1# R1# R1#show ntp associations address ref clock st when poll reach delay offset disp +~10.2.2.2 127.127.7.1 7 76 512 376 36.2 -1.86 11.0 *~127.127.7.1 127.127.7.1 6 25 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 1407 64 0 15.9 23.20 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R1# [R2] R2#show ntp status | include stratum Clock is synchronized, stratum 7, reference is 127.127.7.1 R2# R2# R2#show ntp associations address ref clock st when poll reach delay offset disp +~10.1.1.1 127.127.7.1 7 51 128 377 16.1 -4.65 12.3 *~127.127.7.1 127.127.7.1 6 30 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 1432 64 0 20.2 20.64 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R2#
R3, R4の状態について考察します。stratumが7から8に変わった事が分かります。
R3#show ntp status | include stratum Clock is synchronized, stratum 8, reference is 10.1.1.1 R3# R3# R3#show ntp associations address ref clock st when poll reach delay offset disp *~10.1.1.1 127.127.7.1 7 6 128 377 24.2 5.37 22.7 +~10.2.2.2 127.127.7.1 7 18 128 377 8.1 -24.04 16.3 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R3# R4#show ntp status | include stratum Clock is synchronized, stratum 8, reference is 192.168.24.2 R4# R4# R4#show ntp associations address ref clock st when poll reach delay offset disp * 192.168.24.2 127.127.7.1 7 30 64 376 44.2 -3.19 14.9 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R4#
NTP 認証設定
基本設定
以下のコマンドでNTP認証を有効にします。
Router(config)# ntp authenticate
NTPが使用する鍵を定義します。
Router(config)# ntp authentication-key <key_number> md5 <key_string>
信頼する鍵を定義します。信頼する鍵は、stratumが自身以下であるサーバ(NTP server, NTP peer)に対して定義する必要があります。
Router(config)# ntp authentication-key <key_number> md5 <key_string>
各NTPサーバに対して鍵を定義します。
Router(config)# ntp peer <addr> key <key_number> Router(config)# ntp server <addr> key <key_number> [ prefer ] Router(config-if)# ntp { broadcast | multicast [ <addr>] } key <key_number>
設定例
R1, R2, R3, R4に対してNTP認証の設定を投入します。
[R1] ntp authenticate ntp authentication-key 12 md5 CISCO12 ntp authentication-key 13 md5 CISCO13 ntp peer 10.2.2.2 key 12 ntp trusted-key 12 [R2] ntp authenticate ntp authentication-key 12 md5 CISCO12 ntp authentication-key 23 md5 CISCO23 ntp peer 10.1.1.1 key 12 ntp trusted-key 12 ntp authentication-key 24 md5 CISCO24 ! interface Ethernet0/1 ntp broadcast key 24 [R3] ntp authenticate ntp authentication-key 13 md5 CISCO13 ntp authentication-key 23 md5 CISCO23 ntp server 10.1.1.1 key 13 prefer ntp server 10.2.2.2 key 23 ntp trusted-key 13 ntp trusted-key 23 [R4] ntp authenticate ntp authentication-key 24 md5 CISCO24 ntp trusted-key 24
動作確認
show ntp associationsで確認できる事は時刻同期しているかどうかです。認証しているかどうかはshow ntp associations detailでauthenticatedと表示されているかどうかで確認します。
[R1] R1#show ntp associations address ref clock st when poll reach delay offset disp +~10.2.2.2 127.127.7.1 7 26 1024 276 36.2 -7.51 12.6 *~127.127.7.1 127.127.7.1 6 25 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 2303 64 0 15.9 23.20 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R1# R1#show ntp associations detail 10.2.2.2 configured, authenticated, selected, sane, valid, stratum 7 ref ID 127.127.7.1, time D3317D47.C9498572 (16:11:51.786 UTC Thu Apr 12 2012) our mode active, peer mode active, our poll intvl 1024, peer poll intvl 128 root delay 0.00 msec, root disp 2.09, reach 336, sync dist 49.332 delay 56.21 msec, offset 2.7251 msec, dispersion 18.14 precision 2**24, version 3 org time D3317D71.C94FA0B3 (16:12:33.786 UTC Thu Apr 12 2012) rcv time D3317D71.CFCF4DAB (16:12:33.811 UTC Thu Apr 12 2012) xmt time D3317D76.50D39470 (16:12:38.315 UTC Thu Apr 12 2012) filtdelay = 56.21 68.21 52.08 64.16 20.46 72.45 36.24 52.43 filtoffset = 2.73 -3.08 -30.92 -24.78 -18.37 -16.16 -1.86 -1.74 filterror = 1.39 3.14 4.12 5.84 9.75 11.70 13.61 15.44 <omitted>
R2, R3, R4についても認証が行われている事を確認します。
[R2] R2#show ntp associations address ref clock st when poll reach delay offset disp +~10.1.1.1 127.127.7.1 7 78 128 377 28.0 11.57 9.0 *~127.127.7.1 127.127.7.1 6 60 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 2358 64 0 20.2 20.64 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R2# R2# R2#show ntp associations detail | include auth 10.1.1.1 configured, authenticated, selected, sane, valid, stratum 7 R2# [R3] R3#show ntp associations address ref clock st when poll reach delay offset disp *~10.1.1.1 127.127.7.1 7 224 512 377 55.9 -2.03 10.7 +~10.2.2.2 127.127.7.1 7 233 512 377 63.7 -23.17 18.4 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R3# R3# R3#show ntp associations detail | include auth 10.1.1.1 configured, authenticated, our_master, sane, valid, stratum 7 10.2.2.2 configured, authenticated, selected, sane, valid, stratum 7 R3# [R4] R4#show ntp associations address ref clock st when poll reach delay offset disp * 192.168.24.2 127.127.7.1 7 23 64 377 44.2 -0.29 10.1 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R4# R4#show ntp associations de R4#show ntp associations detail | include auth 192.168.24.2 dynamic, authenticated, our_master, sane, valid, stratum 7 R4#
NTP 認証設定
基本設定
以下のコマンドでNTPに対するアクセス制御を行います。
Router(config)# ntp access-group query-only <std_acl> Router(config)# ntp access-group serve-only <std_acl> Router(config)# ntp access-group serve <std_acl> Router(config)# ntp access-group peer <std_acl>
query-only, serve-only, server, peerが許可する操作を表で表すと以下の通りです。
制御クエリ受信 | 時刻要求受信 | 時刻同期すること | 備考 | |
---|---|---|---|---|
query-only | ○ | × | × | |
serve-only | × | ○ | × | NTP cleintを制限 |
serve | ○ | ○ | × | |
peer | ○ | ○ | ○ | NTP peerを制限 |
設定例
アクセス制御の設定例は以下の通りです。なお、peerを制御する場合は自身(127.127.7.1)との同期を許可する設定を忘れないように注意して下さい。
[R1] access-list 1 permit host 127.127.7.1 access-list 1 permit host 10.2.2.2 access-list 1 deny any log ntp access-group peer 1 ! access-list 2 permit host 10.3.3.3 access-list 2 deny any log ntp access-group serve 2 [R2] access-list 1 permit host 127.127.7.1 access-list 1 permit host 10.1.1.1 access-list 1 deny any log ntp access-group peer 1 ! access-list 2 permit host 10.3.3.3 access-list 2 deny any log ntp access-group serve 2
アクセス制御設定の20, 30分後も、問題なく時刻同期できる事を確認します。
[R1] R1#show ntp associations address ref clock st when poll reach delay offset disp +~10.2.2.2 127.127.7.1 7 55 1024 376 20.1 -40.85 26.2 *~127.127.7.1 127.127.7.1 6 54 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 3228 64 0 15.9 23.20 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R1# [R2] R2#show ntp associations address ref clock st when poll reach delay offset disp +~10.1.1.1 127.127.7.1 7 78 128 377 16.1 38.83 21.5 *~127.127.7.1 127.127.7.1 6 60 64 377 0.0 0.00 0.0 ~200.1.1.254 127.127.7.1 5 3254 64 0 20.2 20.64 16000. * master (synced), # master (unsynced), + selected, - candidate, ~ configured R2# [R3] R3#show ntp associations address ref clock st when poll reach delay offset disp *~10.1.1.1 127.127.7.1 7 345 512 377 45.2 -11.36 34.9 +~10.2.2.2 127.127.7.1 7 354 512 377 55.9 -29.46 13.3 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R3# [R4] R4#show ntp associations address ref clock st when poll reach delay offset disp * 192.168.24.2 127.127.7.1 7 55 64 376 44.2 13.56 24.1 * master (synced), # master (unsynced), + selected, - candidate, ~ configured R4#
以上の最終的な設定は以下の通りです。
Tips
timezone, summer time
Cisco IOSはtimezoneおよびsummer timeの設定が可能です。
Router(config)# clock timezone <code> <hour> Router(config)# clock summer-time <code> [ recurring | date <start> <end> ]
設定例は以下の通りです。NTPはUTCによる時刻を伝播させるので、機器毎に異なるtimezoneを設定しても差し支えありません。
[R1] clock timezone CST -6 clock summer-time CDT recurring [R2] clock timezone PST -8 clock summer-time PDT recurring
R1, R2それぞれ問題なくtimezoneが設定されている事が確認できます。
[R1] R1#show clock 11:00:36.659 CST Thu Nov 22 2012 R1# [R2] R2#show clock 09:00:39.681 PST Thu Nov 22 2012 R2#
show version
Cisco IOSはNTPによる時刻同期が行われていると、show version出力時に起動時刻が表示されるようになります。
R2#show version Cisco IOS Software, 3600 Software (C3640-A3JS-M), Version 12.4(25b), RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2009 by Cisco Systems, Inc. Compiled Wed 12-Aug-09 12:52 by prod_rel_team ROM: ROMMON Emulation Microcode ROM: 3600 Software (C3640-A3JS-M), Version 12.4(25b), RELEASE SOFTWARE (fc1) R2 uptime is 12 minutes System returned to ROM by unknown reload cause - suspect boot_data[BOOT_COUNT] 0x0, BOOT_COUNT 0, BOOTDATA 19 System restarted at 08:51:05 PST Thu Nov 22 2012 System image file is "tftp://255.255.255.255/unknown"