DNSキャッシュを強制的に更新する方法

DNSキャッシュを強制的に更新する方法

私はコマンドラインを介して更新する動的DNSサービスを使用しています。私の問題は、IPを更新した後でもLinuxがdyndns-Adressにアクセスしようとしたときにまだ古いIPを使用していることです。

動的DNSアドレスにpingまたはNmapを使用するときにDebianに更新されたDNS情報を要求させるにはどうすればよいですか?

答え1

これは、ローカル DNS リゾルバがどのように機能するかによって異なります。 Debian 11では、次のことを試すことができます(常にルートとして):
/lib/systemd/systemd-resolved --flush-caches

resolvectl flush-caches同じことを行う必要があります。 systemdのNSキャッシュを無効にする別の方法は次のとおりです。
pkill -USR2 systemd-resolved

ネームサービスキャッシュデーモン(nscd)を使用する場合は、次のコマンドを使用する必要があります。
nscd --invalidate=hosts

答え2

これがXYの問題です。

ここで尋ねる質問(クライアントがDNSレコードを再取得する方法)は、ローカルを更新する場合、特権動的DNSサーバーをDNSプロバイダとして使用しない限り、問題(クライアントに現在のDNSレコードがあることを確認する)を解決しません。使用している他のDNSサーバーのキャッシュをフラッシュせずに、コンピュータのキャッシュをキャッシュします。

ローカルコンピュータが変更をすぐに反映するためにDNSレコードが必要な唯一のホストであり、TTLを制御できない場合は、ホストファイルを使用することをお勧めします(またはリゾルバがサポートしている場合は上書き)。

すべてのクライアントのDNSレコードを更新する必要があり、TTLを変更できない場合、DNSサービスはあなたの目的には適していません。他のものを使用するか、自分で設定してください。

関連情報