利用可能な接続に基づいてNTPサーバーを変更する

利用可能な接続に基づいてNTPサーバーを変更する

図を参照してください。

LANには2台のコンピュータがあり、そのうちの1つだけがインターネットに接続されています(他のインターフェイスを介して)。サーバー1にはジャンクハードウェア時計があります。サーバー2には良いハードウェアRTCがあります。

残念ながら、サーバー1は通常インターネットに接続されていますが、良いハードウェアRTCを備えたサーバーはそうではありません。したがって、インターネット接続の状態に応じて、サーバー1が最も正確であるか非常に不安定です。

両方のシステムが緊密に同期された状態を維持することが重要です。

各システムの階層を自動的に調整して、システムがシナリオ 1 からシナリオ 2 に自動的に失敗するようにできますか?

シナリオ1とシナリオ2

答え1

まず、階層へのアクセスが許可される可能性はほとんどありません。1Stratum 1サーバー管理者があなたを知って明示的にそれを行う権限を与えない限り、サーバー。しかし、この回答ではサーバー層は重要ではないので、明確にするためにこのシステムを「サブ層」サーバーと呼びます。

server2ではなく低レベルのサーバーから時間を取得するように構成する必要がありますserver1。これを行うには、サーバーのインターネットリンクにアクセスできる必要があります(少なくともNTPの場合)server1server2低レベルのサーバーに接続できるインターネットリンクがない場合は、server1rootとして次のコマンドを実行してそれを許可できます。

iptables -A FORWARD -s server2 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -s server2 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

最初の 2 行はホストの NTP トラフィックを許可します。server2 ただ。注:TCP接続が必要かどうかは100%確信できませんが、問題ではありません。-d lowstratumserverこのコンピュータが他のサーバー(低レベルのサーバーのみ)にアクセスできないように、この2行を追加することもできます。次の行は、確立された接続の戻りトラフィックを許可します。 4行目はネットワークアドレス変換を有効にします。最後の行はIPパケット転送を有効にします。これでserver1(最小)ルーターができました。

server2デフォルトのルーターがない場合は、下位server1レベルのサーバーへの明示的なパスも追加する必要があります。

ip route add lowstratumserver via server1

これはネットワーク接続のためのルーターとしてserver2機能し、他のすべては一般的なルーターとして機能します。server1lowstratumserver

その後、構成は代わりにserver2インターネット上の低レベルサーバーをNTPソースとして使用しますserver1

最後に、インターネットの代わりにStratum 1サーバーserver1に接続するように設定します。server2

代わりにserver2、インターネットの下位レベルのサーバーと同期し、フェールオーバー設定を追加しなくてもserver1常にserver1同期されますserver2(せいぜい脆弱です)。

これにより、追加のホップによって精度がわずかに低下しますが、低品質のRTCを使用するシステムよりも、ローカルネットワーク上のシステムを優れたハードウェアRTCを使用するシステムと同期する方が常に優れています。

関連情報