NTPサーバ:正しい時間の同期
職場での事。私は職場でメインマシン(Linux)、サブマシン(Windows)を使っていて、これとは別にNASを使っています。で、NASはメインマシンにNFSでぶら下げてユーザホーム領域にしています。また、Windowsはsambaを使ってメインマシンにアクセスしており、Windowsからメインマシンに書き込む際には、メインマシンを経由してNASに書き込みます。
さて、ファイルの書き込みがあるので、当然、3台のマシンの時間の同期をしっかり取らないといけません。このため、職場の中央にあるNTPサーバをそれぞれ指していました…。
が、しかし、ここで問題が。職場の中央にはNTPサーバが3台あり、ラウンドロビンでIPを切り替えて分散しています。この3台がちゃんと同期が取れているのが当たり前ですし、それをこちらも期待していたのですが、今日、3台のうち1台が20分もずれるというトラブルが発覚。その影響が私の環境にも出て、NASの時間が20分ずれていました。 NASとそこにアクセスするマシンの時間が違っては大変です。そこで、公開されているNTPサーバにみんながつなぐというありがちな(でも間違った)状況(※)をやめて、正しく同期を取るべきマシンたちがちゃんと同期を取れるようにしてみました。
※ 通常、マシンを複数台使う場合、それぞれを公開(あるいは組織内)NTPサーバと同期を取るように設定してしまいますが、あまりよい状況ではありません。今回のようなトラブルも起きますし、公開NTPサーバに対する負荷も大きくなるからです。
正しく同期を取るにはどうするか。同一サブネット内に、公開サーバ(NTP-S-Aとします)と同期をとるマシン(NTP-S-Bとします)を1台用意し、同一サブネット内の他のマシンはNTP-S-Bと同期を取るようにすることです。
メインマシンの公開サーバへの設定は出来ていることを前提とします。その状態で、メインマシンの/etc/ntp.confに以下を追記します。restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap192.168.1.0および255.255.255.0のところは各自のネットワークにあわせて修正します。また、サブネットが複数ある場合は、複数行に分けて書きます。
ntpdを再起動し、公開サーバと同期が取れるまで待ちます。同期が取れたかどうかは”ntpq -p”コマンドでわかります。表示結果の一番左がアスタリスク(*)になっていれば同期完了です。公開サーバと同期が取れたら、同一サブネット内の各マシンのNTPサーバを内部サーバに切り替えます。
なお、内部サーバのファイアウォールで123番ポートをNTPのために開けておく必要があります。
Posted by TechStrom on Monday, November 26, 2007