Профил који ради на преносном рачунару не ради на телефону. Очигледан потез је промена једне речи у конфигурацији клијента. Та реч неће помоћи, јер две стране не говоре о истој врсти саобраћаја.

TAP преноси Ethernet оквире. TUN преноси IP пакете. Android VPN апликација добија IP интерфејс, што једну од те две поставке чини могућом, а другу не, без обзира на то шта конфигурација каже.

Поређење је кратко, али одлучује да ли то можете поправити на телефону или морате променити услугу.

Две врсте тунела са различитим садржајем

TAP интерфејс се понаша као Ethernet адаптер. Преноси оквире, односно ARP, broadcast и све остало што LAN преноси испод IP-а. То омогућава премошћавање: тунел проширује broadcast домен и клијенти се понашају као да су укључени у свич.

TUN интерфејс преноси IP пакете упућене њему. Нема слоја везе о коме би се преговарало, нема ARP-а и нема broadcast-а. Рутирање одлучује шта улази у тунел, а конфигурација на страни сервера користи подмрежу, а не мост.

Обе стране морају да се сложе шта од тога раде. Промена dev tap у dev tun на једној страни не претвара услугу; настаје клијент који очекује рутирани тунел и сервер који још шаље оквире, а руковање може успети док ништа употребљиво не пролази.

Шта Android заиста даје апликацији

API VpnService платформе даје апликацији виртуелни интерфејс за IP пакете, конфигурисан адресама, рутама и MTU-ом. У том API-ју нема Ethernet адаптера и апликација га не може измислити.

Зато OpenVPN Connect документује подршку за рутиране TUN везе на Android-у, а не за TAP премошћавање. Често постављана питања за Android су изјава клијентске стране о тој граници и одговарају API-ју платформе.

Мрежни алати са root правима, прилагођени фирмвер или производ који спроводи изричит слој превођења су друге поставке. Обичан случај је онај око кога треба планирати: апликација која може да увезе вашу датотеку и ради као обичан корисник, са IP интерфејсом и ничим испод њега.

Како то изгледа када ипак покушате

Веза се обично успостави. Због тога је квар збуњујућ: клијент пријављује повезаност, дневник сервера показује партнера, а ниједна апликација не ради.

Саобраћај упућен на додељену адресу телефона не стиже, јер сервер премошћује оквире на MAC адресу коју телефон никада није имао. Откривање које зависи од broadcast-а остаје празно. Ако се LAN ослања на DHCP преко моста, телефон тако неће добити закуп, а ручно додељена адреса у премошћеној подмрежи ипак не ствара интерфејс који недостаје.

Неки клијенти падају раније, при увозу профила, када виде врсту уређаја коју не могу да изведу. Оба понашања значе исто, а ниједно се не поправља додавањем рута, променом DNS-а или проширењем распона адреса тунела.

Шта страна сервера мора да промени

Поправка припада ономе ко управља VPN услугом и обично је додатак, а не миграција. Покрените другу OpenVPN инстанцу са рутираним уређајем, сопственом клијентском подмрежом и конфигурацијом на страни сервера која додељује адресе и гура руте које телефонима требају. Постојећа премошћена инстанца наставља да служи уређајима којима Ethernet заиста треба.

Два детаља то чине употребљивим у пракси. LAN-у је потребна повратна рута за нову клијентску подмрежу, усмерена на VPN хост, иначе одговори никада неће доћи. И заштитни зид на хосту тунела мора да прослеђује између интерфејса тунела и LAN-а, а то је корак који се најчешће прескочи када тест са самог хоста успе.

Ако оператер не може да дода услугу, алтернатива је уређај који може да се придружи мосту, дакле преносни рачунар или рутер који делује у име телефона. То је заобилазно решење са сопственим трошком управљања, а не Android конфигурација.

Одлучите из апликације, а не из тунела

Питајте до чега телефон заиста мора да стигне, па то пресликајте. Дељени директоријум или интранет страница доступна по имену или адреси су IP захтев и рутирани тунел га задовољава када DNS разреши име и рута постоји. Алат за откривање који прегледа локални broadcast домен није IP захтев и никаква количина рутирања га неће попунити.

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

Та табела је и захтев који шаљете. Наведите апликацију, адресу или име које користи и зависи ли од откривања. Оператер може да делује на основу тог описа, а на основу телефона који се не повезује не може нико.

На крају, задржите TAP услугу за уређаје којима треба, уместо да сваки клијент опонаша LAN адаптер. Две услуге са јасним циљевима лакше је подржавати од једне која свима ради на пола.

Повезани чланци