web-dev-qa-db-ja.com

debianでdhcpによって送信されたntp情報を上書きする方法は?

ネットワーク内にDHCPからすべてのネットワーク情報を受信するサーバーがあります。問題は、送信されるntp-serverがUTCに設定されていないことです。 /etc/ntp.confにあるntpの設定を使用したいのですが、DHCP情報が優先されます。 ntpdから送信された構成ではなく、DHCP/etc/ntp.confの構成を使用するように強制するにはどうすればよいですか?これを行うDebian方法は何ですか?

9
Ricardo Marimon

/etc/dhclient.confを編集/作成し、次のような行で "request"行のコメントを外すことをお勧めします。

request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers, Host-name;

特に、「ntp-servers」が存在する場合は削除してください。一部のディストリビューション(別名Fedora)では、デフォルトで送信されるため、この行を明示的に指定して、デフォルトがオーバーライドされるようにする必要があります。

小切手 man dhclient.confは拡張情報です。

7
Olivier S

質問に直接答えることはできませんが、それは役に立ちます。

DHCPの動作

Debianでは(少なくとも)DHCPクライアントが既存のntpサービス構成を上書きしています。

スクリプト/etc/dhcp/dhclient-exit-hooks.d/ntpによって制御されます。

[contents from: /etc/dhcp/dhclient-exit-hooks.d/ntp]
NTP_CONF=/etc/ntp.conf
NTP_DHCP_CONF=/var/lib/ntp/ntp.conf.dhcp
...
[hundreds of lines of scripts]

DHCPクライアントはDHCPサーバーからntpサーバーを受信し、NTP_CONFパスから現在のntpサービス構成を取得し、dhcp経由で受信したntpサーバーを含めるように変更し、新しいntp構成ファイルをNTP_DHCP_CONFパスに生成し、最後にntpサービスを強制しますこの新しい構成ファイルを使用します。

これにより、dhcp経由でアドバタイズされるntpサーバーが常に使用されます。システム構成をバイパスします。

'/etc/ntp.conf'のサービス構成は変更されず、目視検査では正しいため、これが不明な場合はデバッグが困難です。ただし、実際には無視され、ステルスで上書きされます。

「ntpq -pn」を使用して、デーモンが実際に使用しているntpサーバーをデバッグできます。

DHCP ntpオプションとシステム固有の構成の混在

IS DHCPによってアドバタイズされているネットワーク内のntpサーバーがあり、それを無視したい場合

/etc/dhclient.conf dhcpオプションをスキップするには、ntp-serversでdhcpクライアントを再構成する必要があります。 @Oliverからの回答を参照してください。

次に、/etc/ntp.confでシステム構成をカスタマイズできます

ある時点でDHCPによってアドバタイズされたが、もうではないntpサーバーがあった場合

システムのntp設定はdhcpクライアントによって上書きされる可能性があり、古くから宣伝されている古いntpサーバーを強制します。このdhcpの上書きは、ntp service restartrebootをまたいで数日間存続できます。

それを終わらせるには、/var/lib/ntp/ntp.conf.dhcpを削除し、すべてのサーバーでntpサービスを再起動する必要があります。

最後の言葉

これはすべて文書化されておらず、予期せぬ動作であり、動作のデバッグは困難です。それが今日私にかなりの頭痛を引き起こしました、それが私がここでこれを文書化している理由です。

14
user5994461

このファイルを削除することもできます:/etc/dhcp/dhclient-exit-hooks.d/ntp、DHCP要求を編集する代わりに。このファイルはntp.conf.dhcp

万一に備えて ntp.conf.dhcpは前回の起動時に作成されました。必ず削除してください。

7
Tuinslak