NTP(Network Time Protocol)とは?
ただの時計と侮るなかれ、時刻同期の重要性

 2022年6月28日

topイメージ

普段、システム管理や 障害・トラブルの解析をする際に見るのがSyslog(シスログ)です。

このSyslog(以下ログ)はネットワーク上にある各ネットワーク機器の内部で、いつ、どのような動作をしているかをリアルタイムに表示しています。
これについては前回のブログで記述しましたので、↓こちらをご覧ください。

イメージ
無線LANの運用管理が楽になる?
縁の下の力持ち「Syslog サーバ」の導入効果とは?
詳しくはこちら 

これらのログを見る際に、まれに実際の日付や時間と異なっている場合があります。
このような時刻情報が正確に表示されていない場合、いつ何がどのような経緯で起きたのかを時系列で把握することができず、解析に時間だけがかかってしまうというエンジニア泣かせのログとなってしまいます。
でも、多数ある機器の時計をミリ秒レベルで正確に合わせ続けるのって、すごく大変ですよね?
そんな時に活躍するのが、自動的に全ての機器に対して正確な日付や時刻を同じ時計に合わせる通信プロトコル「NTP(Network Time Protocol)」です。
それでは、NTP(Network Time Protocol)についてもう少し詳しく見てみましょう。

1. NTPとは?

NTP (Network Time Protocol)とは、ネットワークに接続されたパソコンやLANスイッチなどの機器の時刻同期に用いられる通信プロトコルです。

皆さんが普段お使いのパソコンにも時刻が表示されていると思いますが、これも日々ネットワークを介して時刻同期をしています。
ただの「パソコンの時計」と思われがちですが、時刻同期がされないことで発生する影響は広く、メールやチャットなどの時間表示やシステムのタイムスタンプなどに影響を与えます。特にシステムのタイムスタンプでは、エラー等が発生した際のログメッセージの内容に大きく影響するため、時刻同期は非常に重要となります。

2. 時刻同期の重要性

多くの場合、システムは複数のサーバやネットワーク機器と接続しています。システムの管理や障害時の解析において、システムのタイムスタンプやログの時刻情報は各機器間における関連付けの基準の1つとなります。例えば、機器単体の障害であれば、上から順番に並んだログをチェックすればよいかもしれませんが、ネットワーク内で障害が発生した場合、影響範囲は複数の機器に及ぶケースが多いため、時刻同期が取れていなかった場合、発生源はどこなのか、どういう経緯で障害が発生したのかを正確に知ることができなくなるという不幸な状況になるのです。これにより解析が遅れるばかりか、対処した方法が本当に正しいのかどうかさえ危うくなってしまいますので、時刻同期をきちんと行うことは非常に重要な事なのです。

時刻を重視する業界としては、交通機関、放送、金融系、トレーディング、医療、データセンター、インフラ系など遅れが生じることで大きく影響を及ぼすところが多く、高いセキュリティを求められる企業や、ある程度のネットワーク規模を持つ企業や組織では、自社内にNTPサーバを立てているというところも少なくありません。

3. 時刻同期はどのようにおこなわれるのか

NTPサーバと呼ばれる正確な時刻を配信する公開サーバに各機器がNTPクライアントとなり、NTPサーバに問合せをおこないます。各機器は、NTPサーバからの返答を基に時刻同期をしているのです。

一般的なパソコンの場合、パソコンがNTPクライアントになり、NTPサーバと通信をしています。
WindowsのOSであれば、「time.windows.com」がデフォルトとなっていますので、設定を変更しない限りは自動的に時刻同期をおこなってくれます。

NTPクライアントでは、NTPサーバへの問い合わせから返答までの通信時間による遅延(ズレ)が生じた場合でも補正する機能も持っていますので、正確な時刻同期をすることができるのです。

NTP時刻同期イメージ

4. NTPの階層構造

NTPサーバは、stratum(ストラタム)と呼ばれる階層構造になっています。

GPSや原子時計を用いた最も精度の高い時刻を「ストラタム0」と定義され、「ストラタム1」は、ストラタム0の時刻に同期し、ストラタム2はストラタム1の時刻を、ストラタム3はストラタム2の時刻を同期するというように1つ上のストラタムの時刻に同期する仕組みになっています。ストラタムは1~16まで存在し、NTPサーバとして同期が取れるのは、ストラタム15までとなっています。数字が大きくなればなるほど、ストラタム0から離れてしまうため、時刻の誤差が生じてしまいます。その誤差がどこまで許容できるかは、どこまでシビアな時間が必要かによるかと思います。

ストラタムイメージ

正確な時間を同期するにはストラタム1に同期すればいいのでは?と思うかもしれませんが、全ての人がストラタム1にアクセスをしてしまうとサーバに負荷がかかり、ネットワーク障害などを引き起こす可能性があるため、できるだけストラタムの数字が大きいものに同期することが推奨されています。

5. 国内の公開NTPサーバ(ご参考)

日本には多くの公開NTPサーバが存在しますが、ここでは代表的な公開NTPサーバ(ストラタム1)のご紹介です。
ここでは、あくまでもご紹介だけで、同期するのはできるだけストラタムの数字の大きいものに同期するようにしてください。(大事なことなので2回言いました)

1. 国立研究開発法人 情報通信研究機構(NICT)の公開NTPサーバ

NTPサーバーアドレス1:ntp.nict.jp

2. NTP POOL PROJECTの公開NTPサーバ

NTPサーバーアドレス1:pool.ntp.org
NTPサーバーアドレス2:jp.pool.ntp.org

6. NTPの2036年問題

かつて1999年から2000年に西暦が変わる際、西暦の下2桁を使用していたことで、時刻表示が1900年にリセットされるという「2000年問題」が話題となりましたが、NTPの2036年問題の方が少し深刻な問題と言われています。

NTPでは、1900年1月1日 0時0分0秒 (UTC)を起点とし、そこから「何秒たったか」を積算する32ビットの積算秒数で表現しています。これは「およそ2の32乗秒」までしか計算ができないため、42億9496万7295秒までしか表現ができず、起点から42億9496万7295秒経過した2036年2月7日 6時28分15秒 (UTC) の次の秒、2036年2月7日 6時28分16秒には桁あふれを起こしてしまいます。これにより、「新たな起点になった」とリセットされてしまい、NTPが誤動作すると予想されています。

この情報はご参考までに頭に留めておいていただけると良いかと思います。

7. まとめ

時刻同期の重要性についてご理解いただけましたでしょうか?改めて時刻同期の重要性についてまとめてみます。

時刻同期の重要性

  1. トラブルなどが発生した際の正確な情報がつかめない
  2. 原因の分析に時間がかかってしまう

 

当たり前になりすぎてあまり気にしていなかった時刻同期の重要性を再認識いただけたでしょうか。

Sanko IBでは、ネットワークに知見の深いエンジニアが多数在籍しております。
製品の提供だけでなく、構築部分でもサポートすることが可能ですので、ネットワーク構築やインフラ整備などございましたらお気軽にご相談ください。

イメージ
ネットワーク構築やインフラ整備ならお任せください
専任エンジニアが懇切丁寧にお答えします
相談する 
関連情報

 

お役立ち情報一覧 

 

PAGE TOP