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 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

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.

Əlaqəli məqalələr