NTP認証シリーズでは、ユニキャストおよびブロードキャストで共通鍵認証を使う方法を解説してきた(
[1]、
[2])。今回は、マルチキャスト(multicast)で共通鍵認証を使う方法について解説する。
NTPでマルチキャストを使う場合は、当然IPマルチキャストが使える様設定しておかねばならないが、この設定についてはここでは解説しない。『
IPマルチキャストを使う』および『
IPマルチキャストを使う・補足・VLANと』を参考にして欲しい。
共通鍵の設定については、サーバ側、クライアント側ともユニキャスト・ブロードキャストの場合と同様。他の設定についても、ブロードキャストの場合と大きく違わない。鍵の生成およびクライアントへの鍵配布については、ここでは省略する。『
NTP認証: ユニキャスト・共通鍵認証篇』を参考にして欲しい。
サーバ側
サーバの設定は、ブロードキャストの場合とほとんど同じで、
/etc/ntp.confの中の
broadcastコマンドに与えるアドレスを、マルチキャストアドレス224.0.1.1(NTP.MCAST.NET)に変更するだけだ。鍵ファイル
/etc/ntp/keysは既に生成してあるものとして、
/etc/ntp.confに以下のように記述する。
restrict 192.168.55.0 mask 255.255.255.0 nomodify notrap
keys /etc/ntp/keys
trustedkey 10
broadcast 224.0.1.1 key 10
ここでは鍵番号10を使用したが、これは適宜変更してもらって構わない。また、LANのIPアドレス192.168.55.0は、環境によって変更する必要がある。
変更したら
service ntpd restartを実行し、ntpdを再起動する。
Stratum的に上位のNTPサーバへの時刻同期は、通常と同様なので割愛する。
クライアント側
クライアントの設定もブロードキャストの場合と似ている。違うのは、、
/etc/ntp.confの中で
broadcastclientの代わりに
multicastclientコマンドを使用する点。鍵の配布は既に終わっているものとして、
/etc/ntp.confに以下の様に記述する。
restrict 192.168.55.0 mask 255.255.255.0 nomodify notrap
multicastclient 224.0.1.1
keys /etc/ntp/keys
trustedkey 10
鍵番号およびLANのIPアドレスは、環境に合うよう変更の必要がある。
変更したら
service ntpd restartを実行し、ntpdを再起動する。
確認
まず、サーバ側で時刻同期ができていることを確認する。再起動後、時刻が同期するまでにはしばらくかかる。確認は
ntpstatコマンドで行う。再起動直後は、以下の様な結果を得るはずだ。
$ ntpstat
unsynchronised
time server re-starting
polling server every 64 s
$
これがしばらく立つと以下のように変化する。
$ ntpstat
unsynchronised
polling server every 64 s
$
時刻同期ができたら、さらに以下の様に変化する。
$ ntpstat
synchronised to NTP server (210.173.160.87) at stratum 3
time correct to within 34 ms
polling server every 64 s
$
これでサーバの時刻同期ができたので、今度はクライアントで時刻同期を確認する。クライアント側でも、
ntpstatコマンドを使えば同様に確認できる。認証が行えているかどうかは、
ntpqコマンドで確認することができる。
$ ntpq
ntpq> peer
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) .LOCL. 10 l 59 64 377 0.000 0.000 0.002
*ntpserver.local 210.173.160.87 3 m 46 64 376 0.353 -2.665 0.752
ntpq> assoc
ind assID status conf reach auth condition last_event cnt
===========================================================
1 29516 9014 yes yes none reject reachable 1
2 29517 7614 no yes ok sys.peer reachable 1
ntpq>
コマンド
peer(s)の出力で、
tの欄が
mになっていることに注目して欲しい。これは、マルチキャストで時刻同期している、ということを表している。再起動直後は、ここが
u、つまりユニキャストの表示になっている場合があるが、しばらくすると
mへ変化する。
次の
assoc(iations)コマンドの出力は、各行が
peer(s)の出力の各行と順に対応するので、
indが
2の行がマルチキャストサーバの状態を表している。この行の
confが
noになっているのは、設定ファイル
/etc/ntp.confによって設定された時刻源ではないことを表す。同じく
authが
okになっているのは、認証できていることを表している。
第一回:『
NTP認証: ユニキャスト・共通鍵認証篇』
第二回:『
NTP認証: ブロードキャスト・共通鍵認証篇』
第三回:『
NTP認証: ntp-keygenコマンドとX.509証明書』
第四回:『
NTP認証: ユニキャスト・公開鍵認証篇』
第五回:『
NTP認証: マルチキャスト・共通鍵認証篇』