Če odjemalcu daste naslov resolverja, določite, kam se poizvedbe pošiljajo, ne kateri vir bo resolver videl. Usmerjanje, posredovanje in prevajanje dobijo med obema koncema vsak svojo vlogo. Priročnik za vprašanja o viru sledi poizvedbi korak za korakom in zapiše, kaj je vsak opazovalec res videl. Vrstni red je pomemben, ker je trditev pred opazovanjem le ugibanje v boljši obliki.

Zapišite ureditev, preden začnete zbirati dokaze

Štiri mesta vam lahko povedo nekaj o viru DNS in vsa ne povedo istega. Jedro odjemalca ve, kateri vir bi uporabilo, posredovalnik ve, kaj je poslal navzgor, naprava, ki prevaja, ve, kaj je prepisala, in prejemni resolver ve, kaj je prispelo. Zapišite, do katerih od teh res pridete, preden kar koli zberete.

Observation pointWhat it can proveWhat it cannot proveHow to read it
client kernelwhich source address it would use for that resolveranything a device in between rewroteip route get against the resolver address
forwarderthat it sent an upstream query, and from which sourcewhat the client originally asked forits own log and its cache state
translating devicethat a source was rewritten, and to whatwhether the query was legitimateNAT policy and its counters
receiving resolverthe address that actually arrivedwhich client behind that address askeda scoped capture on port 53

Zapišite tudi svoje pričakovanje, vključno z resolverjem, za katerega menite, da je v uporabi. Razdeljena pot lahko pošlje poizvedbo povsem drugam, predpomnilnik pa lahko odgovori brez kakršne koli izmenjave navzgor, zato predpostavka, shranjena le v spominu, ne bo preživela prvega presenečenja. Imejte navedeno zasnovo in opaženo pot v ločenih stolpcih istega zapisa; ko se ta dva ne ujemata, ste našli vprašanje, ki je vredno zasledovanja.

Preverite, kateri proces je poizvedbo res poslal

Začnite pri odjemalcu: zapišite naslov resolverja, ime poizvedbe in čas, nato potrdite, kateri proces jo je poslal. Prva vrstica spodaj navaja proces, ki ima vtičnico UDP, in to je preverjanje, ki ga obljublja ta naslov. Če je ta proces pomočnik brskalnika ali izvajalno okolje vsebnika namesto sistemskega resolverja, preostanek sledi opisuje pot, po kateri ni nihče vprašal.

ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53

Na gostitelju z več vmesniki najprej ugotovite, kateri izvorni naslov jedro izbere za ta cilj, preden pogledate drugam. To je zadnja točka, kjer je pot v celoti pod vašim nadzorom, in to je vrednost, ki jo boste primerjali s tem, kar poroča resolver. Neujemanje je znak, da je nekaj vmes prepisalo paket ali da sta bili poslani dve različni poizvedbi.

Imejte preskusna imena interna, ker interno ime, poslano javnemu resolverju, ne dokaže ničesar o notranji poti in objavi ime, ki ga ni bilo treba objaviti. Brskalnik z vklopljenim varnim DNS se v tem seznamu vtičnic sploh ne bo pojavil, in ta odsotnost je sama odgovor.

Posredovalnik ustvari drugo, ločeno poizvedbo

Posredovalnik spremeni eno izmenjavo v dve. Zahteva od spodaj prispe, nato pa posredovalnik pošlje svojo poizvedbo navzgor z naslova, ki ga izbere. Njegova konfiguracija, ne odjemalec, odloča, kaj vidi zgornji resolver.

Priročnik dnsmasq je vreden branja prav zato: dokumentira, kako posredovalnik izbira strežnike navzgor in veže svojo stran poslušanja, in nič v tej ureditvi ne prenaša vira odjemalca navzgor. Dnevnik resolverja, ki kaže naslov prehoda, je zato običajen in ne dokaz napake. Odsotnost je prav tako lahko napačno brati, ker zadetek v predpomnilniku ne ustvari nobene poizvedbe navzgor in je videti enako kot poizvedba, ki ni nikoli prispela. Preberite konfiguracijo posredovalnika in stanje njegovega predpomnilnika, preden potegnete katero od obeh sklepov. Dve vprašanji, dve mesti za pogled.

Preberite vir na prejemnem resolverju

Edino opazovanje, ki to razreši, se opravi na strežniški strani. Vse, kar sklepate iz seznama vmesnikov odjemalca, ostane hipoteza, dokler resolver ne sporoči, kaj je res prispelo.

tcpdump -ni any port 53 and host 10.20.30.53

Zajemite na gostitelju resolverja, naj bo zajem kratek in omejen, shranite pa ga tam, kjer politika dovoljuje. Če je opaženi vir preveden naslov, je naslednje vprašanje, katera naprava je opravila prevod in ali je njena politika predvidena. Zajem odgovori, kaj je prispelo; ne pojasni, zakaj je politika to dovolila. V zapisu navedite opazovalca in korak, ker se trditev o zasebnosti glede prehoda nanaša na ta korak in ne na celotno pot.

Zapišite ugotovitev kot pot, ne kot naslov

Zapišite odjemalca, resolver, morebitnega posredovalnika, opaženi vir na vsakem koraku in politiko, ki ga ureja. Tak zapis odgovori na večino prihodnjih vprašanj brez novega zajema. Narišite ga kot verigo, ker seznam naslovov skriva, kateri korak je dal katerega.

Prilepite k risbi datum, različico odjemalca in revizijo konfiguracije, da bo poznejši bralec lahko presodil, ali še velja. Ločite transportni vir od vsega drugega, kar storitev obdeluje, ker pogled na naslov prehoda ne pove ničesar o tem, kaj drugega se hrani. Tudi lokacija resolverja ne pove ničesar o tem, kateri odjemalec je vprašal. Prav ločevanje teh trditev naredi sklep obranljiv pri pregledu.

Sorodni članki