一覧 検索 最終更新 改名 | ヘルプ | 最終更新のRSS |

NTP のバックアップソース(No.14)

NTPはネットワークを通じてパソコン(PC)やネットワーク機器の時計を合わせる仕組みです。

#br

''目次''

#contents
#br
#br

* はじめに [#front]

NTPは非常に便利な機能ですが、多くの人が特定のNTPサーバに偏って利用したために、正常な運用ができなくなってしまったという過去があります。このページでは、NTPを適正に利用するのに必要な情報をまとめています。

NTPサーバは、ネットワーク的に近いサーバを選択するのが原則です。まずは自分の利用しているプロバイダーがNTPサーバを提供していないかどうか確認しましょう。WindowsやMacに初期設定されているNTPサーバは海外にあり、しかもアクセスが集中するため、精度・速度ともに不安定です。

よくわからない場合は「''ntp.jst.mfeed.ad.jp''」「''ntp.nict.jp''」「''ntp.ring.gr.jp''」のいずれかを選んで、[http://support.microsoft.com/kb/880462/ja Windows設定法]や[http://docs.info.apple.com/article.html?artnum=61273-ja MacOS設定法]を見て設定するだけでも、ひとまずOKです。

clock.nc.fukuoka-u.ac.jp を使ってるアナタ! すぐに別のサーバに[[変更:http://slashdot.jp/article.pl?sid=05/01/21/0214236&topic=12&mode=nested]] しましょう。[[福岡大学をデフォルトで指定している機器やソフト>NTP/福岡大学を指定している機器やソフト]] を使用している人は、本ページの説明を参考に設定を変更してください。負荷分散にご協力をお願いします。

NICTの様な例外を除きStratum-1 のNTPサーバには、個人のPCや、個々の組織のローカルサーバなどから、直接アクセスするべきではありません。Stratum-1 サーバは原則として、プロバイダ等の代表的マシン (=公開NTPサーバ) がアクセスするものです。アクセス集中はネットワークのジッタ増加を引き起こし、結果的に正確な時間の配信を困難にします。

福岡大に限らず、特定の一カ所へのアクセス集中は、''過負荷の問題''を引き起こします。管理者・利用者双方にとって好ましくありませんので、それぞれの利用すべき NTP サーバを正しく選択してください。

''※注意、本ページの内容は全て無保証です。''

* 初心者向けのフローチャート [#novices]

NTP を正しく設定するための流れを簡単に説明します。

+''NTP サーバはどこを使えばいい?''
++「[[プロバイダ別 NTPサーバリスト (公式アナウンスあり)>./プロバイダ・機関別#content_1_0]]」を見て、自分の利用しているプロバイダがあれば、プロバイダの公式ページを参照し、NTPサーバを選ぶ。
++上記に自分の利用しているプロバイダが無い場合には、「[[推奨公開サーバ>./推奨公開サーバ]]」を見て、好きなのを接続先として選ぶ。''ntp.jst.mfeed.ad.jp''や''ntp.nict.jp''がお勧め。
++大学や研究機関などの組織からNTPサーバに接続する場合には、「[[プロバイダ以外の提供のNTPサーバ>./プロバイダ・機関別#content_1_3]]」を見て、自分の組織のものがあれば、それを接続先として選ぶ。ただし、組織内のポリシーに従うこと。
+''最適な NTP サーバが見つかったら…''
++接続先として選んだNTPサーバを設定・登録する。(Windows XP や VISTA では OS 付属機能の [http://support.microsoft.com/kb/880462/ja インターネット時刻]が便利。ルータ等への設定はマニュアルを参照。)
++もし会社などで、 LAN 上にクライアント(PC等)が数台以上あり、サーバ的マシンがあるような場合は、必ず「[[組織内LANクライアントの時刻同期>#lan]]」に従い、'' 1 台程度のみ外部NTPサーバに接続させること''。そしてクライアントはその代表的マシンに向けて時刻同期させること。&color(red){''あなたの組織からの10台のアクセスが1台に減って、みんながそうすれば、外部NTPサーバの(その分の)負荷が10分の1になります。''};
++外部NTPサーバに対してアクセスする(時刻同期する)頻度も、あなたの所で必要とされる時刻の精度に応じて、最適な頻度にしてください。パソコンでは内部タイマが不正確だと良く言われますが、&color(red){''パソコンのタイマの誤差を1秒以内にするには、3〜6時間に1度、正確さがあまり必要でないパソコンでは1日に1度同期させれば十分です。あなたのPCからの同期の頻度が6分の1に減って、みんながそうすれば、外部NTPサーバの(その分の)負荷が6分の1になります。''};
+''PCの時計が合っているかチェック''
++ 日本標準時を決定しているNICT(情報通信研究機構)のページで簡単にチェックできます。
 http://www.nict.go.jp/JST/JST.html
+''最後に、 NTP ってどういうもの?''
++NTPについては「[http://e-words.jp/w/NTP.html IT用語辞典 e-Words : NTPとは]」や「[http://ja.wikipedia.org/wiki/Network_Time_Protocol NTP - wikipedia]」を参照してください。
++NTPがなんとなく分かったら「[[NTPサーバの選択方針>#houshin]]」を試しに読んでみる。
--PCの時計を合わせるだけなら、プロトコルの詳細は理解しなくても大丈夫です。

* NTPサーバの選択方針 [#houshin]

-''遠いStratum1を使うより、近いNTPサーバの方が得られる精度がよい''
-地理的にではなく、&color(green){ネットワーク的に近いサーバ};を選ぼう。(地理的に近くても、ISPが違うと東京・大阪を行ったり来たりで遠回りしていることが多い)&br; *tracertコマンドでhop数が少ないサーバが良い。さらにpingの応答が早ければ尚良い。
-利用しているISPがNTPサーバを提供している場合は、それを利用するのが精度的にも負荷的にもよい
-mfeedは多くのISPから近い位置にある。&color(darkred){利用しているISPでNTPサーバを提供していない場合};はmfeedを使おう
-自分の組織内に複数のPCがある場合は、次項「[[組織内LANクライアントの時刻同期>#lan]]」を参照
-特定のNTPサーバにアクセスが集中して過負荷になった場合には、精度も悪くなる。(→「mfeedのJANOG15発表資料「インターネット上の高精度な時刻配信サーバの運用」参照)なるべく外部のNTPサーバの利用は控えよう。

-NTPサーバを立てる場合、Stratumの値が違う上位サーバを混在させて指定しないこと。通信がStratum値の小さいサーバに集中してしまう
-精度を保つには、同じStratumのサーバを3つ指定するのがよい
-各NTPサーバがどの上流サーバを参照しているかは「ntptrace」や「ntpq」で確認できる。ただしNTPサーバによっては問い合わせを拒否している場合がある。

 (例)
 # /usr/sbin/ntptrace NTPサーバ名
 ntp.fugafuga.hogehoge.com: stratum 2, offset 0.006045, synch distance 0.07573
 ntp.hogehoge.com: stratum 1, offset 0.001219, synch distance 0.00000, refid 'GPS'
 
 # /usr/sbin/ntpq -p NTPサーバ名
      remote           refid      st t when poll reach   delay   offset  jitter
 ==============================================================================
 *ntp.hogehoge.co .GPS.            1 u  141  512  377    7.597   -1.853   1.406
 +ntp.fugafuga.ho ntp.hogehoge.co  2 u  153  512  377    2.729   -2.556   1.504
 *ntpdを止めていると実行出来ません。ntpdateのみを使っている人は上の例を参照。

-windowsでは、コマンドプロンプトから「w32tm」で確認できる。複数指定も可能。

 (例)
 > w32tm /monitor /computers:NTPサーバ名1,NTPサーバ名2
 ntp.hogehoge.com[192.168.0.1:123]:
     ICMP: 6ms 遅延
     NTP: -0.0080134s ローカル コンピュータの時刻からのオフセット
         RefID: 'GPS [0x00535047]
         階層: 1
 ntp.fugafuga.hogehoge.com[192.168.0.2:123]:
     ICMP: 4ms 遅延
     NTP: -0.0075135s ローカル コンピュータの時刻からのオフセット
         RefID: ntp.hogehoge.com [192.168.0.1:123]
         階層: 2

** 組織内LANクライアントの時刻同期 [#lan]

組織内のLAN上にクライアント(PC等)が複数ある場合は、できうる限りLAN内に内部NTPサーバ等を立て、内部NTPサーバだけが外部NTPサーバにアクセスし、クライアントはその内部NTPサーバを参照するような構成にするべきである。こうすることで外部サーバの負荷およびトラフィックを軽減できる。

 ■良い例 (内部NTPサーバを設置する)
    外部NTPサーバと回線にかかる負荷は、内部NTPサーバからのみ
                   WAN                  LAN
                       +-------------+ <--> [クライアントPC]
  [外部NTPサーバ] <---> |内部NTPサーバ| <--> [クライアントPC]
                       +-------------+ <--> [クライアントPC]
                                                   :
  
 ■悪い例 (クライアントPCが直接外部NTPサーバに接続する)
    クライアントPCの数だけ、外部NTPサーバと回線に負荷がかかる
                   WAN
                 <---> [クライアントPC]
  [外部NTPサーバ] <---> [クライアントPC]
                 <---> [クライアントPC]
                              :

なお、WindowsXPはNTPクライアントとして設定すると(つまりデフォルトで)、自動的にNTPサーバにもなる。LAN内に常時稼動の(もしくは稼働率の高い)WindowsXPマシンがあるなら、適切な上位サーバを設定した上で、それを内部NTPサーバにすればよい。実装方法については「[http://www.atmarkit.co.jp/fwin2k/win2ktips/050nettime/nettime.html @IT:NTPでネットワーク全体のマシンの時刻を合わせる(1)]」参照。また、サーバマシンでパーソナルファイアウォールやパケットフィルタを使用している場合は、LAN内からNTP接続(UDP/123)を許可すること。

また、Windows系の場合は、NetBIOSでの時刻同期コマンドもあるので、TCP/IPのプロトコルやサーバプロセスをアクティブにしなくても同期できる。「[http://www.atmarkit.co.jp/fwin2k/win2ktips/050nettime/nettime.html @IT:NTPでネットワーク全体のマシンの時刻を合わせる]」参照。

Windows系でドメインを組んでいる場合、クライアントの時計は自動的にドメインコントローラの時計に同期するため、ドメインコントローラだけが外部NTPサーバを見に行けばいい。ドメインに参加しているクライアントの設定は不要。

* OSごとの設定方法 [#setting]

** Windows2000/XPでの一発設定コマンド [#nettime]

 (設定)
    net time /setsntp:"ntp_server1 ntp_server2 ..."
 (解除)
    net time /setsntp:
 (WindowsTimeサービスの起動)
    net start w32time
Windows Timeサービスの起動も必要。ちなみにNTPサーバにもなれる。設定方法は[http://www.atmarkit.co.jp/fwin2k/operation/winntp01/winntp01_03.html @IT:Windowsネットワーク時刻同期の基礎とノウハウ]」参照。

** Windows Vista/7 [#jccc3012]

 (設定)
    w32tm /config /manualpeerlist:"ntp_server1 ntp_server2 ..."
 (設定変更を通知)
    w32tm /config /update
 (再同期開始)
    w32tm /resync
 (WindowsTimeサービスを遅延開始で起動する)(start= の後ろにはスペースが必要)
    sc config w32time start= delayed-auto

上記のコマンドは管理者権限で実行したコマンドプロンプトから行う事。
詳細な設定を行うには「[http://www.atmarkit.co.jp/fwin2k/operation/winntp202/winntp202_02.html @IT:Windowsネットワーク時刻同期の基礎とノウハウ(改訂版)]」か「[http://technet.microsoft.com/en-us/library/cc773263%28WS.10%29.aspx Microsoft Technet:Windows Time Service Tools and Settings(英語)]」を参照。
最後のコマンドは、Windows 7ではWindows Timeサービスが自動的に起動しない設定になっていることへの対策。詳細は「[http://support.microsoft.com/kb/2385818/ja Windows 7 および Windows Server 2008 R2 のスタンドアロン環境で Windows Time サービスが自動的に起動しない]」を参照。

** LinuxやFreeBSD [#w8a45159]

LinuxやFreeBSDでサーバを構築している場合は、ntpdを起動すればNTPサーバになる。実装方法はぐぐってみよう(初心者向けではない)。なお、ntpdといえどもサーバデーモンであり、過去にはセキュリティホールも発見された事もあるので、特に外部にサーバ公開しようとする場合は十分な注意を払おう。

 116 :login:Penguin:05/01/26 13:09:25 ID:wRdnS6sY
    もしクライアントレベルでntpdを動かしているなら、上位のサーバに負荷をかけないように
    minpoll 8 maxpoll 15ぐらいにする。この程度の補正間隔で十分っしょ。 

** Ubuntu 12.04 LTSでの設定 [#p3675d22]

Ctrl+Alt+Tで端末を開き、
>sudo gedit /etc/default/ntpdate

と入力。
>NTPSERVERS="ntp.ubuntu.com"

となっているところを書き換える。
** Mac OS Xでの設定 [#if3515f1]
最近のMac OS X(10.5.x)では、「システム環境設定」からでも複数のサーバ指定が出来る。
「日付と時刻」の「日付と時刻を自動的に設定」の右半分にある欄は直接サーバ名を入力して指定出来るが、ここに参照させたいサーバ名を「空白」で区切って並べれば良い。例えば:

-ntp1.jst.mfeed.ad.jp
-ntp2.jst.mfeed.ad.jp
-ntp3.jst.mfeed.ad.jp

Mac OS Xは内部はFreeBSDなので、/etc/ntp.confがあり、「システム環境設定」からwrapperを通してnpt.confが設定される。上記例の場合だとntp.confは
 server ntp1.jst.mfeed.ad.jp
 server ntp2.jst.mfeed.ad.jp
 server ntp3.jst.mfeed.ad.jp
となる。ただし、「システム環境設定」にはサーバ名のリストしか書けないようなので、server指定のオプションなどは書けない。ntp.confで記述しても「システム環境設定」の「日付と時刻」を開いた時に上書きされてしまう。
 ntpがどのように動いているかは、ターミナルを開いてntpqなどBSDの通常のコマンド類を使って調べることが出来る。
 またntp.confを見れば分かる様に、Mac OS Xは自身がntpサーバとして使える。従って、「組織内LANクライアント」の形式で運用するための内部サーバとして使うことが出来る。内部サーバとしたいMac OS Xは「システム環境設定」で外部のntpサーバを参照させるように指定するだけでよく、他のマシンはこのMac OS Xのアドレスをntpサーバのアドレスとして指定すればよい。

* 外部ページへのリンク [#link]

** NTPについて [#yc833ff8]

-[http://e-words.jp/w/NTP.html IT用語辞典 e-Words : NTPとは 【Network Time Protocol】 ─ 意味・解説]] 
-[http://ja.wikipedia.org/wiki/Network_Time_Protocol NTP - wikipedia]
-[http://sonic64.com/2004-12-02.html プロバイダ別 ntp サーバリスト (元ネタ)]
-[http://www.janog.gr.jp/meeting/janog15/data/NTP-ito.pdf mfeedのJANOG15発表資料「インターネット上の高精度な時刻配信サーバの運用」(PDF)]
-[http://www.atmarkit.co.jp/fwin2k/operation/winntp01/winntp01_01.html Windowsネットワーク時刻同期の基礎とノウハウ」]
-[http://technet.microsoft.com/en-us/library/cc773263%28WS.10%29.aspx Microsoft Technet:Windows Time Service Tools and Settings(英語)]
-[http://www2.nict.go.jp/aeri/sts/tsp/JST/JST5.html 日本標準時]
--[http://www2.nict.go.jp/w/w114/tsp/PubNtp/qa.html 日本標準時プロジェクト 公開NTP FAQ]
-[http://www.vector.co.jp/vpack/filearea/win/personal/tokei/tool/index.html Vectorソフトライブラリ: Windows > パーソナル > 時計 > 時計・時間関係ツール]
-[http://tclock2ch.no.land.to/appli.html 時計合わせソフトのデフォルトサーバ調査]

(HTML conversion costs 0.008 sec.)