Ikut pertanyaan DNS langkah demi langkah untuk mencari sumber sebenar
Alamat resolver yang didorong tidak menentukan sumber yang dilihat oleh resolver. Jejaki klien, penerus dan pelayan penerima, kemudian catat laluannya.
Memberi klien alamat resolver menetapkan ke mana pertanyaan dihantar, bukan sumber yang akan dilihat oleh resolver. Penghalaan, penerusan dan penterjemahan masing-masing mendapat giliran antara kedua-dua hujung. Buku kerja untuk soalan sumber mengikut pertanyaan langkah demi langkah dan mencatat apa yang benar-benar dilihat oleh setiap pemerhati. Urutan penting, kerana dakwaan yang dibuat sebelum pemerhatian hanyalah tekaan dengan format yang lebih baik.
Catat susunannya sebelum mengumpul bukti
Empat tempat boleh memberitahu anda sesuatu tentang sumber DNS, dan tidak semuanya mengatakan perkara yang sama. Kernel klien tahu sumber mana yang akan digunakannya, penerus tahu apa yang dihantarnya ke hulu, peranti penterjemah tahu apa yang ditulis semulanya, dan resolver penerima tahu apa yang tiba. Catat mana antaranya yang benar-benar boleh anda capai sebelum mengumpul apa-apa.
| Observation point | What it can prove | What it cannot prove | How to read it |
|---|---|---|---|
| client kernel | which source address it would use for that resolver | anything a device in between rewrote | ip route get against the resolver address |
| forwarder | that it sent an upstream query, and from which source | what the client originally asked for | its own log and its cache state |
| translating device | that a source was rewritten, and to what | whether the query was legitimate | NAT policy and its counters |
| receiving resolver | the address that actually arrived | which client behind that address asked | a scoped capture on port 53 |
Catat juga jangkaan anda, termasuk resolver yang anda percaya sedang digunakan. Laluan terbelah boleh menghantar pertanyaan ke tempat yang sama sekali lain, dan cache boleh menjawab tanpa sebarang pertukaran ke hulu, jadi andaian yang hanya disimpan dalam ingatan tidak akan bertahan dengan kejutan pertama. Simpan reka bentuk yang dinyatakan dan laluan yang diperhatikan dalam lajur berasingan pada nota yang sama; apabila keduanya tidak bersetuju, anda telah menemui soalan yang wajar dikejar.
Periksa proses mana yang benar-benar menghantar pertanyaan itu
Mulakan dengan klien: catat alamat resolver, nama pertanyaan dan masa, kemudian sahkan proses mana yang menghantarnya. Baris pertama di bawah menamakan proses yang memegang soket UDP, dan itulah pemeriksaan yang dijanjikan oleh tajuk ini. Jika proses itu ialah pembantu pelayar atau runtime kontena dan bukannya resolver sistem, seluruh jejak yang tinggal menggambarkan laluan yang tidak diminta oleh sesiapa.
ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53
Pada hos dengan beberapa antara muka, ketahui alamat sumber mana yang dipilih kernel untuk destinasi itu sebelum anda melihat ke tempat lain. Itulah titik terakhir apabila laluan sepenuhnya dalam kawalan anda, dan itulah nilai yang akan anda bandingkan dengan apa yang dilaporkan oleh resolver. Ketidakpadanan ialah tanda bahawa sesuatu di antaranya telah menulis semula paket, atau bahawa dua pertanyaan berbeza telah dihantar.
Simpan nama ujian sebagai dalaman, kerana nama dalaman yang dihantar kepada resolver awam tidak membuktikan apa-apa tentang laluan dalaman dan menerbitkan nama yang anda tidak perlu terbitkan. Pelayar dengan DNS selamat diaktifkan tidak akan muncul sama sekali dalam senarai soket itu, dan ketiadaan itu sendiri adalah jawapannya.
Penerus membuat pertanyaan kedua yang berasingan
Penerus mengubah satu pertukaran menjadi dua. Permintaan hiliran tiba, dan kemudian penerus menghantar pertanyaannya sendiri ke hulu dari alamat yang dipilihnya. Konfigurasinya, bukan klien, menentukan apa yang dilihat oleh resolver hulu.
manual dnsmasq wajar dibaca atas sebab itu: ia mendokumenkan cara penerus memilih pelayan hulu dan mengikat bahagian pendengarannya, dan tiada apa dalam susunan itu yang membawa sumber klien ke hulu. Oleh itu log resolver yang menunjukkan alamat gerbang adalah normal, bukan bukti kerosakan. Ketiadaan juga sama mudah disalah baca, kerana tembakan cache tidak menghasilkan sebarang pertanyaan hulu dan kelihatan sama seperti pertanyaan yang tidak pernah tiba. Baca konfigurasi penerus dan keadaan cachenya sebelum membuat mana-mana satu daripada dua kesimpulan itu. Dua soalan, dua tempat untuk melihat.
Baca sumber di resolver penerima
Satu-satunya pemerhatian yang menyelesaikan perkara ini diambil di sebelah pelayan. Segala yang disimpulkan daripada senarai antara muka klien kekal sebagai hipotesis sehingga resolver melaporkan apa yang benar-benar tiba.
tcpdump -ni any port 53 and host 10.20.30.53
Tangkap pada hos resolver, pastikan tangkapan pendek dan terbatas, dan simpannya di tempat yang dibenarkan oleh dasar. Jika sumber yang diperhatikan ialah alamat yang diterjemahkan, soalan seterusnya ialah peranti mana yang melakukan penterjemahan itu dan sama ada dasarnya ialah yang dimaksudkan. Tangkapan menjawab apa yang tiba; ia tidak menjelaskan mengapa dasar itu membenarkannya. Namakan pemerhati dan langkah dalam nota, kerana dakwaan privasi tentang gerbang ialah dakwaan tentang langkah itu dan bukan tentang seluruh laluan.
Tulis penemuan sebagai laluan, bukan sebagai alamat
Catat klien, resolver, mana-mana penerus, sumber yang diperhatikan pada setiap langkah dan dasar yang mengawalnya. Rekod sedemikian menjawab kebanyakan soalan masa depan tanpa tangkapan lain. Lukiskannya sebagai rantai, kerana senarai alamat menyembunyikan langkah mana yang menghasilkan yang mana.
Lampirkan tarikh, versi klien dan semakan konfigurasi pada lukisan, supaya pembaca kemudian dapat mengatakan sama ada ia masih terpakai. Pisahkan sumber pengangkutan daripada segala yang lain yang diproses oleh perkhidmatan, kerana melihat alamat gerbang tidak mengatakan apa-apa tentang apa lagi yang disimpan. Lokasi resolver juga tidak mengatakan apa-apa tentang klien mana yang bertanya. Justeru memisahkan dakwaan itu yang menjadikan kesimpulannya boleh dipertahankan semasa semakan.