NTP.CONF(5) FreeBSD ファイルフォーマットマニュアル NTP.CONF(5)
名称
ntp.conf − ネットワークタイムプロトコル (NTP) デーモンの設定ファイル |
書式
/etc/ntp.conf |
解説 |
ntp.conf 設定ファイルは、 ntpd(8) デーモンの初期始動時に、同期用時刻供給 源、モード、その他関連情報を指定するために読み込みます。通常は、この設定 ファイルは /etc ディレクトリにインストールされますが、どのディレクトリに もインストール可能です (デーモンの −c コマンドラインオプションを参照)。 ファイルのフォーマットは、他の UNIX 設定ファイルと似ています。コメント は、文字 ‘#’ からはじまり、行末まで続きます。また、空行は無視されます。設 定コマンドは、先頭のキーワードと、その後に続く引数のリストからなります。 引数にはオプションのものもあります。各引数は空白で区切られています。コマ ンドは、複数の行にまたがることはできません。引数として、ホスト名、ドット で 4 つの部分に区切られた形式の数値で書かれたホストアドレス、整数、浮動小 数点で表現された数値 (秒で時間を指定した場合)、テキスト文字列があります。 このマニュアルページの残りでは、設定と制御オプションについて述べます。 "NTP の設定と NTP サブネットの設定に関する注意" のページ ( /usr/share/doc/ntp にある HTML 文書の一部として入手可能です) では、これら オプションについて更に進んだ議論があります。一般的な 設定オプションの議論 に加えて、サポートされている機能と、その機能を制御するためのオプションに ついて述べた、次のようなセクションがあります: |
• 認証機能のサポート
• モニタ機能のサポート • アクセス制御機能のサポート • 参照クロック機能のサポート これらのセクションの後に その他のオプションについて述べたセクションもあり ます。利用可能なオプションは豊富にありますが、必要なオプションは、 server, peer, broadcast, manycastclient コマンドだけです。 設定オプション |
次に述べるのは、NTPv4 の設定コマンドについてです。これらのコマンドは、基 本的な機能は NTPv3 のときと同じですが、場合によっては、新たな機能や引数を 持ったものがあります。コマンドには、2種類のクラスがあります。設定コマンド は、リモートサーバまたは通信相手または参照時計との永続的なアソシエーショ ンの設定を行ないます。補助コマンドは、さまざまな関連操作を制御する環境変 数を設定します。 |
設定コマンド |
コマンドのキーワードおよび必要とされる IP アドレスの種類によって、さまざ まなモードが決定されます。アドレスは次のような種類にクラス分けされます。 (s) リモートサーバあるいは通信相手 (IP クラス A, B, C のいずれか)、 (b) ローカルインタフェースのブロードキャストアドレス、 (m) マルチキャストアド レス (IP クラス D)、あるいは、 (r) 参照時間アドレス (127.127.x.x) です。 以下では、各コマンドに適用可能なオプションだけを記載していることに注意し てください。記載していないオプションを使用してもエラーにならないかもしれ ませんが、その結果、妙なことをしたり、破壊的なことをしでかしたりすること があります。 |
server address [key key | autokey] [burst] [iburst] [version version][prefer] [minpoll minpoll] [maxpoll maxpoll]
peer address [key key | autokey] [version version] [prefer] [minpoll minpoll] [maxpoll maxpoll] broadcast address [key key | autokey] [version version] [prefer] [minpoll minpoll] [ttl ttl] manycastclient address [key key | autokey] [version version] [prefer] [minpoll minpoll] [maxpoll maxpoll] [ttl ttl] これら 4 つのコマンドは、使用するタイムサーバ名またはアドレスと、動作を行 うモードを指定するものです。 address は、DNS 名でもドットで 4 つの部分に 区切られた形式の IP アドレスでも良いです。アソシエーションの振る舞いに関 するさらなる情報は、 "アソシエーション管理" のページにあります。 server peer broadcast manycastclient オプション: autokey burst iburst key key minpoll minpoll maxpoll maxpoll prefer ttl ttl version version 補助コマンド broadcastclient manycastserver address ... multicastclient address ... 認証機能のサポート |
認証機能のサポートによって、NTP クライアントは、サーバが本当に既知で信頼 できるものであり、偶然であれ意図的であれ、サーバのふりをしてクライアント をだまそうとする侵入者ではないことを確認できます。 NTPv3 仕様 RFC-1305 は、受け取った NTP パケットを暗号により認証するための方式を定義していま す。もともと、この機能は、Cipher Block Chaining (CBC) モードで機能する Data Encryption Standard (DES) アルゴリズムを使用して (一般的に、DES-CBC と呼ばれる方式です) 実現されていました。後に、秘密鍵を使用した RSA Message Digest 5 (MD5) アルゴリズムを用いて (一般的に、 keyed-MD5 と呼ば れています) 改良がなされました。どちらのアルゴリズムもメッセージダイジェ スト、つまり、片方向ハッシュを計算します。これは、サーバが正しい秘密鍵と 鍵の識別子を持っているか否かを検証するのに使用できます。 NTPv4 は、NTPv3 の方式を保持しています。この方式は、対称鍵暗号化と説明す るのが適切でしょう。それに加えて、公開鍵暗号化に基づく新しい Autokey 方式 も提供しています。一般に、公開鍵暗号化は対称鍵暗号化よりも安全であると考 えられています。この方式の安全性が、両サーバそれぞれで生成され外部に持ち 出されない秘密の値 1 個に基づくからです。 Autokey を使うことで、鍵配布/管 理機能が含むものは全て公開値のみです。値が公開されているので、鍵配布と保 管が単純化されます。 認証機能はアソシエーションそれぞれに対して個別に設定されます。 設定オプ ションの項で説明されるように、認証機能は、 peer, server, broadcast, manycastclient コマンドの key サブコマンドまたは autokey サブコマンドを利 用して設定されます。以下で説明する認証機能オプションは、1 組の鍵を指定 し、設定するアソシエーションそれぞれに対する鍵を選択し、設定操作を管理し ます。 auth フラグは、新しいアソシエーションまたはリモート設定コマンドが暗号化認 証を必要とするかどうかを制御します。このフラグの有効/無効の設定は、 enable および disable 設定コマンドを使用して行なうことができます。また、 他のマシンで ntpdc(8) プログラムを動かして、リモートから設定コマンドを送 り行なうこともできます。このフラグが有効に設定されていれば (デフォルトは 有効に設定されています)、新規のブロードキャストクライアントアソシエーショ ン、新規の対称パッシブアソシエーション、リモート設定コマンドは対称鍵方式 または、公開鍵方式のいずれかを用いて暗号的に認証されなければなりません。 このフラグが無効に設定されていれば、暗号的に認証されていなくてもこれらの 操作は有効です。後者のモードで操作を行うと、悪者ハッカー (訳注: クラッ カー) がクライアントの時刻管理処理に重大な混乱をもたらすことが可能である という、重大な脆弱性を招くことは理解しておいてください。 ファイアウォールと多数のブロードキャストクライアントが存在するネットワー クでは、認証機能を無効にしておくことも許容できるかもしれません。というの は、無効にすることで鍵の配布を行なわずにすみますし、ネットワークの管理が 単純になるからです。しかし、設定ファイルがホスト名を含む場合、または、 サーバかクライアントがリモートから設定される場合、 DNS と、それとは別の名 前解決プロセスを用いてホスト名を解決します。偽物のネームサーバメッセージ から守るために、内部で生成された鍵を使用して名前解決メッセージを認証して います。この鍵は、通常、ユーザからは見えません。しかし、暗号化機能のサ ポートが無効にされている場合、この名前解決プロセスが失敗してしまいます。 この問題の解決策は、ホスト名の代わりに IP アドレスを指定する (こちらはあ まりお勧めしません) か、または、 auth フラグを有効にして名前解決プロセス を行ない、名前解決プロセスが完了してから auth フラグを無効にするかのどち らかです。 マルチキャストサポートが利用可能な場所での代替案として魅力的なものは、メ ニーキャストモードです。このモードでは、クライアントは定期的にサーバを流 し釣りします。このモードでの暗号化認証は、公開鍵方式を以下に説明するよう に使用します。このメニーキャストモードの主な利点は、クライアントはサーバ を通常の動作の間に発見するので、サーバになり得るマシンに事前に設定する必 要がないことと、クライアント全てで同じ設定ファイルを利用できることです。 NTP 配布ソフトウェアの構築前に rsaref20 ソフトウェアをインストールしてお いた場合、デフォルトの対称鍵暗号化サポートに加えて、公開鍵暗号化のサポー トも利用可能です。公開鍵暗号化は、正確性と安定性を犠牲にせずに、安全な サーバ認証を提供します。対称鍵暗号化、公開鍵暗号化両方に対するセキュリ ティモデルとプロトコル方式は、以下に説明します。 |
対称鍵方式 |
RFC-1305 仕様では、本来、65,534 個の鍵の中の任意の 1 個を使い、アソシエー ションを認証することが可能です。鍵それぞれは 32 ビットの鍵識別子により区 別されます。ここで使われるサーバとクライアントは、メッセージを認証するた めの鍵および鍵識別子を合意しておく必要があります。鍵およびそれに関連する 情報は、鍵ファイル中で指定します。通常、このファイルは、 ntp.keys と呼ば れます。このファイルは安全な手続きを用いて交換/格納する必要がありますが、 この手続きは、NTP プロトコル自体の範疇を超えています。本来の NTP アソシ エーションに使用される鍵に加えて、追加の鍵を ntpq(8) および ntpdc(8) ユー ティリティプログラム用のパスワードとして使用できます。 ntpd(8) が初めて起動すると、 ntpd は、 keys コマンドで指定した鍵ファイル を読み込み、鍵キャッシュに鍵を設置します。一方、鍵は使用する前に trusted コマンドでアクティブにしておくことが必要です。これにより、例えば、いくつ かの鍵の束をインストールし、 ntpdc(8) を使用して鍵の束をリモートからアク ティブにしたり、非アクティブにしたりできます。また、これにより、鍵の安全 性が損なわれてしまった場合に使用できる鍵の取消機能も提供されます。 requestkey コマンドは、 ntpdc(8) ユーティリティ用にパスワードとして使用さ れる鍵を選択します。それに対して、 controlkey コマンドは、 ntpq(8) ユー ティリティ用にパスワードとして使用される鍵を選択します。 |
公開鍵方式 |
RFC-1305 に記載されている、もとからある NTPv3 の認証方式は継続してサポー トされています。しかしながら、NTPv4 では、 Autokey と呼ばれる認証方式が追 加され、それを利用できます。この認証機構は、MD5 メッセージダイジェス ト、RSA 公開鍵署名、 Diffie-Hellman 鍵合意アルゴリズムを使用します。これ らは NTPv4 配布ソフトウェアには含まれていませんが、いくつかのソースコード が存在します。この機能を有効にするためには、 README.rsa ファイルに説明し てあるように、 rsaref20 パッケージをインストールしておかねばなりません。 一度インストールすると、configure と構築プロセスがそれを自動的に検出し、 必要なルーチンをコンパイルします。 Autokey 方式は、サポートするさまざまな NTP モードに対応していくつかの動作モードを持っています。すべてのモードで タイムスタンプ付き RSA 署名を使用し、暗号化の値の送信元を検証します。すべ てのモードで、クライアント、サーバそれぞれで独立に計算できる特殊なクッ キーを 1 個使用します。対称モードでは、このクッキーは Diffie-Hellman 鍵合 意アルゴリズムを用いて組み立てられます。それ以外のモードでは、このクッ キーは IP アドレスとサーバのみが知っている秘密の値とで組み立てられます。 それに加えて、すべてのモードで S-KEY 方式と良く似た方式を使用します。その 方式では、疑似乱数鍵のリストを生成し、逆順で使用します。これらの方式は、 幹部向け要約、現状、要約スライド、文献リストともども、 "自主認 証(Autonomos Authentication)" のページで説明します。 Autokey 方式で使用する暗号化の値は、 ntp-genkeys(8) プログラムで生成する ファイルの中に組み込まれています。それらは、対称秘密鍵、公開鍵/秘密鍵の 組、合意パラメータです。これらファイルの形式の説明は、 ntp.keys(5) マニュ アルページを参照してください。これらのファイルには、 rsaref20 パッケージ のアルゴリズムにより生成された暗号化の値が印字可能な ASCII 文字の形式で含 まれています。すべてのファイル名には NTP 秒のタイムスタンプと、その後ろに デフォルトの名前とが含まれます。これらのデフォルトの名前は以下で与えま す。ファイルデータはシステムクロックを種とする乱数値に由来しており、ファ イル名にタイムスタンプが含まれているため、これらのファイルを生成するごと に、異なるファイル内容とファイル名で生成されます。 ntp.keys ファイルは DES/MD5 秘密鍵を含みます。このファイルを同じセキュリ ティ区画に属する他のサーバやクライアントに配布する際には、安全な手段で配 布せねばなりません。また、このファイルは root のみが見られるようにしなけ ればなりません。このファイルは Autokey 方式では使用しませんが、 ntpdc(8), ntpq(8) ユーティリティが使用するいくつかのリモート設定コマンドを認証する 際に必要です。 ntpkey ファイルは RSA 秘密鍵を保持します。このファイルを生 成したマシンでのみ利用できます。他のデーモンやアプリケーションプログラム と共用することは決してありません。ですから、root のみが見られるようにしな ければなりません。 ntp_dh ファイルは、合意パラメータを保持します。このパラメータは対称 (アク ティブ、パッシブ) モードでのみ使用します。対称モードアソシエーションを開 始する通信相手同士で同じパラメータを共有することが必要ですが、どちらの ntp_dh ファイルから得られたパラメータかは問題になりません。通信相手の一方 がパラメータを保持する場合、他方は Autokey プロトコルを用いてそのパラメー タを取得します。通信相手が双方ともパラメータを保持している場合、双方は最 も新しいコピーを使用します。通信相手がパラメータを持っていない場合、設定 されたアソシエーションまたは未設定のアソシエーションのいずれかについて、 全てのアソシエーションがパラメータを要求します。しかし、どちらかの通信相 手がパラメータを受信するまでは、アソシエーションの処理を進めることはでき ません。一度ロードされると、パラメータは要求に応じて他のクライアントや サーバに提供することができます。 ntp_dh ファイルのデータは公開値なので、 このファイルは安全でない手段を用いて配布することもできます。 ntpkey_host ファイルは RSA 公開鍵を含みます。ここで、 host はホストの名前 です。ホストはそれぞれ自分自身の ntpkey_host ファイルを持っています。通 常、このファイルは、Autokey プロトコルを用い他のホストに提供されます。 server アソシエーション、または、 peer アソシエーションは、特定のサーバま たは通信相手に関連した公開鍵を要求します。この公開鍵は、ローカルファイル から直接ロードされるか、 Autokey プロトコルを用いてサーバから間接的にロー ドされます。これらのファイルのデータは公開値であるため、これらのファイル は安全でない手段を用いて幅広く配布/保管することができます。 ntpkey_certif_host ファイルはオプションで、そのホストに対する PKI 証明 データを含みます。これはホスト名と RSA 公開鍵の結び付きを提供します。現在 の実装では、この証明データが存在すれば、クライアントはそれを取得します が、その内容は無視されます。 インタフェースごとの名前付けが幅広く使用されているため、設定され行使中の アソシエーションで使用されるホスト名は、 UNIX の gethostname(3) ライブラ リ関数を使って決定されます。 ntp-genkeys(8) プログラムと Autokey プロトコ ルは、ともにこのルーチンが返す名前を用いて公開鍵ファイルの名前を派生させ ます。どのサーバもクライアントも固有の公開鍵と秘密鍵をロードする必要があ りますが、それぞれのクライアントアソシエーションまたは通信相手アソシエー ションに対する公開鍵は、Autokey プロトコルを用いてサーバまたは通信相手か ら取得することができます。しかし、現在の開発段階では、 サーバまたは通信相 手の認証の確実性とサーバ名、アドレス、公開鍵の暗号との結合は、認証局 (certificate authority) や信用の輪 (web of trust) により確立されたところ にまで達していません。 |
閏秒表 |
NIST は、1972 年以後、歴史的に全ての閏秒の挿入の発生を示す表を提供してい ます。この閏秒表は、挿入発生それぞれだけでなく、協定世界時 (Coordinated Universal Time:UTC) に関する国際原子時 (International Atomic time:TAI) の オフセットもあわせて記載しています。ちなみに、協定世界時は NTP により伝播 されているものです。この表は、NIST 国家時刻サーバから FTP を使い ASCII ファイル pub/leap-seconds として直接取得することができます。 厳密にはセキュリティ機能ではありませんが、Autokey 方式はサーバまたは通信 相手から安全に閏秒表を取り出す手段を提供しています。サーバは、 crypto コ マンドで指定したファイルから、閏秒表を直接ロードします。クライアントは、 サーバから Autokey プロトコルを使い間接的に取得します。一度ロードされる と、閏秒表は要求に応じ他のクライアントやサーバに提供できます。 |
鍵の管理 |
デフォルトで、全ての鍵ファイルは、 /usr/local/etc に置かれます。このディ レクトリは通常、ネットワークで NFS マウントされた共有ファイルシステムの中 にあり、個々のマシンに別々にインストールする手間を省くことができます。こ のデフォルトは、 keysdir 設定コマンドを用いて上書きすることができます。し かし、ここは秘密鍵ファイルを置く場所としては良いとはいえません。マシンそ れぞれが自分のファイルを必要とするからです。このファイルをインストールす るのに適当な場所は /etc です。ここは、通常、共用ファイルシステムに存在し ません。 推奨するやり方は、ファイルをインストールした時のタイムスタンプ拡張子を保 持し、 (タイムスタンプ拡張子のない) デフォルト名から実ファイルへのリンク を作ることです。これにより、新規ファイルの生成をリンクを張り変えることで 有効にできます。しかし、 ntpd(8) は、拡張値を取り出す瞬間にリンク名を解釈 し、要求された時点で公開鍵とホスト名とともにリンク名を送付します。これに より、クライアントはファイルと生成時刻が常に現在であると検証することがで きます。しかし、各ファイルの実際の場所は crypto 設定コマンドにより上書き される可能性があります。 暗号化鍵と関連パラメータ全ては、例えば、1ヶ月に1回ぐらいの頻度で定期的か つ自動的に再生成する必要があります。 ntp-genkeys(8) プログラムは、一度に 生成するファイル全てに対し同じタイムスタンプ拡張子を使います。ですから、 ファイル生成のそれぞれは区別され、データ監視の際にファイル生成を認識でき ます。公開鍵/秘密鍵の組は全てのサーバとクライアントにより生成されねばなり ませんが、公開鍵と合意パラメータを、同じセキュリティ区画内の全てのマシン に対しわざわざコピーする必要はありません。これらは、Autokey プロトコルを 使い自動的に取得できるからです。しかし、プライマリサーバの全ては同じ合意 パラメータファイルを持つ必要があります。これを達成するために推奨する方法 は、プライマリサーバの 1 つにそのファイルを生成させ、その後で、同じセキュ リティ区画内の他のプライマリサーバに対し UNIX rdist(1) コマンドを用いてコ ピーすることです。 Autokey プロトコルの将来のバージョンでは、合意プロトコ ルがこの処理を自動的に行なう機能の提供を含むことになります。 サーバとクライアントは新規のファイル世代の生成を次のように行なうことがで きます。全てのマシンは起動時に古いファイル世代をロードしており、正常に動 作しています。指定した間隔で、各マシンは新規の公開鍵/秘密鍵の組を生成し、 デフォルトファイル名から新規ファイル名へのリンクを作成します。その後で、 ntpd(8) は再起動され、新規の生成をロードします。その結果、クライアントは もはや認証を正しく行なうことができなくなります。 Autokey プロトコルがそう 設計されているので、数分後にクライアントはタイムアウトし、プロトコルを最 初から開始します。その結果新規の世代をロードし、以前通り動作を続けること ができるようになっています。同様の手続きが合意パラメータファイルに対して も使用できます。しかし、この場合、このファイルを持つすべてのマシンが同じ コピーを持つように十分用心しておく必要があります。 |
認証コマンド |
autokey [logsec]
Autokey プロトコルで使用するセッション鍵のリストを再生成する時間 間隔を指定します。各アソシエーション用の鍵リストのサイズは、この 時間間隔と現在のポーリング間隔に依るということに注意してくださ い。デフォルト値は 12 です (4096 秒、つまり、約 1.1 時間です)。指 定した時間間隔以上のポーリング間隔に対しては、セッション鍵のリス トは単一エントリを持ち、メッセージを送るごとに再生成されます。 controlkey key crypto [flags flags]
[privatekey file] [publickey
file] [dhparms file] [leap
file] privatekey file publickey file dhparms file leap file keys keyfile keysdir path requestkey key revoke logsec trustedkey key ... モニタ機能のサポート |
ntpd(8) には、サーバおよびクライアントの時間計測のパフォーマンスを長時間 連続して記録するのに適した、包括的なモニタ機能が含まれています。現在サ ポートされている統計の種類のリストと実行例については、後で述べる statistics コマンドを参照してください。統計ファイルは、ファイル世代集合 と、配布物の中の ./scripts ディレクトリにあるスクリプトを使用して管理され ています。これらの機能と、 UNIX の cron(8) ジョブを使用して、データが自動 的に要約され、時間を遡った分析を行うときのために保存されます。 |
モニタ機能のコマンド |
statistics name ...
統計レコードの書き込みを有効にします。現在のところ、4 種類の name の統計がサポートされています。 loopstats 50935 75440.031 0.000006019 13.778190 0.000351733 0.013380 6 最初の 2 つのフィールドは、日付 (ユリウス暦に修正済) と時 刻 (UTC 午前 0 時からの秒数) です。次の 5 つのフィールド は、秒単位の時間オフセット、 100 万分の 1 (PPM) 単位の周 波数オフセット、秒単位の RMS ジッタ、100 万分の 1 (PPM) 単位の Allan 偏差、時計学習アルゴリズムの時定数です。 |
peerstats
通信相手に関する統計情報の記録を有効にします。これには、 設定されたものと現在有効なものとの両方について、 NTP サー バの通信相手の全て、特別な時刻信号の通信相手の全てに対す る統計レコードが含まれます。有効な更新が行われる度 に、peerstats という名前のファイル世代集合の現在の要素に 次の形式の行を追加します: 48773 10847.650 127.127.4.1 9714 -0.001605 0.00000
0.00142 |
clockstats
時計ドライバの統計情報の記録を有効にします。時計ドライバ からの更新を受ける度に、clockstats という名前のファイル世 代集合に、次の形式の行を追加出力します: 49213 525.624 127.127.4.1 93 226 00:08:29.606 D |
rawstats
そのままのタイムスタンプ (raw-timestamp) の統計情報を記録 できるようにします。これには、設定されたものと現在有効な ものとの両方について、 NTP サーバの通信相手の全て、特別な 時刻信号の通信相手の全てに対する統計レコードが含まれま す。通信相手または時計ドライバから受け取った NTP メッセー ジはそれぞれ、rawstats という名前のファイル世代集合に次の ような形式で 1 行付け足します: 50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000
3102453281.58622800031 02453332.540806000
3102453332.541458000 |
statsdir directory_path
統計ファイルを作るディレクトリのフルパスを指定します (下記参照)。 このキーワードにより、ファイル世代集合のための filegen ファイル名 のプレフィックスの変更 (これがなければ固定のままです) が可能とな ります。これは、統計ログを扱うのに便利です。 filegen name [file filename]
[type typename] [link | nolink]
[enable | disable] name file filename prefix filename suffix type typename none pid day week month year age link | nolink enable | disable アクセス制御機能のサポート |
ntpd(8) は、一般的な用途のアドレスおよびマスクベースの制限リストを実装し ています。この制限リストは、アドレスおよびマスクでソートされており、マッ チするか否かをみるのに、この順序で探索が行われます。この結果、最後にマッ チしたものが、入力パケットと関連付けられた制限フラグを定義します。入力パ ケットの送り主のアドレスがマッチに使われます。 32 ビットのアドレスと、制 限用のエントリに関連付けられたマスクとの AND をとり、それからエントリのア ドレスと比較をしてマッチが行われます (エントリのアドレスもマスクと AND が 取られています)。さらなる情報や例については、 "NTP の設定と NTP サブネッ トの設定に関する注意" のページにあります。 アクセス制限機能は、オリジナルの NSFnet バックボーンタイムサーバに対する アクセスポリシと一致するように実装されました。この機能は、望まないものや 落ちてしまったリモートのタイムサーバが自分のタイムサーバに影響を与えない ようにするには有効かもしれませんが、この機能を、標準の NTP 認証機能の代用 になると考えるべきではありません。送り元アドレスに基づいた制限というの は、やる気十分のクラッカーには簡単に回避されてしまいます。 |
死の接吻パケット |
もともと、サービスを拒否されたパケットは、単純に捨てられるだけで、統計カ ウンタを増やす以外に一切の動作を生じさせることはありません。クライアント に明示的に送信停止を要求し、またシステムオペレータにメッセージを残すサー バメッセージなどの、より前向きな応答が必要となることがときどきあります。 この目的のために、特にパケット形式が作られました。それを称して、死の接吻 (kiss-of-death) パケットと言います。 kod フラグが設定されており、サービス が拒否されるか、クライアントが限界値を越えたとき、サーバはパケットを返 し、leap ビットを非同期に設定し、階層を 0 に設定し、ASCII 文字列 "DENY" を参照ソース識別子フィールドに設定します。 kod フラグが設定されていない場 合、サーバは単にパケットを捨てるだけです。 死の接吻パケットを受信したクライアントまたは通信相手は、一連の健全性 チェックを行ない、セキュリティの露出 (exposure) を最小限に押えます。この パケットが、そのサーバから受信した最初のパケットである場合、クライアント は、そのサーバの条件ではアクセスは拒否されたと想定します。そのクライアン トは階層と参照識別子の通信相手変数とを更新し、通信相手フラッシュ変数のア クセス拒否 (テスト 4) ビットを設定します。このビットが設定されている場 合、クライアントはそのサーバに対しパケットを送信しません。そのサーバから 受信した最初のパケットでなかった場合、クライアントはサーバ側で限界値を越 えたと想定します。しかし、通信相手変数は更新しません。いずれの場合でも、 メッセージをシステムログに送出します。 |
アクセス制御コマンド |
restrict numeric_address [mask numeric_mask] [flag ...]
numeric_address 引数は、ホストあるいはネットワークのアドレスで す。これは、ドットで 4 つの部分に区切られた形式で表現されます。 mask 引数も、ドットで 4 つの部分に区切られた形式で表現されます。 デフォルトは 255.255.255.255 です。これは、 numeric_address が個 別のホストのアドレスとして扱われるものであることを意味していま す。デフォルトエントリ (アドレス 0.0.0.0, マスク 0.0.0.0) は常に 含まれており、既定のソートアルゴリズムでは、常にリストの先頭のエ ントリとなります。 numeric_address は、通常ドットで 4 つの部分に 区切られた形式で与えられますが、 mask オプションを伴わないテキス ト文字列 ‘default’ は、デフォルトエントリを示すために使用できるこ とに注意して下さい。現在の実装では、 flag は常にアクセスを制限し ます。すなわち、フラグを持たないエントリは、サーバへの自由なアク セスが与えられることを示すことになります。フラグは直交的ではな く、より制限の強いフラグは、より制限の弱いフラグを冗長にすること もしばしばです。フラグは、一般に 2 つのカテゴリに分類されます。時 間サービスを制限するものと、情報問い合わせやサーバを実行時に再設 定しようとするのを制限するものです。次のフラグのうち、1 つ以上を 指定できます: kod ignore noquery nomodify notrap lowpriotrap noserve nopeer notrust limited ntpport デフォルトの制限リストエントリは、フラグ ignore, interface, ntpport を持ち、ローカルホストのインタフェースアドレスそれぞれに 対応するもので、サーバが自分自身の時間に同期しないようにするため に、スタートアップ時にテーブルに挿入されます。デフォルトエントリ は常に存在しています。さもなくば無設定になってしまう場合であって もです。他で設定されていない場合は、どのフラグもデフォルトエント リに関連づけられません (すなわち、あなた自身の NTP サーバ以外のす べてが無制限になります)。 clientlimit limit clientperiod period 参照クロック機能のサポート |
NTP バージョン 4 デーモンは、40 種類ほどの、電波、衛星、モデムを参照する 時計をサポートします。さらに、バックアップ用およびクロック源が他に利用で きなくなったときのために、特殊な疑似時計をサポートしています。個別のデバ イスドライバやオプションに関する詳細な説明は、 "参照クロックドライバ" の ページ (これは、 /usr/share/doc/ntp にある HTML 文書の一部として利用可能 です) にあります。さらなる情報は、 "参照クロックドライバのデバッグのヒン ト" や、 "参照クロックドライバの書き方" など、そこからリンクされたページ にあります。それに加え、 PPS 信号のサポートについては、 "1 秒間隔のパルス (PPS) 信号のインタフェース" のページの説明が利用できます。ドライバの多く は、特殊な回線規約 / ストリームモジュールをサポートしています。このモ ジュールを用いると、時刻の正確性が飛躍的に向上します。これに関しては、 " 回線規約とストリームドライバ" のページに説明があります。 参照クロックは、一般に (常にではありませんが) 無線時刻コード受信機です。 この無線時刻コード受信機は、カナダの NRC や合州国の NIST や USNO が提供し ているサービスのような、標準時刻の供給源に同期します。コンピュータと時刻 コード受信機との間のインタフェースはデバイス依存ですが、シリアルポートを 使うのが普通です。それぞれの参照クロックに特有のデバイスドライバを選択 し、そのディストリビューションでコンパイルする必要がありますが、もっとも 標準の無線、衛星、そしてモデム時計はデフォルトで含まれています。その時計 用のドライバがコンパイルされていないか、ハードウェアのポートが適切に設定 されていないときに参照クロックを設定しようとすると、システムのログファイ ルに激しい警告がでますが、その他の障害が起こることはありません。 設定の観点から見ると、 ntpd(8) は、参照クロックを、普通の NTP の交信相手 にするのとできる限り同じような方法で扱います。参照クロックは、通常の NTP 通信相手と区別するため、文法的には正しいが、無効な IP アドレスを使って認 識されます。参照クロックのアドレスは、 127.127.t.u の形式です。ここで、 t は時計の種類を示した整数で、 u はユニット番号 (範囲は 0-3) を示していま す。これは、過剰に見えるかもしれませんが、実のところ、同種類の参照クロッ クを複数設定するのには時として便利です。この場合、ユニット番号は一意のも のであることが必要です。 server コマンドを使用して参照クロックを設定します。ここで、このコマンドの address 引数は参照クロックのアドレスです。 key, version, ttl オプション は、参照クロックのサポートでは使用しません。参照クロックをサポートするた めに、 mode オプションが追加されています。このオプションについては後で述 べます。 prefer オプションは、サーバに、他の参照クロックや通信相手よりも いくらか熱心に、ある参照クロックを大切に扱わせるように促すのに有効です。 このオプションに関してのさらなる情報については、 "緩和ルールと prefer キーワード" のページにあります。 minpoll と maxpoll オプションは、選択さ れたクロックドライバに対してのみ意味があります。さらなる情報については、 別個のクロックドライバのドキュメントページを参照してください。 fudge コマンドは、クロックドライバ固有の追加情報を提供するのに使用しま す。通常は、 server コマンドの直後に使用されます。 address 引数はクロック のアドレスを指定します。 refid と stratum は、そのデバイスのデフォルト値 を上書きするために使用することができます。 2 個のオプションのデバイス依存 の時刻オフセットと 4 個のフラグがあり、それらも同様に fudge コマンドに含 めることが可能です。 参照クロックの階層 (stratum) 番号は、デフォルトで 0 です。 ntpd(8) デーモ ンは各通信相手の階層に 1 を足すので、プライマリサーバは、通常、外部階層 1 を示します。バックアップを巧みに運用するため、参照クロックの階層を 0 より 大きい数に指定するのが有益なことが多いです。この目的のために、 stratum オ プションを使用します。参照クロックと、1 秒間隔パルス (PPS) 調整信号の両方 を含む場合、参照クロック識別子をデフォルト値以外の、ドライバに依存したも のに指定するのが有効です。この目的のために、 refid オプションを使用しま す。記述がない限り、これらのオプションは、すべての時計ドライバに適用され ます。 |
参照クロックのコマンド |
server 127.127.t.u [prefer] [mode int] [minpoll int] [maxpoll int]
このコマンドは、参照クロックを特殊な方法で設定するのに使用できま す。オプションは次のように解釈されます: prefer mode int minpoll int maxpoll int fudge 127.127.t.u [time1
sec] [time2 sec] [stratum
int] [refid string] [mode
int] [flag1 0 | 1] [flag2 0 | 1]
[flag3 0 | 1] [flag4 0 | 1] time1 sec time2 secs stratum int refid string mode int flag1 0 | 1 flag2 0 | 1 flag3 0 | 1 flag4 0 | 1 その他のオプション |
broadcastdelay seconds
ブロードキャストおよびマルチキャストモードでは、ローカルサーバと リモートサーバとの間の遅延を決定するための特殊な補正が必要です。 通常、これは、クライアントサーバ間の最初のプロトコルのやりとりで 自動的に行われています。場合によっては、例えばネットワークやサー バのアクセス制御によって、この補正の手続きが失敗してしまうことも あります。このコマンドは、こうした状況の時に使用されるデフォルト の遅延を指定します。典型的には (イーサネットでは)、 0.003 から 0.007 秒までが適切です。このコマンドを使用しない場合のデフォルト 値は、0.004 秒です。 driftfile driftfile ファイルのフォーマットは、浮動小数点数 1 個だけを含む 1 行からな ります。この浮動小数点数は、100 万分の 1 (PPM) 単位での周波数オフ セット値を記録しています。このファイルの更新は、最初に現在の変動 値を一時ファイルに書き込み、それからファイルの名前を変更して古い ファイルと置換えることにより行ないます。このことは、 ntpd(8) が、 ドリフトファイルのあるディレクトリに対し書き込み権を持っている必 要があることと、シンボリックであろうとなかろうと、ファイルシステ ムリンクは避けるべきことを意味しています。 enable [ disable [ bclient calibrate kernel monitor ntp stats logconfig configkeyword logconfig =syncstatus +sysevents この設定では、単に ntpd(8) の同期のステータスと重要なシステムイベ ントをリストします。単純な参照サーバに対しては、次のような最低限 のメッセージの設定を行うと有益でしょう: logconfig =syncall +clockall この設定では、時計の情報すべてと同期情報をリストします。他のイベ ントや通信相手に関するメッセージ、そしてシステムのイベントなどは 抑止されます。 |
logfile logfile
このコマンドは、デフォルトのシステムの syslog(3) 機能の代わりに使 用される、代用のログファイルの在処を指定します。 setvar variable [default] tinker [ 全ての引数は、浮動小数点数の秒、または秒分の秒です。 minpoll 引数 は、秒を2のベキ整数で表したものです。この変数は次のように動作しま す。 step step panic panic dispersion dispersion stepout stepout minpoll minpoll allan allan huffpuff huffpuff trap host_address [port
port_number] [interface
interface_address] トラップ受信器はイベントメッセージや、サーバからのその他の情報 を、ログファイルにログを取ります。このような監視プログラムは、自 分自身のトラップを動的に要求することもありますが、トラップ受信器 の設定により、サーバの起動後に失われるメッセージはないことは保証 されます。 関連ファイル |
/etc/ntp.conf
デフォルトの設定ファイル名 関連項目 |
提供されているマニュアルページに加えて、理解しやすいドキュメントが world wide web 上で入手可能です。 http://www.ntp.org/ から入手できます。このド キュメントのスナップショットが HTML フォーマットで /usr/share/doc/ntp ディレクトリ内にあります。 |
David L. Mills, Network Time Protocol (Version 3), RFC1305.
バグ
構文チェックに好き嫌いはありません。なんでも喜んで食べます。オプションや モードの、ばかげた組合せやお笑いの組合せさえ検出しないこともあります。 ntpkey_host は実際にはデジタル認証です。セキュリティディレクトリサービス が幅広く利用可能になった際には、そこから取得すべきです。 FreeBSD 10.0 January 13, 2000 FreeBSD 10.0 |