Защо етикет за държава от DNS не доказва изтичане през VPN
Тест съпоставя адрес на държава; това казва малко за маршрута. Прочетете резолвера, веригата за препращане и политиката, преди да променяте каквото и да е.
Чуждо изглеждащи адреси на резолвери се появяват постоянно в резултатите от DNS тестове и изводът, до който хората стигат, винаги е един и същ: заявките сигурно са избягали от тунела. Понякога наистина е така. По-често докладът описва кой рекурсивен сървис е отговорил и къде според някаква база данни се намира този адрес, а това е твърдение за инфраструктурата, не за вашите пакети. Отделянето на наблюдението от извода изисква три факта: кой е отговорил, как е пътувало името и каква политика всъщност сте настроили.
Прочетете какво всъщност е наблюдавал тестът
Повечето тестови страници работят по един и същ начин: карат клиента да резолвне уникално име на хост и после проверяват кой резолвер го е изтеглил, или просто връщат адреса на резолвера, който клиентът съобщава. Това идентифицира рекурсивен сървис и, ако заявката е носела информация за клиентска подмрежа, грубо мрежово местоположение. То не доказва, че заявката е напуснала устройството извън тунела, и със сигурност не доказва, че същият път е използван за всяко име. Едно наблюдение на едно търсене се обобщава в твърдение за целия трафик.
Тест, който показва адреса на резолвера, е по-полезен от бадж за държава, защото адресът може да се сравни със списъка с резолвери, който клиентът реално е получил.
Anycast и препращането обясняват повечето изненади
Големите публични резолвери обявяват един и същ адрес от много места и мрежата насочва всяка заявка към сайта, който е най-близо по маршрут. После база данни за геолокация съпоставя този адрес на едно място, което може да е корпоративен адрес за регистрация на друг континент или център за данни, който не е този, който отговаря. RFC 4786 разглежда оперативната практика за anycast услуги и трудността такъв адрес да се свърже с едно физическо място. Картата е опростяване на маршрутно решение и опростява в посоката, която дава тревожни резултати.
Препращането добавя втори слой. Локален stub резолвер, рутер или резолвер на доставчика може да предава заявки към услуга по-нагоре и името, което се появява в теста, отразява последния оператор във веригата, а не първия. Разширенията за клиентска подмрежа могат да направят отговора отгоре съобразен с вашата мрежа, като същевременно показват местоположение, което изглежда като място, където никога не сте били.
Затова настроен резолвер може да е правилен и пак да дава чуждо изглеждащ резултат, а резолвер в собствената ви държава може да е грешният, защото принадлежи на страна, която не сте избрали.
Кой получи името и по кой маршрут
Два въпроса отговарят на практическата част: кой сървър използва клиентът и дали до този сървър се стига през тунела. Сравнете списъка с резолвери с адреса в резултата от теста, преди да правите изводи за маршрутизацията, после проверете, че заявката към този адрес излиза през интерфейса на тунела. Ако двата адреса се различават, интересната находка е, че нещо е пренаписало или заобиколило желания резолвер, което заслужава по-внимателен поглед от името на държавата.
resolvectl query example.com
resolvectl status | grep -A3 'DNS Servers'
dig +short TXT whoami.akamai.net
Първата команда показва кой сървър е отговорил за дадено име, втората показва настроения списък и обхвата му, а третата съобщава адреса на резолвера, както го вижда публична услуга. Когато и трите съвпадат, политиката прави това, за което е настроена, каквото и да казва етикетът за държава.
Сравнете с избраната от вас политика
VPN, който налага резолвер, браузър, настроен да използва собствен шифрован DNS, и операционна система, която предпочита настройките на един интерфейс могат да бъдат поотделно правилни, но заедно да си противоречат. Съвременните браузъри могат да изпращат заявки по шифрован транспорт до доставчик, избран в браузъра, което умишлено заобикаля списъка с резолвери на системата. Това не е изтичане в смисъл на счупен тунел; това е политика, избрана някъде другаде, и намирането къде е избрана е истинската задача.
Работните устройства добавят правила за конкретни домейни: вътрешните имена трябва да отиват към резолвера на организацията, докато всичко останало следва настройката по подразбиране. Подмяната на тази уредба, защото тестова страница показа неочаквана държава, е начинът, по който вътрешните имена спрат да се резолвват за цял екип.
Пазете тестовете тесни и безопасни
Заявка към публична тестова услуга за вътрешно име на хост разкрива името пред страна, която няма работа с него, а отговорът не ви казва нищо, което локалното четене на списъка с резолвери не би казало.
Използвайте вместо това имена, които разкриват инфраструктура, записвайте адреса на резолвера, обхвата и използвания интерфейс и сравнявайте този запис с документираното намерение. Етикетът на картата е контекст за разговор, а не резултат „мина или не“, и третирането му като присъда създава промени в конфигурацията вместо диагностика.