NTP Security: A Quick-Start Guide (English Edition)
目次
- 目次
- Network Time Protocol: NTPとは
- NTPの仕組み
- Linux NTPサーバツール ntpd
- Linux NTPクライアントツール ntpdate
- 参考資料
- MyEnigma Supporters
Network Time Protocol: NTPとは
Network Time Protocol: NTPは、
ネットワーク上のコンピュータの時刻を同期するための通信プロトコルです。
それぞれのコンピュータは大抵、
リアルタイムクロック(RTC)という時計が内蔵されており、
それらは電源が切れている状態でも時間を測ることができます。
しかし、このリアルタイムクロックは精度が悪く、
徐々に誤差が蓄積してしまうので、
定期的に補正をする必要があります。
その補正をネットワーク越しに実施するプロトコルがNTPです。
NTPはインターネットにおける標準的な通信プロトコルであり、
OSI参照モデルではアプリケーション層に位置します。
(FTPやHTTPなどと同じ層です。)
また、ポート番号に関してはUDPポートの123番を使うことが多いようです。
NTPの仕組み
NTPの仕組みについて簡単に説明します。
NTPの階層構造
NTPは下記の図のように、
stratumという階層構造を持ちます。
stratum0がGPSなどの標準時間を与えるもので、
その下にstratum16までの階層を持つことができます。
NTPでは上位のstratumだけでなく、
下位のstratumにも時刻同期通信を実施し、
それらのデータを元に、精密な時刻同期を実現することができます。
NTPの時刻補正計算
NTPはNTPサーバとクライアントの間の通信遅延を考慮した上で、
時刻誤差を計算します。
上記のようなサーバとクライアント間の時刻データを取得できた時、
通信の遅延時間は
となり、
サーバとクライアントの時刻誤差(時刻補正量)は
で計算できます。
この時刻誤差は通信遅延が行きと帰りで同じだと仮定しているため、
最大δ/2の分だけは誤差を持つ可能性があるといえます。
NTPでは、この時刻補正量と誤差量を
複数回、そして複数種類のサーバークライアント間で計算することで、
最終的な時刻補正量を統計的に決定します。
Linux NTPサーバツール ntpd
ntpdは、NTPサーバ用のツール兼プロセス名です。
NTPサーバをデーモンとして起動したり、停止したりすることができます。
NTPサーバの状態確認
ntpq -p
で現在のコンピュータのNTPサーバの状態を確認できます。
NTPサーバの設定ファイル
ntpサーバの設定ファイルは
/etc/ntp.conf
に書いてあることが多いようです。
Linux NTPクライアントツール ntpdate
ntpdateはNTPサーバと接続し、
クライアントコンピュータの時刻を補正したり、
時刻誤差を計測したりするLinuxツールです。
下記のコマンドでサーバ(ntp.nict.jp)と繋がることができます。
時刻同期させる場合
ntpdate -v ntp.nict.jp
オプションの-vは詳細情報を表示させるものです。
現在の時刻を確認
date
参考資料
NTP Security: A Quick-Start Guide (English Edition)
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。