/etc/ntp.conf
に設定を記述。
以下に記すのはNTPv4におけるサーバ設定コマンドの記述法である。
コマンドは2種類のグループに分類できる。
1つはリモートサーバとの連携、1対1でのやりとり、時計の参照に関する設定を行う設定コマンド(configuration command)、もう1つは様々な関連操作に関する環境変数を指定する補助コマンド(auxilliary command)である。
コマンド書式 | 備考 |
---|---|
server NTPサーバ オプション | 時刻情報を問い合わせる上位NTPサーバを指定する。 |
オプション指定値 | 備考 |
---|---|
iburst | サーバにアクセスできない時、通常とは異なる8パケットを送る。パケット送出間隔は通常2秒だが、1つ目のパケットと2つ目のパケットとの間隔は calldelay コマンドを使って変更できる。これにより、モデムやISDNの呼び出しが完了するまでの時間を確保できる。このオプションは server コマンドと s 型のアドレスでのみ有効である。server コマンドにはこのオプションを指定することが推奨される。 |
【書式】 # このサーバの時刻情報と同期することを許可するが、 # 時刻情報やこのサーバシステムのサービスを修正することは許可しない restrict default kod nomodify notrap nopeer noquery restrict -6 default 制限内容 ←デフォルトの制限設定 restrict -6 NTPサーバ名 or IPアドレス オプション ←指定サーバの制限設定
オプション・制限内容 | 内容 |
---|---|
-6 | IPv6の設定 |
ignore | 全てのアクセスを無視 |
mask ネットマスク |
ネットワークの範囲を指定する。この指定がない場合の既定値は「mask 255.255.255.255」(指定サーバのみ対象)
【例】192.168.0.0/24 のネットワークからのアクセスは全て許可する restrict 192.168.0.0 mask 255.255.255.0 |
noquery | 関連する情報の問い合わせに応答しない。 |
notrust | 認証が成立しないと通信を許可しない。 |
nomodify | クライアントによるサーバの設定変更を許可しない。 |
notrap | クライアントにサーバが同期することを許可しない。 |
kod | アクセス違反があると、kiss-o'-death (KoD) パケットが送られる。 |
オプションがなければ全てのアクセスを許可する。一般的な設定は以下の通り、かな?
restrict default ignore
)restrict 127.0.0.1
)restrict 上位サーバ nomodify notrap noquery
)
chronyc
コマンドはNTPデーモン(chrony)の管理コマンド。CentOS7以降ではこれが標準のNTPツールのよう。
chronyc オプション コマンド
オプション
コマンド
chronyd がアクセスしている現在の時刻情報源についての情報を表示する。
【例】 $ chronyc sources 210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp1.example.net 2 10 377 235 +475us[ +309us] +/- 30ms ^+ ntp2.example.net 2 7 377 79 +44us[ +44us] +/- 33ms
ntpq
コマンドはNTPデーモン(ntpd)が行うやりとりを監視しパフォーマンスを決定するのに用いられるプログラム。引数を指定しないと対話モードになる。
ntpq
-4
-6
-c
-c
オプションは複数指定可能。
-d
-i
-n
-p
--peers
peers
と同等。
【例】 $ ntpq -p remote refid st t when poll reach delay offset jitter ピア名 refid st t when poll reach delay offset jitter ============================================================================== *sng-ntp-ext.asi 17.82.254.14 2 u 49m 137m 37 84.529 -4.582 1.144
以下、対話モードコマンドについて記す。コマンド名の指定は、前方一致で特定できる場合、途中までの入力でOK。
一般に利用可能な公開ntpサーバについて
サーバ名 | Stratum | 備考 |
---|---|---|
ntp.nict.jp | 1 | 国立研究開発法人 情報通信研究機構が運営 |
ntp.jst.mfeed.ad.jp | 2 | インターネットマルチフィード株式会社が運営する時刻情報提供サービス。複数のサーバが指定できる場合、ntp1.jst.mfeed.ad.jp、ntp2.jst.mfeed.ad.jp、ntp3.jst.mfeed.ad.jpが指定できる。ntp.jst.mfeed.ad.jpはDNSで前記3サーバのラウンドロビンとなっている。 |
ats1.e-timing.ne.jp | 1 | アマノビジネスソリューションズ株式会社が運営する公開時刻サーバ。 |
s2csntp.miz.nao.ac.jp | 2 | 大学共同利用機関法人 自然科学研究機構 国立天文台 水沢支部が運営する公開時刻サーバ。 |
あらかじめ問い合わせ先として設定されたNTPサーバに問題なく問い合わせを行い、応答が得られているかを確かめるにはntpq -p
が使える。一方、NTPの設定(/etc/ntp.conf
など)を変更せず、その他のサーバにNTP問い合わせを行って時計合わせを行うにはntpdate
コマンドが使える。またこのコマンドは、NTPの問い合わせに応答するかどうかを確認するのにも利用できる。実行には管理者権限が必要。
【例1】問い合わせ先がNTPの問い合わせに応答しなかった場合 # ntpdate server1 6 Nov 11:57:28 ntpdate[2689]: no server suitable for synchronization found 【例2】問い合わせ先がNTPの問い合わせに応答した場合 # ntpdate server2 6 Nov 15:17:44 ntpdate[5010]: adjust time server xxx.xxx.xxx.xxx offset 0.016557 sec 【例3】他のNTPサーバと通信していて問い合わせできない場合 # ntpdate server2 6 Nov 15:17:21 ntpdate[4993]: the NTP socket is in use, exiting Mac OS 10.6.8の場合、[システム環境設定]-[日付と時刻]の[日付と時刻]タブで「日付と時刻を自動的に設定」のチェックボックスがONになっているとntpdateによる問い合わせができない。これをoffにした上でntpdateを実行する。
うるう秒があるかどうかは2ビットのLeap Indicatorで上位NTPサーバから通知される。値の意味は以下の通り[1][2]。うるう秒挿入まで24時間を切ると、うるう秒情報が配信され、NTPデーモンは所定時間になるとkernelに対して時計を操作する(1秒足踏みするあるいは1秒スキップする)指示を出す。
Leap Indicatorの値 | 内容 |
---|---|
00 | 時刻は通常通り(うるう秒なし) |
01 | UTC(世界協定時)で当日の最後に1秒挿入される(23時59分60秒が存在する) |
10 | UTC(世界協定時)で当日の最後に1秒が削除される(23時59分59秒が存在しない) |
11 | 時刻はGPSに同期していない(配給された時刻を使うべきではない) |
Leap Indicatorの状態はntpqコマンドで確認できる[3]。
# うるう秒なしの場合(Leap Indicator = 00) $ /usr/sbin/ntpq -c rv assID=0 status=06f4 leap_none, sync_ntp, 15 events, event_peer/strat_chg, version="ntpd 4.2.2p1@1.1570-o Tue Oct 25 12:54:50 UTC 2011 (1)", processor="x86_64", system="Linux/2.6.18-164.15.1.el5", leap=00, stratum=3, precision=-20, rootdelay=10.694, rootdispersion=35.983, peer=21610, refid=210.173.160.27, reftime=d39ce1a0.a93876de Tue, Jul 3 2012 12:12:32.661, poll=10, clock=d39ce4d9.4fa70ec2 Tue, Jul 3 2012 12:26:17.311, state=4, offset=-0.142, frequency=-20.235, jitter=0.256, noise=0.125, stability=0.000, tai=0
うるう秒が挿入されるとシステムログに以下のような記録が残る。
Jul 1 08:59:59 server kernel: Clock: inserting leap second 23:59:60 UTC
システムログ(/var/log/messages)やntpのログ(/var/log/ntp.log)に表題のようなエラーメッセージが出ていて、システムの時刻が合わない場合、ntpサービスを一旦止めて「ntpd -qg」を実行すればよい[4]。
# service ntpd stop # ntpd -qg # service ntpd start
オプションの意味は以下の通り。