時計は時間が経つにつれて徐々に狂っていきますが、これはLinuxやWindowsなどコンピュータの時計も同じです。
サーバーのログには時刻が書き込まれます。
また、メールサーバーの場合はヘッダーに時刻を書き込みます。
その際、時計が狂っていると何かと不便です。
クライアントのログとサーバーのログの時刻が合わなければ、ログ解析が困難になりますし、メールの送信時刻が実際の時刻と異なっているのも好ましいことではありません。
特に、サーバーのログは、場合によっては何らかの証拠として提出しなければならないこともあるので、正確な時刻に合わせることはサーバー管理にとって必須の作業となります。
インターネットの世界では、時刻を同期させるためのプロトコルであるNTP(Network Time Protocol)を用いてコンピュータの時計を基準時刻に合わせます。
基準時刻を持つNTPサーバーは公開サーバーとしてインターネット上に複数台設置されており、ローカルネットワーク内のNTPサーバーはそれらのNTPサーバーと時刻を同期します。
ntpdのインストール
$ su - Password: # yum install ntp
ntp.confの編集
ntpdの設定ファイルであるntp.confを編集します。
ntp.confでは時刻同期先となるNTPサーバーの指定や、時刻同期の要求を許可するNTPクライアントの設定等を行います。
基準時刻を持つNTPサーバーは多数公開されています。
それらのNTPサーバーは階層構造となっていて、最上位の階層にくるNTPサーバーをStratum 1(ストレータム1)と言います。
日本では福岡大学のNTPサーバー2台がStratum 1にあたります。
また、その下位にくるStratum 2以下のNTPサーバーは最終的にStratum 1のNTPサーバーと同期されます。
ntpdでは、上位stratumだけではなく、複数の同位・下位stratumのNTPサーバーと同期可能です。
日本での代表的なNTPサーバーの一部が下記になります。
Stratum | ホスト名 | 備考 |
---|---|---|
Stratum 1 | ntp.nict.jp | 情報通信研究機構が公開している。Stratum 1のNTPサーバーを一般ユーザが直接利用すべきではないとされているが、高い処理能力を持ち合わせていることから一般ユーザーが直接利用しても良いとされている。 |
Stratum 1 | clock.nc.fukuoka-u.ac.jp | 福岡大学が公開している。NTPサーバと言えば福岡大学というイメージがあり、たくさんのユーザーが利用していたが、アクセス集中による過負荷に悩まされている。 |
Stratum 1 | clock.tl.fukuoka-u.ac.jp | 福岡大学が公開している。 |
Stratum 1 | ntp1.jst.mfeed.ad.jp | インターネットマルチフィード(MFEED)が公開している。 |
ntp.confの設定例
# vi /etc/ntp.conf restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap server ntp.nict.jp server ntp1.jst.mfeed.ad.jp server ntp2.jst.mfeed.ad.jp server ntp3.jst.mfeed.ad.jp
ntp.confの主なキーワードは下記になります。
キーワード | 解説 |
---|---|
server | 参照するNTPサーバーを指定する。複数行記述することで、複数のNTPサーバーを指定することも可能。 |
restrict | 特定のホストからのアクセス制御を指定する。 |
restrictで指定可能なフラグは下記になります。
フラグ | 解説 |
---|---|
ignore | 全てのパケットを拒否する。 |
noquery | ntpdのクエリー(照会)を無視する。 |
nomodify | サーバーの状態を変更しようとするntpq のクエリーを無視する。 |
notrust | 指定したホストを参照先サーバーとして使用しない。 |
notrap | trapサービスのためのパケットを拒否する。 |
コマンドによる時刻同期
# ntpdate -b ntp1.jst.mfeed.ad.jp 29 Sep 19:43:43 ntpdate[3273]: step time server 210.173.160.27 offset 0.014301 sec
ntpdateコマンドはNTPを使用して時刻を合わせるコマンドです。
指定されたNTPサーバーに対し時刻を問い合わせ、教えてもらった時間を設定します。
ntpdを起動する前に時刻を合わせておきます。
ntpdの起動
# /etc/rc.d/init.d/ntpd start Starting ntpd: [ OK ]
再起動後もntpdが起動するように設定します。
# chkconfig ntpd on
ntpqコマンドでntpdの動作を確認します。
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp-b2.nict.go. .NICT. 1 u 51 64 7 17.308 443.265 154.609 ntp1.jst.mfeed. 172.29.2.50 2 u 50 64 7 10.756 446.675 155.030 ntp2.jst.mfeed. 133.243.236.17 2 u 49 64 7 9.947 447.816 154.781 ntp3.jst.mfeed. 172.29.3.50 2 u 50 64 7 15.771 443.772 151.893
NTPクライアントの設定
ローカルネットワークのコンピュータが上記で構築したNTPサーバーを参照するように設定します。
CentOSでのNTPクライアント設定手順
# vi /etc/ntp.conf server 192.168.0.3
serverキーワードにて、参照先のNTPサーバー(上記で構築したNTPサーバー)を指定します。
# /etc/rc.d/init.d/ntpd start Starting ntpd: [ OK ]
# chkconfig ntpd on