Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router

Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router

Qualchidunu di noi ùn utilizate micca Internet senza VPN per una ragione o un altru: qualchissia hà bisognu di una IP dedicata, è hè più faciule è più prezzu per cumprà un VPS cù dui IP chì cumprà un indirizzu da un fornitore, qualchissia vole accede à tutti i siti web. , è micca solu quelli permessi nantu à u territoriu di a Federazione Russa, altri necessitanu IPv6, ma u fornituri ùn furnisce micca ...
A maiò spessu, una cunnessione VPN hè stabilita nantu à u dispusitivu stessu chì hè stata utilizata in un certu momentu, chì hè sensu s'ellu avete solu un urdinatore è un telefunu è raramente l'utilizanu à u stessu tempu. Se ci sò parechji dispusitivi in ​​a vostra reta di casa, o, per esempiu, ci sò qualchi nantu à quale VPN ùn pò micca esse cunfigurata, saria più còmuda di creà un tunnel direttamente nantu à u router di casa per ùn pensà à stallà ogni dispusitivu separatamente. .

Se avete mai installatu OpenVPN nantu à u vostru router, probabilmente avete statu sgradamente sorpresu da a rapidità chì funziona. I SoC di ancu i routers economici passanu per un trafficu gigabit senza prublemi, per via di u trasferimentu di funzioni di routing è NAT à un chip separatu pensatu solu per questu compitu, è i prucessori principali di tali routers sò abbastanza debbuli, perchè Ùn ci hè praticamente micca carica nantu à elli. Stu cumprumissu vi permette di ottene una alta velocità di u router è riduce significativamente u prezzu di u dispusitivu finitu - i routers cù processori putenti costanu parechje volte di più, è sò posizionati micca solu cum'è una scatula per a distribuzione di Internet, ma ancu cum'è NAS, torrent. scaricatore è sistema multimediale di casa.

U mo router, TP-Link TL-WDR4300, ùn pò micca esse chjamatu novu - u mudellu hè apparsu à a mità di u 2012, è hà un processore di architettura MIPS560 32Kc 74 MHz, u putere di quale hè abbastanza solu per 20-23 Mb / s di trafficu criptatu. via OpenVPN, chì hè per standard A velocità di l'Internet in casa mudernu hè abbastanza bassu.
Cumu pudemu aumentà a velocità di un tunnel criptatu? U mo router hè abbastanza funziunale, supporta 3x3 MIMO, è generalmente funziona bè, ùn vogliu micca cambià.
Siccomu hè avà abitudine di fà pagine Internet di 10 megabyte, scrive l'applicazioni di desktop in node.js è imballate in un schedariu di 100 megabyte, aumentà a putenza di computing invece di ottimisazione, faremu qualcosa terribili - trasfereremu a cunnessione VPN à un "computer" produttivu di una sola scheda Orange Pi One, chì stallaremu in u casu di u router senza piglià a rete esistenti è i porti USB, per solu $ 9.99 *!
* + consegna, + tasse, + per a birra, + MicroSD.

OpenVPN

U processatore di u router ùn pò micca esse chjamatu cumpletamente debbule - hè capace di criptà è hashing dati cù l'algoritmu AES-128-CBC-SHA1 à una velocità di 50 Mb / s, chì hè notevolmente più veloce di cumu funziona OpenVPN, è u flussu CHACHA20 mudernu. cifru cù un hash POLY1305 righjunghji ancu 130 megabits per seconda! Perchè a velocità di u tunnel VPN hè cusì bassa? Si tratta di cambià u cuntestu trà u spaziu di l'utilizatori è u spaziu di u kernel: OpenVPN cripta u trafficu è cumunicà cù u mondu esternu in u cuntestu di l'utilizatori, è u routing stessu si trova in u cuntestu di u kernel. U sistema operatore hà da cambià constantemente avanti è avanti per ogni pacchettu ricevutu o trasmessu, è sta operazione hè lenta. Stu prublema hè inherente à tutte l'applicazioni VPN chì viaghjanu attraversu un driver TUN / TAP, è ùn si pò micca dì chì u prublema di a bassa velocità hè causatu da una povira ottimisazione OpenVPN (ancu se, sicuru, ci sò lochi chì deve esse ritruvati). Nisun clientu VPN di u spaziu d'utilizatore ùn furnisce ancu un gigabit cù a criptografia disattivata nantu à u mo laptop, per esempiu sistemi cun un processatore debule.

Orange PiOne

L'Orange Pi One unicu di Xunlong hè a megliu offerta in quantu à u rapportu di rendiment / prezzu in u mumentu. Per $ 9.99 * uttene un solidu processore ARM Cortex-A7 quad-core chì funziona (stabile) à 1008 MHz, è chjaramente supera i so vicini di prezzu Raspberry Pi Zero è Next Thing CHIP. Questu hè induve finiscinu i vantaghji. A cumpagnia di Xunlong presta esattamente zero attenzione à u software di i so bordi, è à u mumentu chì l'Unu hè stata lanciata in vendita, ùn hà ancu furnitu un schedariu di cunfigurazione di bordu, per ùn dì micca l'imaghjini pronti. Allwinner, un fabricatore di SoC, ùn hè micca particularmente sensibile à sustene u so pruduttu. Sò interessate solu in u minimu rendimentu in u SO Android 4.4.4, chì significa chì simu furzati à aduprà u kernel 3.4 cù parche Android. Fortunatamente, ci sò dilettanti chì assemblenu distribuzioni, edità u kernel, scrive u codice per supportà i boards in u kernel mainline, i.e. in realtà facenu u travagliu per u fabricatore, facendu chì sta merda funziona accettabilmente. Per i mo scopi, aghju sceltu a distribuzione Armbian; hè aghjurnata spessu è convenientemente (i novi kernel sò stallati direttamente attraversu u gestore di pacchetti, è micca copiendu i fugliali in una partizione speciale, cum'è di solitu u casu cù Allwinner), è sustene a maiò parte. periferiche, à u cuntrariu di l'altri.

Router

Per ùn carricà u processatore debbuli di u router cù a criptografia è accelerà a nostra cunnessione VPN, pudemu trasfurmà stu compitu à e spalle di un processore Orange Pi più putente cunnettendu à u router in qualchì modu. A cunnessione via Ethernet o USB vene in mente - i dui standard sò supportati da i dui dispositi, ma ùn vulia micca piglià i porti esistenti. Fortunatamente, ci hè una manera di esce.

U chip hub USB GL850G, chì hè utilizatu in u router, sustene 4 porti USB, dui di i quali ùn sò micca cablati. Ùn hè chjaru perchè u fabricatore ùn li hà micca dissoldatu, supponu, per impedisce à l'utilizatori di cunnette 4 i dispositi cun un altu cunsumu di corrente (per esempiu, i discu duru) in una volta. L'alimentazione standard di u router ùn hè micca cuncepitu per una tale carica. In ogni casu, questu hè à u nostru vantaghju.
Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router
Per uttene un altru portu USB, basta à saldà dui fili à i pins 8 (D-) è 9 (D+) o 11 (D-) è 12 (D+).

Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router

In ogni casu, ùn hè micca abbastanza per cunnette solu dui dispositi USB è sperendu chì tuttu funziona da sè stessu, cum'è cù Ethernet. Prima, avemu bisognu di fà unu di elli à travaglià in modu USB Client, è micca USB Host, è in segundu, avemu bisognu di decide cumu i dispusitivi detectà l'altri. Ci sò parechji drivers per i cosiddetti USB Gadgets (chjamati dopu à u subsistema di u kernel Linux), chì permettenu di emulà diversi tipi di dispositi USB: adattatore di rete, carta audio, tastiera è mouse, flash drive, camera, console via una seriale. portu. Siccomu u nostru dispusitivu hà da travaglià cù a reta, emulà un adattatore Ethernet hè megliu per noi.

Ci sò trè standard Ethernet-over-USB:

  • NDIS remoto (RNDIS). Un standard obsoleto da Microsoft, utilizatu principalmente durante Windows XP.
  • Modellu di cuntrollu Ethernet (ECM). Un standard simplice chì incapsula frames Ethernet in pacchetti USB. Grande per i modem cablati cù una cunnessione USB, induve hè cunvenutu per trasfiriri frames senza trasfurmazioni, ma per via di a so simplicità è limitazioni di u bus USB, ùn hè micca assai veloce.
  • Modellu di Emulazione Ethernet (EEM). Un protokollu più intelligente chì piglia in contu e limitazioni USB è aggrega in modu ottimale parechje frames in una, aumentandu cusì u throughput.
  • Modellu di cuntrollu di rete (NCM). U più novu protocolu. Hà i benefici di EEM è ottimiseghja ancu l'esperienza di l'autobus.

Per uttene qualcunu di sti protokolli per travaglià nantu à u nostru bordu, cum'è sempre, avemu da scuntrà alcune difficultà. A causa di u fattu chì Allwinner hè interessatu solu in e parti Android di u kernel, solu Android Gadget funziona nurmalmente - u codice chì implementa a cumunicazione cù adb, esportendu u dispusitivu via u protokollu MTP è emulendu un flash drive in i dispositi Android. Android Gadget stessu sustene ancu u protocolu RNDIS, ma hè rottu in u kernel Allwinner. Sè vo pruvate à cumpilà u kernel cù qualsiasi altru USB Gadget, u dispusitivu simpricimenti ùn apparirà nant'à u sistema, ùn importa ciò chì vo fate.
Per risolve u prublema, in modu amichevule, avete bisognu di truvà u locu induve u controller USB hè inizializatu in u codice di u gadget Android Android.c mudificatu da i sviluppatori, ma ci hè ancu una soluzione per fà almenu emulazione Ethernet sopra. U travagliu USB:

--- 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;

Stu patch forza u modu di cliente USB, chì vi permette di utilizà Gadgets USB regularmente da Linux.
Avà duvete ricustruisce u kernel cù questu patch è u gadget necessariu. Aghju sceltu EEM perchè ... Sicondu i risultati di a prova, hè stata più produtiva di NCM.
A squadra Armbian furnisce sistema di assemblea assai simplice è convenientu per tutti i bordi supportati in a distribuzione. Basta à scaricallu, mette u nostru patch userpatches/kernel/sun8i-default/otg.patch, edite un pocu compile.sh è selezziunate u gadget necessariu:

Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router

U kernel serà cumpilatu in un pacchettu deb, chì ùn serà micca difficiule di stallà nantu à u bordu via dpkg.
Tuttu ciò chì resta hè di cunnette u pianu via USB è cunfigurà u nostru novu adattatore di rete per riceve un indirizzu via DHCP. Per fà questu, avete bisognu di aghjunghje qualcosa cum'è i seguenti /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'

Hè megliu stabilisce l'indirizzu MAC manualmente, perchè ... serà aleatoriu ogni volta chì u dispusitivu hè riavviatu, chì hè inconveniente è fastidiosu.
Cunnetteremu u cable MicroUSB à u connector OTG, cunnette u putere da u router (pò esse furnitu à i pins 2 è 3 di u pettine, è micca solu à u connector di putenza).

Tuttu ciò chì resta hè di cunfigurà u router. Hè abbastanza per installà u pacchettu cù u driver EEM è aghjunghje u nostru novu dispositivu di rete USB à u ponte di a zona di firewall locale:

opkg install kmod-usb-net-cdc-eem

Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router
Per indirizzà tuttu u trafficu à u tunnel VPN, avete bisognu di aghjunghje una regula SNAT à l'indirizzu IP di u bordu à u latu di u router, o distribuisce l'indirizzu di u bordu cum'è un indirizzu gateway via dnsmasq. L'ultime hè fattu aghjunghjendu a seguente linea à /etc/dnsmasq.conf:

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

induve 192.168.1.100 - Indirizzu IP di u vostru bordu. Ùn vi scurdate di inserisce l'indirizzu di u router in i paràmetri di a rete nantu à u bordu stessu!

Una spugna di melamina hè stata aduprata per isolà i cuntatti di u bordu da i cuntatti di u router. Hè risultatu qualcosa cusì:
Accelerate OpenVPN per $ 9.99 * o integra Orange Pi One in u vostru router

cunchiusioni

A reta via USB funziona sorprendentemente rapidamente: 100-120 Mb/s, aghju aspittatu menu. OpenVPN passa per circa 70 Mb / s di trafficu criptatu, chì ùn hè ancu micca assai, ma abbastanza per i mo bisogni. U coperchio di u router ùn si chjude micca strettu, lascendu un picculu spaziu. L'esteti ponu caccià i connettori Ethernet è USB Host da u bordu, chì permettenu à a tapa per chjude cumpletamente è anu sempre un pocu spaziu.
Hè megliu micca impegnà in tali pornografia è cumprà Turris Omnia.

Source: www.habr.com

Add a comment