Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router

Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router

E puer vun eis benotzen net den Internet ouni VPN aus engem oder anere Grond: een brauch eng dedizéierten IP, an et ass méi einfach a méi bëlleg e VPS mat zwou IPs ze kafen wéi eng Adress vun engem Provider ze kafen, een wëll op all Websäite kommen , an net nëmmen déi erlaabt um Territoire vun der russescher Federatioun, anerer brauchen IPv6, mä de Provider gëtt et net ...
Déi meescht Oft gëtt eng VPN Verbindung op den Apparat selwer etabléiert, deen zu engem bestëmmte Moment benotzt gëtt, wat Sënn mécht wann Dir nëmmen ee Computer an en Telefon hutt a se selten zur selwechter Zäit benotzt. Wann et vill Geräter an Ärem Heemnetz sinn, oder, zum Beispill, et sinn e puer op deenen VPN net konfiguréiert ka ginn, wier et méi praktesch en Tunnel direkt um Heemrouter ze kreéieren fir net un all Apparat separat ze denken. .

Wann Dir jeemools OpenVPN op Ärem Router installéiert hutt, sidd Dir wahrscheinlech onangenehm iwwerrascht wéi séier et funktionnéiert. D'SoCs vu souguer bëlleg Router passéieren ouni Probleemer iwwer e Gigabit Traffic, wéinst dem Transfert vu Routing an NAT Funktiounen op e separaten Chip, deen exklusiv fir dës Aufgab entworf ass, an d'Haaptprozessoren vun esou Router sinn zimlech schwaach, well Et gëtt praktesch keng Laascht op hinnen. Dëse Kompromiss erlaabt Iech héich Geschwindegkeet vum Router z'erreechen an de Präis vum fäerdegen Apparat wesentlech ze reduzéieren - Router mat mächtege Prozessoren kaschten e puer Mol méi, a positionéiert net nëmmen als Këscht fir den Internet ze verdeelen, awer och als NAS, Torrent Downloader an Heem Multimedia System.

Mäi Router, TP-Link TL-WDR4300, kann net nei genannt ginn - de Modell erschéngt Mëtt 2012, an huet en 560 MHz MIPS32 74Kc Architekturprozessor, d'Kraaft vun deem ass nëmme genuch fir 20-23 Mb/s verschlësselte Verkéier iwwer OpenVPN, wat no Standarden ass D'Geschwindegkeet vum modernen Heeminternet ass zimlech niddereg.
Wéi kënne mir d'Geschwindegkeet vun engem verschlësselten Tunnel erhéijen? Mäi Router ass zimmlech funktionell, ënnerstëtzt 3x3 MIMO, a funktionnéiert allgemeng gutt, ech wëll et net änneren.
Well et elo üblech ass 10-Megabyte Internetsäiten ze maachen, Desktop-Applikatiounen an node.js ze schreiwen a se an eng 100-Megabyte-Datei ze packen, Rechenkraaft erhéijen anstatt Optimiséierung, mir maachen eppes schreckleches - mir transferéieren d'VPN-Verbindung op e produktive Single-Board "Computer" Orange Pi One, dee mir am Router Fall installéiere wäerten ouni existent Netzwierk an USB Ports opzehuelen, fir nëmmen $ 9.99 *!
* + Liwwerung, + Steieren, + fir Béier, + MicroSD.

OpenVPN

De Prozessor vum Router kann net komplett schwaach genannt ginn - et ass fäeg Daten ze verschlësselen an ze hashen mat dem AES-128-CBC-SHA1 Algorithmus mat enger Geschwindegkeet vun 50 Mb/s, wat merkbar méi séier ass wéi wéi OpenVPN funktionnéiert, an de modernen CHACHA20 Stream Chiffer mat engem POLY1305 Hash erreecht souguer 130 megabits pro Sekonn! Firwat ass d'Geschwindegkeet vum VPN Tunnel sou niddereg? Et ass alles ëm Kontextwiessel tëscht Benotzerraum a Kernelraum: OpenVPN verschlësselt de Traffic a kommunizéiert mat der Äussewelt am Benotzerkontext, an d'Routing selwer geschitt am Kernelkontext. De Betribssystem muss stänneg zréck an zréck wiesselen fir all Paket, dee kritt oder iwwerdroe gëtt, an dës Operatioun ass lues. Dëse Problem ass inherent an all VPN Uwendungen, déi duerch en TUN / TAP Chauffer lafen, an et kann net gesot ginn datt de Problem vun der niddereger Geschwindegkeet duerch eng schlecht OpenVPN Optimisatioun verursaacht gëtt (obwuel natierlech et Plazen sinn déi musse ëmgeschafft ginn). Net een eenzegen Userspace VPN Client bitt souguer e Gigabit mat Verschlësselung behënnert op mengem Laptop, eleng Systemer mat engem schwaache Prozessor.

Orange PiOne

Den Single-Board Orange Pi One vu Xunlong ass déi bescht Offer wat d'Performance / Präis Verhältnis am Moment ugeet. Fir $ 9.99 * kritt Dir e festen Quad-Core ARM Cortex-A7 Prozessor deen (stabil) bei 1008 MHz leeft, an iwwerpréift kloer seng Präispunkt Noperen de Raspberry Pi Zero an Next Thing CHIP. Dëst ass wou d'Virdeeler ophalen. D'Firma Xunlong bezilt genee null Opmierksamkeet op d'Software vu senge Brieder, an deemools wou de One fir de Verkaf lancéiert gouf, huet et net emol eng Konfiguratiounsdatei zur Verfügung gestallt, fir net fäerdeg Biller ze ernimmen. Allwinner, e SoC Hiersteller, ass och net besonnesch sensibel fir säi Produkt z'ënnerstëtzen. Si sinn nëmme fir minimal Leeschtung am Android 4.4.4 OS interesséiert, dat heescht datt mir gezwongen sinn den 3.4 Kernel mat Android Patches ze benotzen. Glécklecherweis ginn et Enthusiaster déi Verdeelungen zesummestellen, de Kärel änneren, Code schreiwen fir Boards am Mainline Kernel z'ënnerstëtzen, d.h. si maachen eigentlech d'Aarbecht fir den Hiersteller, mécht dës Schrecken akzeptabel Aarbecht. Fir meng Zwecker hunn ech d'Armbian Verdeelung gewielt; et gëtt dacks a bequem aktualiséiert (nei Kärelen ginn direkt duerch de Package Manager installéiert, an net andeems Dir Dateien op eng speziell Partition kopéiert, wéi normalerweis de Fall mat Allwinner), an et ënnerstëtzt déi meescht Peripheriegeräter, am Géigesaz zu deenen aneren.

Router

Fir de schwaache Prozessor vum Router net mat Verschlësselung ze lueden an eis VPN Verbindung ze beschleunegen, kënne mir dës Aufgab op d'Schëlleren vun engem méi staarken Orange Pi Prozessor verschwannen andeems se op iergendeng Manéier mam Router verbannen. Verbindung entweder iwwer Ethernet oder USB kënnt am Kapp - béid vun dëse Standarde gi vu béiden Apparater ënnerstëtzt, awer ech wollt net existent Ports ophuelen. Glécklecherweis gëtt et e Wee eraus.

De GL850G USB Hub Chip, deen am Router benotzt gëtt, ënnerstëtzt 4 USB Ports, vun deenen zwee net kabellos sinn. Et ass net kloer firwat den Hiersteller se net unsoldert, ech huelen un, fir ze verhënneren datt d'Benotzer 4 Apparater mat héije Stroumverbrauch (zum Beispill Festplacken) gläichzäiteg verbannen. D'Standard Stroumversuergung vum Router ass net fir sou eng Laascht entworf. Dat ass op alle Fall zu eisem Virdeel.
Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router
Fir en aneren USB Hafen ze kréien, musst Dir just zwee Drot op Pins 8(D-) an 9(D+) oder 11(D-) an 12(D+) solderéieren.

Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router

Et geet awer net duer, einfach zwee USB-Geräter unzeschléissen an ze hoffen, datt alles eleng funktionnéiert, wéi et mam Ethernet wier. Als éischt musse mir ee vun hinnen am USB Client Modus maachen, an net USB Host, an zweetens musse mir entscheeden wéi d'Apparater sech géigesäiteg entdecken. Et gi vill Treiber fir déi sougenannte USB Gadgets (benannt nom Linux Kernel Subsystem), déi Iech erlaben verschidden Aarte vun USB Apparater ze emuléieren: Netzwierkadapter, Audiokaart, Tastatur a Maus, Flash Drive, Kamera, Konsol iwwer eng Serien. port. Well eisen Apparat mam Netz funktionnéiert, ass d'Emuléierung vun engem Ethernet Adapter am beschten fir eis.

Et ginn dräi Ethernet-iwwer-USB Standarden:

  • Remote NDIS (RNDIS). En alen Standard vu Microsoft, deen haaptsächlech während Windows XP benotzt gëtt.
  • Ethernet Kontrollmodell (ECM). En einfache Standard deen Ethernet Frames bannent USB Päck encapsuléiert. Super fir kabelt Modem mat enger USB Verbindung, wou et bequem ass Frames ouni Veraarbechtung ze transferéieren, awer wéinst senger Einfachheet an Aschränkungen vum USB Bus ass et net ganz séier.
  • Ethernet Emulation Model (EEM). E méi clevere Protokoll deen USB Aschränkungen berücksichtegt an optimal Multiple Frames an een aggregéiert, an domat den Duerchgang erhéicht.
  • Network Control Model (NCM). Déi neiste Protokoll. Huet d'Virdeeler vun EEM a weider optimiséiert der Bus Erfahrung.

Fir ee vun dëse Protokoller an eisem Verwaltungsrot ze schaffen, wéi ëmmer, musse mir e puer Schwieregkeeten stoen. Wéinst der Tatsaach datt Allwinner nëmmen un den Android Deeler vum Kernel interesséiert ass, funktionnéiert nëmmen Android Gadget normalerweis - de Code deen d'Kommunikatioun mat adb implementéiert, den Apparat iwwer de MTP Protokoll exportéiert an e Flash Drive op Android Apparater emuléiert. Android Gadget selwer ënnerstëtzt och den RNDIS Protokoll, awer et ass am Allwinner Kernel gebrach. Wann Dir probéiert de Kernel mat engem aneren USB Gadget ze kompiléieren, da erschéngt den Apparat einfach net um System, egal wat Dir maacht.
Fir de Problem ze léisen, op eng frëndlech Manéier, musst Dir d'Plaz fannen wou den USB Controller initialiséiert gëtt am Code vum Android Gadget android.c geännert vun den Entwéckler, awer et gëtt och eng Léisung fir op d'mannst Ethernet-Emulatioun iwwer ze maachen USB Aarbecht:

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

Dëse Patch forcéiert den USB Client Modus, wat Iech erlaabt regelméisseg USB Gadgets vu Linux ze benotzen.
Elo sollt Dir de Kernel mat dësem Patch an dem néidege Gadget opbauen. Ech hunn EEM gewielt well ... Laut Testresultater huet et sech méi produktiv gewisen wéi NCM.
D'Armbesch Equipe suergt ganz einfach a praktesch Assemblée System fir all ënnerstëtzt Brieder an der Verdeelung. Luet et einfach erof, setzt eise Patch an userpatches/kernel/sun8i-default/otg.patch, e bëssen änneren compile.sh a wielt déi néideg Gadget:

Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router

De Kärel gëtt an engem Deb Package kompiléiert, deen net schwéier ass ze installéieren um Bord iwwer dpkg.
Alles wat bleift ass de Board iwwer USB ze verbannen an eisen neien Netzwierkadapter ze konfiguréieren fir eng Adress iwwer DHCP ze kréien. Fir dëst ze maachen, musst Dir eppes wéi folgend addéieren /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'

Et ass besser d'MAC Adress manuell ze setzen, well ... et wäert zoufälleg sinn all Kéier wann den Apparat nei gestart gëtt, wat onbequem an lästeg ass.
Mir verbannen de MicroUSB Kabel un den OTG Connector, verbannen d'Muecht vum Router (et kann op Pins 2 an 3 vum Kamm geliwwert ginn, an net nëmmen un de Power Connector).

Alles wat bleift ass de Router ze konfiguréieren. Et ass genuch fir de Package mam EEM-Treiber z'installéieren an eisen neien USB-Netzwierkapparat op d'Bréck vun der lokaler Firewall Zone ze addéieren:

opkg install kmod-usb-net-cdc-eem

Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router
Fir all Traffic op de VPN-Tunnel ze routen, musst Dir entweder eng SNAT-Regel un d'IP Adress vum Board op der Router Säit addéieren oder d'Adress vum Board als Gateway Adress iwwer dnsmasq verdeelen. Déi lescht gëtt gemaach andeems Dir déi folgend Linn bäidréit /etc/dnsmasq.conf:

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

wou 192.168.1.100 - IP Adress vun Ärem Board. Vergiesst net d'Adress vun der Router an den Netzwierkastellungen um Bord selwer anzeginn!

E Melamine Schwamm gouf benotzt fir d'Brettkontakte vun de Routerkontakter ze isoléieren. Et huet sech sou eppes erausgestallt:
Beschleunegt OpenVPN fir $ 9.99 * oder integréiert Orange Pi One an Ärem Router

Konklusioun

D'Netz iwwer USB Wierker iwwerraschend séier: 100-120 Mb / s, Ech erwaart manner. OpenVPN passéiert ongeféier 70 Mb / s verschlësselte Verkéier, wat och net ganz vill ass, awer genuch fir meng Bedierfnesser. De Router Deckel schléisst net dicht zou, léisst e klengen Spalt. Ästhetesch kënnen d'Ethernet- an USB Host-Stecker aus dem Board erofhuelen, wat den Deckel erlaabt komplett zouzemaachen an nach e bësse Plaz ze hunn.
Et ass besser net esou Pornographie ze engagéieren a kafen Turris Omnia.

Source: will.com

Setzt e Commentaire