OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling

OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling

Ba'zilarimiz u yoki bu sabablarga ko'ra VPNsiz Internetdan foydalanmaymiz: kimgadir maxsus IP kerak va provayderdan manzil sotib olishdan ko'ra ikkita IP bilan VPS sotib olish osonroq va arzonroq, kimdir barcha veb-saytlarga kirishni xohlaydi. , va nafaqat Rossiya Federatsiyasi hududida ruxsat etilganlar, boshqalarga IPv6 kerak, lekin provayder buni ta'minlamaydi...
Ko'pincha VPN ulanishi ma'lum bir vaqtda ishlatiladigan qurilmaning o'zida o'rnatiladi, bu sizda faqat bitta kompyuter va bitta telefon bo'lsa va ularni bir vaqtning o'zida kamdan-kam ishlatsangiz mantiqiy bo'ladi. Agar sizning uy tarmog'ingizda ko'plab qurilmalar mavjud bo'lsa yoki, masalan, VPN-ni sozlash imkonsiz bo'lsa, har bir qurilmani alohida sozlash haqida o'ylamaslik uchun to'g'ridan-to'g'ri uy routerida tunnel yaratish qulayroq bo'ladi. .

Agar siz hech qachon yo'riqnomangizga OpenVPN-ni o'rnatgan bo'lsangiz, uning qanchalik tez ishlashi sizni hayratda qoldirgan bo'lishi mumkin. Hatto arzon marshrutizatorlarning SoC'lari marshrutlash va NAT funktsiyalarini faqat ushbu vazifa uchun mo'ljallangan alohida chipga o'tkazish tufayli gigabitli trafikni muammosiz o'tkazadi va bunday routerlarning asosiy protsessorlari juda zaif, chunki Ularga deyarli hech qanday yuk yo'q. Ushbu murosa sizga marshrutizatorning yuqori tezligiga erishish va tayyor qurilmaning narxini sezilarli darajada kamaytirish imkonini beradi - kuchli protsessorli marshrutizatorlar bir necha baravar qimmat turadi va ular nafaqat Internetni tarqatish qutisi, balki NAS, torrent sifatida ham joylashtirilgan. yuklab oluvchi va uy multimedia tizimi.

Mening TP-Link TL-WDR4300 routerimni yangi deb bo'lmaydi - model 2012 yil o'rtalarida paydo bo'lgan va 560 MGts chastotali MIPS32 74Kc arxitektura protsessoriga ega, uning quvvati atigi 20-23 Mb/s shifrlangan trafik uchun yetarli. OpenVPN orqali, bu standartlar bo'yicha zamonaviy uy Internet tezligi ancha past.
Shifrlangan tunnel tezligini qanday oshirishimiz mumkin? Routerim juda funktsional, 3x3 MIMO-ni qo'llab-quvvatlaydi va odatda yaxshi ishlaydi, men uni o'zgartirishni xohlamayman.
Endi 10 megabaytli Internet sahifalarini yaratish, node.js-da ish stoli ilovalarini yozish va ularni 100 megabaytlik faylga to'plash, optimallashtirish o'rniga hisoblash quvvatini oshirish odatiy holga kelganligi sababli, biz dahshatli ish qilamiz - VPN ulanishini o'tkazamiz. Biz mavjud tarmoq va USB portlarni egallamasdan marshrutizator qutisiga o'rnatadigan samarali yagona platali "kompyuter" Orange Pi One atigi $9.99*ga!
* + yetkazib berish, + soliqlar, + pivo uchun, + MicroSD.

Openvpn

Router protsessorini mutlaqo zaif deb atash mumkin emas - u AES-128-CBC-SHA1 algoritmi yordamida 50 Mb/s tezlikda ma'lumotlarni shifrlash va xeshlash imkoniyatiga ega, bu OpenVPN va zamonaviy CHACHA20 oqimidan sezilarli darajada tezroq. POLY1305 xeshli shifr hatto soniyasiga 130 megabitga etadi! Nima uchun VPN tunnelining tezligi juda past? Bu foydalanuvchi maydoni va yadro maydoni o'rtasida kontekstni almashtirish haqida: OpenVPN trafikni shifrlaydi va foydalanuvchi kontekstida tashqi dunyo bilan aloqa qiladi va marshrutlashning o'zi yadro kontekstida sodir bo'ladi. Operatsion tizim har bir qabul qilingan yoki uzatilgan paket uchun doimo oldinga va orqaga o'tishi kerak va bu operatsiya sekin. Bu muammo TUN/TAP drayveri orqali ishlaydigan barcha VPN ilovalariga xosdir va past tezlik muammosi yomon OpenVPN optimallashtirishdan kelib chiqqan deb aytish mumkin emas (garchi, albatta, qayta ishlanishi kerak bo'lgan joylar mavjud). Birorta ham foydalanuvchilar maydoni VPN mijozi, hatto zaif protsessorli tizimlar u yoqda tursin, mening noutbukimda shifrlash o'chirilgan gigabitni ham ta'minlamaydi.

Orange PiOne

Xunlong'dan bitta taxtali Orange Pi One hozirda ishlash / narx nisbati bo'yicha eng yaxshi taklifdir. 9.99$* evaziga siz 7 MGts chastotada ishlaydigan (barqaror) toβ€˜rt yadroli ARM Cortex-A1008 protsessoriga ega boβ€˜lasiz va qoβ€˜shnilaridan Raspberry Pi Zero va Next Thing C.H.I.P.dan yaqqol ustun turadi. narx kategoriyasi bo'yicha. Bu erda afzalliklar tugaydi. Xunlong kompaniyasi o'z platalarining dasturiy ta'minotiga mutlaqo nol e'tibor beradi va One sotuvga chiqarilgan vaqtda u hatto tayyor tasvirlar haqida gapirmasa ham, taxta konfiguratsiya faylini ham taqdim etmagan. SoC ishlab chiqaruvchi Allwinner ham o'z mahsulotini qo'llab-quvvatlashga juda sezgir emas. Ular faqat Android 4.4.4 operatsion tizimida minimal ishlashga qiziqishadi, ya'ni biz Android yamoqlari bilan 3.4 yadrosidan foydalanishga majburmiz. Yaxshiyamki, distributivlarni yig'adigan, yadroni tahrirlaydigan, asosiy yadrodagi taxtalarni qo'llab-quvvatlash uchun kod yozadigan ishqibozlar bor, ya'ni. ular aslida ishlab chiqaruvchi uchun ishni qiladilar, bu axlatni maqbul qiladi. Mening maqsadlarim uchun men Armbian distributivini tanladim; u tez-tez va qulay tarzda yangilanadi (yangi yadrolar to'g'ridan-to'g'ri paket menejeri orqali o'rnatiladi, odatda Allwinner-da bo'lgani kabi fayllarni maxsus bo'limga nusxalash orqali emas) va u ko'pchilikni qo'llab-quvvatlaydi. boshqalardan farqli o'laroq, tashqi qurilmalar.

Router

Routerning zaif protsessorini shifrlash bilan yuklamaslik va VPN ulanishimizni tezlashtirish uchun biz ushbu vazifani qandaydir tarzda routerga ulab, yanada kuchliroq Orange Pi protsessoriga o'tkazishimiz mumkin. Ethernet yoki USB orqali ulanish aqlga keladi - bu ikkala standart ham ikkala qurilma tomonidan qo'llab-quvvatlanadi, lekin men mavjud portlarni olishni xohlamadim. Yaxshiyamki, chiqish yo'li bor.

Routerda ishlatiladigan GL850G USB hub chipi 4 ta USB portni qo'llab-quvvatlaydi, ulardan ikkitasi simli emas. Foydalanuvchilarning bir vaqtning o'zida yuqori oqim iste'moli bo'lgan 4 ta qurilmani (masalan, qattiq disklar) ulashiga yo'l qo'ymaslik uchun ishlab chiqaruvchi ularni nima uchun echmagani noma'lum. Routerning standart quvvat manbai bunday yuk uchun mo'ljallanmagan. Har holda, bu bizning foydamizga.
OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling
Boshqa USB portini olish uchun siz ikkita simni 8(D-) va 9(D+) yoki 11(D-) va 12(D+) pinlariga lehimlashingiz kifoya.

OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling

Biroq, ikkita USB qurilmasini shunchaki ulash va Ethernet bilan bo'lgani kabi, hamma narsa o'z-o'zidan ishlashiga umid qilishning o'zi etarli emas. Birinchidan, biz ulardan birini USB Host rejimida emas, balki USB Client rejimida ishlashimiz kerak, ikkinchidan, qurilmalar bir-birini qanday aniqlashini hal qilishimiz kerak. USB gadjetlari (Linux yadro quyi tizimi nomi bilan atalgan) uchun ko'plab drayverlar mavjud bo'lib, ular sizga har xil turdagi USB qurilmalarini taqlid qilish imkonini beradi: tarmoq adapteri, audio karta, klaviatura va sichqoncha, flesh-disk, kamera, seriyali konsol. port. Bizning qurilmamiz tarmoq bilan ishlashi sababli, Ethernet adapterini taqlid qilish biz uchun eng yaxshisidir.

Ethernet-over-USB uchun uchta standart mavjud:

  • Masofaviy NDIS (RNDIS). Microsoft-ning eskirgan standarti, asosan Windows XP da qo'llaniladi.
  • Ethernet boshqaruv modeli (ECM). USB paketlari ichida Ethernet freymlarini qamrab oluvchi oddiy standart. USB ulanishi bilan simli modemlar uchun juda yaxshi, bu erda ishlov bermasdan freymlarni uzatish qulay, lekin USB avtobusining soddaligi va cheklovlari tufayli u juda tez emas.
  • Ethernet emulyatsiya modeli (EEM). USB cheklovlarini hisobga oladigan va bir nechta freymlarni optimal tarzda birlashtirib, o'tkazish qobiliyatini oshiradigan aqlli protokol.
  • Tarmoqni boshqarish modeli (NCM). Eng yangi protokol. EEM afzalliklariga ega va avtobus tajribasini yanada optimallashtiradi.

Ushbu protokollardan birini bizning doskamizda ishlashi uchun har doimgidek, biz ba'zi qiyinchiliklarga duch kelishimiz kerak. Allwinner faqat yadroning Android qismlariga qiziqqanligi sababli, faqat Android Gadget normal ishlaydi - adb bilan aloqani amalga oshiradigan kod, qurilmani MTP protokoli orqali eksport qiladi va Android qurilmalarida flesh-diskni taqlid qiladi. Android Gadget-ning o'zi ham RNDIS protokolini qo'llab-quvvatlaydi, ammo u Allwinner yadrosida buzilgan. Agar siz yadroni boshqa USB gadjetlari bilan kompilyatsiya qilmoqchi bo'lsangiz, nima qilsangiz ham, qurilma tizimda ko'rinmaydi.
Muammoni do'stona tarzda hal qilish uchun ishlab chiquvchilar tomonidan o'zgartirilgan android.c Android gadjetining kodida USB kontroller ishga tushirilgan joyni topishingiz kerak, ammo hech bo'lmaganda Ethernet emulyatsiyasini amalga oshirish uchun vaqtinchalik yechim ham mavjud. USB ishi:

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

Ushbu yamoq USB mijoz rejimini majburlaydi, bu sizga Linuxdan oddiy USB gadjetlardan foydalanish imkonini beradi.
Endi siz ushbu yamoq va kerakli gadjet yordamida yadroni qayta tiklashingiz kerak. Men EEM ni tanladim, chunki ... Sinov natijalariga ko'ra, u NCMga qaraganda samaraliroq bo'lib chiqdi.
Armiya jamoasi ta'minlaydi juda oddiy va qulay yig'ish tizimi tarqatishdagi barcha qo'llab-quvvatlanadigan taxtalar uchun. Shunchaki yuklab oling, bizning yamoqni kiriting userpatches/kernel/sun8i-default/otg.patch, biroz tahrirlang compile.sh va kerakli gadjetni tanlang:

OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling

Yadro deb to'plamiga kompilyatsiya qilinadi, bu orqali doskaga o'rnatish qiyin bo'lmaydi dpkg.
Faqat platani USB orqali ulash va DHCP orqali manzilni olish uchun yangi tarmoq adapterimizni sozlash qoladi. Buni amalga oshirish uchun siz quyidagi kabi narsalarni qo'shishingiz kerak /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'

MAC manzilini qo'lda o'rnatgan ma'qul, chunki... qurilma har safar qayta ishga tushirilganda tasodifiy bo'ladi, bu noqulay va muammoli.
Biz MicroUSB kabelini OTG ulagichiga ulaymiz, yo'riqnoma quvvatini ulaymiz (u nafaqat quvvat ulagichiga emas, balki taroqning 2 va 3-pinlariga ham berilishi mumkin).

Routerni sozlash qoladi. Paketni EEM drayveri bilan o'rnatish va yangi USB tarmoq qurilmamizni mahalliy xavfsizlik devori zonasi ko'prigiga qo'shish kifoya:

opkg install kmod-usb-net-cdc-eem

OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling
Barcha trafikni VPN tunneliga yo'naltirish uchun yo'riqnoma tomonidagi plataning IP manziliga SNAT qoidasini qo'shishingiz yoki plata manzilini dnsmasq orqali shlyuz manzili sifatida tarqatishingiz kerak. Ikkinchisi quyidagi qatorni qo'shish orqali amalga oshiriladi /etc/dnsmasq.conf:

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

qayerda 192.168.1.100 β€” Kengashingizning IP manzili. Router manzilini doskaning o'zida tarmoq sozlamalariga kiritishni unutmang!

Kengash kontaktlarini marshrutizator kontaktlaridan ajratish uchun melamin shimgich ishlatilgan. Bu shunday bo'ldi:
OpenVPN-ni 9.99 dollarga tezlashtiring* yoki Orange Pi One-ni routeringizga integratsiya qiling

xulosa

USB orqali tarmoq hayratlanarli darajada tez ishlaydi: 100-120 Mb/s, men kamroq kutgandim. OpenVPN taxminan 70 Mb/s shifrlangan trafikdan o'tadi, bu ham unchalik ko'p emas, lekin mening ehtiyojlarim uchun etarli. Router qopqog'i mahkam yopilmaydi, kichik bo'shliqni qoldiradi. Aesthetes Ethernet va USB Host konnektorlarini platadan olib tashlashi mumkin, bu esa qopqoqning to'liq yopilishiga va hali ham bo'sh joy qolishiga imkon beradi.
Bunday pornografiya bilan shug'ullanmaslik va sotib olish yaxshiroqdir Turris Omnia.

Manba: www.habr.com

a Izoh qo'shish