Il-VPN mixgħul, l-interfaċċa web privata twieġeb fuq IPv6 minn laptop, u t-telefon Android għadu jiftaħ l-istess paġna fuq IPv4 jew jirrifjuta li jgħabbiha għal kollox. Ir-rekord AAAA jeżisti. It-tunnel jirrapporta indirizz IPv6. Xejn fil-klijent ma jidher ħażin. Erba' deċiżjonijiet separati jiddeterminaw ir-riżultat: liema solver wieġeb, x'iddikjara l-VpnService lil Android, liema familja ta' indirizzi l-browser kien lest jipprova, u jekk pakkett jistax jagħmel il-vjaġġ 'l hemm u 'l hawn. Ħadem fuqhom f'dan l-ordni minflok ma żżid rotta default u tittama li s-sintomu jiċċaqlaq.

Pass 1: ipprova liema solver wieġeb il-mistoqsija AAAA

Android m'għandux mogħdija DNS waħda. VPN jista' jimbotta server DNS għan-netwerk tiegħu, is-sistema tista' tuża Private DNS għal ismijiet tal-host li tqis kwalifikati, u Chrome jista' jħaddem is-solver encrypted tiegħu stess minn chrome://settings/security. Fuq telefon fejn it-tunnel jimbotta 10.61.0.1 iżda Private DNS jindika lil fornitur pubbliku, l-isem fi ħdan iż-żona privata tiegħek mhuwiex solvut mill-magna li tippossjedi ż-żona. Il-browser jirċievi tweġiba minn solver mingħajr awtorità fuq dak l-isem u jqisha bħala nieqsa, u t-test tal-iżball qatt ma jsemmi DNS.

Staqsi lis-solver tat-tunnel direttament qabel ma tibdel xejn ieħor. L-ewwel żewġ kmandi juru liema servers DNS Android waħħal man-netwerk attiv u jekk Private DNS huwiex f'mod awtomatiku jew strett; it-tielet jiġi eżegwit minn kwalunkwe klijent ġewwa t-tunnel, mhux mit-telefon.

adb shell dumpsys connectivity | grep -A3 "DnsAddresses"
adb shell settings get global private_dns_mode
nslookup -type=AAAA nas.lan 10.61.0.1

Pass 2: aqra x'iddikjara l-VpnService fil-fatt

In-naħa Android hija espliċita u mhux dedotta. VpnService.Builder iżid indirizzi b'addAddress, rotot b'addRoute, servers DNS b'addDnsServer, u jista' jillimita t-tunnel kollu għal familja waħda ta' indirizzi b'allowFamily. Builder li sejjaħ allowFamily(AF_INET) u mbagħad żied rotta IPv6 qal lis-sistema żewġ affarijiet kontradittorji, u r-restrizzjoni tal-familja hija dik li s-sistema żżomm. Rotta li tkopri fd00:61::/64 flimkien ma' indirizz tal-interfaċċa fi prefiss ieħor tfalli għal raġuni simili: l-indirizz jeżisti, iżda mhuwiex on-link għal dik ir-rotta.

Aqra d-dikjarazzjoni minflok tafda l-iswiċċ fl-app. dumpsys netd jipprintja l-indirizzi u r-rotot imwaħħla mal-interfaċċa tun, u LinkProperties għal kull netwerk ġewwa dumpsys connectivity juri l-lista DNS ħdejn il-familji li n-netwerk jallega.

adb shell ip -6 addr show tun0
adb shell ip -6 route show table all | grep tun0
adb shell dumpsys connectivity | grep -E "LinkAddresses|Routes"

Jekk l-interfaċċa tun għandha indirizz IPv6 iżda l-ebda rotta ma taqbel mal-prefiss tas-servizz, il-kunsinna IPv6 diġà hija miksura qabel ma jidħol browser. Dan huwa bug differenti minn browser li jirrifjuta li jipprova, u jeħtieġ tiswija differenti.

Pass 3: il-browser jiddeċiedi jekk jipprovax IPv6 xejn

Chromium ma jużax kull rekord AAAA li jirċievi. Is-solver tal-hosts tiegħu jġorr verifiki tal-aċċessibilità IPv6 u filtrazzjoni tal-kandidati li jistgħu jwarrbu jew ibaxxu l-prijorità tal-IPv6 meta n-netwerk jiġi ġġudikat li mhuwiex kapaċi jġorrha, u is-sors tas-solver juri dik il-prova flimkien mal-kundizzjonijiet madwarha. Il-loġika tiddependi mill-verżjoni u l-flags, u huwa eżattament għalhekk li żewġ telefons fuq l-istess tunnel jistgħu jġibu ruħhom b'mod differenti. Ladarba jkun hemm kandidati, Happy Eyeballs iqabbel il-familji għal kull konnessjoni, għalhekk mogħdija IPv6 li twieġeb bil-mod xorta tista' titlef kontra IPv4 li twieġeb malajr.

Osserva d-deċiżjoni minflok tiddeduciha. Sessjoni rrekordjata permezz ta' chrome://net-export u milgħuba mill-ġdid fil-viewer netlog turi kull soluzzjoni u l-familja magħżula; chrome://net-internals/#dns juri r-riżultati fil-cache. Soluzzjoni li tirritorna biss rekords A għal isem li għandu AAAA fis-solver tiegħek stess tindika direttament lejn dan l-istadju.

Pass 4: ivverifika li pakkett jista' jagħmel il-vjaġġ 'l hemm u 'l hawn

L-għażla tal-indirizz mhijiex kunsinna. Android iżomm tabelli tar-routing u regoli tal-politika għal kull netwerk li jagħżlu tabella bil-fwmark, għalhekk rotta li tidher fit-tabella prinċipali mhijiex awtomatikament dik li tuża socket. Li taqra r-regoli u titlob lill-kernel isolvi destinazzjoni għal indirizz tas-sors jifred it-tnejn.

adb shell ip -6 rule show
adb shell ip -6 route get fd00:61::20 from fd00:61::10

L-output ta' route get huwa dak li jwieġeb il-mistoqsija. Jekk isemmi tun0 u l-pakketti xorta jmutu, mur għall-MTU tat-tunnel u għall-forwarding IPv6 tal-gateway minflok ma terġa' lura għat-telefon.

Għaliex iż-żieda ta' ::/0 ġeneralment tagħmilha agħar

Iż-żieda ta' ::/0 tbiddel it-talba tat-tunnel minn prefiss wieħed għal kull destinazzjoni IPv6. Fuq it-telefon dan jista' jissodisfa prova tal-aċċessibilità, għax indirizz tat-test barra l-prefiss tiegħek issa jidher routabbli. Ma joħloqx kapaċità IPv6 upstream fuq il-gateway, u ħafna gateways tad-dar m'għandhomx uplink IPv6 li jaħdem xejn. Ir-riżultat huwa toqba sewda għall-IPv6 pubbliku: ismijiet li qabel kienu jaqgħu lura għall-IPv4 issa jiddendlu, u l-paġna privata tista' tidher aħjar biss għax il-prova qed tkejjel xi ħaġa oħra.

Hemm ukoll spiża tal-politika. B'::/0 fit-tunnel, it-traffiku IPv6 kollu joħroġ mill-VPN, inkluż traffiku li s-sid tan-netwerk qatt ma qabel li jġorru. Ittratta dan bħala deċiżjoni ta' implimentazzjoni b'sid imsemmi, mhux bħala pass ta' debug li tieħu fl-1 ta' filgħodu.

L-ordni tax-xogħol li jtemm dan

Ikkonferma li t-tweġiba AAAA tiġi mis-solver li jżomm iż-żona, aqra l-istat tal-VpnService u netd għall-interfaċċa tun, ħu traċċa net-export biex tara jekk Chromium warrbix il-kandidat, imbagħad ipprova l-vjaġġ 'l hemm u 'l hawn b'ip -6 route get. Sejjaħ is-saff li verament falla u ħalli l-politika tal-qsim kwieta. Jekk l-ismijiet privati jeħtieġu tweġibiet differenti mill-pubbliċi, għal dan huwa s-split tunneling.

Innota l-build tat-telefon, il-verżjoni tal-browser u s-solver li staqsejt. Dawk it-tliet fatti jibdlu "IPv6 is broken" f'xi ħaġa li l-persuna li jmiss tista' tirriproduċi.

Artikli relatati