sntpd - SNTP daemon
これは、Simple Network Time Protocol (SNTP)
により時刻合わせをするデモンプログラムです。
指定のサーバに接続して自マシンの時刻を調整するクライアント機能と、
他のマシンに対して時刻情報を配布するサーバ機能を持ちます。
時刻合わせのプログラムとしては
David L. Mills さんによる ntp
が有名ですが、必要以上に高機能で大規模なプログラムなので、
ソースを入手したものの、導入を見送りました。
SNTP レベルの機能で十分なので、簡易なツールが無いか探したのですが、
Windows 用には沢山あっても、UNIX の世界には適当なものが見つかりませんでした。
それならば、ということで作成したのが、このプログラムです。
現在の最新版は、1.00 (2002/02/10 リリース) です。
-
【クライアント機能】 指定された NTP/SNTP サーバとの間で、
Simple Network Time Protocol (SNTP)
で規定された48byteのメッセージをやりとりすることにより時刻を取得し、
自マシンのシステム時刻を adjtime() で調整します。
通信は、UDP/IP で、上り下りとも、source/destination に 123 番のポートを使います。
-
【サーバ機能】 指定されたクライアントに対して、SNTP で時刻情報を配布します。
通信は、UDP/IP で、サーバ(自マシン)側は 123 番のポートを使います。
利用を許可するクライアントは、ホストアドレスまたはサブネットアドレスで指定します。
-
その他、細かい説明は、
README ファイルを参照してください。
-
開発と動作確認は、OpenBSD 3.0 で行なっています。
環境依存になりそうなところは、条件コンパイルするようにしてあるので、
NetBSD, FreeBSD や Linux であれば動作すると思います。
確認はできていませんが...
なお、このプログラムでは、64bit 幅の整数である long long 型を使用しています。
コンパイラと実行環境が、これに対応している必要があります。
-
このプログラムのライセンスは、
BSD流のライセンス とします。
-
最新の tar archive (24,248 byte)
MD5 (sntpd-1.00.tar.gz) = f0cadbae014b16d5b53f67e771b8d88f
- ソースを展開する。
% tar xzvf …/sntpd-1.00.tar.gz
% cd sntpd-1.00
- 必要であれば、config.h を編集する。
一般的な環境であれば、そのままで大丈夫だと思います。
- makeし、インストールする。
インストール先は環境にあった場所を指定してください。
% make
% su
# install -c -m 555 sntpd /usr/local/sbin
-
起動のための設定をする。
OpenBSD であれば、rc.local に以下のように記述します。
この例では、192.168.1.123 のサーバから時刻情報を取得し、
2つのサブネット 192.168.2.0/24 と 192.168.3.0/24
にあるクライアントからの問い合わせを受け付けます。
echo ' sntpd'
/usr/local/sbin/sntpd -d 192.168.1.123 192.168.2 192.168.3
-
動作を確認する。
プログラムが起動すると、すぐ、ログファイルに動作状況が記録されるはずです。
OpenBSD の場合には /var/log/daemon に記録されます。
その内容を見て、動作状況を確認してください。
なお、sntpd は時刻差が1分を超える場合には、なんらかのトラブルの可能性を想定して、
システム時刻を調整しません。
システム時刻が大きくずれている場合には、手動で1分以内に調整してください。
- 2002/02/10
-
1.00版: 最初のリリース。