DNS sorğusunu addım-addım izləyərək əsl mənbəni tapın
Məcburi ötürülən resolver ünvanı resolverin hansı mənbəni görəcəyini müəyyən etmir. Müştərini, yönləndiricini və qəbul edən serveri izləyin, sonra yolu yazın.
Müştəriyə resolver ünvanı vermək sorğuların hara göndərildiyini müəyyən edir, resolverin hansı mənbəni görəcəyini deyil. Marşrutlaşdırma, yönləndirmə və tərcümə iki uç arasında növbə ilə işə düşür. Mənbə sualları üçün təlimat sorğunu addım-addım izləyir və hər müşahidəçinin həqiqətən nə gördüyünü qeyd edir. Sıra vacibdir, çünki müşahidədən əvvəl deyilən iddia yalnız daha yaxşı formatlanmış təxmindir.
Sübut toplamadan əvvəl düzümü yazın
Dörd yer DNS mənbəyi haqqında sizə nəsə deyə bilər və hamısı eyni şeyi demir. Müştəri nüvəsi hansı mənbədən istifadə edəcəyini bilir, yönləndirici yuxarı nə göndərdiyini bilir, tərcümə edən cihaz nəyi yenidən yazdığını bilir, qəbul edən resolver isə nəyin gəldiyini bilir. Nəsə toplamadan əvvəl bunlardan hansılarına həqiqətən çata bildiyinizi yazın.
| 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 |
Gözləntinizi də yazın, istifadədə olduğunu düşündüyünüz resolver daxil olmaqla. Bölünmüş marşrut sorğunu tamamilə başqa yerə göndərə bilər və keş yuxarı heç bir mübadilə olmadan cavab verə bilər, ona görə yalnız yaddaşda saxlanılan fərziyyə ilk təəccübü keçməyəcək. Bildirilən dizaynı və müşahidə olunan yolu eyni qeydin ayrı sütunlarında saxlayın; ikisi uyğun gəlməyəndə arxasınca getməyə dəyər sualı tapmısınız.
Sorğunu həqiqətən hansı prosesin göndərdiyini yoxlayın
Müştəridən başlayın: resolver ünvanını, sorğu adını və vaxtı qeyd edin, sonra hansı prosesin göndərdiyini təsdiqləyin. Aşağıdakı birinci sətir UDP soketini saxlayan prosesi adlandırır və bu, başlığın vəd etdiyi yoxlamadır. Əgər həmin proses sistem resolveri yerinə brauzer köməkçisi və ya konteyner icra mühitidirsə, izin qalan hissəsi heç kimin istəmədiyi yolu təsvir edir.
ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53
Bir neçə interfeysi olan hostda başqa yerə baxmadan əvvəl nüvənin həmin təyinat üçün hansı mənbə ünvanını seçdiyini öyrənin. Bu, yolun tam nəzarətinizdə olduğu son nöqtədir və resolverin bildirdiyi ilə müqayisə edəcəyiniz dəyərdir. Uyğunsuzluq arada nəyinsə paketi yenidən yazdığının və ya iki fərqli sorğunun göndərildiyinin əlamətidir.
Test adlarını daxili saxlayın, çünki açıq resolverə göndərilən daxili ad daxili yol haqqında heç nə sübut etmir və yayımlamağa ehtiyac olmayan adı yayımlayır. Təhlükəsiz DNS aktiv olan brauzer o soket siyahısında heç görünməyəcək və bu yoxluq özü cavabdır.
Yönləndirici ikinci, ayrı bir sorğu edir
Yönləndirici bir mübadiləni ikiyə çevirir. Aşağıdan gələn sorğu çatır, sonra yönləndirici öz sorğusunu seçdiyi ünvandan yuxarı göndərir. Yuxarı resolverin nə gördüyünü müştəri deyil, onun konfiqurasiyası müəyyən edir.
dnsmasq təlimatı məhz bu səbəbdən oxumağa dəyər: yönləndiricinin yuxarı serverləri necə seçdiyini və dinləmə tərəfini necə bağladığını sənədləşdirir və bu düzümdə heç nə müştəri mənbəyini yuxarı daşımır. Buna görə şlüz ünvanı göstərən resolver jurnalı normaldır, nasazlıq sübutu deyil. Yoxluğu da eyni asanlıqla səhv oxumaq olar, çünki keş vuruşu yuxarı heç bir sorğu yaratmır və heç vaxt gəlməmiş sorğu ilə tam eyni görünür. İki nəticədən birini çıxarmazdan əvvəl yönləndiricinin konfiqurasiyasını və keş vəziyyətini oxuyun. İki sual, baxmaq üçün iki yer.
Mənbəni qəbul edən resolverdə oxuyun
Bunu həll edən yeganə müşahidə server tərəfində alınır. Müştərinin interfeys siyahısından çıxarılan hər şey resolver həqiqətən nəyin gəldiyini bildirənə qədər fərziyyə olaraq qalır.
tcpdump -ni any port 53 and host 10.20.30.53
Resolver hostunda tutun, tutmanı qısa və məhdud saxlayın və siyasətin icazə verdiyi yerdə saxlayın. Müşahidə olunan mənbə tərcümə edilmiş ünvandırsa, növbəti sual tərcüməni hansı cihazın etdiyi və onun siyasətinin nəzərdə tutulan olub-olmadığıdır. Tutma nəyin gəldiyini cavablandırır; siyasətin niyə icazə verdiyini izah etmir. Qeyddə müşahidəçini və addımı adlandırın, çünki şlüz barədə məxfilik iddiası həmin addım barədədir, bütün yol barədə deyil.
Tapıntını ünvan kimi deyil, yol kimi yazın
Müştərini, resolveri, hər hansı yönləndiricini, hər addımda müşahidə olunan mənbəyi və onu idarə edən siyasəti qeyd edin. Belə qeyd gələcək sualların çoxuna yeni tutma olmadan cavab verir. Onu zəncir kimi çəkin, çünki ünvan siyahısı hansı addımın hansını yaratdığını gizlədir.
Çizimə tarixi, müştəri versiyasını və konfiqurasiya revizyonunu əlavə edin ki, sonrakı oxucu hələ də qüvvədə olub-olmadığını deyə bilsin. Daşıma mənbəyini xidmətin emal etdiyi hər şeydən ayırın, çünki şlüz ünvanını görmək başqa nəyin saxlandığı barədə heç nə demir. Resolverin yeri də hansı müştərinin soruşduğu barədə heç nə demir. Bu iddiaları ayrı saxlamaq nəticəni yoxlamada müdafiə oluna bilən edir.