Linux/CentOS NTP設定 時刻同期
時刻同期を行うため、ntpの設定を行います。
2ファイル編集します。
あとで戻せるようにオリジナルファイルは残しておきましょう。
1.ntp.conf設定
$ mv -iv /etc/ntp.conf /etc/ntp.conf.org
$ vi /etc/ntp.conf
デフォルトの設定がごちゃごちゃ書いてあるので、バックアップとしてだけ残し、新規にconfファイルを作成します。
下記設定を入れればOK。
-------------------
restrict default ignore
restrict 127.0.0.1
restrict ntpsrv1.xxxxx.yyyy nomodify notrap
restrict ntpsrv2.xxxxx.yyyy nomodify notrap
server ntpsrv1.xxxxx.yyyy
server ntpsrv2.xxxxx.yyyy
driftfile /var/lib/ntp/drift
-------------------
〈設定詳細〉
・restrictはアクセス制限の設定です。
・ntpを設定すると誰からでも接続される可能性があるため、セキュリティ観点から全拒否の設定を1行目に入れます。
(設定は上から順に読み込まれる)
・2行目からは許可するIP/ドメインを追加していきます。
ローカルからは全許可し、あとは参照するntpサーバの情報を登録します。
また許可内容としてオプション設定が可能です。
下記くらいがわかれば良いと思われます。
ignore:全拒否します
notrust:アクセス拒否(v4.2の場合です。v4.1では問い合わせ許可の意味だったため、注意が必要。)
nomodify:相手から変更要求があった場合拒否します
notrap:メッセージトラップの拒否
※どうやら同一LAN内ではない、上位のntpサーバであれば登録しなくてもserverの設定だけで良いらしいです。
私は設定してしまいましたが、、
・serverでは時刻同期するntpサーバを指定します。
複数台(3台以上推奨)指定して下さい。
・ntpした時の時差情報を書き込むファイルを指定します。
ここはデフォルト値で良いと思います。
・ドメイン指定する場合はhostsファイルへの追加かDNS設定が必要です。(DNSの話は別記事に記載します。)
2.ntpdの設定
$ cp -ipv /etc/sysconfig/ntpd /etc/sysconfig/ntpd.org
$ vi /etc/sysconfig/ntpd
特に設定しなくてももう使えますが、このままだと時刻同期した際に一気に時差を解消してしまうため、サーバ上で動くアプリ、プロセスに悪影響を与える可能性があります。
そのため徐々に同期していく設定としてslewモードにした方が良いようです。(最大 秒間0.5msずつ)
solarisの場合は本ファイルがなく、ntp.confに設定を行います。
-------------------
1)オプションに-xをつける(slewモード)
オプションをつけなくても128msの差までならslewモードになるが、つけると600秒の差までslewモードになります
2)さらに-gを足すとオフセットが非常に大きくても同期をおこなってくれる
※-gはデフォルトでついてます。設定しないと1000秒以内の差の場合だけ自動同期します。それ以上の場合はしてくれなくなります。
-------------------
3.ntpdの起動、状況確認
$ /etc/init.d/ntpd start
$ ntpq -p
ntpqコマンドで同期の状態が表示されます。
ntpd起動後しばらくしないと同期されません。
同期されるとドメインの頭に*が付加されます。
offset欄が時差分をmsで表示してます。
これで設定完了です。
あとはchkconfigでaddしてあげればサーバ再起動しても自動的に起動します。