NTP(Network Time Protocol)の概要

ベル

今回の授業は、「NTPの概要」について教えていこうと思います。NTPでシステムの時刻を統一することが出来ます。そもそも「なんで時刻同期しておかないといけないのか?」という問いに漠然としか答えられないような方も是非、ここで理解を深めてもらえればと思います。

 

 

NTPとは

NTP(Network Time Protocol)とは、ネットワーク機器やサーバなどの時刻を同期させるためのプロトコルとなります。なんでこんなものが必要かと言うと、端末やサーバはデータを送り合ったり、情報を連携したりしています。そのため、時刻に差分があると連携したデータの順番などに差分が発生してしまったりします。そのような事態を防ぐため、1つにシステムで同じNTPサーバを参照させたりするのが一般的です。

 

この理屈は、ネットワーク機器でも同様になります。1つの企業に多くのネットワーク機器を導入して、それぞれが別々の時刻で動作していると、複数の機器でエラーログが出たときに同じタイミングで出たログなのかどうかが分からなくなってしまいます。そのようなことが発生しないようにネットワーク機器でもNTPを使った時刻同期を行うことが一般的です。

 

GPS(Grobal Positioning System)を使った時刻同期

昨今の携帯電話普及もあり、『GPS』と言う言葉を初めて聞いたという方は、ほとんどいないでしょう。このGPSは、アメリカが打ち上げたGPS衛星を利用して、現在時刻や場所などの情報を受け取れるようになります。このGPSから受け取った時刻を基準にして全てのネットワーク機器や、サーバ・端末の時刻を合わせるようにします。

 

 

 

このGPSを使用しないと、正しい時間から徐々にずれていってしまいます。これは、自分で持っている壁掛け時計などを想像してもらうとわかると思いますが、長い間使っていると時間が遅れてしまっていたりすることがありますよね。そんなことが会社のシステムで発生させてしまったら、せっかくNTPで時刻同期していても全部の時間がずれてしまいます。そうならないように、企業の商用環境では、GPSを使用するのが一般的となります。

 

NTPの階層構造

NTPサーバを導入する場合、どの機器はどの機器から時刻をもらうのかを必ず考えておく必要があります。と言うのは、NTPサーバがGPSで時刻を取得できたとしても、そのNTPサーバに全てのネットワーク機器やサーバ・端末が時刻を取得しようとしてきたら、NTPサーバに負荷がかかってしまいますよね。また、全ての機器がNTPサーバとリーチャビリティーが確保されている必要があります。全ての機器からアクセスが出来るということは、セキュリティ上の観点からも良くないことは、言わなくてもわかることですよね。

 

そのような構成にならないように階層構造を作って、時刻同期させることが重要となります。以下のようなイメージで考えもらえればいいと思います。

 

 

 

ここで使われている「Stratum」と言うのが階層の深さを表しています。この「Stratum値」には上限があり、『16』に達してしまうと時刻同期ができなくなってしまいます。そのため、大規模ネットワークで隣接機器からしか取らないなどの設計をしてしまうと、Stratum値が上限に達してしまうことがありますので、最初にしっかりと階層構造を考えておく必要がります。

 

NTPの注意点

ここまでNTPのことを学んでくると、NTPの重要さが少しわかってもらえたと思います。しかし良いことばかりではないので、NTP同期を行う際に注意しておくべきことを知っておきましょう。

 

 

時刻修正によるシステムエラー

現在起動しているシステムにNTPによる時刻同期を急に入れると、時刻の修正が発生します。それにより、時刻が戻されたりしてシステムデータが上書きされてしまうことがあります。たとえば、時刻設定を適当にしていた図書館などのシステムで考えてみましょう。

 

ネットワークの初心者であるベル君が『ネットワークエンジニアの小学校』と言う本を借りたとしましょう。その直後に新しいNTPサーバと時刻同期したら、日時が遡ってしまいました。その後、ベル君が本を返しに来たら借りた日時よりも前に返却に来てしまいました。NTP同期をしたことで、貸出日よりも返却日が前になり、システムエラーとなりました。

 

これは極端な例ですが、このような事態が発生しないように、既存の環境に新しいNTPサーバを作るような場合は、気を付けなければいけません。実際にDNSサーバでエラーを起こしてしまい、複数回の再起動を経験したことがあります。冷や汗ものでした。。

 

時刻応答元の差異によるエラー

NTPサーバの指定先でゲートウェイ冗長をしている場合に、指定先のアドレスと応答するアドレスが異なります。これにより、聞いた相手と違うアドレスが応答することで、エラーとなってしまうことがあります。どういうことかと言うと、黒板を見てください。

 

 

このようにNTPサーバをHSRPのVIP(10.1.1.254)に指定すると、物理IP(10.1.1.252)で応答しようとします。その場合に、自分が問い合わせた先と違うIPアドレスが応答するため、応答結果を信用しないことがあります。そのため、NTPサーバを2つ指定できるのであれば、物理IPアドレスを2つ(10.1.1.252と10.1.1.253)指定することをおすすめします。

 

相互参照による時刻同期エラー

先にNTPサーバを導入する場合、すべての機器がマスタを参照しにいくのではなく、階層構造が一般的と教えました。その構造を作る際に、お互いを参照させるような設計にしてはいけません。当然ですが、相互参照をしてしまうとループが発生していまうので、同期エラーが発生します。このような構成にならないように、注意しましょうね。

 

 

今回の場合ですと、ルータ1とルータ2が相互に参照し合ってしまいます。このような構成になってしまうと、同期エラーが発生してしまうことがあります。設定したらOKではなく、同期できているかまでしっかり確認するようにしましょうね。

 

僕自身がNTPの時刻同期エラーを経験したことの一部を紹介させていただいていますが、これ以外にも多くのエラーが発生することがあります。NTPなんてただの時刻同期だからと言って甘く見ないで、しっかりとしたツリー構造の検討と検証をしっかり行うようにしましょうね。

 

まとめ

ベル

今回の授業はここまでです。いかがでしたか?たかがNTPだからと言って、しっかり理解していないと大きなトラブルにつながることがあります。このようなことにならないように、本番環境に導入する前にしっかり検証しておくことが重要となります。次回では、CiscoルータをNTPサーバにしてみたいと思います。

 

USB RJ45 コンソールケーブル

【CISCO互換ケーブル】FTDI chipset USB RJ45 コンソールケーブル

新品価格
¥999から
(2019/3/17 20:50時点)

CISCO1812J

CISCO Cisco 1812J 固定構成型 セキュアブロードバンドアクセスルータ CISCO1812-J/K9

中古価格
¥4,880から
(2019/3/17 20:55時点)


CISCO1841

【中古】Cisco1841 (D128M/F32M)サービス統合型ルータ

価格:4,980円
(2019/3/17 21:02時点)
感想(0件)

Follow me!

NTP(Network Time Protocol)の概要” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です