NTP は Network Time Protocol の略です。
Linux システムの時刻を中央の NTP サーバーと同期するために使用されます。
ネットワーク上のローカル NTP サーバーを外部タイミング ソースと同期して、組織内のすべてのサーバーを正確な時間と同期させることができます。
I. NTP サーバーの構成
1. NTP サーバーをインストール
まず、Linux ディストリビューションで利用できる適切なパッケージ管理ツールを使用して、サーバーに NTP パッケージをインストールします。
たとえば、RedHat または CentOS では、次のように yum を使用して ntp をインストールします。
yum install ntp
2. ntp.conf で値を制限する
/etc/ntp.conf ファイルを変更して、次の 2 つの restrict 行があることを確認してください。
# Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery
最初の restrict 行は、他のクライアントがタイム サーバーにクエリを実行できるようにします。この制限行には次のパラメーターがあります
- noquery は ntpd からのステータス データのダンプを防ぎます。
- notrap は、コントロール メッセージ トラップ サービスを防止します。
- nomodify は、サーバーを変更しようとするすべての ntpq クエリを防ぎます。
- nopeer は、ピア アソシエーションを確立しようとするすべてのパケットを阻止します。
- Kod – 不要なクエリを減らすために、Kiss-o-death パケットが送信されます
2 行目の値 -6 allow は、DNS 解決を IPV6 アドレス解決に強制します。アクセス パラメータ リストの詳細については、「man ntp_acc」に関するドキュメントを参照してください。
3.特定のクライアントのみを許可
自分のネットワーク上のマシンのみが NTP サーバーと同期できるようにするには、次の制限行を /etc/ntp.conf ファイルに追加します:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
localhost にクエリまたは変更のフル アクセスが必要な場合は、次の行を /etc/ntp.conf に追加します。
restrict 127.0.0.1
4.ローカル時計をバックアップとして追加
ローカル クロックを ntp.conf ファイルに追加して、NTP サーバーがインターネットから切断された場合に NTP サーバーがローカル システム クロックから時間を提供するようにします。
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
上記の行では、Stratum を使用して、距離に基づいてサーバーと時刻を同期しています。 Stratum-1 タイム サーバーは、主要なネットワーク時間標準として機能します。 Stratum-2 サーバーは、ネットワークを介して Stratum-1 サーバーに接続されています。したがって、stratum-2 サーバーは、stratum-1 サーバーからの NTP パケット要求を介して時刻を取得します。 Stratum-3 サーバーは、Stratum-2 サーバーからの NTP パケット要求を介して時刻を取得します。
また、ストラタム 0 デバイスは常に基準クロックとして使用されます。
5. NTP ログ パラメータの設定
ntp.conf ファイルでドリフト ファイルとログ ファイルの場所を指定します
driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp.log
ドリフトファイルは、時計が本来あるべきものからどれだけ離れているかを記録するために使用され、時間の経過とともに ntp はゆっくりとこの値を下げる必要があります.
6. NTP サーバーを起動
ntp.conf ファイルに適切な値を設定したら、ntp サービスを開始します。
service ntpd start
II. NTP クライアントを構成して NTP サーバーと同期する
7. NTP クライアントの ntp.conf を変更
このセットアップは NTP クライアントで行う必要があります (NTP サーバーではありません)
ローカルの Linux クライアント マシンの時刻を NTP サーバーと同期するには、クライアント側で /etc/ntp.conf ファイルを編集します。以下は、サンプル エントリがどのように表示されるかの例です。次の例では、タイム サーバーとして機能する複数のサーバーを指定しています。これは、タイム サーバーの 1 つに障害が発生した場合に役立ちます。
server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst
iburst:各ポーリングの後、1 つではなく 8 つのパケットのバーストが送信されます。サーバーが応答しない場合、パケットは 16 秒間隔で送信されます。サーバーが応答すると、2 秒ごとにパケットが送信されます。
NTP.conf を編集して、独自の NTP サーバーに適切なエントリを反映させます。
server 19.168.1.1 prefer
優先:このオプションが指定されている場合、そのサーバーは他のサーバーよりも優先されます。他のサーバーの応答と大きく異なる場合、優先サーバーからの応答は破棄されます。
8. NTPデーモンを起動
ntp.conf が正しい設定で構成されたら、ntp デーモンを開始します。
/etc/init.d/ntp start
NTP がゆっくりと開始し、Linux マシンの時刻を NTP サーバーと同期させます。
9. NTP ステータスを確認する
ntpq コマンドを使用して NTP のステータスを確認します。接続拒否エラーが発生した場合は、タイム サーバーが応答していないか、NTP デーモン/ポートが開始されていないかリッスンしていません。
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *elserver1 19.168.1.1 3 u 300 1024 377 1.225 -0.071 4.606
10.現地の日付と時刻を設定
ntpdate コマンドを使用して、NTP サーバーをポーリングすることにより、ローカルの日付と時刻を設定できます。通常、これを行う必要があるのは 1 回だけです。
ジッター値は低くする必要があります。それ以外の場合は、ドリフトファイルでクロックからのドリフトを確認してください。違いに基づいて、他の NTP サーバーに変更する必要がある場合もあります。このコマンドは、時刻を NTP サーバーと手動で同期します。
ntpdate –u 19.168.1.1
この最初の同期の後、NTP クライアントは継続的に NTP サーバーと通信して、現地時間が正確な時間を反映していることを確認します。
次のコマンドを使用して、ntpd の現在のステータスを取得することもできます。
# ntpdc -c sysinfo system peer: thegeekstuff.com system peer mode: client leap indicator: 00 stratum: 4 precision: -23 root distance: 0.00279 s root dispersion: 0.06271 s reference ID: [19.168.1.1] reference time: d70bd07b.f4b5cf2b Wed, Apr 30 2014 15:41:47.955 system flags: auth monitor ntp kernel stats jitter: 0.000000 s stability: 0.000 ppm broadcastdelay: 0.000000 s authdelay: 0.000000 s