NTPサーバとは、ネットワーク上にある、あらゆる機器に標準時刻情報を配信しているサーバのことです。
NTPを有効化しておくことで、デバイスが自動でNTPサーバと通信し、時刻が同期されるようになります。
当たり前に使っているものの、しっかり理解できていない人も多い「NTPサーバ」について、ここでは基本的な意味や仕組み、NTPサーバの設定方法などを解説します。
目次
初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント
NTPサーバとは?
NTPとは、「Network Time Protocol」の略語です。NTPサーバは、あらゆる機器の時刻情報を同期するためのプロトコル(通信の手順や約束事を定めた規格)のことです。コンピューターだけではなく、ルーター、サーバ、各種スイッチなどに正しい時刻情報を取得・配信できます。
NTPサーバの役割は、正確な時刻を参照する様々な機器に対して正確な時刻を配信します。この際、参照する機器との通信に時間がかかり、受信した側の時刻にわずかなズレが発生した場合でも、NTPサーバ側でズレを調整する機能を持っています。そのため、正確性の高い時刻を取得できるものとなっています。
ちなみに、時刻を参照する側を「NTPクライアント」と呼び、参照される側のことを「NTPサーバ」と呼びます。
NTPサーバの時刻同期とは
NTPサーバは、GPSや原子時計などを用いて時刻同期を行います。時刻同期とは、ネットワーク経由でNTPクライアントが時刻を合わせるためにNTPサーバに問い合わせし、NTPサーバがその要求に対して時刻を返答することです。この時、NTPサーバは、「協定世界時(UTC)の時刻を基準にしています。また、日本における時刻の場合は、協定世界時の時間を9時間進めた、「日本標準時(JST)」を使用しています。
●協定世界時(UTC)について
協定世界時とは、世界の標準時刻の基準とされている時刻のことです。原子時計によるカウントと地球の自転運動に基づいて、1日の長さの計測をして調整し決定されています。世界協定時を英語にすると「Coordinated Universal Time」となります。意味は、調整された世界的な時間です。
ちなみに、協定世界時を使う前は、グリニッジ標準時(GTM)というものを使用していました。グリニッジ標準時は、空を見て時間を計算する方式でしたが、空の動きをよりも原子の動き方が規則的なことから、原子時計を使用する協定世界時が世界標準となったのです。
パソコンの日付と時刻の設定の際に、タイムゾーン設定というのを行います。この時、「UTC+9:00」や「UTC-6:00」などの表記を目にしたことがある人も多いのではないでしょうか。世界協定時は、日ごろ何気なく使っている世界標準時刻なのです。
●日本標準時(JST)について
日本標準時とは、日本における標準時刻のことです。協定世界時から9時間進めたものとなっており、タイムゾーン設定では「UTC+9:00」と表記されています。法制度上は、日本標準時という言い方ではなく、「標準時」や「中央標準時」と言います。日常的には、「日本時間」と呼ぶことが多いです。日本標準時を英語にすると「Japan Standard Time」となります。この、「Japan Standard Time」を略して「JST」と呼んでいるのです。
日本では、東経135度(兵庫県明石市近辺を通る、地球の赤道に直角に交差するように両極を結ぶ大円)における、時刻を標準時と定めています。現在NICT(情報通信研究機構)が運用している、原子時計を用いて決定した協定世界時(UTC時刻)から、9時間進めたものをNTPサーバや無線電場などを通じて、発表・配信しているのです。
NTPサーバの仕組みについて
NTPサーバは階層構造になっています。各層のことを「Stratum」と呼びます。
GPSや原子時計を用いた最も信頼性が高い時刻を「Stratum0」と定義しており、Stratum1はStratum0の時刻を受け取って、さらに下の階層(Stratum2以降)に時刻を配信する仕組みです。Stratum1から下位の層に同期するにつれて、「Stratum2」や「Stratum3」と数値が大きくなっていき、最大Stratum16まであります。ちなみに、最下層となる「Stratum16」になると、これ以上の層がないため同期ができません。そのため、NTPサーバとして同期できるのは「Stratum15」までとなっています。
また、Stratum2以降は、Stratum1からの時刻を受け取って配信しなければなりません。Stratumの数が1よりも大きく離れれば離れるほど、当然誤差が広がっていくものです。全ユーザーがStratum1でNTPを設定できるのが一番ではありますが、すべての人がStratum1のNTPサーバに設定してしまうと問題が発生します。それが、NTPサーバにかかる負荷です。
Stratum1に負荷がかかり障害が起きれば、せっかく正確な時刻を配信していても意味がありません。そのため、負荷分散をさせるためにNTPサーバではStratum16まで設定し、分散してつなげるようにしているのです。
●NTP POOL PRO JECT
ちなみに、NTPではStratum1に設定するのではなく、Stratum2以降にサーバを設定しようというプロジェクト(NTP POOL PRO JECT)を立ち上げています。とはいえ、個人ユーザーが直接設定しても問題ないように、NTPサーバ側もサーバの増強を行っています。
どれくらいの規模まで対応できるのかというと、毎秒100万リクエスト以上でも対応可能です。そのため、自身のNTPサーバがどこに設定されているのか気になる方は、一度確認してみてはいかがでしょうか。このように、各NTPサーバは上位のNTPサーバから時刻情報を取得することで、常に正確さを保つような仕組みになっているのです。
NTPサーバの役割と時刻同期の重要性
NTPサーバを使わずとも、パソコンにはタイマーが搭載されているため、一定の時刻を刻むことができます。しかし、その精度は良いといえるものではないため、数週間、数ヶ月と動かしていくと数秒、数分単位でズレてしまうことがほとんどです。
個人が趣味で使うようなパソコンであれば、数秒、数分単位のズレが生じても平気という方もいるかもしれませんが、インターネット上のサーバを担っているコンピューターにとっては、正確な時刻でないと問題が発生するケースも多くなります。
正確な時刻であった方が良い理由として、ログ収集が挙げられます。
例えば、何かエラーやトラブルが発生した際に、コンピューターのログを収集して原因を分析することになります。この際に、ログに残る時間はコンピューターに設定されている時刻であるのが一般的です。万が一、エラーやトラブルが発生したコンピューターが、正確な時刻よりも1時間以上もズレているものだった場合、大幅なズレが生じて、混乱が生まれます。
常に1時間の幅を保ってズレている場合であれば予測もできますが、日ごとに誤差が生まれる場合には、まずは時間がズレた日を特定し、さらにどれだけ誤差が生じているのかを推測してと、余計な手間が発生してしまうのです。特に企業のサーバやパソコンであれば、エラーやトラブルが起きた場合に迅速に対応しなければなりません。問題となる原因を突き止め、すぐに対応するためにもログ収集で支障をきたさないようにNTPサーバをしっかり設定して、時刻同期をすることが大切なのです。
NTPサーバはどのように設定すればいいの?
一般的なパソコンを使用している場合、NTPサーバやNTPクライアントを意識する必要はありません。というのは、基本的に普段から、NTPクライアントになり、NTPサーバを利用しているからです。
例えば、WindowsのOSを使っているのであれば、NTPサーバの設定は「time.windows.com」がデフォルトとなっています。この設定を変更しない限り、必要な時に自動的にNTPクライアントとなり時刻同期をしにNTPサーバに問い合わせて調整されています。
とはいえ、どうやって設定するのかについて知りたい方に向けて、「WindowsのNTPサーバの設定」と「MacのNTPサーバの設定」を以下に紹介します。
●WindowsのNTPサーバの設定
Windowsのパソコンを使用している方で、NTPサーバを設定する場合、以下の流れになります。
-
1. スタートメニューにある「歯車のアイコン」をクリックする
-
2. Windowsの設定画面に表示される「時刻と言語」をクリックする
-
3. 日付と時刻の設定画面から、「別のタイムゾーンの時計を追加する」をクリックする
-
4. 日付と時刻のウィンドウが表示されたら、別タブの「インターネット時刻」をクリックする
-
5. インターネット時刻の設定が表示されたら、「設定の変更」をクリックする
-
6. インターネット時刻設定のウィンドウが表示されたら、「インターネット時刻サーバと同期する」にチェックする
-
7. さらに、任意のサーバのURLを入力して「今すぐ更新」をクリックする
-
8. 更新が完了すると「時刻は正常に〇〇〇〇(日付と時刻、任意に入力したURL)と同期しました」とメッセージが表示されれば、「OK」をクリックする
-
9. インターネット時刻にも「変更したNTPサーバ」と「次回の同期」が表示されるので「OK」をクリックする
上記でWindowsのNTPサーバの設定は完了です。
万が一、NTPサーバの設定でエラーが出る(NTPサーバと同期ができない)場合には、ファイアウォールの設定を確認してください。ファイアウォールの設定によって、NTPサーバがブロックされていないか確認して、必要であれば設定を変更してください。
ちなみに、NTPサーバを確認するためのコマンドは以下の通りです。
-
[bash]w32tm /query /source[/bash]
このコマンドを利用することで、現在どのNTPサーバを参照しているのか確認できます。ただし、必ずコマンドで確認する必要はないため、必要になった際に活用してみてください。
●MacのNTPサーバの設定
Macのパソコンを使用している方は、以下の流れでNTPサーバを設定してください。
-
1. アップルメニューにある「システム環境設定」をクリックする
-
2. システム環境設定に表示される「時刻と言語」をクリックする
-
3. 日付と時刻の設定画面から、画面左下に表示される「錠前のアイコン(変更するにはカギをクリックします。)」をクリックする
-
4. するとポップアップで「ユーザー名」と「パスワード」を求められるため、入力してロックを解除する
-
5. ロックが解除されると日付と時刻の設定画面に戻るので、「日付と時刻を自動的に設定」のチェックボックスをクリックする
-
6. チェックボックスの横にあるNTPサーバを選択できるプルダウンをクリックする
-
7. NTPサーバを任意で選びクリックする(日本の場合は”Appleアジア”を選択)または、任意のNTPサーバのURLを入力する
-
8. 設定完了後、再度左下に表示される「錠前のアイコン」をクリックする
上記の流れで日付と時刻の画面が変更されていれば、NTPサーバの設定は完了です。
日本で公開されている代表的なNTPサーバ
日本で公開されているNTPサーバは以下の通りです。自身でNTPサーバを変更する際の参考にしてください。
-
独立行政法人情報通信機構(NICT)の公開NTPサーバ
-
インターネットマルチフィード(MFEED)の時刻情報提供サービス for Public
-
NTP POOL PROJECTの公開NTPサーバ
-
国立天文台が公開しているNTPサーバ
●独立行政法人情報通信機構(NICT)の公開NTPサーバ
独立行政法人情報通信機構(NICT)が公開しているNTPサーバです。パソコンやルーターなどのネットワーク機器の中には、NICTのNTPサーバがデフォルト設定されていることもあります。
-
NTPサーバドレス:ntp.nict.jp
●インターネットマルチフィード(MFEED)の時刻情報提供サービス for Public
インターネットマルチフィード(MFEED)が、インターネットを通じて高精度な時刻情報を無償で提供するサービスです。
-
NTPサーバドレス:mfeed.ad.jp
●NTP POOL PROJECTの公開NTPサーバ
正式公開中のNTPサーバの中でも、信頼性が高いサーバのひとつです。
-
NTPサーバドレス1:pool.ntp.org
-
NTPサーバドレス2:jp.pool.ntp.org
NTPサーバの設定方法は、上記でも紹介していますので、一緒に確認してください。
一般的なパソコンを使用している場合、NTPの設定について意識することは少ないかもしれません。しかし、ビジネスにおいて正確な時刻が必要になる場合には、NTPサーバの設定は重要なものになるでしょう。基本的な設定方法を知っておけば、いざという時に役立つはずです。ぜひ、これを機にNTPサーバの理解を深めてみてはいかがでしょうか。
システム開発の最適な発注先をスムーズに見つける方法
システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント
■サーバ構築に関連した記事