„DNS е счупен“ е заключение и не е такова, върху което помагащият може да действа. Полезната част от доклада е формата на отказа: кое име, през кой резолвер, с какъв отговор. Три подробности превръщат оплакването в нещо възпроизводимо и трите са безопасни за споделяне, след като частните части бъдат преименувани. Следващото е минимумът, който един доклад за DNS през VPN трябва да съдържа, преди някой да може да помогне.

Категория на името, а не присъда

Започнете със самото име и го класифицирайте: публично, вътрешно, кратко, напълно квалифицирано или обслужвано от един конкретен суфикс. Вътрешно име, което се проваля, докато публичните имена се решават, сочи към избора на резолвер, а не към достъпността. Ако всички имена се провалят, това сочи към пътя до резолвера, а това е друго разследване с други доказателства. Категорията носи диагнозата, а точният низ може да бъде скрит.

Кажете дали отказът изисква тунелът да е вдигнат, или се случва след изключването му. Име, което се чупи само при активен VPN, сочи към конфигурацията за всяка връзка, а това, което се чупи след изключване, сочи към остатъчно състояние. Докладите обикновено пропускат това и после се чудят защо първото предложение не помага.

Запишете пътя до резолвера

Заявка, изпратена до изрично избран сървър, и обичайното търсене на приложение са различни експерименти. Кажете кое от двете е причинило отказа, защото ръчна заявка към работещ сървър доказва само, че сървърът работи. Командите по-долу разделят системния път от директния въпрос.

resolvectl status --no-pager
getent hosts host.internal
dig +short host.internal @10.20.30.53

Изходът на статуса назовава сървърите за всяка връзка и домейните за маршрутизиране, а това е където се решава разделеният DNS. Извикването на getent следва същия път като приложението, включително реда на nsswitch. Директната заявка заобикаля и двете и тества един сървър изолирано. Съобщете кой от трите се е провалил и кой е успял, и читателят вече не трябва да гадае пътя.

Посочете контролираното сравнение

Променете една променлива и кажете какво се е променило. Публичните имена се решават, а вътрешните се провалят — това е проблем с избора; всяко име изтича — това е проблем с пътя; а частно име, което се решава към публичен адрес, е изтичане към грешния резолвер. Две от тези три нямат нищо общо с това дали тунелът е вдигнат. Доклад, който твърди, че всички заявки са счупени, обикновено съдържа сравнение, което така и не е било направено.

Разделете решаването от доставянето. Когато името се решава, а сайтът все още не работи, DNS етапът е успял и докладът трябва да го каже, защото следващата стъпка е маршрут или слушател, а не резолвер. Това единствено разграничение спестява цял кръг въпроси по-често от всеки откъс от журнал.

Скрийте пространството от имена, запазете връзките

Вътрешните имена могат да бъдат заменени, стига заместителите да запазват структурата. Свържете всеки отделен сървър и суфикс с постоянен етикет и дръжте тази връзка извън споделеното копие. Замяната на всеки вътрешен хост с един и същ заместител унищожава точно доказателството, което докладът изисква, защото читателят вече не вижда, че един суфикс се е решил, а друг не. Същото правило важи за адресите: запазете връзките на префикса и сменете битовете на хоста, ако политиката го изисква.

Изпратете записа по проверения канал и оставете настрана това, което диагнозата никога не изисква. Паролите, частните ключове и несвързаните имена на компании не са част от въпрос за DNS. На читателя му трябват категорията на отказа, пътят до резолвера, точната грешка и едното сравнение, което сте направили.

Подобни статии