Network Time Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』

この項目ではネットワークプロトコルについて記述しています。愛知県にあるトヨタ自動車系のディーラーのNTP、「名古屋トヨペット」についてはトヨペット店をご覧ください。

Network Time Protocol (NTP ネットワーク タイム プロトコル、エヌティーピー) は、ネットワークに接続される機器において、機器が持つ時計を正しい時刻へ同期するためのプロトコルである。OSI基本参照モデルの第7層に位置する。

目次

[編集] 概要

ネットワークに接続され、互いにデータの交換を行う機器において、各機器が持つ時計(以下、各機器が持つ時計を「RTC」として説明する)の時刻が機器間で異なると、時刻に依存した機器間のデータ交換、例えば電子メールやファイルの送受信、ログの配信などに異常をきたすおそれがある。よって、RTCの時刻は機器間で互いに同期していることが望ましい。

ネットワークに接続される機器の RTC を正しい時刻に合わせる古典的な方法として Time Protocol がある。Time Protocol は正しい時刻を提供するサーバから各機器が時刻値を取得する方法を定めている。しかし Time Protocol を用いて取得した時刻値にはサーバから機器に時刻値が到達するまでの通信時間が含まれない。よって、取得した時刻値には通信時間に起因する遅れの誤差が含まれてしまい RTC を正しい時刻に同期できない。

NTP は通信時間による時刻値の誤差を小さくする工夫がなされた時刻同期のためのプロトコルである。

[編集] 時刻同期の仕組み

[編集] 処理の概略

この節は、書きかけです。加筆、訂正して下さる協力者を求めています。

NTPプロトコル上では協定世界時(UTC) を使って時刻を送受信する。

NTPサーバソフトを起動させ、上位NTPサーバに接続すると、機器に搭載された時計の遅れ具合や上位NTPサーバとのネットワーク通信の遅延、それらのばらつき具合を継続的に計測し、受け取った時刻情報を補正して自動的にミリ秒単位の精度で設定を行うとともに、他の機器への時刻も提供することができる。

[編集] 通信遅延時間の計算

この節は、書きかけです。加筆、訂正して下さる協力者を求めています。

[編集] 階層構造

NTPはstratumと呼ばれる階層構造を持ち、最上位のサーバが正確な時計から標準時を取得し、下位のホストはそれを参照する事で時刻を合わせる。最上位のNTPサーバはstratum 1であり、階層を下りるごとに数字が一つずつ大きくなる。stratum 16が最下位で、stratum 16に同期することは出来ない。NTPでは複数のサーバへ時刻を問い合わせることが可能で、これにより可用性と精度の向上が期待できる。通常サーバは複数の上位サーバを利用して時刻を取得する。一般にstratumの大きさよりも、サーバとのネットワーク的な近さのほうが時刻精度に大きく影響する。

GPS標準電波原子時計などの正確な時刻源(stratum 0)に直結されたNTPサーバはstratum 1となる。これらの時刻源は誤差±1μ秒未満(100万分の1秒未満)の非常に正確な時刻を刻んでいる(ただし、いい加減な時刻源と直結していても、stratum 1を名乗ることはできる)。

GPS衛星には原子時計が搭載されており、その電波にはGPSタイムと呼ばれる時刻情報が含まれている。標準電波は地域の標準時を保持する組織が時刻情報を電波で送出するものであり、日本の場合は独立行政法人情報通信研究機構(NICT、旧・通信総合研究所(CRL))が行っている。

[編集] 運用

LAN内部にクライアント台数がそれなりある場合には、外部へのトラフィックおよび外部NTPサーバーの負荷を最小限にするため、LAN内にNTPサーバとして稼動できる機器(もしルータなどで提供できなければ、NTPサービス提供専用の古いパソコンをセットアップしても良いし、またサーバ的な存在になっている既存のパソコン等にNTPサーバをインストールしても良い)を用意し、この機器(内部NTPサーバ)をプロバイダなどの外部NTPサーバに接続し、各クライアントはこの内部NTPサーバに接続する設定を行うと良い。

ルータやクライアントパソコンなどのネットワーク上の各機器では、前述のようなNTPサーバへアクセスして、機器内部の時計の時刻をNTPサーバの時刻に合わせることで内部時計の誤差が少なくなる。

※「桜時計」他の時刻合わせソフトウェアやNTPクライアント機能組込ルータなどでは、製作当時に使われていた福岡大学などの大学や外国のNTPサーバのアドレスが初期設定されたままになっているので、接続先NTPサーバのアドレス設定は、前述の契約先ISPや情報通信研究機構などのNTPサーバに修正する必要がある。

[編集] 2036年問題

NTPでは、時刻の表現に1900年1月1日午前0時0分0秒 (UTC) (この時間を以下では「起点」とする)からの積算数を使用している。この値は32ビット符号なしで表現されるため、起点から(232-1)秒、すなわち42億9496万7295秒までしか表現できない。

その結果、起点から42億9496万7295秒経過した2036年2月6日6時28分15秒 (UTC) の次の秒が桁あふれによって起点と認識されてしまい、NTPが誤動作すると予想されている。

これが2036年問題である。UNIXLinux, FreeBSD等UNIXライクなOSも含む)にはこの問題が複数の箇所で今後顕在するとみられるが、このNTPについても該当する。

[編集] NTP 利用環境

[編集] 下位プロトコル

通常、NTPはUDP上で動作する。UDPのポートは123番を使用する。ルータのパケットフィルタの設定でポート123番を通さないようにしている場合は、外部のNTPサーバにアクセスできなくなるので、通すように設定する必要がある。

[編集] NTPの実装

代表的なNTPの実装として、UNIXオペレーティングシステム用のntpd(旧xntpd)がある。 WindowsMac OSではインターネット対応が標準化した2000年前後から、OSの標準の機能としてNTPによる時刻の同期に対応している。 日本では、Windowsが本格的にインターネット対応を開始した1990年代後半に「桜時計」と呼ばれるNTPの実装が有名になった。

また、ルータスイッチングHUB などのネットワーク機器にNTPサーバが搭載される場合がある。もともとは高級なネットワーク機器(特にルータやゲートウェイ)に搭載される機能であったが、ネットワーク普及に伴う機器の低価格化により、2000年代後半には民生用のネットワーク機器においてもNTPサーバが搭載されている。

[編集] NTPサーバと負荷

前述の通りNTPは階層構造を採用しているため、負荷分散が行えるように工夫されている。しかし、NTPと同じく階層構造を採用するDNSではDHCPPPPによるDNSサーバアドレス配信の仕組みが普及しているのに対し、NTPではNTPサーバアドレス配信の仕組みが存在しない。よって、エンドユーザーは自ネットワーク内のNTPサーバの存在を知ることができず、エンドユーザーが stratum 1 の公開 NTP サーバを使用する傾向がある。結果的に、一つのNTPサーバにアクセスが集中するためサーバの応答性を下げ、配信される時刻の正確性が失われる。

Windows XPMac OSの初期設定サーバは混雑しているため、ISP提供のサーバや後述の公開NTPサーバ等に変更すると、より正確な時刻取得が可能になる。

[編集] clock.nc.fukuoka-u.ac.jp問題

日本では福岡大学が1993年からNTPサーバを公開しているが、ここを参照するように設定された機器やソフトが非常に多いため、アクセス集中による過負荷に悩まされている。契約しているインターネットサービスプロバイダ(ISP)の公開するサーバーを利用するなどで、これらの問題は解消すると考えられるため、福岡大学内部でNTPサーバーを利用している場合を除き、ISPや研究機関等が加入者向けにサービスするNTPサーバや公開NTPサーバを利用することが好ましい。

[編集] ウィスコンシン大学-ネットギアNTP問題

ネットギア製のルータウィスコンシン大学のNTPサーバを参照するようハードコードされていたため、負荷が極度に集中した。以下に問題の経緯を記す。

2003年5月、ウィスコンシン大学に対して平均毎秒4万パケット(異常値のようなピーク時で毎秒8万パケット)のNTPサービスへの接続が行われた。 これに対し大学側はNTP用に公開していたポートを閉じ、悪意あるアクセスは数時間のうちに収まるであろうと考えていた。しかしながら1ヵ月後の2003年6月の時点において、大学側の予想に反するどころかさらに状況は悪化し平均毎秒25万パケットを記録。さらなる調査によって、多くの接続元が1秒毎に問い合わせを行っている事に不審を抱くこととなる。接続元となっている2つの大学に協力を要請。調査結果の中で双方ともにネットギア社製のルーターを使用していた事が判明、型番もMR814であると特定された。

2003年6月16日、大学側はネットギア社のカスタマーサポート宛に電子メールにて状況を報告を行ったが返答がないため直接交渉を行い、2003年6月19日に、ネットギア社から「開発者によるデバッグ時の設定値の残骸が引き起こしたもの」との説明が大学側に報告され、協力体制が整備された。

2003年8月の時点において、影響を受けた生産台数70万台から行われる最大毎秒70万パケットに及ぶリスクに対して、大学側はルーター使用者に影響がでないよう配慮し、ネットギア社からはファームウェアのヴァージョンアップが提供された。これによりウィスコンシン大学の転送量の増加傾向は弱くなり、2003年11月からは減少傾向に転じることとなった。

なお、これらの事件の詳細は、2003年8月21日に、ウィスコンシン大学のDave Plonkaによりまとめられている。[1]

[編集] 各ソフトウェアにおける設定法

[編集] Windows XPでの時刻合わせについて

Windows XP では標準で NTP クライアント機能を持っているため、以下のような方法で動作をさせることができる。

[編集] HOME エディション, Active Directory へドメイン参加していない Professional エディション

  1. 「コントロールパネル」の「日付と時刻」を開く。
  2. 「インターネット時刻」タブをクリックする。
  3. 「自動的にインターネットサーバと同期する」をチェックする。

[編集] Active Directory へドメイン参加している Professional エディション

  • 自動的に Active Directory サーバーと時刻の同期が行われるため、OS の NTP クライアント機能は設定を行えない("コントロールパネル"の"日付と時刻"に"インターネット時刻"タブが表示されない)。

[編集] Mac OS 9での時刻合わせについて

Mac OS 9では標準で NTP クライアント機能を持っているため、以下のような方法で動作をさせることができる。

  1. 「コントロールパネル」の「日付 & 時刻」を開く。
  2. 「ネットワーク・タイムサーバを使用する」をチェックする。

[編集] Mac OS Xでの時刻合わせについて

Mac OS Xでは標準で NTP クライアント機能を持っているため、以下のような方法で動作をさせることができる。

  1. 「システム環境設定」を開く。
  2. システムの項目にある「日付と時刻」アイコンをクリックする
  3. 「日付と時刻を自動的に設定」のチェックボックスを ON にする

[編集] 関連RFC

  • RFC 868 - Time Protocol (NTPが登場する前の古典的な時刻同期プロトコル)

[編集] 関連項目

[編集] 外部リンク

[編集] 公開NTPサーバ

ことばこって?

「ことばこ」は、歴史の人物から最先端テクノロジーまで、なんでも調べられるオンライン百科事典です。ウィキペディア財団が運営を行なっているwikipedia.orgから引用をしています。

おススメサイト
トラブログ
アレどう?
アフィリエイトB