ネットワークタイムプロトコル
Network Time Protocol(NTP)は、ネットワーク内のすべてのデバイスの時刻を同期するために使用されるプロトコルです。
NTP の概要
Network Time Protocol(NTP)は、インターネット上のルーターやその他のデバイスのクロックを同期するために使用される広く使用されているプロトコルです。プライマリNTPサーバーは、協定世界時(UTC)に直接トレース可能な基準クロックに同期されます。基準クロックには、GPS受信機と電話モデムサービスが含まれます。NTPの精度期待値はアプリケーションの要件によって異なりますが、NTPはパブリックインターネット上で数十ミリ秒の精度までの時間を維持できます。
NTPは、RFC 5905:Network Time Protocol Version 4: Protocol and Algorithms Specificationで定義されています。Junos OSは、RFC 1305で定義されているNTPバージョン3を受け入れるように設定することもできます。
Junos OSを実行するデバイスは、NTPクライアント、セカンダリNTPサーバー、またはプライマリNTPサーバーとして動作するように設定できます。これらのバリエーションは次のとおりです。
-
プライマリNTPサーバー—プライマリNTPサーバーは、UTCに直接トレース可能な基準クロックに同期されます。次に、これらのサーバーは、この時間データを他のセカンダリNTPサーバーまたはNTPクライアントにダウンストリームで再配布します。
-
セカンダリNTPサーバー—セカンダリNTPサーバーは、プライマリまたはセカンダリNTPサーバーと同期されます。次に、これらのサーバーはこのデータを他のセカンダリNTPサーバーまたはNTPクライアントにダウンストリームで再配布します。
-
NTPクライアント—NTPクライアントは、プライマリまたはセカンダリNTPサーバーに同期されます。クライアントは、この時間データを他のデバイスに再配布しません。
NTPサブネットには、ネットワークのプライマリNTPサーバーとして使用できる、広くアクセス可能なパブリックプライマリタイムサーバーがいくつか含まれています。ジュニパーネットワークスでは、使用する各プライマリサーバーの認証を強くお勧めします。
ネットワーク上の各デバイスは、以下の1つ以上のNTPモードで実行するように設定できます。
-
クライアント/サーバーモード—デバイスは、クライアント/サーバー関係でネットワーク全体に階層別に配置されます。
-
対称アクティブ(ピア)モード—2つ以上のデバイスがNTPサーバーピアとして設定され、冗長性を提供します。
NTPは、評価された設定のブロードキャストモードまたはマルチキャストモードで使用しないでください。
デフォルトでは、NTPクライアントの時間がずれてNTPサーバーとの時間差が128ミリ秒を超えると、NTPクライアントは自動的に同期にステップバックします。NTPクライアントとサーバー間のオフセットが1000秒のしきい値を超えても、NTPクライアントはサーバーと同期します。ルーター上の set date ntp 操作コマンドを使用して、デバイスにNTPサーバーとの同期を手動でリクエストできます。デュアルルーティングエンジンを搭載したJunos OSを実行しているデバイスでは、バックアップルーティングエンジンはプライマリルーティングエンジンと直接同期します。
Junos OSを実行する各ジュニパープラットフォームは、うるう秒調整をサポートしています。デフォルトでは、NTPサーバーがうるう秒計算を認識している場合、Junosデバイスは自動的に1秒の遅延を追加します。PTP(Precision Time Protocol)は、ネットワーク内のすべてのノードでうるう秒同期の変化を検出して伝播するために使用されます。また、NTPはコモンクライテリアに準拠するためにも必要です。Common Criteria 認定の詳細については、「Public Sector Certifications」を参照してください。
Network Time Protocol の詳細については、Network Time Foundation の Web サイト ( http://www.ntp.org) を参照してください。
NTPは、Junos OS上でIPv4 VPNおよびIPv6ルーティングおよび転送(VRF)リクエストをサポートします。VRFリクエストは、Junos OSリリース24.4R1以降でもサポートされています。これにより、プロバイダエッジ(PE)ルーター上で動作しているNTPサーバーが、カスタマーエッジ(CE)ルーターからのNTP要求に応答できるようになります。その結果、PEルーターは、異なるルーティングインスタンスから来る任意のNTPリクエストパケットを処理できます。
Junos OSの評価および認定には、TLSは含まれていません。そのため、ネットワークタイムセキュリティ(NTS)も含まれていません。評価された設定で使用してはなりません。代わりに、NTPメッセージは、暗号的に安全なハッシュ機能で認証する必要があります。SHA-256 が推奨されますが、SHA-1 も使用できます。
NTPタイムサーバー
NTPを設定する際に、ネットワーク上のどのシステムが権限のあるタイムソースまたはタイムサーバーであるか、およびネットワーク上のシステム間で時間を同期する方法を指定できます。これを行うには、ルーター、スイッチ、またはセキュリティ デバイスを次のいずれかのモードで動作するように設定します。
-
クライアントモード—このモードでは、ローカルルーターまたはスイッチをリモートシステムと同期できますが、リモートシステムをローカルルーターまたはスイッチと同期させることはできません。
-
対称アクティブモード—このモードでは、ローカルルーターまたはスイッチとリモートシステムが相互に同期できます。このモードは、ローカルルーターまたはスイッチ、またはリモートシステムのどちらかが時間のソースとなる可能性のあるネットワークで使用します。
対称アクティブモードは、ローカルシステムまたはリモートシステムのいずれかから開始できます。そのために設定する必要があるシステムは 1 つだけです。つまり、ローカルシステムは、何の設定もすることなく、対称アクティブモードを提供する任意のシステムと同期できます。ただし、ローカルシステムが既知の時刻サーバーとのみ同期するように認証を設定することを強くお勧めします。
-
サーバーモード—このモードでは、ローカルルーターまたはスイッチがNTPサーバーとして動作します。
NTPサーバーモードでは、Junos OSは以下のような認証をサポートします。
-
クライアントからのNTPリクエストに認証キー(パケットとともに送信されたキーIDやメッセージダイジェストなど)が含まれる場合、リクエストは処理され、認証キーの一致に基づいて応答されます。
-
クライアントからのNTPリクエストが認証キーなしで送信された場合、リクエストは認証なしで処理され、応答されます。
-
NTPメッセージは、評価された設定でSHA-256またはSHA-1で認証する必要があります。
NTPタイムサーバーとタイムサービスを設定する
評価された設定でNTPを使用する場合、ルーターまたはスイッチが以下のいずれかのモードで動作するように設定します。
-
クライアントモード
-
対称アクティブモード
-
サーバーモード
以下のトピックでは、これらの動作モードを設定する方法について説明します。
- クライアントモードで動作するようにルーターまたはスイッチを設定します
- ルーターまたはスイッチが対称アクティブモードで動作するように設定します
- サーバーモードで動作するようにルーターまたはスイッチを設定します
クライアントモードで動作するようにルーターまたはスイッチを設定します
ローカルルーターまたはスイッチがクライアントモードで動作するように設定するには、[edit system ntp]階層レベルでserverステートメントとその他のオプションのステートメントを含めます。
[edit system ntp] server address <key key-number> <version value> <prefer>; authentication-key key-number type type value password; trusted-key[key-numbers];
タイムサーバーとして機能するシステムのアドレスを指定します。ホスト名ではなくアドレスを指定する必要があります。
タイムサーバーに送信されるすべてのメッセージに認証キーを含めるには、 キー オプションを含めます。キーは、「」で説明されているように、 authentication-key ステートメントで指定したキー番号に対応します。
デフォルトでは、ルーターまたはスイッチがNTPバージョン4パケットをタイムサーバーに送信します。NTPバージョンレベルを3または4に設定するには、 バージョン オプションを含めます。
複数のタイムサーバーを設定する場合、 優先 オプションを含めることで、1つのサーバーを優先としてマークできます。
次の例は、SHA-256を使用してクライアントモードで動作するようにルーターまたはスイッチを設定する方法を示しています。
[edit system ntp] authentication-key 1 type sha256 value "$ABC123"; server 10.1.1.1 key 1 prefer; trusted-key 1;
次の例は、SHA-1を使用してクライアントモードで動作するようにルーターまたはスイッチを設定する方法を示しています。
[edit system ntp] authentication-key 1 type sha1 value "$ABC123"; server 10.1.1.1 key 1 prefer; trusted-key 1;
ルーターまたはスイッチが対称アクティブモードで動作するように設定します
ローカルルーターまたはスイッチが対称アクティブモードで動作するように設定するには、[edit system ntp]階層レベルでpeerステートメントを含めます。
[edit system ntp] peer address <key key-number> <version value> <prefer>;
リモートシステムのアドレスを指定します。ホスト名ではなくアドレスを指定する必要があります。
リモート・システムに送信されるすべてのメッセージに認証キーを含めるには、 キー ・オプションを含めます。キーは、 authentication-key ステートメントで指定したキー番号に対応します。
デフォルトでは、ルーターまたはスイッチはNTPバージョン4パケットをリモートシステムに送信します。NTPバージョンレベルを3または4に設定するには、 バージョン オプションを含めます。
複数のリモートシステムを設定する場合、 優先 オプションを含めることで、1つのシステムを優先としてマークすることができます。
peer address <key key-number> <version value> prefer;
サーバーモードで動作するようにルーターまたはスイッチを設定します
サーバーモードでは、クライアントが適切に設定されている場合、ルーターまたはスイッチがクライアントのNTPサーバーとして機能します。「サーバーモード」の唯一の前提条件は、ルーターまたはスイッチが別のNTPピアまたはサーバーから時間を受信している必要があることです。ルーターまたはスイッチに他の設定は必要ありません。
管理VRF(mgmt_junos)でNTPサービスを設定する場合、NTPサービスがmgmt_junos VRFと連携するためには、デフォルトルーティングインスタンス内の物理または論理インターフェイスに少なくとも1つのIPアドレスを設定し、このインターフェイスが稼働していることを確認する必要があります。
ローカルルーターまたはスイッチをNTPサーバーとして動作するように設定するには、 [edit system ntp] 階層レベルで以下のステートメントを含めます。
[edit system ntp] authentication-key key-number type type value password; server address <key key-number> <version value> <prefer>; trusted-key [key-numbers];
タイムサーバーとして機能するシステムのアドレスを指定します。ホスト名ではなくアドレスを指定する必要があります。
タイムサーバーに送信されるすべてのメッセージに認証キーを含めるには、 キー オプションを含めます。キーは、 authentication-key ステートメントで指定したキー番号に対応します。
デフォルトでは、ルーターまたはスイッチがNTPバージョン4パケットをタイムサーバーに送信します。NTPバージョンレベルを3または4に設定するには、 バージョン オプションを含めます。
複数のタイムサーバーを設定する場合、 優先 オプションを含めることで、1つのサーバーを優先としてマークできます。
次の例は、SHA-256を使用してサーバーモードで動作するようにルーターまたはスイッチを設定する方法を示しています。
[edit system ntp] authentication-key 1 type sha256 value "$ABC123"; server 192.168.27.46 prefer; trusted-key 1;
次の例は、SHA1を使用してサーバーモードで動作するようにルーターまたはスイッチを設定する方法を示しています。
[edit system ntp] authentication-key 1 type sha1 value "$ABC123"; server 192.168.27.46 prefer; trusted-key 1;
例:ルーターとスイッチのクロック同期のための単一タイムソースとしてNTPを設定する
すべてのルーターまたはスイッチのログ ファイル内のタイムスタンプが同期されている場合、ネットワークにまたがるイベントを複数のログの同期エントリと関連付けることができるため、デバッグとトラブルシューティングがはるかに簡単になります。ルーター、スイッチ、その他のネットワーク機器のシステムクロックを同期させるには、Network Time Protocol(NTP)を使用することを強くお勧めします。
デフォルトでは、NTPは完全に認証されていない方法で動作します。次の設定例では、ネットワーク内のすべてのルーターまたはスイッチを単一のタイムソースに同期しています。server ステートメントは、定期的な時刻同期に使用される NTP サーバーを識別します。認証キーステートメントは、NTPメッセージ認証に使用するセキュアハッシュアルゴリズム1(SHA1)またはセキュアハッシュアルゴリズム2ファミリー(SHA-256)スキームを指定し、ルーターまたはスイッチが非認証のタイムスタンプと同期するのを防ぎます。
SHA-256 を使用すると、これは次のように行われます。
[edit]
system {
ntp {
authentication-key 2 type sha256 value "$ABC123"; # SECRET-DATA
server 10.1.4.2 key 2;
trusted key 2;
}
}
SHA-1 を使用すると、これは次のように行われます。
[edit]
system {
ntp {
authentication-key 2 type sha1 value "$ABC123"; # SECRET-DATA
server 10.1.4.2 key 2;
trusted key 2;
}
}
NTPを使用した時間配分の同期と調整
NTPを使用して大規模ネットワークで時間配分を同期および調整するには、以下のタスクが含まれます。
NTPを設定する
-
スイッチでNTPを設定するには、
[edit system]階層レベルでntpステートメントを含めます。[edit system] ntp { authentication-key number type type value password; ; broadcast <address> <key key-number> <version value> <ttl value>; broadcast-client; multicast-client <address>; peer address <key key-number> <version value> <prefer>; server address <key key-number> <version value> <prefer>; ntp source-address; trusted-key [ key-numbers ]; }
NTPプロセスを再起動する方法
NTPプロセスを再起動するには、NTPプロセスを終了し、 restart ntp コマンドを使用してNTPを再起動します。
user@host# restart ntp
NTPサーバーの送信元アドレスを指定する
IPバージョン4(IPv4)の場合、 [edit system ntp] 階層レベルで設定されたNTPサーバーがループバックインターフェイスアドレスの1つで接続された場合、応答で常に特定の送信元アドレスを使用するように指定できます。これは、NTPがネットワークからのNTPクライアント要求に応答するとき、またはNTP自身がネットワークにNTP要求を送信しているときに、ネットワークへのアクセスに使用する送信元アドレスを制御するのに役立ちます。
応答で常に使用する特定の送信元アドレスと、NTPサーバーによって開始されたリクエストが使用する送信元アドレスを設定するには、[edit system ntp]階層レベルでsource-addressステートメントを含めます。
[edit system ntp] source-address source-address;
source-address は、ルーターまたはスイッチインターフェイスのいずれかで構成された有効なIPアドレスです。
管理VRF(mgmt_junos)でNTPサービスを設定する場合、NTPサービスがmgmt_junos VRFと連携するためには、デフォルトルーティングインスタンス内の物理または論理インターフェイスに少なくとも1つのIPアドレスを設定し、このインターフェイスが稼働していることを確認する必要があります。
Junos OSリリース24.4R1以降、およびリリース24.4R1以降Junos OS、[edit system ntp source-address source-address]階層レベルでrouting-instanceステートメントを使用して送信元アドレスを設定できるようになりました。
[edit system ntp] user@host# set routing-instance routing-instance-name
例えば、以下のステートメントが設定されています。
[edit system ntp] user@host# set system ntp source-address 12.12.12.12 routing-instance ntp-source-test
その結果、 ntp-source-test ルーティングインスタンス内の任意のインターフェイスを介してNTPメッセージを送信する際に、送信元アドレス12.12.12.12が使用されます。
routing-instanceステートメントはオプションであり、設定されていない場合は、インターフェイスのプライマリアドレスが使用されます。
ループバックインターフェイスにファイアウォールフィルターが適用されている場合、[edit system ntp]階層レベルでNTPサーバーに指定されたsource-addressが、ファイアウォールフィルターの一致基準の1つとして明示的に含まれていることを確認します。これにより、Junos OSは、指定された送信元アドレスからのループバックインターフェイス上のトラフィックを受け入れることができます。
以下の例では、[edit firewall filter firewall-filter-name]階層に含まれるfromステートメントで指定された送信元アドレス10.0.10.100を持つファイアウォールフィルターを示しています。
[edit firewall filter Loopback-Interface-Firewall-Filter]
term Allow-NTP {
from {
source-address {
172.17.27.46/32; // IP address of the NTP server
10.0.10.100/32; // Source address specified for the NTP server
}
then accept;
}
}
NTPサーバーに source-address が設定されていない場合は、ファイアウォールフィルターにループバックインターフェイスのプライマリアドレスを含めます。
例:NTPを設定する
この例では、NTPの設定方法を示しています。
要件
この例では、以下のソフトウェアおよびハードウェアコンポーネントを使用しています。
-
Junos OSリリース11.1以降
-
NTPサーバーが存在するネットワークに接続されたスイッチ
概要
この例では、管理者はスイッチの時刻を単一のタイムソースに同期させたいと考えています。認証を使用して、NTPピアが信頼できることを確認することをお勧めします。server ステートメントは、定期的な時刻同期に使用される NTP サーバーを識別します。認証キーステートメントは、セキュアハッシュアルゴリズム1またはセキュアハッシュアルゴリズム2ファミリー(SHA-256)スキームを使用して認証用のキー値をハッシュすることを指定します。これにより、タイムサーバーを装った攻撃者のホストとスイッチが同期するのを防ぎます。
設定
NTPを設定するには:
手順
CLIクイックコンフィグレーション
NTPを迅速に設定するには、以下のコマンドをコピーし、SHA-256を使用してスイッチのターミナルウィンドウに貼り付けます。
[edit system]set ntp server 10.1.4.2 set ntp authentication-key 2 type sha256 value "$ABC123"
NTPを迅速に設定するには、以下のコマンドをコピーし、SHA1を使用してスイッチのターミナルウィンドウに貼り付けます。
[edit system] set ntp server 10.1.4.2 set ntp authentication-key 2 type sha1 value "$ABC123"
ステップバイステップの手順
NTPを設定するには:
-
NTPサーバーを指定します。
[edit system] user@host# set ntp server 10.1.4.2
-
キー番号、認証タイプ(SHA-256)、および認証用のキーを指定します。
[edit system] user@host# set ntp authentication-key 2 type sha256 value "$ABC123"
またはSHA-1を使用する場合
[edit system] user@host# set ntp authentication-key 2 type sha1 value "$ABC123"
結果
結果を確認します。
[edit system]
user@host# show
ntp {
authentication-key 2 type sha256 value "$ABC123"; ## SECRET-DATA
server 10.1.4.2;
}
またはSHA-1を使用する場合
[edit system]
user@host# show
ntp {
authentication-key 2 type sha1 value "$ABC123"; ## SECRET-DATA
server 10.1.4.2;
}
検証
設定が正しいことを確認するために、以下のタスクを実行します。
時刻の確認
目的
スイッチに設定されている時間を確認します。
アクション
時刻を表示するには、 show system uptime 動作モードコマンドを入力します。
user@host> show system uptime fpc0: -------------------------------------------------------------------------- Current time: 2025-06-06 00:00:27 PDT Time Source: NTP CLOCK System booted: 2025-06-05 06:11:32 PDT (17:48:55 ago) Protocols started: 2025-06-05 06:14:01 PDT (17:46:26 ago) Last configured: 2025-06-05 06:13:41 PDT (17:46:46 ago) by root 12:00AM up 17:49, 1 users, load averages: 1.06, 2.08, 2.61
出力では、現在の日付と時刻が 2009 年 6 月 12 日 12:49:03 PDT であることを示しています。スイッチは4週間6時間24分前に起動し、プロトコルは起動の約3分前に開始されました。このスイッチは、2009年5月27日に ユーザーadmin1 によって最後に設定され、現在1人のユーザーがスイッチにログインしています。
また、出力では、負荷平均が最後の1分間で0.05秒、最後の5分間で0.06秒、最後の15分間で0.01秒であることを示しています。
NTP ピアの表示
NTPサーバーから時刻を取得したことを確認します。
show ntp associations動作モードコマンドを入力して、取得したスイッチからのNTPサーバーを表示します。
user@host> show ntp associations remote refid auth st t when poll reach delay offset jitter rootdelay rootdisp ===================================================================================================================== *anyntp.juniper.net 169.254.0.1 - 3 u 44 64 7 2.446 -0.387 0.463 225.876 5.157
NTPサーバー名またはピアの前にあるアスタリスク(*)は、時刻が同期されており、このサーバーから取得されていることを示します。遅延、オフセット、およびジッターはミリ秒単位で表示されます。
NTP ステータスの表示
NTPサーバーの設定とシステムのステータスを表示します。
NTPのステータスを表示するには、 show ntp status 動作モードコマンドを入力します。
user@host> show ntp status associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync, version="ntpd 4.2.8p15-a Sat May 31 00:24:58 2025 (1)", processor="amd64", system="JUNOS24.4R1.9", leap=00, stratum=4, precision=-23, rootdelay=228.261, rootdisp=948.450, refid=66.129.233.81, reftime=ebed0f58.8cda01e1 Thu, Jun 5 2025 23:55:20.550, clock=ebed0f60.a5456e2a Thu, Jun 5 2025 23:55:28.645, peer=32293, tc=6, mintc=3, offset=-0.387001, frequency=+29.155, sys_jitter=0.000000, clk_jitter=0.137, clk_wander=0.000
出力には、スイッチとNTPに関するステータス情報が表示されます。
NTP認証キー
他のタイムサーバーを認証するには、[edit system ntp]階層レベルでtrusted-keyステートメントを含めます。信頼できるキーとは、安全なクロック同期のためにNTPによって信頼され、使用される設定されたキーを指します。trusted-keyで参照されていない設定されたキーは認定されず、NTPによって拒否されます。指定されたキー番号のいずれかを含むネットワークタイムパケットを送信するタイムサーバーのみが同期の対象となります。さらに、キーはそのキー番号に設定された値と一致する必要があります。他のシステムは、認証されなくてもローカルスイッチに同期できます。
[edit system ntp] trusted-key[ key-numbers ];
各キーは、0を除く任意の32ビット符号なし整数にすることができます。パケット送信時に指定された認証キーを送信するために、peer、server、またはbroadcastステートメントにkeyオプションを含めます。この鍵は、リモート・システムがローカル・システムと同期できるように認証が有効になっている場合に必要です。
認証キーを定義するには、[edit system ntp]階層レベルでauthentication-keyステートメントを含めます。
[edit system ntp] authentication-key key-number type type value password;
number はキー番号、 type は認証タイプ(SHA-1とSHA-256のみサポート)、 password はこのキーのパスワードです。キー番号、タイプ、およびパスワードは、認証にその特定のキーを使用するすべてのシステムで一致する必要があります。Network Time Protocol(NTP)認証キーを設定するためのパスワードにスペースがあってはなりません。