OpenNTPD
2008/11/7更新
対応バージョン: 3.9p1
ntpdが動作しているマシンとNTPサーバとの時刻のずれが非常に大きいため同期ができない。
adjusting local clock by 36378.736235s adjtime failed: Invalid argument
このような場合、ntpdateなどでいったん強制的にNTPサーバと時刻を同期させれば以降は正常に時刻同期が行われる。
% sudo ntpdate ntpserver
関連資料・記事
2008/5/19更新
対応バージョン: 3.9p1
ntpdの実行ユーザである_ntpのホームディレクトリの権限が適切に設定されていないことが原因である。
以下のようにオーナー/パーミッションを設定する。
% sudo chown root /var/empty/ntp % sudo chmod 700 /var/empty/ntp
関連資料・記事
2008/2/3更新
対応バージョン: 3.9p1
ntpdの実行ユーザである_ntpのホームディレクトリが存在しないことが原因である。
例)
% finger _ntp Login: _ntp Name: (null) Directory: /var/empty/ntp Shell: /sbin/nologin : % sudo mkdir /var/empty/ntp % sudo chown root /var/empty/ntp % sudo chmod 700 /var/empty/ntp
関連資料・記事
2008/2/3更新
対応バージョン: 3.9p1
ntpdは起動してから時間をかけてゆるやかにNTPサーバと時刻同期を行うが、強制的にNTPサーバと時刻同期を行うには-sオプション付きでデーモンを起動する。
# /usr/local/sbin/ntpd -s
起動後はそのまま運用しても構わないが、いったん終了させて通常モードで起動してもよい。
# pkill ntpd # /usr/local/sbin/ntpd
関連資料・記事
2008/12/2更新
対応バージョン: 3.9p1
公式サイト
準備
導入に必要なもの
openntpd-3.9p1.tar.gz
導入OS
Fedora 8,9,10
管理用アカウント作成
% sudo groupadd _ntp % sudo useradd -g _ntp -s /sbin/nologin -d /var/empty/ntp _ntp % sudo mkdir /var/empty/ntp % sudo chown root /var/empty/ntp % sudo chmod 700 /var/empty/ntp
デフォルトでインストールされているNTPサーバの無効化
まず、既にサービスが起動していれば停止する。
% sudo service ntpd stop
次にサービスを無効にする。
% sudo chkconfig ntpd off
必要に応じて関連ファイルを退避する。ただしOpenNTPDではこれらのファイルを使用しないので残しておいても問題ない。
/etc/ntp.conf
/etc/ntpディレクトリ配下
インストール
配布ファイル展開
% tar zxvf openntpd-3.9p1.tar.gz % cd openntpd-3.9p1
make,インストール
% ./configure % make % sudo make install
インストール物 (man,infoは除く)
/usr/local/sbin/ntpd /usr/local/etc/ntpd.conf
各種設定
/usr/local/etc/ntpd.confにて設定を行う。
以下、主な設定項目について説明する。設定は同じパラメータを複数行記述できる。
待ち受けインタフェース(listen on)
ntpdをサーバとして運用する場合の待ち受けインタフェースを指定する。ポートは123固定。
ntpdをクライアントとして運用する場合は未設定でよい。
例)
当該ホスト上の全てのインタフェース
listen on *
ループバックアドレス(IPv4)
listen on 127.0.0.1
ループバックアドレス(IPv6)
listen on ::1
任意のアドレス
listen on 192.168.0.1
NTPクライアントの指定(server|servers)
ntpdをクライアントとして運用する場合のNTPサーバを指定する。
ntpdをサーバとして運用する場合は未設定でよい。
尚、FQDNで指定したNTPサーバが特定の1台を示す場合はserverを、DNSラウンドロビンにより複数のIPを返す場合はservers(最後が複数形)をそれぞれ使用する。
例)
server 10.0.0.8 server pear.foo.org
servers pool.foo.org
動作確認
デーモンを起動する。
% sudo /usr/local/sbin/ntpd % ps aux|grep ntpd root 27193 ... Ss 04:34 0:00 /usr/local/sbin/ntpd _ntp 27194 ... S 04:34 0:00 /usr/local/sbin/ntpd
プロセスが動作し、syslogに以下のようなログが出力されていれば正常に動作している。
ここでは例として3つの外部NTPサーバに接続するクライアントとして動作させた場合のログを示す。
ntp engine ready peer xxx.xxx.xxx.1 now valid peer xxx.xxx.xxx.2 now valid peer xxx.xxx.xxx.3 now valid adjusting local clock by 5.972681s adjusting local clock by 5.920600s adjusting local clock by 5.891570s
デーモンを終了する。
単にkillすればよい。
% sudo pkill ntpd
initスクリプト設置
スクリプト作成
/etc/rc.d/init.d/openntpdを作成する。
#!/bin/bash # # openntpd # # chkconfig: 345 80 20 # description: openntpd TARGET=ntpd DST_BIN=/usr/local/sbin/${TARGET} start() { echo -n "Starting ${TARGET}: " ${DST_BIN} echo } stop() { echo -n "Shutting down ${TARGET}: " pkill ${TARGET} echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 1 esac exit 0
サービス登録
% sudo chkconfig --add openntpd % sudo chkconfig --list openntpd openntpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off % sudo service openntpd start
関連資料・記事