Трафік IPv6 у абыход VPN: знайдзіце маршрут уцечкі
IPv4 праз тунель і IPv6 наўпрост — гэта прагал у маршрутызацыі, а не загадка. Праверце запыт вядомага сямейства, прачытайце абраны маршрут і затым зачыніце прагал паміж сямействамі.
Дзве тэставыя старонкі супярэчаць адна адной: адна паведамляе адрас правайдэра праз тунель, другая — вашу хатнюю прэфікс, і відавочная выснова ў тым, што 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 ахоплівае ўсё.