Две тестови страници си противоречат: едната съобщава адреса на доставчика през тунела, втората — вашия домашен префикс, и очевидният извод е, че VPN изтича. Този извод пропуска стъпка, защото двата доклада са задействали две различни решения за маршрутизация и само едно от тях е трябвало да влезе в тунела. Пропускът обикновено е реален и е проблем с покритието, а не счупен тунел. Три въпроса го решават: кой поток действително е излязъл, кой маршрут е избрало ядрото за него и какво поведение е имал предвид клиентът.

Работете в този ред. Отговарянето им извън реда поражда дълъг спор дали клиентът е дефектен, когато истинският отговор е, че никога не е бил инсталиран IPv6 маршрут.

Кой поток действително е излязъл и през кой адаптер

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

Изпращайте по една заявка на семейство, вместо да зареждате страница и да четете резултата ѝ. Една страница може да смесва v6 и v4 ресурси, фонов процес може да се държи различно от раздела пред вас, а кеширан отговор може да надживее промяната в мрежата, която се опитвате да тествате. Фиксирайте дестинацията, която тествате, и я отбележете, за да измерва повторният пуск същото.

Четене на маршрута, който ядрото е избрало

Таблицата с маршрути отговаря на въпроса, на който браузърът не може. Попитайте системата накъде ще отиде конкретна дестинация и включете правилата за политика заедно с видимия по подразбиране, защото всяко от тях може да го отмени:

ip -6 route get 2606:4700:4700::1111
ip -6 rule show
ip -6 route show table all

По-конкретният префикс е обичайната причина една дестинация да стои извън тунела, докато всичко останало остава вътре, а правило за политика може да направи същото с по-висок приоритет от всеки маршрут. Четете и метриката, защото два записа за един и същ префикс се решават по метрика, а не по реда им на екрана. В Windows еквивалентният списък е Get-NetRoute -AddressFamily IPv6, сортиран по метрика, за да съответства на реда на решението. Правило, което изглежда правилно в таблицата, все още може да загуби от правило за политика с по-малък номер, затова списъкът с правила принадлежи в същия дъх като списъка с маршрути.

Откъде идва IPv6 политиката на клиента

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

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

Тясно наблюдение, когато таблицата не е съгласна

Когато търсенето на маршрут е двусмислено, едно наблюдение на интерфейс на хоста може да го реши, но само ако е насочено към въпроса. Трафикът към самата крайна точка на VPN ще пресече физическия адаптер по проект; важно е дали потокът на приложението, адресиран съвсем другаде, също се появява там. Ограничете прихващането до дестинацията, която тествате, вместо да събирате всичко.

Широкото прихващане разкрива много повече личен трафик, отколкото изисква един въпрос. То отговаря и по-малко ясно, защото потокът, който ви интересува, пристига погребан в поток от несвързани връзки. Ограничете до тестваната дестинация, спрете след шепа пакети и изтрийте прихващането.

Три начина да затворите пропуска

Пренесете семейството през тунела, блокирайте го в клиента, когато тунелът не може да го понесе, или запишете умишлено изключение със собственик и дата за преглед. Всяко е защитимо и единственото незащитимо е изборът да остане подразбиран, защото подразбиращият се избор е това, което изтичането всъщност представлява. Ако тунелът изобщо няма v6 изход, отказът на v6 в клиента е едновременно честен и проверим. Важното е изборът да е записан там, където следващият човек ще го намери, а не изведен от поведението след шест месеца.

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

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