Bagaimana cara membaca konten cache DNS lokal?

31

Saya tahu bahwa di Windows saya bisa mengeluarkan ipconfig /displaydnsdan saya melihat konten cache DNS lokal.

Bagaimana saya bisa mendaftar konten cache DNS di Linux?

Saya ingin mendapatkan sebanyak mungkin solusi lintas-distro.

Hanan N.
sumber
4
Sejauh yang saya ketahui, tidak ada cache DNS yang dikelola pada klien di Linux (resolver) kecuali sistem menggunakan caching lokal hanya layanan dns pada klien.
Nikhil Mulley
Anda selalu memiliki /etc/hostsfile yang mungkin berisi entri yang dihasilkan oleh layanan daftar hitam DNS.

Jawaban:

15

Sebelumnya systemd, hampir tidak ada caching DNS tingkat OS

Sebelum systemdtidak ada caching DNS tingkat OS di Linux (dan mungkin sebagian besar Unix), kecuali nscdatau dnsmasqsudah diinstal dan dijalankan.

Bahkan kemudian, fitur caching DNS nscdtelah dinonaktifkan secara default di Debian setidaknya, hanya karena itu rusak .

Adapun dnsmasq, yang caching tampaknya terjadi di RAM secara default.

Serge Stroobandt
sumber
2
Banyak sistem yang saat ini digunakan dnsmasqsecara default sehingga unix.stackexchange.com/q/162973/79839 dapat bermanfaat.
anak ayam
1
Dan hari ini , apa pun yang menggunakan systemdkemungkinan akan systemd-resolvedberjalan secara default yang melakukan cache hasil DNS berdasarkan TTL mereka
Drew
9

nscdadalah Daemon Caching Layanan Nama. Ini adalah utilitas yang digunakan Linux, Solaris, dan lainnya untuk mencari layanan nama cache. Layanan Nama dalam hal ini adalah istilah umum, tidak terbatas pada resolusi host, tetapi juga pengguna, grup, dll.

Saya tidak tahu cara untuk melihat isi cache yang sebenarnya, meskipun Anda dapat menampilkan statistik dengan /usr/sbin/nscd -g.

Paling tidak itu bisa menunjukkan seberapa efisien cache Anda, meskipun tidak persis seperti apa penyelesaiannya.

Anda mungkin memiliki opsi lain jika Anda menggunakan alat caching alternatif, seperti DNSMASQ.

Tim Kennedy
sumber
3

Jika Anda menggunakan nscd, Anda dapat melihat konten (dan mungkin beberapa sampah lainnya), dengan menunjukkan string ASCII dari file cache biner. Di Debian / Ubuntu, file itu /var/cache/nscd/hostsuntuk cache host / DNS, sehingga Anda dapat menjalankan strings /var/cache/nscd/hostsuntuk melihat host di cache.

Perhatikan bahwa ini adalah total hack karena sepertinya tidak ada cara yang tepat untuk memeriksa nscdcache tanpa mendekode format biner.

SteveK
sumber