Profil koji radi na prijenosniku ne radi na telefonu. Očigledan potez je promijeniti jednu riječ u konfiguraciji klijenta. Ta riječ neće pomoći, jer dvije strane ne govore o istoj vrsti prometa.

TAP prenosi Ethernet okvire. TUN prenosi IP pakete. Android VPN aplikacija dobiva IP sučelje, što jedan od ta dva rasporeda čini mogućim, a drugi ne, bez obzira na to što konfiguracija kaže.

Usporedba je kratka, ali odlučuje možete li to popraviti na telefonu ili morate promijeniti uslugu.

Dvije vrste tunela s različitim sadržajem

TAP sučelje ponaša se kao Ethernet adapter. Prenosi okvire, što znači ARP, broadcast i sve ostalo što LAN prenosi ispod IP-a. To omogućuje premošćivanje: tunel proširuje broadcast domenu i klijenti se ponašaju kao da su uključeni u preklopnik.

TUN sučelje prenosi IP pakete upućene njemu. Nema sloja veze o kojem bi se pregovaralo, nema ARP-a i nema broadcasta. Usmjeravanje odlučuje što ulazi u tunel, a konfiguracija na strani poslužitelja koristi podmrežu, a ne most.

Obje strane moraju se složiti što od toga rade. Promjena dev tap u dev tun na jednoj strani ne pretvara uslugu; nastaje klijent koji očekuje usmjereni tunel i poslužitelj koji još šalje okvire, a rukovanje može uspjeti dok ništa upotrebljivo ne prolazi.

Što Android zapravo daje aplikaciji

API VpnService platforme daje aplikaciji virtualno sučelje za IP pakete, konfigurirano adresama, rutama i MTU-om. U tom API-ju nema Ethernet adaptera i aplikacija ga ne može stvoriti.

Zato OpenVPN Connect dokumentira podršku za usmjerene TUN veze na Androidu, a ne za TAP premošćivanje. Android FAQ je izjava klijentske strane o toj granici i odgovara API-ju platforme.

Alati za mrežu s root pravima, prilagođeni firmware ili proizvod koji provodi izričit sloj prevođenja su drugi rasporedi. Običan slučaj je onaj oko kojeg treba planirati: aplikacija koja može uvesti vašu datoteku i raditi kao običan korisnik, s IP sučeljem i ničim ispod njega.

Kako to izgleda kada ipak pokušate

Veza se obično uspostavi. Zbog toga je kvar zbunjujuć: klijent prijavljuje povezanost, zapisnik poslužitelja pokazuje partnera, a nijedna aplikacija ne radi.

Promet upućen na dodijeljenu adresu telefona ne stiže, jer poslužitelj premošćuje okvire na MAC adresu koju telefon nikada nije imao. Otkrivanje koje zavisi od broadcasta ostaje prazno. Ako se LAN oslanja na DHCP preko mosta, telefon tako neće dobiti najam, a ručno dodijeljena adresa u premošćenoj podmreži ipak ne stvara sučelje koje nedostaje.

Neki klijenti padaju ranije, pri uvozu profila, kada vide vrstu uređaja koju ne mogu izvesti. Oba ponašanja znače isto, a nijedno se ne popravlja dodavanjem ruta, promjenom DNS-a ili proširenjem adresnog raspona tunela.

Što strana poslužitelja mora promijeniti

Popravak pripada onome koji upravlja VPN uslugom i obično je dodatak, a ne migracija. Pokrenite drugu OpenVPN instancu s usmjerenim uređajem, vlastitom klijentskom podmrežom i konfiguracijom na strani poslužitelja koja dodjeljuje adrese i gura rute koje telefonima trebaju. Postojeća premošćena instanca nastavlja služiti uređajima kojima Ethernet zaista treba.

Dva detalja to čine upotrebljivim u praksi. LAN-u treba povratna ruta za novu klijentsku podmrežu, usmjerena na VPN host, inače odgovori nikada neće doći. I firewall na hostu tunela mora prosljeđivati između sučelja tunela i LAN-a, a to je korak koji se najčešće preskoči kada test s hosta uspije.

Ako operator ne može dodati uslugu, alternativa je uređaj koji se može pridružiti mostu, dakle prijenosnik ili usmjerivač koji djeluje u ime telefona. To je zaobilazno rješenje s vlastitim troškom upravljanja, a ne Android konfiguracija.

Odlučite iz aplikacije, a ne iz tunela

Pitajte do čega telefon zapravo mora doći, pa to preslikajte. Dijeljeni direktorij ili intranet stranica dostupni po imenu ili adresi su IP zahtjev i usmjereni tunel ih zadovoljava kada DNS razriješi ime i ruta postoji. Alat za otkrivanje koji pregledava lokalnu broadcast domenu nije IP zahtjev i nikakva količina usmjeravanja ga neće popuniti.

RequirementTunnel that satisfies it
File server or intranet by hostnameRouted TUN, with working DNS
Broadcast or ARP-based discoveryEthernet bridging, so not an ordinary Android client
Multicast deliveryBridging or an explicit multicast relay
One application to one addressRouted TUN, narrowest possible route

Ta tablica je i zahtjev koji šaljete. Navedite aplikaciju, adresu ili ime koje koristi i zavisi li od otkrivanja. Operator može djelovati na osnovu tog opisa, a na osnovu telefona koji se ne povezuje ne može nitko.

Na kraju, zadržite TAP uslugu za uređaje kojima treba, umjesto da svaki klijent oponaša LAN adapter. Dvije usluge s jasnim ciljevima lakše je podržavati od jedne koja napola radi za sve.

Povezani članci