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認証: マルチキャスト・共通鍵認証篇』