Saya bertanya-tanya apakah ada cara untuk menanyakan server DNS dan memotong cache (dengan dig
). Seringkali saya mengubah zona pada server DNS dan saya ingin memeriksa apakah itu menyelesaikan dengan benar dari workstation saya. Tetapi karena cache server menyelesaikan permintaan, saya sering mendapatkan yang lama. Memulai ulang atau memuat server bukan sesuatu yang baik.
linux
domain-name-system
dig
Daniel
sumber
sumber
+norecurse
disarankan.+recurse
aktif secara default sesekali akan mengubah cara server DNS menginterpretasikan pertanyaan Anda sepenuhnya.+trace
tetapi waspadai caching. Andrew B menulis penjelasan yang bagus tentang bagaimana cache bisa menipu Anda ketika menunggu nameserver berubah.dig @8.8.8.8 example.com
. catatan muncul jauh lebih cepat di sana.Tidak ada mekanisme dalam protokol DNS untuk memaksa server nama merespons tanpa menggunakan cache-nya. Dig sendiri bukan server nama, itu hanyalah alat yang meneruskan kueri Anda ke server nama mana pun yang telah Anda konfigurasikan, menggunakan permintaan DNS standar. DNS memang menyertakan cara untuk memberi tahu server untuk tidak menggunakan rekursi, tetapi ini bukan yang Anda inginkan. Itu hanya berguna ketika Anda ingin secara langsung meminta server nama yang otoritatif.
Jika Anda ingin menghentikan server nama untuk merespons dari cache, Anda hanya dapat melakukannya dengan mengubah konfigurasi server nama , tetapi jika Anda tidak mengontrol server nama, ini tidak mungkin.
Namun, Anda bisa menggali untuk mem - bypass nameserver yang dikonfigurasi, dan melakukan permintaan rekursifnya sendiri yang kembali ke server root. Untuk melakukan ini, gunakan
+trace
opsi.Dalam praktiknya karena ini hanya akan meminta server otoritatif daripada penyelesai caching lokal Anda, hasilnya tidak akan basi meskipun server tersebut menggunakan caching internal. Manfaat tambahan menggunakan
+trace
adalah Anda bisa melihat semua permintaan terpisah yang dibuat di sepanjang jalan.sumber
+norecurse
hanya memberi tahu server nama untuk mengembalikan informasi apa pun yang dimilikinya (termasuk info yang di-cache, jika ada), jadi itu tidak benar.+trace
akan bekerja karena akan mengikuti rantai rekursi hingga server otoritatif.+norecurse
rekomendasi karena membingungkan masalah.Sesuatu yang penting untuk dicatat di sini, yang saya perhatikan banyak orang tidak pernah memasukkan ketika berbicara tentang
+trace
adalah menggunakan+trace
cara klien penggali akan melakukan pelacakan, bukan server DNS yang ditentukan dalam konfigurasi Anda (/etc/resolv.conf). Jadi, dengan kata lain, klien penggalian Anda akan bekerja seperti server DNS rekursif, jika Anda menanyakannya. Tapi - yang penting, Anda tidak punya cache.Lebih detail - jadi jika Anda sudah meminta
mx
catatan menggunakandig -t mx example.com
dan /etc/resolv.conf Anda adalah 8.8.8.8 maka melakukan apa pun di dalam TTL zona akan mengembalikan hasil yang di-cache. Di satu sisi, jika Anda mencari sesuatu tentang zona Anda sendiri dan bagaimana Google melihatnya, Anda telah semacam meracuni hasil DNS Anda dengan Google untuk TTL Zona Anda. Tidak buruk jika Anda memiliki TTL pendek, agak sampah jika Anda punya 1 jam.Jadi, sementara
+trace
akan membantu Anda untuk melihat apa yang AKAN terlihat jika Anda meminta Google untuk pertama kalinya dan tidak ada entri yang di-cache, itu mungkin memberi Anda ide yang salah bahwa Google akan memberi tahu semua orang sama seperti apa+trace
hasil Anda , yang tidak akan jika Anda bertanya sebelumnya dan memiliki TTL yang panjang, karena akan melayani dari cache sampai TTL berakhir - MAKA itu akan melayani sama dengan apa yang Anda+trace
ungkapkan.Tidak dapat memiliki terlalu banyak detail IMO.
sumber
dig mydomain.com +trace
hanya mengembalikan sayaresolvd
hasil rintisan dari127.0.0.53
. Lihat github.com/systemd/systemd/issues/5897+trace
dig, mulailah jejak menggunakan nameserver yang ditentukan (mis., 8.8.8.8 jika itu yang Anda konfigurasikan) untuk pencarian pertama (zona root), tetapi setelah itu ia menggunakan server nama yang dikembalikan untuk pertanyaan lebih lanjut. Jadi jika server nama yang Anda konfigurasikan tidak berfungsi atau tidak merespons dengan benar permintaan untuk server nama root, Anda dapat mengalami masalah (seperti dalam komentar di atas).Bash ini akan menggali entri DNS example.com dari server nama pertama yang terdaftar:
Berikut ini sama dengan alias untuk .zshrc (dan mungkin .bashrc):
Inilah output untuk / .:
Solusi ini cukup rumit untuk tidak praktis untuk diingat, tetapi cukup sederhana untuk masalah yang tidak dapat diperbaiki.
dig
bukan spesialisasi saya - penyambutan diterima :-)sumber