ntp.confプールとサーバーディレクティブ


15

プールディレクティブを指定するntp.confファイルに出会いました。

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org

ただし、同じファイルにサーバーディレクティブも含まれています。

プールについて読むと、サーバーの代わりに使用することを意図していることがわかります。どちらかを使用する必要があります。

ただし、ntp.confに両方がある場合はどうなりますか?1つのセットが他のセットよりも優先されますか、それともすべてが使用されますか?

これはUbuntu 14.04にあり、ntpdはバージョン4.2.6p5です。

回答:


8

ソースで確認できる限りntpd、プールのメンバーと個々のサーバーの両方をほぼ同じ方法で処理します。ピアのリストに追加します。

これらすべての同輩は使用されntpdます。

プールメカニズムの魔法はラウンドロビンDNSにntpdあります。DNSを介してプール名を解決するため、DNSクエリからの応答は単一のノードであり、解決が要求されるたびに異なる場合があります。


2
これはdiscover.html、ntpdのドキュメントにバンドルされていると思われるファイルに記載されています。ファイルの下部を参照してください
-mboehn

@Vincentソースファイルをダウンロードしました。これを確認するために私が探すべき正確な場所を指摘できますか?
user3141592

@mboehnそのドキュメントとそれが参照するファイルでは、プールとサーバーの両方のディレクティブが指定されている場合に両方をサポートするntpdの新しいバージョンで何が起こるかについては言及していません。私が何かを見落としているなら、教えてください。ありがとう。
user3141592

ntp / ntp_config.c:3776を参照してください。ここで、構成ファイルからのピアの解決が行われます。その後、peer_configについてはntp / ntp_peer.c:554を、new_peerについてはntp / ntp_peer.c:730を見てください。最終的に、両方がnew_peerの最後にピアハッシュテーブルに追加されることがわかります。
ビンセント・デ・Baere

これは、サーバーが何をするのかを知らない人を助けません。プールの機能に関する最後の文と比較できるように、サーバーの機能を説明してください。
バカロロ

8

答えはmboehnによって与えられました。さらに明確にするには:彼が言及しドキュメントを参照してください。特に最後の行:

プールスキームは、1つ以上のプールコマンドを使用して、描画元のプールを示すDNS名を使用して設定されます。poolコマンドは複数回使用できます。重複したサーバーが検出され、破棄されます。原則として、単一行プールpool.ntp.orgを含む構成ファイルを使用することが可能です。NTP Pool Project では、serverコマンドでプールを使用する方法について説明しています。このコマンドは、最適ではありませんが、poolコマンドより前の古いバージョンのntpdで機能します。最近のntpdでは、例の複数のサーバーコマンドを単一のプールコマンドに置き換えることを検討してください。

私の設定は:

# Specify one or more NTP servers.
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst

# Provide your current local time as a default should you temporarly lose Internet connectivity
server 127.127.1.0
fudge 127.127.1.0 stratum 10

チェックすると、地理的な場所(オランダ)の近くに複数のntpサーバーがあります。

$ ntpq -4np

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 127.127.1.0     .LOCL.          10 l    -   64    0    0.000    0.000   0.000
-85.255.214.66   193.190.230.66   2 u    5   64  177    6.937    1.588   1.645
-5.39.184.5      91.148.192.49    3 u   64   64   77    8.907    1.197   1.635
-91.198.87.229   193.79.237.14    2 u    5   64  177    8.447   -0.042   0.894
+37.34.57.151    193.79.237.14    2 u    1   64  177    7.463    0.168   0.297
*91.198.87.118   192.87.110.2     2 u    2   64  177    8.593    0.070   0.384
+88.159.1.197    80.94.65.10      2 u    2   64  177   10.497    0.454   0.213
+213.154.236.182 213.136.0.252    2 u   67   64   77    8.793    0.455   2.391
#178.21.23.127   91.121.157.10    3 u   66   64   77    9.129   -0.911   1.541
#213.109.127.195 193.79.237.14    2 u   66   64   77   11.766   -7.330   1.501
+213.154.229.24  80.50.231.226    2 u    4   64  177    8.496    0.121   0.538
-217.77.132.1    213.136.0.252    2 u    2   64  177    7.026   -0.782   1.253
#87.253.148.92   195.13.1.153     3 u    4   64  177    7.338   -3.859   0.964
-94.228.220.14   193.67.79.202    2 u    -   64  177    8.347    2.797   1.019

1

NTPがタイムサーバーのプールを適切に要求し、フェールオーバーシナリオでタイムサーバーの可用性を利用するには、次のntp.confように構成する必要があります。

  • poolコマンドでプールのドメイン名を宣言します(ではなくserver

  • プールが関連付けを動員できるようにします(つまりrestrict sourcenopeerディレクティブを含まない「...」行を追加します)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.