私は他の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 -tulpn
virb0インターフェイスがポート53を占めていることがわかりましたlibvirtd
。 centos8フローにはkvmがデフォルトでインストールされているようです。とにかく、このサービスが有効になっている間にDNS /キャッシュがどのように機能するのか疑問に思います。 libvirtdが有効なCentosホストからキャッシュを消去する方法は?
dnsmasq
cnetos7ボックスには何のサービスも見つかりませんでした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.service
centos8ボックスを修理しました。
centos7システムでは、キャッシュを有効にできるものはありません。それで、どのように設定するかを知る必要がありました。 systemd-resolvedは、NetworkManager、systemd、および現在の傾向を標準化された状態に保つように設定できます。
答え2
次のコマンドを試すことができますroot
。
resolvectl flush-caches
もう一度nscd
始めたら。また、ADバインディングがあり、sssd
一部のレコードをキャッシュできることを確認してください。