気の向くままに ~備忘録@wiki~
NTP
最終更新:
shirayuu
-
view
NTPは、自動で時刻合わせするためプロトコル。
NTPD は、自動で時刻合わせしてくれるデーモン。
といったところでしょうか。サーバを運営する上ではしっかりと時刻を合わせておきたい物です。
時刻合わせせずに放置しておくと結構ずれますよ。
NTPD は、自動で時刻合わせしてくれるデーモン。
といったところでしょうか。サーバを運営する上ではしっかりと時刻を合わせておきたい物です。
時刻合わせせずに放置しておくと結構ずれますよ。
NTPD のインストール
FreeBSD 6.2 では、最初から入ってる模様です。
ついでに、ネットワーク内では自分の立てた NTPサーバから時刻を取得できるようにしてみましょう。
ついでに、ネットワーク内では自分の立てた NTPサーバから時刻を取得できるようにしてみましょう。
Ubuntu 8.10 では、以下コマンドでインストールしましょう。
$ sudo apt-get install ntp
NTPD の設定
FreeBSD も Ubuntu も設定ファイルは/etc/ntp.conf です。
外部NTPサーバの決定
さて、時刻取得のサーバですが以下の3つが推奨されています。
- ntp.jst.mfeed.ad.jp
- ntp.nict.jp
- ntp.ring.gr.jp
理由としては、安定した時刻の取得のためです。
NTPD は、複数のサーバを設定することができるので全部使っちゃいましょう。
ntp.conf ファイルのバックアップ
もちろん、conf ファイルは設定変更前にバックアップを取っておきます。
# cp /etc/ntp.conf /etc/ntp.conf.orig
ntp.conf の設定
参考になるサイト
実際に編集
さて、実際に編集するわけですが、ntp.conf には外部サーバの登録とその登録されたサーバのアクセス制限を行うことができます。
アクセス制限は、自分が NTPサーバにどう答えるかを設定する物です。
アクセス制限は、自分が NTPサーバにどう答えるかを設定する物です。
アクセス制限に関してのポイントは次の通りでしょう。
- 主に自分は正しい時刻を取得するのが目的なのでそれ以外の目的(逆に時刻を変更されたり、自分の状態を報告する)は無視する
- ネットワーク内からの時刻問い合わせには答える
- ネットワーク外からはすべての要求に対して無視する。
ということで、
- 外部サーバの要求に対しては時刻の問い合わせのみを行う。
- ネットワーク内からは、時刻の問い合わせのみを受け付ける。
ということになります。
もちろん、デフォルトでは問い合わせはすべて拒否します。
アクセス制限やその他記述に関しては以下サイトを参考にしました。
http://www.aconus.com/~oyaji/ntp/ntp.htm
http://honana.com/ntp/setting.html
http://www.asahi-net.or.jp/~AA4T-NNGK/ntpd.html
http://www.aconus.com/~oyaji/ntp/ntp.htm
http://honana.com/ntp/setting.html
http://www.asahi-net.or.jp/~AA4T-NNGK/ntpd.html
# /etc/ntp.conf ## デフォルトの設定: いろいろ拒否する ## 自分自身のアクセス: すべて許可 restrict default noquery nomodify notrap restrict 127.0.0.1 ## アクセス設定 ## noquery サーバからの時刻問い合わせがきたとき無視する ## nomodify サーバからの設定変更の要求がきたとき無視する ## notrap 状態変更時にトラップを上げない ## ネットワーク内の設定 ## 時刻問い合わせのみ答える restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ## 外部サーバのアクセス設定 restrict ntp.jst.mfeed.ad.jp noquery nomodify notrap restrict ntp.ring.gr.jp noquery nomodify notrap # nict は3行続けてかく restrict ntp.nict.jp noquery nomodify notrap restrict ntp.nict.jp noquery nomodify notrap restrict ntp.nict.jp noquery nomodify notrap ## 外部サーバの指定 server ntp.jst.mfeed.ad.jp server ntp.ring.gr.jp # nict は3行続けて書くのが重要 server ntp.nict.jp server ntp.nict.jp server ntp.nict.jp ## 同期したとき、時間のずれの情報を /etc/ntp/drift に書き込む driftfile /var/lib/ntp/ntp.drift
とまあ、こんな感じで記述してみました。
NTPD の起動
NTPD を起動する前にできるだけ時刻を修正してく必要があります。そのため、 NTPD を起動する前には、
# ntpdate ntp.ring.gr.jp
ntpdate で時刻合わせをしておきます。
時刻合わせが正しく行われたら、
FreeBSDは以下のコマンド
# ntpd
また、/etc/rc.conf に以下の文面を追記
ntpd_enable="YES"
Ubuntu は以下のコマンド
$ sudo /etc/init.d/ntp start
で実際に起動させましょう。
NTPD の確認
では、実際に動いたか確認するために
# ntpq -p
で確認してみましょう。
実際にこのような返答がくるでしょう。
============================================================================== *ntp1.jst.mfeed. 210.173.160.56 2 u 36 64 377 13.845 -13.609 1.484 ntp-a3.nict.go. .INIT. 16 u - 64 0 0.000 0.000 0.000 +ring.aist.go.jp 60.56.119.79 3 u 25 64 377 18.880 -12.044 1.102
ネットワーク内の同期確認
さて自分で作ったNTPサーバが実際にネットワーク内のPCから実際に時刻問い合わせがきた場合、
うまく時刻を返せてるかを確かめてみましょう。
Windows からは桜時計、Unix系では ntpdate あたりで確認してみるといいでしょう。
うまく時刻を返せてるかを確かめてみましょう。
Windows からは桜時計、Unix系では ntpdate あたりで確認してみるといいでしょう。
ntpdate では、
# ntpdate <サーバのアドレス>
となるでしょう。
桜時計はVectorからダウンロードしSKRWATCH.EXE を実行して
NTPサーバー名/IPアドレス の欄にサーバのアドレスを入れてオンラインボタンを押せば確認できます。
NTPサーバー名/IPアドレス の欄にサーバのアドレスを入れてオンラインボタンを押せば確認できます。