第 14章タイムサーバー

14.1. NTP サーバーの概要

NTP(Network Time Protocol)は、ネットワーク上に存在するホストのシステムクロックを同期するためのプロトコルです。システムクロックは、Turbolinux 11 Server の起動時に、ハードウェアクロックを参照することにより初期化され、実際にシステムの稼働中に使用される時計です。システムが起動した後に、ハードウェアクロックは使用されません。ハードウェアクロックは、マザーボード上に内蔵されており、コンピュータの電源が停止しているときでも常に動作しています。システムクロックは、次のコマンドで確認することができます。

# date
Fri Nov 16 12:59:15 JST 2007

また、ハードウェアクロックを確認するには、次のコマンドを実行します。

# hwclock -r
Fri Nov 16 13:00:34 2007  -0.907866 seconds

もし、ハードウェアクロックを世界協定時(UTC)にあわせているなら、システムクロックは世界協定時からのオフセットで表示されます(日本の場合は、+9 時間)。しかし、これらの時計はそれほど正確なのもではなく、ときが経つにつれて正確な時刻からズレていきます。ネットワーク間で共有されるシステムにおいて、時刻のズレは非常に重要な問題となることがあります。例えば、メールサーバーの時刻が不正確であれば、過去や未来からの電子メールを受け取ることになります。また、ファイルのタイムスタンプは、実際にファイルが作成された正確な時刻を反映したものにはなりません。ホスト間でファイルシステムを共有していれば、ソートなどの単純な処理でも期待する結果を得ることはできません。システム管理者は予期せぬトラブルの原因とならないように、ネットワーク上のホスト間のシステムクロックを常に正確な時刻に保たなければなりません。そのために利用されているのが NTP サーバーです。NTP サーバーは、ネットワークに接続されたホストのシステムクロックを同期するためのサービスを提供します。ただし、ハードウェアクロックの修正は、行われないことに注意しておく必要があります。

NTP サーバーは階層的に構成されており、階層の最上位に位置するサーバーは第 1 階層(Stratum1)と呼ばれます。また、その下の階層の NTP サーバーは第 2 階層(Stratum2)と呼ばれます。Stratum1 のサーバーは、原子時計や GPS(Global Positioning System)とリンクしており、非常に正確な時を刻んでいます。一般的には、組織内に 1 台のマスターとなる NTP サーバーを用意し、組織内の全クライアントは、その NTP サーバーと時刻同期を行うように運用します。これは、各クライアントが上位の NTP サーバーへアクセスすることによる無用なトラフィックを防ぎ、負荷を分散させるためです。どちらにしても、組織内に NTP サーバーを立ち上げるには、外部の NTP サーバーと時刻同期を行わなければなりません。プロバイダによっては、ユーザーのために NTP サービスを提供しているところもありますが、存在しない場合は、インターネット上の公開サーバーを利用することになります。多くの NTP サーバーが世界各地に存在しますが、日本で公開されている Stratum1 のサーバーには福岡大学や NiCT(独立行政法人 情報通信研究機構)のサーバーがあります。アドレスは以下の通りです。

その他、公開サーバーの情報は NTP.Servers Web.(http://support.ntp.org/bin/view/Servers/WebHome)から得ることができます。

Turbolinux 11 Server では、NTP version 4 に対応した ntpd サーバープログラムを採用しています。NTP version 3 に対応した以前の xntp3 のメンテナンスは終了し、ntpd への移行を推奨してます。NTP サーバーは、組織内のクライアントに NTP サービスを提供するサーバーであると同時に、外部の NTP サーバーへ時刻を問い合わせるクライアントでもあるわけですが、組織内のクライアントが単に NTP サーバーと時刻を同期するだけであれば、NTP クライアントを利用します。Linux で一般的に利用されている NTP クライアントは ntpdate コマンドです。また、Turbolinux では、ntpdate コマンドのフロントエンドとして動作する設定ツール turbotimecfg があります。turbotimecfg は、ntpdate コマンドを cron で定期的に実行させることができますので、手動で ntpdate を実行する手間を省くことができます(第35章 を参照)。

NTP: The Network Time Protocol

http://www.ntp.org/