NTP の実装について
NTP を使用すると、分散されたタイム サーバとクライアントの間で時刻が同期されます。同期化により、システム ログ作成時または時間に関するイベントの発生時に、各イベントを関連付けることができます。
NTP ではトランスポート プロトコルとして、ユーザ データグラム プロトコル(UDP)を使用します。NTP の通信はすべて協定世界時(UTC)を使用します。NTP のネットワークでは通常、タイム サーバに接続された電波時計や原子時計など正規の時刻源から時刻を取得します。NTP はこの時刻をネットワーク全体に配信します。NTP はきわめて効率的で、毎分 1 パケット以下で 2 台のマシンを相互に 1 ミリ秒以内に同期します。
NTP では、各マシンが信頼できる時刻源から何 NTP ホップ隔たっているかを表すために「ストラタム」という概念を使用します。「Stratum 1」タイム サーバには通常、正規の時刻源(電波時計、原子時計、GPS 時刻源など)が直接接続されています。「Stratum 2」タイム サーバは、「Stratum 1」タイム サーバから NTP を介して時刻を受信し、それ以降のサーバも続きます。
NTP では、2 つの方法で時刻が間違っている可能性のあるマシンとの同期を回避します。まず、NTP はそれ自身で同期を行わないマシンとの同期を回避します。次に、複数のマシンから報告された時間と大幅に時間が異なっているマシンがある場合、ストラタムの番号が小さくても同期しません。このようにして、NTP サーバのツリーは効率よく自律的に編成されています。
シスコの NTP 実装では、ストラタム 1 サービスをサポートしていないため、電波時計や原子時計に接続することはできません(ただし、いくつかの特定のプラットフォームでは、GPS 時刻源デバイスに接続できます)。ネットワークのタイム サービスは、IP インターネットで利用できる公開 NTP サーバから取得することを推奨します。
ネットワークがインターネットから切り離されている場合、シスコの NTP 実装では、実際には他の方法で時刻を決定している場合でも、NTP を介して同期されているものとして動作するようにマシンを設定できます。これにより、他のマシンが NTP を介してそのマシンと同期できるようになります。
自社のホスト システムに NTP ソフトウェアを組み込んでいるメーカーが数社あり、UNIX システム用のバージョンやその派生ソフトウェアも一般に入手できます。また、このソフトウェアにより UNIX 派生サーバは原子時計から時刻を直接取得することができ、シスコ ルータに時刻情報を伝えるようにすることもできます。
NTP を実行しているマシン間の通信(アソシエーション)は通常、静的に設定されており、各マシンには、アソシエーションを形成する必要があるすべてのマシンの IP アドレスが通知されます。アソシエーションが設定されたマシンの各ペアの間で NTP メッセージを交換することにより、正確な時刻管理が可能になります。
シスコの NTP 実装では、ネットワーク デバイスがネットワーク上で NTP 時刻情報を取得できる 2 つの方法があります。
-
ホスト サーバへのポーリング
-
NTP ブロードキャストのリスニング
LAN 環境では、IP ブロードキャスト メッセージを使用するように NTP を設定できます。ポーリングと比べ IP ブロードキャスト メッセージではマシンごとにメッセージの送受信を設定するだけなので、複雑な設定作業が軽減されます。ただし、情報の流れが一方向に限定されるため、時刻管理の精度がわずかに低下します。
NTP ブロードキャスト クライアントは、指定した IPv4 アドレスにある NTP ブロードキャスト サーバから送信されるブロードキャスト メッセージをリスニングします。クライアントは最初に受信したブロードキャスト メッセージを使って、ローカルの時計を同期します。
マシン上の時刻は重要な情報であるため、NTP のセキュリティ機能を使用して、不正な時刻を誤って(または悪意を持って)設定できないように保護することを強く推奨します。その方法として、アクセス リストベースの制約方式と暗号化認証方式があります。
複数の時刻源(VINES、ハードウェア クロック、手動による設定)がある場合、NTP は常により信頼できる時刻源とされます。NTP の時刻は、他の方法による時刻に優先します。