2007/06/06

NTP認証: マルチキャスト・共通鍵認証篇

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)の出力の各行と順に対応するので、ind2の行がマルチキャストサーバの状態を表している。この行のconfnoになっているのは、設定ファイル/etc/ntp.confによって設定された時刻源ではないことを表す。同じくauthokになっているのは、認証できていることを表している。

第一回:『NTP認証: ユニキャスト・共通鍵認証篇
第二回:『NTP認証: ブロードキャスト・共通鍵認証篇
第三回:『NTP認証: ntp-keygenコマンドとX.509証明書
第四回:『NTP認証: ユニキャスト・公開鍵認証篇
第五回:『NTP認証: マルチキャスト・共通鍵認証篇

0 件のコメント: