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


20

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

システムはDNSサーバーなどを実行していません。重複したものであっても、すべてのDNSクエリが構成済みのネームサーバーに送信されるようにします。

私がオンラインで見つけたもののほとんどは私がするかservice nscd restart、リロードするかするかを教えてくれますnscd -i hosts。ただし、キャッシュをフラッシュするものはありません。

だから私は誰が私がこれをどのように行うかについてのアイデアを持っているのだろうかと思っています。反転する必要があるカーネルに何らかのスイッチがありますか?あらゆる種類の回避策も同様に問題ありません。


キャッシュがフラッシュされたかどうかを確認するために何をしていますか?
ジョン

わかりました。少し複雑です。ポート53でリッスンし、特定の方法でDNSクエリを転送するプログラムがあります。また、「DNSサーバー」としてlocalhostを使用するhttpプロキシもあります。最初のクエリ(たとえばwget -e 'http_proxy=localhost:3128' xxx.com)で、クエリが正しく転送されていることがわかりますが、その後のクエリはすべて転送されていません。十分に長く待つと(キャッシュの有効期限が切れます)、再び機能します。
-zee

私はそれはまだ何とか答えをキャッシュシステムだと仮定と思いますので、また、私は、任意のオブジェクトをキャッシュしないようにプロキシ(イカ)を構成した
ジー

1
nscd -i hosts->は常に機能します。nscdを3回連続で再起動しましたが、キャッシュをクリアしたくありませんでした。
ダニー

nscdは、CentOS 7ミニマルでは問題ではないようです。私は質問がCentOS 6を呼んでいることを知っていますが、タイトルは一般にCentOSを呼んでいます。CentOS 7の方法は何ですか?
duct_tape_coder

回答:


11

DNS要求をキャッシュしているローカルボックスではなく、キャッシュしているユーザー/etc/resolv.confで使用しているDNSリゾルバーです。

これらのキャッシュされたクエリの返信を防ぐには:

  1. リゾルバを変更します。

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

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

    $ sudo /etc/init.d/bind restart


うーん、私はdns_nameservers 127.0.0.1プロキシ設定ファイルで設定しており、リスナーは事前に設定されたネームサーバーにクエリを転送するだけです。
ゼー

4
「bash:/etc/init.d/bind:そのようなファイルまたはディレクトリはありません」そして、OPのメソッドは「nscd.serviceの再起動に失敗しました:ユニットnscd.serviceのロードに失敗しました:そのようなファイルまたはディレクトリはありません。」これらは移動/変更されたと思います。なぜ機能するものだけを残すことができないのか、少なくともエイリアスを維持できないのですか?単にLinuxボックスを使用するには、OSスペシャリストにならなければならないほど悪い。リリースごとにOSを再学習する必要がある場合はさらに悪い。
ジョセフK

3

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


これが私の解決策につながりました。/ etc / hostsの内部には、以前に静的に構成された古いIPアドレスがありました。しばらく前にやったこと。その行を削除する(または新しいIPに置き換える)ことで問題が解決し、ホスト名を使用してマシンをpingできました。
ポール

3

応答をキャッシュするシステムではないことはほぼ確実です-その部分(システムキャッシュ)はnscdデーモンによってのみ処理されます。そのデーモンを再起動(または完全に停止)すると、ネームサービス要求応答のOSキャッシングがリセットまたは削除されます。

ポート53で設定したカスタムリスナーは、水域をかなり汚しますが、2つの可能性を提供します。

  • A)システムはアップストリームでクエリを発行していますが、すぐ上流の名前リゾルバは設定またはレコードのTTLに基づいて応答をキャッシュしています。
  • B)カスタムリスナーは、応答を内部でキャッシュし、キャッシュ時間が切れる前に再度要求されたときに、その応答をシステムに直接返します。

入力に感謝しますが、リスナーはクエリと応答を転送するだけで、結局200行のコードのようなものです。2番目のケースではないはずです。また、リスナーは受け取ったものをすべて出力しているので、実際には何も取得していないはずです:|
-zee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.