Rotta miżjuda mat-tabella main fuq Android tidher korretta f'kull lista u xorta ma ġġorrx it-traffiku. Ir-raġuni hija li t-tabella main hija għażla waħda fost diversi, u mhijiex mistoqsija l-ewwel. Is-servizz tan-netwerk ta' Android jibni regoli tal-politika li jagħżlu tabella tar-routing bl-użu ta' informazzjoni li l-indirizz tad-destinazzjoni ma fihiex — l-uid tal-applikazzjoni, marka fuq il-pakkett, l-interface li wassal għaliha — u t-tfittxija tad-destinazzjoni sseħħ wara, ġewwa t-tabella li għażlu dawk ir-regoli.

Tliet deċiżjonijiet fi ordni fissa

Pakkett li joħroġ jieħu tliet deċiżjonijiet separati. L-ewwel, regola tal-politika tiddeċiedi liema tabella tar-routing tapplika. It-tieni, rotta ġewwa dik it-tabella tiddeċiedi l-hop li jmiss u l-interface tal-ħruġ. It-tielet, il-hooks tan-netfilter jiddeċiedu jekk il-pakkett jibqax ħaj, jiġix modifikat jew jiġix ridirett.

L-ordni hija importanti għax kull stadju jista' jwieġeb biss il-mistoqsija tiegħu. Regola tal-firewall li taċċetta pakkett ma tagħżilx tabella, u rotta miżjuda ma' tabella li l-ebda regola ma tagħżel hija inattiva. Ħafna mill-konfużjoni dwar il-VPN ta' Android tiġi mill-fatt li tissewwa waħda mit-tlieta u ma jidher l-ebda tibdil, għax il-ħsara kienet f'waħda oħra.

StageSelectorWhat it cannot decide
Policy ruleuid range, mark, incoming interfaceWhich route exists inside the table
Route lookupDestination prefix, longest matchWhether the packet is allowed out
Netfilter hookChain position, match conditionsWhich table was selected

Il-marki huma qasam ippakkjat, mhux tikketta li tippossjedi

Android jippakkja diversi fatti fl-istess valur tal-marka: liema network intgħażel, jekk applikazzjoni għażlitx network b'mod espliċitu, jekk socket huwiex protett mill-VPN, u bits relatati mal-permessi. L-intestatura fwmark tal-AOSP tiddefinixxi dak il-layout għas-siġra attwali, u l-layout huwa ħaġa interna tal-pjattaforma li tinbidel bejn il-ħarġiet.

Huwa għalhekk li fuq Android huwa perikoluż li tikteb valur tal-marka sħiħ b'iptables -j MARK --set-mark. Dan ma jżidx tikketta; jissostitwixxi l-għażla tan-network li s-sistema diġà għamlet. Il-pakkett imbagħad jaqbel ma' regoli differenti, li jista' jidher qisu l-VPN beda jaħdem, jew qisu applikazzjoni mhux relatata tilfet il-konnettività, skont liema bits inkitbu mill-ġdid.

Jekk trid tmiss il-marki, aqra l-valur attwali l-ewwel u uża maskra sabiex jinbidlu biss il-bits li tifhem:

ip rule show
ip route show table all | head -40
ip route get 10.20.4.11

Il-marka tal-konnessjoni hija oġġett separat mill-marka tal-pakkett, u l-ebda waħda mhi rotta. Li tirrestawra l-marka fuq il-pakketti tar-risposta huwa pass separat mill-għażla tat-tabella fil-ħruġ, u għalhekk it-tiswijiet f'direzzjoni waħda jipproduċu konnessjonijiet li jinfetħu u mbagħad jiddendlu.

Min jippossjedi r-regoli u t-tabelli

Is-servizz tan-network ta' Android, netd, joħloq ir-regoli u t-tabelli għal kull network. Il-AOSP RouteController huwa l-post fejn dawk ir-regoli jinġemgħu għall-VPN, networks fiżiċi u firxiet uid, u ċ-ċiklu tal-ħajja tiegħu huwa marbut ma' avvenimenti tan-network u mhux ma' fajl tal-konfigurazzjoni.

Jsegwu żewġ konsegwenzi. L-ewwel, il-prijoritajiet u n-numri tat-tabelli li ssib fuq apparat wieħed huma dettalji interni tal-bini, mhux interface: numri li jidhru l-istess fuq verżjoni oħra ta' Android jistgħu jfissru xi ħaġa totalment differenti. It-tieni, l-istat jinbena mill-ġdid meta n-networks jinbidlu, għalhekk regola li tiddaħħal illum minn root shell tista' tkun marret wara t-tranżizzjoni tal-Wi-Fi li jmiss.

Dan l-għajbien huwa spiss irrappurtat bħala li s-sistema tinjora rotta. Dak li ġara fil-fatt huwa li r-regola li għażlet it-tabella m'għadhiex teżisti, u r-rotta ġewwa t-tabella issa hija unreachable mill-perspettiva tal-pakkett. Iċċekkja l-lista tar-regoli, mhux il-lista tar-rotot, meta konfigurazzjoni li kienet taħdem tieqaf taħdem wara rikonnessjoni.

Mistoqsijiet dwar l-ordni tal-hooks m'għandhomx tweġiba universali

Il-mistoqsija jekk iptables huwiex qed jaħdem qabel ir-routing tal-VPN ma tistax tiġi mwieġba mingħajr ma ssemmi l-passaġġ tal-pakkett. Pakkett iġġenerat lokalment jaqsam il-hook tal-output, fejn bidla fil-marka tqanqal verifika ta' routing mill-ġdid — tfittxija oħra, mhux edit retroattiv tal-ewwel waħda. Pakkett li jasal minn klijent tether jaqsam il-passaġġ prerouting u jingħadda 'l quddiem minflok, u l-ktajjen li jarawh huma oħrajn.

Għalhekk l-istess regola tista' tkun effettiva għat-traffiku ta' applikazzjoni u inviżibbli għat-traffiku tether, u counter li jibqa' fuq iż-żero jgħidlek liema passaġġ ħa l-pakkett, mhux jekk ir-regola hijiex żbaljata. Uża counters biex tistabbilixxi l-passaġġ qabel ma tbiddel xi kundizzjoni ta' tqabbil.

Dan huwa wkoll l-istadju fejn żball fir-routing tal-politika jsir diffiċli biex jidher. Ir-routing lejn tabella li teżisti iżda ma fihiex id-destinazzjoni jipproduċi network unreachable li jidher qisu drop tal-firewall, filwaqt li drop tal-firewall jipproduċi timeout li jidher qisu toqba sewda tar-routing.

Iddijanjostika ġewwa s-sistema, jew ħalliha kif inhi

Għal reviżjoni awtorizzata, stabbilixxi erba' fatti qabel ma tmiss xejn: l-uid u l-profil tal-applikazzjoni, in-network li Android għażel għaliha, jekk il-VPN jinkludix dik l-applikazzjoni xejn, u jekk il-problema teżistix għaż-żewġ familji tal-indirizzi. L-esklużjoni għal kull applikazzjoni tispjega ħafna rapporti ta' VPN mhux jaħdem mingħajr ebda ħsara fir-routing.

Imbagħad aqra r-regoli, il-maskri u t-tabelli li huma fil-fatt fis-seħħ, u żomm bidla tan-network fil-tieqa tal-osservazzjoni. Jekk l-imġiba tinbidel matul rikonnessjoni, qed tara ċiklu tal-ħajja ġestit, mhux rotta nieqsa.

Għal ħtiġijiet ordinarji, uża l-kontrolli appoġġjati: inklużjoni u esklużjoni għal kull applikazzjoni fl-applikazzjoni VPN, u l-għażla tan-network tal-pjattaforma stess għal kull ħaġa li teħtieġ passaġġ speċifiku. Jekk integrazzjoni privileġġata tassew trid tikkoopera mal-makkinarju tar-routing, immira l-implimentazzjoni tal-verżjoni eżatta ta' Android li tappoġġja u żomm iċ-ċiklu tal-ħajja tagħha permezz tal-komponent li jippossjediha. Li tħott il-ktajjen tal-pjattaforma jew li ddaħħal regola ta' prijorità għolja jbiddel dijanjożi fi tieni maniġer tan-network, u t-telefon iġib ruħu skont dan.

Artikli relatati