સાચો સ્રોત શોધવા માટે 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
રિઝોલ્વર હોસ્ટ પર કેપ્ચર કરો, કેપ્ચર ટૂંકું અને મર્યાદિત રાખો, અને જ્યાં નીતિ પરવાનગી આપે ત્યાં સંગ્રહ કરો. જો અવલોકન કરેલો સ્રોત અનુવાદિત સરનામું હોય, તો આગળનો પ્રશ્ન એ છે કે કયા ઉપકરણે અનુવાદ કર્યો અને શું તેની નીતિ એ જ છે જે ઇરાદાપૂર્વક હતી. કેપ્ચર જણાવે છે કે શું પહોંચ્યું; તે સમજાવતું નથી કે નીતિએ કેમ પરવાનગી આપી. નોંધમાં નિરીક્ષક અને પગલાનું નામ લો, કારણ કે ગેટવે વિશેનો ગોપનીયતાનો દાવો તે પગલા વિશે છે, આખા માર્ગ વિશે નહીં.
શોધને માર્ગ તરીકે લખો, સરનામા તરીકે નહીં
ક્લાયન્ટ, રિઝોલ્વર, કોઈપણ ફોરવર્ડર, દરેક પગલે અવલોકન કરેલો સ્રોત અને તેને નિયંત્રિત કરતી નીતિ નોંધો. આવો રેકોર્ડ ભાવિના મોટા ભાગના પ્રશ્નોનો જવાબ બીજા કેપ્ચર વગર આપે છે. તેને સાંકળ તરીકે દોરો, કારણ કે સરનામાંની યાદી છુપાવે છે કે કયા પગલાએ કયું ઉત્પન્ન કર્યું.
ચિત્ર સાથે તારીખ, ક્લાયન્ટ આવૃત્તિ અને ગોઠવણીનું સુધારણા જોડો, જેથી પછીનો વાચક કહી શકે કે તે હજી લાગુ છે કે નહીં. વાહનવ્યવહારના સ્રોતને સેવા જે બીજું બધું પ્રક્રિયા કરે છે તેનાથી અલગ રાખો, કારણ કે ગેટવે સરનામું જોવું એ વિશે કંઈ કહેતું નથી કે બીજું શું સંગ્રહિત છે. રિઝોલ્વરનું સ્થાન પણ એ વિશે કંઈ કહેતું નથી કે કયા ક્લાયન્ટે પૂછ્યું. આ દાવાઓને અલગ રાખવું એ જ નિષ્કર્ષને સમીક્ષામાં ટકાઉ બનાવે છે.