Пратите DNS упит корак по корак да бисте пронашли прави извор
Наметнута адреса резолвера не одлучује који ће извор резолвер видети. Пратите клијента, прослеђивач и сервер који прима, а затим запишите пут.
Давање адресе резолвера клијенту одређује камо се упити шаљу, а не који ће извор резолвер видети. Усмеравање, прослеђивање и превођење имају сваки свој ред између двају крајева. Приручник за питања о извору прати упит корак по корак и бележи шта је сваки посматрач стварно видео. Редослед је важан јер је тврдња изнета пре посматрања само нагађање у бољем формату.
Запишите распоред пре него што почнете да прикупљате доказе
Четири места могу вам рећи нешто о DNS извору и не кажу сва исто. Језгро клијента зна који би извор користило, прослеђивач зна шта је послао према горе, уређај који преводи зна шта је преписао, а резолвер који прима зна шта је стигло. Запишите до којих од њих заиста можете доћи пре него што било шта прикупите.
| 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 |
Запишите и своје очекивање, укључујући резолвер за који мислите да је у употреби. Раздвојен пут може послати упит сасвим другде, а кеш може одговорити без икакве размене према горе, па претпоставка држана само у сећању неће преживети прво изненађење. Држите наведени дизајн и посматрани пут у одвојеним ступцима исте белешке; када се њих двоје не слажу, пронашли сте питање које вреди следити.
Проверите који је процес упит стварно послао
Почните код клијента: запишите адресу резолвера, назив упита и време, а затим потврдите који га је процес послао. Први ред у наставку именује процес који држи UDP гнездо, и то је провера коју обећава овај наслов. Ако је тај процес помоћник прегледача или окружење за извршавање контејнера уместо системског резолвера, остатак трага описује пут који нико није тражио.
ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53
На домаћину с више интерфејса најпре сазнајте коју изворну адресу језгро одабира за то одредиште пре него што погледате било где другде. То је последња тачка на којој је пут потпуно под вашом контролом, и то је вредност коју ћете упоредити с оним што резолвер извештава. Неусклађеност је сигнал да је нешто између преписало пакет или да су послата два различита упита.
Држите тестна имена интерна, јер интерно име послато јавном резолверу не доказује ништа о унутрашњем путу и објављује име које нисте требали да објавите. Прегледач с укљученим сигурним DNS-ом уопште се неће појавити на том списку гнезда, а та одсутност је сама одговор.
Прослеђивач чини други, одвојени упит
Прослеђивач претвара једну размену у две. Захтев одоздо стиже, а затим прослеђивач шаље свој сопствени упит према горе с адресе коју одабере. Његова конфигурација, а не клијент, одлучује шта горњи резолвер види.
Приручник dnsmasq вреди прочитати управо зато: документује како прослеђивач одабира сервере према горе и везује своју страну слушања, а ништа у том распореду не носи извор клијента према горе. Запис резолвера који приказује адресу мрежног пролаза стога је нормалан, а не доказ квара. Одсутност је једнако лако погрешно прочитати јер погодак у кешу не ствара никакав упит према горе и изгледа идентично упиту који никада није стигао. Прочитајте конфигурацију прослеђивача и стање његовог кеша пре него што изведете било који од тих двају закључака. Два питања, два места за погледати.
Прочитајте извор на резолверу који прима
Једино посматрање које то решава узима се на страни сервера. Све што се закључи из списка интерфејса клијента остаје хипотеза док резолвер не извести шта је стварно стигло.
tcpdump -ni any port 53 and host 10.20.30.53
Снимите на домаћину резолвера, држите снимак кратак и ограничен и похраните га тамо где политика дозвољава. Ако је посматрани извор преведена адреса, следеће је питање који је уређај обавио превод и је ли његова политика она намеравана. Снимак одговара шта је стигло; не објашњава зашто је политика то дозволила. Именујте посматрача и корак у белешци јер се тврдња о приватности за мрежни пролаз односи на тај корак, а не на цео пут.
Запишите налаз као пут, а не као адресу
Запишите клијента, резолвер, сваки прослеђивач, посматрани извор на сваком кораку и политику која га уређује. Такав запис одговара на већину будућих питања без новог снимка. Нацртајте га као ланац јер списак адреса скрива који је корак дао коју.
Приложите цртежу датум, верзију клијента и ревизију конфигурације како би каснији читалац могао рећи важи ли још. Одвојте транспортни извор од свега другога што услуга обрађује јер поглед на адресу мрежног пролаза не говори ништа о томе шта се још чува. Ни локација резолвера не говори ништа о томе који је клијент питао. Управо држање тих тврдњи одвојенима чини закључак обрањивим при прегледу.