Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn

Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn

Sum okkar nota ekki internetið án VPN af einni eða annarri ástæðu: einhver þarf sérstakan IP og það er auðveldara og ódýrara að kaupa VPS með tveimur IP-tölum en að kaupa heimilisfang frá þjónustuveitu, einhver vill fá aðgang að öllum vefsíðum , og ekki aðeins þeir sem eru leyfðir á yfirráðasvæði Rússlands, aðrir þurfa IPv6, en veitandinn veitir það ekki...
Oftast er VPN-tenging komið á tækinu sjálfu sem er í notkun á ákveðnu augnabliki, sem er skynsamlegt ef þú ert bara með eina tölvu og einn síma og notar þau sjaldan á sama tíma. Ef það eru mörg tæki á heimanetinu þínu, eða til dæmis, það eru nokkur sem ekki er hægt að stilla VPN á, þá væri þægilegra að búa til göng beint á heimabeini til að hugsa ekki um að setja upp hvert tæki fyrir sig. .

Ef þú hefur einhvern tíma sett upp OpenVPN á leiðinni þinni hefur þér líklega komið óþægilega á óvart hversu hratt það virkar. SoCs jafnvel ódýrra beina fara í gegnum um það bil gígabita umferð án nokkurra vandræða, vegna flutnings á leiðar- og NAT-aðgerðum yfir á sérstakan flís sem er hannaður eingöngu fyrir þetta verkefni, og helstu örgjörvar slíkra beina eru frekar veikir, vegna þess að Það er nánast ekkert álag á þeim. Þessi málamiðlun gerir þér kleift að ná háum hraða leiðarinnar og lækka verulega verð á fullbúnu tækinu - beinar með öflugum örgjörvum kosta nokkrum sinnum meira, og eru staðsettir ekki aðeins sem kassi til að dreifa internetinu, heldur einnig sem NAS, torrent niðurhalara og margmiðlunarkerfi heima.

Beinin mín, TP-Link TL-WDR4300, er ekki hægt að kalla ný - líkanið birtist um mitt ár 2012 og er með 560 MHz MIPS32 74Kc arkitektúr örgjörva, afl sem dugar aðeins fyrir 20-23 Mb/s af dulkóðuðu umferð. í gegnum OpenVPN, sem er samkvæmt stöðlum. Hraði nútíma heimanets er frekar lágur.
Hvernig getum við aukið hraða dulkóðaðra jarðganga? Beininn minn er nokkuð hagnýtur, styður 3x3 MIMO og virkar almennt vel, ég myndi ekki vilja breyta því.
Þar sem nú tíðkast að búa til 10 megabæta netsíður, skrifa skjáborðsforrit í node.js og pakka þeim inn í 100 megabæta skrá, auka tölvuafl í stað hagræðingar, þá gerum við eitthvað hræðilegt - við flytjum VPN-tenginguna á afkastamikil „tölva“ með einu borði Orange Pi One, sem við munum setja upp í beinarhylkið án þess að taka upp núverandi net- og USB tengi, fyrir aðeins $9.99*!
* + afhending, + skattar, + fyrir bjór, + MicroSD.

OpenVPN

Ekki er hægt að kalla örgjörva leiðarinnar alveg veikan - hann er fær um að dulkóða og hassa gögn með AES-128-CBC-SHA1 reikniritinu á 50 Mb/s hraða, sem er áberandi hraðari en hvernig OpenVPN virkar, og nútíma CHACHA20 strauminn. dulmál með POLY1305 kjötkássa nær jafnvel 130 megabitum á sekúndu! Af hverju er hraði VPN-ganganna svona lítill? Þetta snýst allt um samhengisskipti á milli notendarýmis og kjarnarýmis: OpenVPN dulkóðar umferð og hefur samskipti við umheiminn í notendasamhenginu og leiðin sjálf á sér stað í kjarnasamhenginu. Stýrikerfið þarf stöðugt að skipta fram og til baka fyrir hvern pakka sem er móttekinn eða sendur, og þessi aðgerð er hæg. Þetta vandamál er fólgið í öllum VPN forritum sem keyra í gegnum TUN/TAP rekla og það er ekki hægt að segja að vandamálið með lágan hraða stafi af lélegri OpenVPN hagræðingu (þó að það séu auðvitað staðir sem þarf að endurvinna). Ekki einn VPN viðskiptavinur notendarýmis veitir jafnvel gígabita með dulkóðun óvirka á fartölvunni minni, hvað þá kerfi með veikum örgjörva.

Orange PiOne

Eins borðs Orange Pi One frá Xunlong er besta tilboðið hvað varðar frammistöðu/verðhlutfall í augnablikinu. Fyrir $ 9.99* færðu traustan fjögurra kjarna ARM Cortex-A7 örgjörva sem keyrir (stöðugur) á 1008 MHz, og er greinilega betri en nágranna sína í verði, Raspberry Pi Zero og Next Thing CHIP. Þetta er þar sem kostirnir enda. Xunlong fyrirtækið veitir hugbúnaði stjórna sinna nákvæmlega enga athygli og á þeim tíma sem One var settur á markað gaf það ekki einu sinni uppsetningarskrá fyrir borð, svo ekki sé minnst á tilbúnar myndir. Allwinner, SoC framleiðandi, er heldur ekki sérstaklega viðkvæmur fyrir stuðningi við vöru sína. Þeir hafa aðeins áhuga á lágmarksafköstum í Android 4.4.4 OS, sem þýðir að við neyðumst til að nota 3.4 kjarnann með Android plástrum. Sem betur fer eru til áhugamenn sem setja saman dreifingar, breyta kjarnanum, skrifa kóða til að styðja töflur í aðalkjarnanum, þ.e. þeir vinna í raun og veru verkið fyrir framleiðandann, þannig að þessi vitleysa virkar ásættanlega. Í mínum tilgangi valdi ég Armbian dreifinguna; hún er oft og þægilega uppfærð (nýir kjarnar eru settir upp beint í gegnum pakkastjórann, en ekki með því að afrita skrár yfir á sérstaka skipting, eins og venjulega er með Allwinner), og hún styður flest jaðartæki, ólíkt hinum.

Leið

Til að hlaða ekki veikan örgjörva beinsins með dulkóðun og flýta fyrir VPN-tengingunni okkar, getum við fært þetta verkefni yfir á herðar öflugri Orange Pi örgjörva með því að tengja hann við beininn á einhvern hátt. Að tengja annað hvort í gegnum Ethernet eða USB kemur upp í hugann - báðir þessir staðlar eru studdir af báðum tækjum, en ég vildi ekki taka upp núverandi tengi. Sem betur fer er leið út.

GL850G USB hub flísinn, sem er notaður í beininn, styður 4 USB tengi, þar af tvö ekki með snúru. Það er óljóst hvers vegna framleiðandinn lóðaði þau ekki upp, geri ég ráð fyrir, til að koma í veg fyrir að notendur geti tengt 4 tæki með mikla straumnotkun (til dæmis harða diska) í einu. Venjulegur aflgjafi beinsins er ekki hannaður fyrir slíkt álag. Í öllum tilvikum er þetta okkur til hagsbóta.
Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn
Til þess að fá annað USB tengi þarftu bara að lóða tvo víra við pinna 8(D-) og 9(D+) eða 11(D-) og 12(D+).

Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn

Hins vegar er ekki nóg að stinga bara tveimur USB-tækjum í samband og vona að allt virki af sjálfu sér eins og með Ethernet. Í fyrsta lagi þurfum við að láta annað þeirra virka í USB biðlaraham, en ekki USB Host, og í öðru lagi þurfum við að ákveða hvernig tækin munu greina hvert annað. Það eru margir reklar fyrir svokallaðar USB græjur (sem kenndar eru við Linux kjarna undirkerfi), sem gera þér kleift að líkja eftir ýmsum gerðum USB tækja: netkort, hljóðkort, lyklaborð og mús, glampi drif, myndavél, stjórnborð í gegnum raðnúmer. höfn. Þar sem tækið okkar mun virka með netinu er best fyrir okkur að líkja eftir Ethernet millistykki.

Það eru þrír Ethernet-yfir-USB staðlar:

  • Fjarstýrður NDIS (RNDIS). Gamaldags staðall frá Microsoft, notaður fyrst og fremst á Windows XP.
  • Ethernet Control Model (ECM). Einfaldur staðall sem hylur Ethernet ramma innan USB pakka. Frábært fyrir snúru mótald með USB tengingu, þar sem þægilegt er að flytja ramma án vinnslu, en vegna einfaldleika þess og takmarkana á USB strætó er það ekki mjög hratt.
  • Ethernet hermilíkan (EEM). Snjallari samskiptareglur sem tekur mið af USB takmörkunum og safnar saman mörgum ramma á bestan hátt í einn og eykur þannig afköst.
  • Netstýringarlíkan (NCM). Nýjasta siðareglur. Hefur ávinninginn af EEM og hámarkar enn frekar strætóupplifunina.

Til að fá einhverjar af þessum samskiptareglum til að virka í stjórn okkar, eins og alltaf, verðum við að lenda í einhverjum erfiðleikum. Vegna þess að Allwinner hefur aðeins áhuga á Android hlutum kjarnans virkar aðeins Android Gadget venjulega - kóðinn sem útfærir samskipti við adb, útflutningur tækisins í gegnum MTP samskiptareglur og líkir eftir flash-drifi á Android tækjum. Android Gadget sjálft styður einnig RNDIS samskiptareglur, en hún er biluð í Allwinner kjarnanum. Ef þú reynir að setja saman kjarnann með einhverri annarri USB-græju mun tækið einfaldlega ekki birtast á kerfinu, sama hvað þú gerir.
Til að leysa vandamálið, á vinsamlegan hátt, þarftu að finna staðinn þar sem USB-stýringin er frumstillt í kóða Android græjunnar android.c breytt af þróunaraðilum, en það er líka lausn til að gera að minnsta kosti Ethernet eftirlíkingu yfir USB vinna:

--- sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:40.427088792 +0300
+++ sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:45.339088792 +0300
@@ -57,7 +57,7 @@
 static sunxi_udc_io_t g_sunxi_udc_io;
 static u32 usb_connect = 0;
 static u32 is_controller_alive = 0;
-static u8 is_udc_enable = 0;   /* is udc enable by gadget? */
+static u8 is_udc_enable = 1;   /* is udc enable by gadget? */
 
 #ifdef CONFIG_USB_SUNXI_USB0_OTG
 static struct platform_device *g_udc_pdev = NULL;

Þessi plástur neyðir USB biðlaraham, sem gerir þér kleift að nota venjulegar USB græjur frá Linux.
Nú ættir þú að endurbyggja kjarnann með þessum plástri og nauðsynlegri græju. Ég valdi EEM vegna þess að... Samkvæmt niðurstöðum úr prófunum reyndist það afkastameiri en NCM.
Armbíska liðið veitir mjög einfalt og þægilegt samsetningarkerfi fyrir allar studdar stjórnir í úthlutun. Sæktu það bara, settu plásturinn okkar inn userpatches/kernel/sun8i-default/otg.patch, breyta aðeins compile.sh og veldu nauðsynlega græju:

Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn

Kjarninn verður settur saman í deb pakka, sem ekki verður erfitt að setja upp á borðið í gegnum dpkg.
Allt sem er eftir er að tengja borðið í gegnum USB og stilla nýja netkortið okkar til að fá heimilisfang í gegnum DHCP. Til að gera þetta þarftu að bæta einhverju eins og eftirfarandi við /etc/network/interfaces:

auto usb0
        iface usb0 inet dhcp
        hwaddress ether c2:46:98:49:3e:9d
        pre-up /bin/sh -c 'echo 2 > /sys/bus/platform/devices/sunxi_usb_udc/otg_role'

Það er betra að stilla MAC vistfangið handvirkt, vegna þess að... það verður af handahófi í hvert skipti sem tækið er endurræst, sem er óþægilegt og vandræðalegt.
Við tengjum MicroUSB snúruna við OTG tengið, tengjum straum frá beininum (hægt að koma honum fyrir á pinna 2 og 3 á greiðanum, en ekki bara á rafmagnstengið).

Það eina sem er eftir er að stilla routerinn. Það er nóg að setja upp pakkann með EEM reklanum og bæta nýja USB netbúnaðinum okkar við brúna eldveggssvæðisins:

opkg install kmod-usb-net-cdc-eem

Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn
Til að beina allri umferð til VPN göngin þarftu annað hvort að bæta SNAT reglu við IP tölu borðsins á leiðarhliðinni, eða dreifa vistfangi stjórnarinnar sem gáttarvistfang í gegnum dnsmasq. Hið síðarnefnda er gert með því að bæta eftirfarandi línu við /etc/dnsmasq.conf:

dhcp-option = tag:lan, option:router, 192.168.1.100

þar sem 192.168.1.100 - IP tölu borðsins þíns. Ekki gleyma að slá inn netfangið í netstillingunum á borðinu sjálfu!

Notaður var melamínsvampur til að einangra snertiborðið frá snertiflötunum. Það varð eitthvað á þessa leið:
Flýttu OpenVPN fyrir $9.99* eða samþættu Orange Pi One í beininn þinn

Ályktun

Netið í gegnum USB virkar furðu hratt: 100-120 Mb/s, ég bjóst við minna. OpenVPN fer í gegnum um 70 Mb/s af dulkóðuðu umferð, sem er heldur ekki mjög mikið, en nóg fyrir mínar þarfir. Lokið á leiðinni lokar ekki vel og skilur eftir lítið bil. Fagurfræðingar geta fjarlægt Ethernet og USB Host tengin af borðinu, sem gerir lokinu kleift að loka alveg og hafa enn pláss eftir.
Það er betra að taka ekki þátt í slíku klámi og kaupa Turris Omnia.

Heimild: www.habr.com

Bæta við athugasemd