ネットワー タイム プロトコルについて
時刻サービスとカレンダーサービス
システム上の時刻データのプライマリ ソースは、ソフトウェア クロックです。このクロックはシステムが起動した瞬間から稼働して、現在の日付と時刻を追跡します。ソフトウェア クロックは多数のソースから設定でき、さまざまなメカニズムを介して他のシステムに現在の時刻を配信するために使用できます。ハードウェアクロックが内蔵されたデバイスを初期化または再起動すると、ハードウェアクロックの時刻に基づいてソフトウェアクロックが初期設定されます。その後、ソフトウェア クロックは次のソースによって更新できます。
-
手動設定(ハードウェア クロックを使用)
-
ネットワーク タイム プロトコル(NTP)
-
簡易ネットワーク管理プロトコル(SNMP)
-
Virtual Integrated Network Service(VINES)タイムサービス
ソフトウェアクロックは動的に更新できるため、ハードウェアクロックよりも正確である可能性があります。
ソフトウェア クロックは次のサービスに時刻を提供できます。
-
アクセス リスト
-
ログおよびデバッグ メッセージ
-
NTP
-
ハードウェア クロック
-
user show コマンド
-
VINES 時刻サービス
Note |
SNTP を使用してクロックを設定した場合、ソフトウェアクロックは NTP または VINES 時刻サービスに時刻を提供できません。 |
ソフトウェアクロックは、グリニッジ標準時(GMT)とも呼ばれる協定世界時(UTC)に基づいて内部的に時刻を追跡します。ローカル時間帯に対して時刻が正しく表示されるように、地域の時間帯とサマータイムに関する情報を設定できます。
ソフトウェアクロックは、時刻が「正規」であるかどうか(つまり、信頼できると見なされる時刻源によって設定されたかどうか)を追跡します。正規でない場合、時刻は表示のためだけに使用でき、再配信されません。
ネットワーク タイム プロトコル
ネットワーク タイム プロトコル(NTP)は、マシンのネットワークの時刻同期を行うように設計されたプロトコルです。NTP は UDP で稼働し、UDP は IP 上で稼働します。NTP バージョン 3(NTPv3)は、RFC 1305 に記載されています。
NTP ネットワークは通常、タイム サーバに接続されたラジオ クロックやアトミック クロックなど、正規の時刻源から時刻を取得します。NTP は、ネットワークにこの時刻を分配します。NTP はきわめて効率的です。毎分 1 パケットだけで、2 台のマシンが相互に 1 ミリ秒以内の精度で同期します。
NTP では、信頼できるタイム ソースから各マシンが何 NTP ホップ隔たっているかを表すために、ストラタムという概念が使用されます。Stratum 1 タイムサーバーには通常、正規の時刻源(電波時計、原子時計、Global Positioning System(GPS)時刻源など)が直接接続されています。Stratum 2 タイムサーバーは、Stratum 1 タイムサーバーから NTP を介して時刻を受信し、それ以降のサーバーも続きます。
NTP は、次の 2 つの方法により、時刻が正確でない可能性があるマシンへの同期を回避します。NTP は、NTP と同期していないマシンとは同期しません。複数のマシンから報告された時刻を比較し、他のマシンと時刻が大きく異なるマシンとは、そのストラタムがより低くても同期しません。このようにして、NTP サーバのツリーは効率よく自律的に編成されています。
シスコの NTP 実装では、Stratum 1 サービスをサポートしていないため、電波時計や原子時計に接続することはできません(ただし、いくつかの特定のプラットフォームでは、GPS 時刻源デバイスに接続できます)。ネットワークのタイムサービスは、IP インターネットで利用できるパブリック NTP サーバーから取得することをお勧めします。
ネットワークがインターネットから分離されている場合、NTP の実装により、実際にはネットワークが他の手段を使用して時刻を決定している場合でも、あたかも NTP 経由で同期しているかのように動作するようにマシンを構成できます。これにより、他のマシンが NTP を介してそのマシンと同期できるようになります。
多くの製造業者のホスト システムで、NTP ソフトウェアが導入されています。また、UNIX システム向けに公開されているバージョンもあります。また、このソフトウェアにより UNIX 派生サーバーは原子時計から時刻を直接取得することができ、シスコデバイスに時刻情報を伝えるようにすることもできます。
NTP を実行しているマシン間の通信(アソシエーション)は通常、静的に設定されており、各マシンには、アソシエーションを形成する必要があるすべてのマシンの IP アドレスが通知されます。アソシエーションが設定されたマシンの各ペアの間で NTP メッセージを交換することにより、正確な時刻管理が可能になります。
ただし、LAN 環境では、代わりに IP ブロードキャスト メッセージを使用するように NTP を設定できます。この代替手段では、ブロードキャスト メッセージを送受信するように各マシンを設定できるので、設定の複雑さが緩和されます。ただし、情報の流れが一方向のみであるため、計時精度はわずかに低下します。
マシン上の時刻は重要な情報であるため、NTP のセキュリティ機能を使用して、不正な時刻を誤って(または悪意を持って)設定できないように保護することを強く推奨します。アクセスリストベースの制約方式と、暗号化認証メカニズムの 2 つのセキュリティメカニズムが使用できます。
複数の時刻源(VINES、ハードウェア クロック、手動による設定)がある場合、NTP は常により信頼できる時刻源とされます。NTP の時刻は、他の方法による時刻に優先します。
NTP サービスは、デフォルトではすべてのインターフェイスで無効になっています。
NTP の詳細については、次の項を参照してください。
ポーリング ベースの NTP アソシエーション
NTP を実行しているネットワーキング デバイスは、時刻を基準時刻源と同期する際にさまざまなアソシエーション モードで動作するように設定できます。ネットワーキング デバイスは、2 つの方法でネットワーク上の時刻情報を取得できます。それらは、ホスト サービスのポーリングと NTP ブロードキャストのリスニングです。ここでは、ポーリングベースのアソシエーション モードを中心に説明します。ブロードキャスト ベースの NTP アソシエーションの詳細については、「ブロードキャスト ベースの NTP アソシエーション」を参照してください。
最も一般的に使用される 2 つのポーリングベースのアソシエーション モードは次のとおりです。
-
クライアント モード
-
対称アクティブ モード
クライアント モードと対称アクティブ モードは、高レベルの時刻の精度と信頼性を提供するために NTP が必要になる場合に使用します。
クライアント モードで動作しているネットワーキング デバイスは、自身に割り当てられている時刻提供ホストをポーリングして現在の時刻を取得します。次に、ネットワーキング デバイスは、ポーリングされたすべてのタイム サーバーから、同期に使用するホストを選択します。この場合は、確立された関係がクライアントホスト関係なので、ホストがローカル クライアント デバイスから送信された時刻情報をキャプチャしたり使用したりすることはありません。このモードが最も適しているのは、他のローカル クライアントにどのような形式の時刻同期も提供する必要のない、ファイルサーバーおよびワークステーションのクライアントです。ネットワーキングデバイスを同期させるタイムサーバーを個別に指定し、クライアントモードで動作するようにネットワーキングデバイスを設定するには、ntp server コマンドを使用します。
対称アクティブ モードで動作しているネットワーキング デバイスは、自身に割り当てられている時刻提供ホストをポーリングして現在の時刻を取得し、そのホストによるポーリングに応答します。これはピアツーピアの関係なので、ホストは、通信相手のローカル ネットワーキング デバイスの時刻関連情報も保持します。このモードは、さまざまなネットワーク パスを経由で多数の冗長サーバーが相互接続されている場合に使用します。インターネット上のほとんどの Stratum 1 および Stratum 2 サーバーは、この形式のネットワーク設定を採用しています。ネットワーキングデバイスを同期させる時刻提供ホストを個別に指定し、対称アクティブモードで動作するようにネットワーキングデバイスを設定するには、ntp peer コマンドを使用します。
各ネットワーキング デバイスの設定モードを決定する際には、タイムキーピング デバイスとしてのそのデバイスの役割(サーバーかクライアントか)と、そのデバイスが Stratum 1 タイムキーピング サーバーにどれだけ近いかを主に考慮してください。
ネットワーキング デバイスは、クライアント モードでクライアントまたはホストとして動作する場合、または対称アクティブ モードでピアとして動作する場合にポーリングに関与します。通常、ポーリングによってメモリおよび CPU リソース(帯域幅など)に負荷が生じることはありませんが、システム上で進行または同時実行しているポーリングの数がきわめて多い場合には、システムの性能に深刻な影響があったり、特定のネットワークの性能が低下したりする可能性があります。過剰な数のポーリングがネットワーク上で進行することを防止するには、直接的なピアツーピア アソシエーションまたはクライアントからサーバーへのアソシエーションを制限する必要があります。代わりに、局所的なネットワーク内に NTP ブロードキャストを使用して時刻情報を伝播することを検討します。
ブロードキャスト ベースの NTP アソシエーション
ブロードキャストベースの NTP アソシエーションは、時刻の精度および信頼性要件が適度であり、ネットワークが局所的であり、クライアント数が 20 を超える場合に使用します。また、帯域幅、システム メモリ、または CPU リソースが制限されているネットワークにおいても、ブロードキャストベースの NTP アソシエーションの使用をお勧めします。
ブロードキャスト クライアント モードで動作しているネットワーキング デバイスはポーリングに関与しません。代わりに、ブロードキャスト タイム サーバーによって転送される NTP ブロードキャスト パケットを待ち受けます。その結果、時刻情報の流れが一方向に限られるため、時刻の精度がわずかに低下する可能性があります。
ネットワークを通じて伝播される NTP ブロードキャスト パケットをリッスンするようにネットワーキング デバイスを設定するには、ntp broadcast client コマンドを使用します。ブロードキャスト クライアント モードが動作するためには、ブロードキャスト サーバーとそのクライアントが同じサブネット上に存在する必要があります。ntp broadcast コマンドを使用して、特定のデバイスのインターフェイスで NTP ブロードキャストケットを送信するタイムサーバーを有効にする必要があります。
NTP アクセス グループ
アクセス リストベースの制限スキームを使用すると、ネットワーク全体、ネットワーク内のサブネット、またはサブネット内のホストに対し、特定のアクセス権限を許可または拒否できます。NTP アクセスグループを設定するには、グローバル コンフィギュレーション モードで ntp access-group コマンドを使用します。
アクセス グループのオプションは、次の順序で制限の緩いものから厳しいものへとスキャンされます。
-
ipv4 :IPv4 アクセスリストを設定します。
-
ipv6 :IPv6 アクセスリストを設定します。
-
peer :時刻要求と NTP 制御クエリを許可し、システムがアクセスリストの基準を満たすアドレスを持つ別のシステムに同期することを許可します。
-
serve :時刻要求と NTP 制御クエリーを許可しますが、システムがアクセスリストの基準を満たすアドレスを持つ別のシステムに同期することは許可しません。
-
serve-only :アクセスリストの条件を満たすアドレスを持つシステムからの時刻要求のみを許可します。
-
query-only :アクセスリストの基準を満たすアドレスを持つ別のシステムからの NTP 制御クエリーのみを許可します。
送信元 IP アドレスが複数のアクセス タイプのアクセス リストに一致する場合は、最初のアクセス タイプのアクセスが認可されます。アクセス グループが指定されていない場合は、すべてのシステムへのアクセスがすべてのアクセス タイプに対して認可されます。アクセス グループが指定されている場合は、指定されたアクセス タイプに対してのみアクセスが認可されます。
NTP 制御クエリーの詳細については、RFC 1305(NTP バージョン 3)を参照してください。
信頼できる形式のアクセス コントロールが必要な場合は、暗号化された NTP 認証方式を使用する必要があります。IP アドレスに基づくアクセス リスト ベースの制約方式とは異なり、暗号化認証方式では、認証キーと認証プロセスを使用して、ローカル ネットワーク上の指定されたピアまたはサーバーによって送信された NTP 同期パケットが信頼できると見なされるかどうかを、一緒に伝送された時刻情報を受け入れる前に判断します。
認証プロセスは、NTP パケットが作成されるとすぐに開始されます。暗号チェックサム キーは、Message-Digest Algorithm 5(MD5)を使用して生成され、受信側クライアントに送信される NTP 同期パケットに埋め込まれます。パケットがクライアントによって受信されると、暗号チェックサム キーが復号され、信頼できるキーのリストに対してチェックされます。一致する認証キーがパケットに含まれる場合、受信側クライアントは、パケットに含まれるタイムスタンプ情報を受け入れます。一致するオーセンティケータ キーが含まれていない NTP 同期パケットは無視されます。
Note |
信頼できるキーを多数設定する必要がある大規模なネットワークでは、信頼できるキーの範囲設定機能を使用して複数のキーを同時に有効にすることができます。 |
NTP 認証で使用される暗号化および復号化プロセスでは、CPU に非常に大きな負荷がかかる場合があり、ネットワーク内で伝播される時刻の精度が大きく低下する可能性があることに注意してください。より包括的なアクセス コントロール モデルを使用できるネットワーク構成の場合は、アクセス リスト ベースのコントロール方式を使用することを検討してください。
NTP 認証が適切に設定されると、ネットワーキング デバイスは、信頼できる時刻源と同期し、信頼できる時刻源だけに同期を提供します。
特定のインターフェイス上の NTP サービス
Network Time Protocol(NTP)サービスは、デフォルトではすべてのインターフェイスで無効になっています。なんらかの NTP コマンドを入力すると、NTP がグローバルに有効になります。特定のインターフェイスを通じて特定の NTP パケットを受信しないように設定するには、インターフェイス コンフィギュレーション モードで ntp disable コマンドを使用します。
NTP パケットの送信元 IP アドレス
システムが NTP パケットを送信すると、通常、送信元 IP アドレスは、その NTP パケットの送信元であるインターフェイスのアドレスに設定されます。IP 送信元アドレスの取得元のインターフェイスを設定するには、グローバル コンフィギュレーション モードで ntp source interface コマンドを使用します。
このインターフェイスは、すべての宛先に送信されるすべてのパケットの送信元アドレスに使用されます。特定のアソシエーションに送信元アドレスを使用する場合は、ntp peer コマンドまたは ntp server コマンドで source キーワードを使用します。
正規の NTP サーバとしてのシステム
システムを正規の NTP サーバーにする場合は、グローバル コンフィギュレーション モードで ntp コマンドを使用します。これは、システムが外部の時刻源と同期されていない場合でも同じです。
Note |
ntp primary コマンドの使用には注意が必要です。このコマンドを使用すると、有効な時刻源が容易に上書きされてしまいます。低いストラタム番号を設定する際には、特に注意が必要です。ntp primary コマンドを使用して同じネットワーク内の複数のマシンを設定した場合は、それらのマシンの時刻が一致していないと、時刻管理が不安定になることがあります。 |
孤立モード
NTP サブネットは、ローカル基準クロックまたはインターネット クロック サーバーから分離されることがあります。この分離期間中、サブネットサーバーとクライアントは共通のタイムスケールに同期されます。ローカルクロックドライバは、UTC ソースをシミュレートして、共通のタイムスケールを提供します。ドライバに直接または間接的に接続されたサーバーは、サブネット内の他のホストを同期します。
ローカルクロックドライバを使用すると、サブネットの回復不能な障害が発生する可能性があり、複数のサーバーを使用して冗長性を維持することは現実的ではありません。このような欠点のない孤立モード機能により、ローカルクロックドライバが不要になります。孤立モード機能は、複数のサーバーを備えた単一のシミュレートされた UTC ソースと、サーバーが障害から回復する際のシームレスな切り替えメカニズムを提供します。
プライベート ネットワークでは、通常、最下位のストラタムで動作する 1 つまたは複数のコアサーバーが含まれます。これらの各サーバーは、対称モードまたはブロードキャストモードを使用する他のサーバーのバックアップとして設定する必要があります。1 つのコアサーバーが UTC ソースに到達した場合でも、サブネット全体がシミュレートしているサーバーに同期されます。どのサーバーも UTC ソースに到達しない場合、いずれかのサーバー(孤立した親と呼ばれる)が UTC ソースをシミュレートし、サブネット内の他のすべてのホスト(孤立した子と呼ばれる)のシミュレートされた UTC ソースとして機能できます。
ntp orphan stratum コマンドを使用して、孤立モードのホストを有効にします。ここで、stratum は、16 未満で、設定されたインターネット タイム サーバーに出現するどのストラタム値よりも大きいストラタム値です。ただし、孤立した子に依存するすべてのサブネットホストのストラタム値が 16 未満になるように、十分なストラタムを指定する必要があります。他のサーバーまたは基準クロックのアソシエーションが設定されていない場合は、孤立ストラタム値を 1 に設定する必要があります。
ソースのないストラタム 1 で動作している孤立した親には、参照 ID LOOP が表示されます。ストラタム 1 で動作していない孤立した親は、UNIX ループバックアドレス 127.0.0.1 を表示します。通常の NTP クライアントは遅延と分散に基づく選択メトリックを使用しますが、孤立した子はサブネット内の各コアサーバーの IP アドレスから計算されたメトリックを使用します。各孤立した子は、最小のメトリックを持つ孤立した親をルートサーバーとして選択します。
すべてのソースを失ったサーバーは、ローカルクロックドライバを他のサーバーと継続的に同期させ、サーバーをバックアップします。コアサーバーと孤立した子でのみ孤立モードを有効にします。
次の図に、孤立モードのセットアップ方法とピアネットワーク設定を示します。この場合、2 台のプライマリまたはセカンダリ(ストラタム 2)サーバーが基準クロックまたはパブリック インターネット プライマリ サーバーで設定され、それぞれが対称モードを使用します。
孤立モードの前提条件
孤立モードをスムーズに機能させるには、同じストラタムで動作するように、使用可能なソースを使用して各コアサーバーを設定する必要があります。すべてのコアサーバーと孤立した子で ntp orphan コマンドを設定します。すべてのルートサーバーで孤立した子を設定します。
Simple Network Time Protocol
簡易ネットワーク タイム プロトコル(SNTP)とは、クライアント専用バージョンの簡易版 NTP です。SNTP は、NTP サーバから時刻を受信できるだけで、時刻サービスを他のシステムに提供できません。
通常、SNTP は 100 ミリ秒以内の精度で時刻を提供しますが、NTP のような複雑なフィルタリングや統計メカニズムは提供しません。また、拡張アクセス リストを設定することによってある程度の保護を提供できますが、トラフィックを認証できません。SNTP クライアントは、NTP クライアントよりも予期しない動作をするサーバーに対して脆弱であるため、強力な認証が必要ない状況でのみ使用する必要があります。
SNTP は、設定済みのサーバーからパケットを要求して受け入れるように設定するか、任意の送信元から NTP ブロードキャスト パケットを受け入れるように設定できます。複数の送信元が NTP パケットを送信している場合、最適な層にあるサーバーが選択されます(階層の説明については、3 ページの「Network Time Protocol」セクションを参照してください)。複数のサーバーのストラタムが同じだった場合は、ブロードキャスト サーバーよりも設定済みサーバーが優先されます。これらの両方を満たすサーバーが複数ある場合は、時刻パケットを最初に送信したサーバーが選択されます。SNTP が新しいサーバを選択するのは、現在選択しているサーバからのパケットの受信を停止している場合、または(上記の基準に従って)より適切なサーバが検出された場合だけです。
VINES 時刻サービス
Banyan VINES を設定すると、時刻サービスを使用できます。このプロトコルは、VINES の標準部分です。シスコの実装では、2 つの方法で VINES 時刻サービスを使用できます。最初の方法では、他の時刻源から時刻を認識すると、システムは VINES タイム サーバとして動作し、VINES を実行している他のマシンに時刻を提供できます。2 番目の方法では、他の形式の時刻サービスを使用できない場合に、システムは VINES 時刻サービスを使用してソフトウェア クロックを設定できます。
Note |
すべてのリリースで、Banyan VINE および Xerox Network Systems(XNS)のサポートが利用できるわけではありません。 |
ハードウェア クロック
一部のデバイスは、システムの再起動から電源停止に至る日付および時刻を追跡するバッテリ駆動式のハードウェアクロックを内蔵しています。システムの再起動時には、ハードウェア クロックを常に使用してソフトウェア クロックが初期化されます。
Note |
CLI コマンド構文においては、ハードウェアクロックは「システムカレンダー」と呼ばれます。 |
他の時刻源を使用できない場合、ハードウェアクロックは正規の時刻源と見なされ、NTP を通じて再配信されます。NTP が実行されている場合、ハードウェアクロックは NTP から定期的に更新され、ハードウェアクロックが実行されたままになっている場合に一定のレートで一貫した時間の増加または損失である固有のドリフトを補正できます。
任意のデバイスのハードウェアクロック(システムカレンダー)がソフトウェアクロックから定期的に更新されるように設定できます。この設定は、NTP を使用するすべてのデバイスに推奨される方法です。それは、ハードウェアクロックの時刻設定は時間とともにわずかにドリフトする可能性があり、(NTP を使用して設定する)ソフトウェアクロックの時刻と日付の方がハードウェアクロックよりも正確であるためです。
ルーティングデバイスが NTP 経由で外部の時刻源と同期されている場合に、ハードウェアクロックを NTP 時刻に同期させるときは、グローバル コンフィギュレーション モードで次の ntp update-calendar コマンドを使用します。
時間範囲
シスコソフトウェアでは、時刻に基づいて機能を実装できます。time-range グローバル コンフィギュレーション コマンドを使用して、特定の日/曜日の時間を定義します。この時間を関数から参照することにより、関数そのものに時間的制約を設定することができます。
リリースによっては、時間範囲を使用できる機能は、IP および Internetwork Packet Exchange(IPX)拡張アクセスリストだけです。時間範囲を使用すると、ネットワーク管理者はアクセス リストで permit 文または deny 文がいつ有効になるかを定義できます。この機能が導入されるまで、アクセス リストの文は、いったん適用すると常に有効になったままでした。時間範囲は、名前付きアクセス リストと番号付きアクセス リストの両方から参照できます。
Note |
時間帯はシステムのソフトウェアクロックに基づきます。時間範囲機能が意図したとおりに機能するためには、信頼できるクロック ソースが必要になります。NTP を使用してシステムのソフトウェアクロックを同期させることを推奨します。 |
時間範囲の利点は次のとおりです。
-
ネットワーク管理者は、リソースへのユーザー アクセスの許可または拒否の制御をより強化できます。これらのリソースとして、アプリケーション(IP アドレス/マスク ペアとポート番号によって特定されます)、ポリシー ルーティング、またはオンデマンド リンク(ダイヤラへの関連トラフィックとして認識されます)があります。
-
ネットワーク管理者は、次の内容を含む時間ベースのセキュリティ ポリシーを設定できます。 - Cisco Firewall フィーチャセットまたはアクセスリストを使用する境界セキュリティなどがあります。
- シスコ暗号化テクノロジーまたは IP セキュリティによるデータの機密性。
-
ポリシーベース ルーティングおよび キューイング機能が拡張されています。
-
プロバイダーのアクセスレートが時間帯によって異なる場合、トラフィックを自動的かつコスト効率よく再ルーティングできます。
-
サービスプロバイダーは、特定の時間にネゴシエートされる Quality of Service(QoS)サービスレベル契約(SLA)をサポートするために専用アクセスレート(CAR)を動的に変更できます。
ネットワーク管理者は、ロギング メッセージを制御できます。アクセス リスト エントリは、一日の特定の時間帯にトラフィックをロギングすることはできますが、常にロギングすることはできません。したがって、管理者は、ピーク時に生成される多数のログを分析することなく、アクセスを拒否できます。