CentOSでローカルDNSキャッシュをフラッシュする方法

CentOSでローカルDNSキャッシュをフラッシュする方法

私はCentOS 6でローカルDNSキャッシュをフラッシュする方法を探しています。

システムはDNSサーバーなどを実行していないので、すべてのDNSクエリを構成されたネームサーバーに送信したいと思います。重複クエリも同様です。

service nscd restart私がオンラインで見つけたもののほとんどは、何をすべきか、リロードする必要があるか、何をすべきかを教えてくれますnscd -i hosts。しかし、誰もキャッシュをフラッシュしないようです。

それで、私がどのようにこれを行うことができるかを知っている人がいるのかと思いました。カーネルで一種のスイッチをオンにする必要がありますか?どちらも解決します。

答え1

DNS 要求のキャッシュはローカルシステムではなく、/etc/resolv.confキャッシュで使用する DNS リゾルバーです。

キャッシュされたクエリ応答を受け取らないようにするには、次の手順を実行します。

  1. パーサーを変更します。

    $ dig @<resolve-ip> www.google.com

  2. DNS サーバーに接続できる場合、リゾルバーは DNS キャッシュをフラッシュします。

    $ sudo /etc/init.d/bind restart

答え2

クライアントコンピュータでDNSキャッシュをフラッシュまたはフラッシュした後も機能しない場合は、サーバーまたはクライアントコンピュータがNISサーバーにバインドされていることを確認し(例)、「hosts:files nis dns」を変更する必要があります。 /etc/nsswitch.conf ファイルの "hosts: files dns nis" エントリの NIS マスターサーバーホストリストの IP アドレスを変更します。

答え3

私はこれがシステムキャッシュレスポンスではないとほとんど確信しています。その部分(システムキャッシュ)はnscdデーモンによってのみ処理されます。デーモンを再起動(または完全に停止)すると、ネームサービス要求に対するオペレーティングシステムの応答キャッシュがリセットまたは消去されます。

ポート53に設定したカスタムリスナーが状況をかなり混乱させますが、2つの可能性を提示します。

  • A)システムはクエリアップストリームを発行しますが、即時アップストリーム名リゾルバは設定または記録されたTTLに基づいて応答をキャッシュします。
  • B) カスタムリスナーは応答を内部的にキャッシュし、キャッシュ時間が経過する前に再要求するとシステムに直接返します。

答え4

CentOS 7を使用している人の場合:

systemctl restart NetworkManager

関連情報