サーバーの時刻同期 NTPサーバーの設定

サーバー

NTPとは?

NTPとは、Network Time Protocol(ネットワーク・タイム・プロトコル)の略称のことで、ネットワーク上で時間同期するプロトコルのことである。

コンピュータの内部時刻を正しく設定するために、ネットワーク上の時刻サーバに問いあわせることで時刻を定期的に合わせている。

サーバーの場合は特に時刻が正確にあっていなければ、サービスの時刻が実時間と合わないといったことはもちろん、障害発生の正確な時間がわからない、といったような様々なが不具合が発生するため、地味だが非常に重要な設定である。

本ページではLinuxで時刻同期を行う方法について確認する。

NTPサーバー

NTPサーバーとは、正しい時刻情報を取得・配信しているサーバーのことです。各コンピュータでは日本では主に下記のサーバーが存在しますので、こちらを指定することが多いです。

提供組織: 独立行政法人情報通信研究機構(NICT)
ntp.nict.jp
ストラタム1でありながら個人での利用も認めている。

提供組織: インターネットマルチフィード (MFEED)
ntp.jst.mfeed.ad.jp
ストラタム2

提供組織: 国立天文台
s2csntp.miz.nao.ac.jp
ストラタム2

その他のパブリックNTPサーバーの一覧

【負荷OK】Public NTPサーバの一覧 - Qiita
誰でも利用できるPublic NTPサーバの一覧です。 日本国内・一定規模のPublic NTPサーバのみを記載しています。 ※福岡大学の公開NTPサーバーは停止予定です。使用中の方は変更を推奨します。 参考:[公開NTPサービス ...

ストラタムって何?

NTPはストラタム(stratum)と呼ばれる階層構造を持っています。

最上位のNTPサーバがストラタム1と呼ばれ原子時計やGPS(これらはストラタム0扱い)などから正確な時刻を取得しています。

ストラタム1からストラタム2のサーバ、3のサーバと降りていき、最大で15までNTPサーバを構築できます。

NTP関連のコマンド

ntpdateコマンドを使って、NTPサーバから正確な時刻を取得できる。
下記のコマンドを実行すると、即時時刻を同期することができる。

ntpdate <ntpサーバー>

また、ntpサーバーとの通信のみを確認する場合は下記のオプションを追加することで、事前に同期が可能かどうか確かめておくことができる。

ntpdate -q  <ntpサーバー>

ntpqコマンドを使えば現在通信しているNTPサーバーの一覧を表示することができる

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.jst.mfeed. 210.173.160.56   2 u   17  256   17   14.353   15.466  10.050
*ntp2.jst.mfeed. 210.173.160.56   2 u   18  256   17   14.389   29.979  11.491
+ntp3.jst.mfeed. 210.173.176.4    2 u   10  256   17   14.024   23.090   6.555

NTPの設定ファイルの修正

/etc/ntp.conf の内容を編集する。以下に例を記載する

特定のサーバーを指定する際の記載方法

server ntp.nict.jp

特定のサーバーを指定する際の記載方法

restrict default ignore(デフォルト全NTP通信を拒否)
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap notrust
restrict 172.16.36.10 mask 255.255.255.255 nomodify notrap noquery

restrict 210.173.160.27 nomodify notrap noquery
restrict 210.173.160.57 nomodify notrap noquery
restrict 210.173.160.87 nomodify notrap noquery

server 210.173.160.27 # ntp1.jst.mfeed.ad.jp
server 210.173.160.57 # ntp2.jst.mfeed.ad.jp
server 210.173.160.87 # ntp3.jst.mfeed.ad.jp

このあと、ntpdを再起動してconfファイルを読み込む

# /etc/init.d/ntpd start

NTP設定時のコツ

基本的には複数のNTPサーバーを設定しておくと良いです。
会社などの場合は、社内のNTPサーバーがあるはずなので確認してみよう。

stepモードとslewモード

●stepモード
stepモードとは、時刻同期を即時実行するモードのことである。デフォルトはこちらになっているが稼働中のサーバ上で実行するのは結構リスキーなので、下のslewモードを推奨する。

●slewモード
slewモードとは、とてもゆっくりと徐々に(1秒間に最大0.0005秒)時間をあわせるモードである。ちなみに、一般的にはslewモードで同期をすることが推奨される。

参考にさせていただいたページ

ntp.confの設定方法

うるう秒対策してみた(NTPサーバの設定変更) - Qiita
##### はじめまして! ファーストサーバのtmatsumotです。 入社したばかり&未経験のため、まだ知識は不十分ではありますが、 自分なりに学んだことを書いてみようと思います! (間違った情報の記載があればご指摘お待ち...
NTPによる自動時刻合わせの設定
NTPをインストールして、タイムサーバと時刻を同期させる。# emerge ntpでインストールした後、/etc/ntp.confを編集する。 まず、#restrict default ignoreの#を削除して有効化し、デフォルトでは全NTPアクセス ...

ntpdateコマンド

Linuxコマンド【 ntpdate 】日付と時刻をNTPサーバーと同期 - Linux入門 - Webkaru
ntpdate コマンドでは、日付と時刻を NTP サーバーと同期するコマンドです。 ntpdate コマンド 書式 ntpdate NTPサーバー NTP(Network Time Protocol)を使って、NTP サーバーへ日付と時刻を問い合わせ、正確な日付と時刻をローカルホストに設定します。

CentOS7の人はChronyなので注意!!

今回の記事ではntp.confやntpdateコマンドを使いましたが、CentOS7以降はサービスがchronyというものに変わっていますのでご注意ください。

コメント