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

2018.12.09 2019.07.14サーバー
サーバーの時刻同期 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サーバーの一覧

https://qiita.com/halpas/items/5a451ead0b13f6792595

ストラタムって何?

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の設定方法

https://qiita.com/tmatsumot/items/1587a710006a0417abbb

https://gentoo.reichsarchiv.jp/item/30

ntpdateコマンド

ntpdate – 日付と時刻をNTPサーバーと同期 – Linuxコマンド

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

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




halmuda

愛知在住。社内SEの仕事に疲れて独学でプログラミング を勉強してエンジニアに転身。自社サービス開発。スポ根漫画全般とピロウズと麻雀が好き。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です