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
Резолвер хостунда жазып алыңыз, жазууну кыска жана чектелүү кармаңыз жана саясат уруксат берген жерде сактаңыз. Эгер байкалган булак которулган дарек болсо, кийинки суроо которууну кайсы түзмөк жасаганы жана анын саясаты көздөлгөн бе. Жазуу эмненин келгенин жооп кылат; саясаттын эмне үчүн уруксат бергенин түшүндүрбөйт. Жазмада байкоочуну жана кадамды атаңыз, анткени шлюз тууралуу купуялуулук бекемдөөсү ошол кадам тууралуу, бүт жол тууралуу эмес.
Табылганы дарек катары эмес, жол катары жазыңыз
Кардарды, резолверди, ар кандай форвардерди, ар бир кадамдагы байкалган булакты жана аны башкарган саясатты жазыңыз. Мындай жазуу келечектеги суроолордун көбүнө жаңы жазуусуз жооп берет. Аны чынжыр катары тартыңыз, анткени даректер тизмеси кайсы кадам кайсынысын бергенин жашырат.
Сүрөткө күндү, кардардын версиясын жана конфигурациянын ревизиясын тиркеңиз, ошондо кийинки окурман анын дагы күчүндө экенин айта алат. Транспорт булагын кызмат иштеп чыккан бардык нерседен бөлүңүз, анткени шлюз дарегин көрүү дагы эмне сакталары тууралуу эч нерсе айтпайт. Резолвердин жайгашкан жери да кайсы кардар сураганы тууралуу эч нерсе айтпайт. Ушул бекемдөөлөрдү өзүнчө кармоо жыйынтыкты текшерүүдө коргогон болот.