トポロジ
以下のトポロジで設定を確認していきます。
![](https://itinfranote.com/wp-content/uploads/NTP-6.png)
基本的なNTP設定
clock set/calendar set
同期していることが分かりやすいようにNTPサーバで時刻の設定をします。システムクロックとハードウェアクロックどちらも時刻同期することが出来るので両方とも設定します。
なお、機器とNTPサーバの時刻差があるとうまく同期されないことがあるのですべての機器で設定しています。
R1#clock set 00:00:00 1 jan 2001
R1#calendar set 00:00:00 1 jan 2021
R2#clock set 00:00:00 1 jan 2002
R2#calendar set 00:00:00 1 jan 2022
R3#clock set 00:00:00 1 jan 2003
R3#calendar set 00:00:00 1 jan 2023
R4#clock set 00:00:00 1 jan 2004
R4#calendar set 00:00:00 1 jan 2024
R5#clock set 00:00:00 1 jan 2005
R5#calendar set 00:00:00 1 jan 2025
R6#clock set 00:00:00 1 jan 2006
R6#calendar set 00:00:00 1 jan 2026
NTPサーバの設定
R6をstratum 1のNTPサーバ、R4とR5をstratum 2のNTPサーバとして設定します。また、R4とR5はお互いに時刻同期をするようにpeerコマンドを設定します。
ntp update-calendarコマンドによってハードウェアクロックも同期することが出来ます。
R6(config)#ntp master 1
R6(config)#ntp update-calendar
R6(config)#clock calendar-valid
R4(config)#ntp master 2
R4(config)#ntp peer 45.1.1.5
R4(config)#ntp update-calendar
R4(config)#clock calendar-valid
R5(config)#ntp master 2
R5(config)#ntp peer 45.1.1.4
R5(config)#ntp update-calendar
R5(config)#clock calendar-valid
NTPクライアントの設定
NTPサーバのIPアドレス、またはホスト名を指定して設定します。なお、ntp masterコマンドを設定したNTPサーバでntp serverコマンドを使用すると基本はNTPクライアントとして動作をしてNTPサーバと同期がとれないときに自信がNTPサーバになります。
preferコマンドを使用することで、優先してそのサーバで時刻同期をするようにします。
sourceコマンドを使用することでNTP時刻同期の通信に使用するIFを指定することが出来ます。
R1(config)#ntp server 14.1.1.4 prefer
R1(config)#ntp server 15.1.1.5
R1(config)#ntp update-calendar
R1(config)#ntp server 14.1.1.4 source GigabitEthernet 0/4
R4(config)#ntp server 46.1.1.6
R5(config)#ntp server 56.1.1.6
同期確認
show ntp associationsコマンドで同期状態を確認することが出来ます。設定どおりR1はR4(14.1.1.4)と同期、R4とR5はR6(46.1.1.6,56.1.1.6)、R6は自分自身(127.127.1.1)と同期しています。
また、shoc clockでシステムクロック、show calendarでハードウェアクロックの時間を確認することが出来、R6の設定値と同期されていることが分かります。
R1#show ntp associations
address ref clock st when poll reach delay offset disp
*~14.1.1.4 127.127.1.1 2 33 64 1 5.551 13.881 7937.5
+~15.1.1.5 127.127.1.1 2 33 64 1 4.414 995.678 7937.5
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
R1#sh clock
.00:21:29.476 UTC Sun Jan 1 2006
R1#show calendar
00:24:43 UTC Sun Jan 1 2006
R4#sh ntp associations
address ref clock st when poll reach delay offset disp
~127.127.1.1 .LOCL. 1 13 16 0 0.000 0.000 16000.
~45.1.1.5 .STEP. 16 – 128 0 0.000 0.000 15937.
*~46.1.1.6 .LOCL. 1 13 64 1 0.195 160.673 7937.5
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
R4#show clock
00:08:57.205 UTC Sun Jan 1 2006
R4#show calendar
00:14:20 UTC Sun Jan 1 2006
R5#sh ntp associations
address ref clock st when poll reach delay offset disp
~127.127.1.1 .LOCL. 1 7 16 377 0.000 0.000 0.246
~45.1.1.4 .STEP. 16 – 64 0 0.000 0.000 15937.
*~56.1.1.6 .LOCL. 1 20 64 3 0.569 -68.455 64.022
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
R5#show clock
00:09:20.418 UTC Sun Jan 1 2006
R5#show calendar
00:14:49 UTC Sun Jan 1 2006
R6#sh ntp associations
address ref clock st when poll reach delay offset disp
*~127.127.1.1 .LOCL. 0 7 16 377 0.000 0.000 0.246
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
R6#show clock
00:15:28.535 UTC Sun Jan 1 2006
R6#show calendar
00:15:44 UTC Sun Jan 1 2006
NTPサーバ冗長化確認
R4(config)#interface range Gi0/1,Gi0/6
R4(config-if-range)#shutdown
R4はR6と通信ができなくなったので自信をNTPルータとして動作するようになります。
R4#sh ntp associations
address ref clock st when poll reach delay offset disp
*~127.127.1.1 .LOCL. 1 5 16 377 0.000 0.000 0.246
~45.1.1.5 .STEP. 16 – 1024 0 0.000 0.000 15937.
~46.1.1.6 .LOCL. 1 672 64 200 2.703 237.140 949.04
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
また、R1はR4と通信できなくなったのでR5と同期をとるようになります。
R1#sh ntp associations
address ref clock st when poll reach delay offset disp
~14.1.1.4 .INIT. 16 191 16 0 0.000 0.000 15937.
*~15.1.1.5 127.127.1.1 2 50 64 7 3.002 -713.15 0.757
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
NTPブロードキャスト
NTPサーバからの通信をブロードキャストに設定することが出来ます。ブロードキャストを送信するIFと受信するIFにコマンドを適応させます。
ntp broadcastdelayコマンドを使用することで、推定ラウンドトリップ遅延を1マイクロ秒に設定します。
R4(config)#interface gigabitEthernet 0/0
R4(config-if)#ntp broadcast
R2(config)#interface gigabitEthernet 0/0
R2(config-if)#ntp broadcast client
R3(config)#interface gigabitEthernet 0/0
R3(config-if)#ntp broadcast client
R3(config-if)#ntp broadcastdelay 1
同期確認
R2とR3は問題なくR4と同期がとれています。
R2#show ntp associations
address ref clock st when poll reach delay offset disp
* 24.1.1.4 127.127.1.1 2 21 64 1 0.000 145.664 7937.5
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
R3#sh ntp associations
address ref clock st when poll reach delay offset disp
* 24.1.1.4 127.127.1.1 2 18 64 1 0.000 -49.839 7937.5
* sys.peer, # selected, + candidate, – outlyer, x falseticker, ~ configured
NTP認証
NTP通信に対して認証の設定をします。
基本設定
R2とR4のNTP通信に対して認証設定を行います。
R2(config)#ntp authenticate
R2(config)#ntp authentication-key 1 md5 R1R2R4
R2(config)#ntp trusted-key 1
R2(config)#ntp server 24.1.1.4 prefer key 1
R4(config)#ntp authentication-key 1 md5 R1R2R4
R4(config)#ntp trusted-key 1
NTPのアクセス制御
NTPのアクセス制御はquery-only,serve-only,serve,peerと4種類の制御が可能です。
query-onlyは制御クエリのみ許可、serve-onlyは時刻情報の送信のみ許可、serveは時刻情報の送信と制御クエリの応答を許可、peerはpeerとの時刻同期、制御クエリ、時刻情報の送信を許可します。
制御クエリについては調べても具体的にどのような通信なのかわかりにくく、検証環境を用意することが難しそうだったのでpeerとserve-onlyのみ確認します。
基本設定
R4とR5で時刻同期の通信を許可して、R4ではR1のみ時刻情報の送信を許可するように設定します。
R4(config)#access-list 1 permit host 45.1.1.5
R4(config)#ntp access-group peer 1
R4(config)#access-list 2 permit serve-only 14.1.1.1
R4(config)#ntp access-group peer 2
R5(config)#access-list 1 permit host 45.1.1.6
R5(config)#ntp access-group peer 1