TAP au TUN? Wateja wa OpenVPN kwenye Android na seva zenye daraja
TAP hubeba fremu za Ethernet, TUN hubeba pakiti za IP, na programu ya Android hupokea aina ya pili pekee. Linganisha zote mbili, kisha rekebisha upande wa seva.
Wasifu unaofanya kazi kwenye kompyuta mpakato unashindwa kwenye simu. Hatua dhahiri ni kubadilisha neno moja katika usanidi wa mteja. Neno hilo halitasaidia, kwa sababu ncha mbili hazizungumzi kuhusu aina moja ya trafiki.
TAP hubeba fremu za Ethernet. TUN hubeba pakiti za IP. Programu ya VPN ya Android hupewa kiolesura cha IP, jambo ambalo hufanya moja ya mipangilio miwili iwezekane na nyingine isiwezekane, bila kujali usanidi unasema nini.
Ulinganisho ni mfupi, lakini huamua kama unaweza kurekebisha hili kwenye simu au lazima ubadilishe huduma.
Aina mbili za handaki zenye mizigo tofauti
Kiolesura cha TAP hufanya kama adapta ya Ethernet. Hubeba fremu, yaani ARP, utangazaji na kila kitu kingine ambacho LAN hubeba chini ya IP. Hilo ndilo hufanya daraja liwezekane: handaki hupanua kikoa cha utangazaji na wateja hufanya kama wameunganishwa kwenye swichi.
Kiolesura cha TUN hubeba pakiti za IP zilizoelekezwa kwake. Hakuna tabaka la kiungo la kujadili, hakuna ARP na hakuna utangazaji. Uelekezaji huamua kinachoingia kwenye handaki, na usanidi wa upande wa seva hutumia subnet badala ya daraja.
Ncha zote mbili lazima zikubaliane ni kipi kati ya hivyo viwili wanachofanya. Kubadilisha dev tap kuwa dev tun upande mmoja hakubadilishi huduma; huzalisha mteja anayetarajia handaki lililoelekezwa na seva inayoendelea kutuma fremu, na makubaliano ya kuanzisha yanaweza kufanikiwa wakati hakuna kitu cha manufaa kinapita.
Android humpa programu nini kwa kweli
API VpnService ya jukwaa humpa programu kiolesura pepe cha pakiti za IP, kilichosanidiwa kwa anwani, njia na MTU. Katika API hiyo hakuna adapta ya Ethernet, na programu haiwezi kuibuni.
Ndiyo sababu OpenVPN Connect huandika msaada wa miunganisho ya TUN iliyoelekezwa kwenye Android badala ya madaraja ya TAP. Maswali yanayoulizwa mara kwa mara ya Android ni taarifa ya upande wa mteja kuhusu mpaka huo, na inaendana na API ya jukwaa.
Zana za mtandao zenye root, firmware maalum au bidhaa inayotekeleza tabaka la tafsiri bayana ni mipangilio mingine. Kisa cha kawaida ni kile ambacho mipango inapaswa kuzunguka: programu inayoweza kuagiza faili yako na kufanya kazi kama mtumiaji wa kawaida, ikiwa na kiolesura cha IP na hakuna kitu chini yake.
Inakuwaje unapojaribu hata hivyo
Muunganisho kwa kawaida huanzishwa. Hilo hufanya kushindwa kuwe kuchanganya: mteja huripoti ameunganishwa, kumbukumbu ya seva huonyesha mwenza, na hakuna programu inayofanya kazi.
Trafiki iliyoelekezwa kwa anwani iliyopewa simu haifiki, kwa sababu seva hupitisha fremu kwa daraja hadi anwani ya MAC ambayo simu haikuwa nayo kamwe. Ugunduzi unaotegemea utangazaji hubaki tupu. Ikiwa LAN inategemea DHCP kupitia daraja, simu haitapata ukodishaji kwa njia hiyo, na anwani iliyopewa kwa mkono katika subnet yenye daraja bado haiundi kiolesura kinachokosekana.
Baadhi ya wateja hushindwa mapema zaidi, wakati wa kuagiza wasifu, wanapoona aina ya kifaa wasichoweza kutekeleza. Tabia zote mbili zinamaanisha kitu kimoja, na hakuna inayorekebishwa kwa kuongeza njia, kubadilisha DNS au kupanua masafa ya anwani za handaki.
Upande wa seva unapaswa kubadilisha nini
Marekebisho ni ya anayeendesha huduma ya VPN, na kwa kawaida ni nyongeza badala ya uhamishaji. Endesha nakala ya pili ya OpenVPN ikiwa na kifaa kilichoelekezwa, subnet yake ya wateja na usanidi wa upande wa seva unaogawa anwani na kusukuma njia zinazohitajika na simu. Nakala iliyopo yenye daraja inaendelea kuhudumia vifaa vinavyohitaji Ethernet kwa kweli.
Mambo mawili hufanya hili lifanye kazi kivitendo. LAN inahitaji njia ya kurudi kwa subnet mpya ya wateja, ikielekea mwenyeji wa VPN, vinginevyo majibu hayatarejea kamwe. Na ngome ya moto kwenye mwenyeji wa handaki lazima isambaze kati ya kiolesura cha handaki na LAN, na hiyo ni hatua inayosahaulika mara nyingi zaidi wakati jaribio kutoka kwa mwenyeji wenyewe linafanikiwa.
Ikiwa mwendeshaji hawezi kuongeza huduma, mbadala ni kifaa kinachoweza kujiunga na daraja, yaani kompyuta mpakato au kipanga njia kinachofanya kazi kwa niaba ya simu. Hiyo ni njia ya kuzunguka yenye gharama yake ya usimamizi, si usanidi wa Android.
Amua kutokana na programu, si handaki
Uliza simu inapaswa kufikia nini kwa kweli, kisha ipange ramani. Ushirikiano wa faili au tovuti ya intraneti inayofikiwa kwa jina au anwani ni hitaji la IP, na handaki lililoelekezwa hulikidhi mara DNS inapotatua jina na njia ipo. Zana ya ugunduzi inayovinjari kikoa cha utangazaji cha ndani si hitaji la IP, na hakuna kiasi cha uelekezaji kitakachoijaza.
| Requirement | Tunnel that satisfies it |
|---|---|
| File server or intranet by hostname | Routed TUN, with working DNS |
| Broadcast or ARP-based discovery | Ethernet bridging, so not an ordinary Android client |
| Multicast delivery | Bridging or an explicit multicast relay |
| One application to one address | Routed TUN, narrowest possible route |
Jedwali hilo pia ni ombi la kutuma. Taja programu, anwani au jina inalotumia, na ikiwa inategemea ugunduzi. Mwendeshaji anaweza kuchukua hatua kwa maelezo hayo, jambo ambalo hakuna anayeweza kufanya kwa simu isiyounganika.
Mwisho, hifadhi huduma ya TAP kwa vifaa vinavyoihitaji badala ya kulazimisha kila mteja kuiga adapta ya LAN. Huduma mbili zenye malengo bayana ni rahisi kuunga mkono kuliko moja inayofanya kazi nusu kwa kila mtu.