centos7とcentos8でDNSキャッシュを消去するには?

centos7とcentos8でDNSキャッシュを消去するには?

私は他のLinuxディストリビューションでDNSキャッシュをフラッシュする方法を書いています。 Ubuntu-server、Ubuntu-desktop、Centos8-desktop、およびCentos7-server(nogui)でこれをサポートしたいと思います。

4つの仮想マシンを別々に構築しました。

Ubuntuの場合は簡単です。私がしなければならないことはsudo systemd-resolve --flush-caches走るだけだ。

しかし、centosディストリビューションではキャッシュを消去する方法を見つけたり、DNSの仕組みを理解できないようです。私がオンラインで読んだことは、centos / rhelに使用したり、ベースにしたりできることdnsmasqですnscdこのリンクしかし、結果は異なります...

centos8マシンで、dnsmasqデプロイ後にサービスが停止して無効になっていることがわかりました。サービスを開始しようとすると、ポート53がすでに使用中であるというエラーが発生します。確認すると、ss -tulpnvirb0インターフェイスがポート53を占めていることがわかりましたlibvirtd。 centos8フローにはkvmがデフォルトでインストールされているようです。とにかく、このサービスが有効になっている間にDNS /キャッシュがどのように機能するのか疑問に思います。 libvirtdが有効なCentosホストからキャッシュを消去する方法は?

dnsmasqcnetos7ボックスには何のサービスも見つかりませんでしたnscd。 DNSキャッシュがどのように機能するのか、少し混乱していますか?

centos8 および centos7 ホストで DNS がキャッシュされる方法を決定する方法。現在のDNSキャッシュを表示するには?キャッシュを消去する方法は?

各centosボックスに2つを構成しましたnameserver/etc/resolve

答え1

短い答えとして、centos7とcentos8では、DNSキャッシュはデフォルトで有効になっていないようです。

わかりました。この投稿私が考えるものを詳しく説明します。 systemd がない場合、Linux システムに DNS キャッシュはありません。nscdサービスまたはという2つの代替オプションがありますdnsmasq。 nscdは非常に不安定で、最新のボックスでは見つからないようです。dnsmasqすべての製品にデフォルトでは含まれていないため、インストールして有効にする必要があります。

centos8ボックスが正しく動作するようにできましたこの投稿。 dnsmasq、libvirt、systemd-resolveがすべてインストールされているようです。しかし、そのうち実際にキャッシュ操作を実行する人はいません。手動で有効にする必要があります。systemctl start systemd-resolved.serviceその後systemctl enable systemd-resolved.servicecentos8ボックスを修理しました。

centos7システムでは、キャッシュを有効にできるものはありません。それで、どのように設定するかを知る必要がありました。 systemd-resolvedは、NetworkManager、systemd、および現在の傾向を標準化された状態に保つように設定できます。

答え2

次のコマンドを試すことができますroot

resolvectl flush-caches

もう一度nscd始めたら。また、ADバインディングがあり、sssd一部のレコードをキャッシュできることを確認してください。

関連情報