قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك

قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك

البعض منا لا يستخدم الإنترنت بدون VPN لسبب أو لآخر: يحتاج شخص ما إلى عنوان IP مخصص، ومن الأسهل والأرخص شراء VPS مع عنواني IP بدلاً من شراء عنوان من مزود، شخص ما يريد الوصول إلى جميع مواقع الويب ، وليس فقط المسموح به على أراضي الاتحاد الروسي، والبعض الآخر يحتاج إلى IPv6، لكن المزود لا يوفره...
في أغلب الأحيان، يتم إنشاء اتصال VPN على الجهاز نفسه الذي يتم استخدامه في لحظة معينة، وهو أمر منطقي إذا كان لديك جهاز كمبيوتر واحد وهاتف واحد فقط ونادرًا ما تستخدمهما في نفس الوقت. إذا كان هناك العديد من الأجهزة في شبكتك المنزلية، أو، على سبيل المثال، هناك بعض الأجهزة التي لا يمكن تكوين VPN عليها، فسيكون من الملائم أكثر إنشاء نفق مباشرة على جهاز التوجيه المنزلي حتى لا تفكر في إعداد كل جهاز على حدة .

إذا سبق لك أن قمت بتثبيت OpenVPN على جهاز التوجيه الخاص بك، فمن المحتمل أنك تفاجأت بشكل غير سار بمدى سرعة عمله. تمر SoCs حتى لأجهزة التوجيه الرخيصة عبر حركة مرور جيجابت تقريبًا دون أي مشاكل، وذلك بسبب نقل وظائف التوجيه وNAT إلى شريحة منفصلة مصممة خصيصًا لهذه المهمة، كما أن المعالجات الرئيسية لأجهزة التوجيه هذه ضعيفة جدًا، لأن لا يوجد عمليا أي حمل عليها. يتيح لك هذا الحل الوسط تحقيق سرعة عالية لجهاز التوجيه وتقليل سعر الجهاز النهائي بشكل كبير - تكلف أجهزة التوجيه ذات المعالجات القوية عدة مرات أكثر، ويتم وضعها ليس فقط كمربع لتوزيع الإنترنت، ولكن أيضًا كـ NAS، سيل تنزيل ونظام الوسائط المتعددة المنزلية.

لا يمكن تسمية جهاز التوجيه الخاص بي، TP-Link TL-WDR4300، بأنه جديد - فقد ظهر النموذج في منتصف عام 2012، ويحتوي على معالج معماري MIPS560 32Kc بسرعة 74 ميجاهرتز، وقوته تكفي فقط لحركة مرور مشفرة تبلغ 20-23 ميجابايت/ثانية عبر OpenVPN، والتي تعد وفقًا لمعايير سرعة الإنترنت المنزلي الحديث منخفضة جدًا.
كيف يمكننا زيادة سرعة النفق المشفر؟ جهاز التوجيه الخاص بي يعمل بشكل جيد، ويدعم 3x3 MIMO، ويعمل بشكل جيد بشكل عام، ولا أرغب في تغييره.
نظرًا لأنه من المعتاد الآن إنشاء صفحات إنترنت بحجم 10 ميجابايت، وكتابة تطبيقات سطح المكتب في Node.js وتجميعها في ملف بحجم 100 ميجابايت، وزيادة قوة الحوسبة بدلاً من التحسين، فسنفعل شيئًا فظيعًا - سننقل اتصال VPN إلى "كمبيوتر" Orange Pi One منتج ذو لوحة واحدة، والذي سنقوم بتثبيته في علبة جهاز التوجيه دون استهلاك الشبكة ومنافذ USB الحالية، مقابل 9.99 دولارًا فقط*!
* + التوصيل، + الضرائب، + للبيرة، + MicroSD.

المسنجر

لا يمكن وصف معالج جهاز التوجيه بأنه ضعيف تمامًا - فهو قادر على تشفير البيانات وتجزئتها باستخدام خوارزمية AES-128-CBC-SHA1 بسرعة 50 ميجابايت/ثانية، وهي أسرع بشكل ملحوظ من طريقة عمل OpenVPN ودفق CHACHA20 الحديث. يصل التشفير بتجزئة POLY1305 إلى 130 ميغابت في الثانية! لماذا سرعة نفق VPN منخفضة جدًا؟ الأمر كله يتعلق بتبديل السياق بين مساحة المستخدم ومساحة kernel: يقوم OpenVPN بتشفير حركة المرور والتواصل مع العالم الخارجي في سياق المستخدم، ويتم التوجيه نفسه في سياق kernel. يجب أن يقوم نظام التشغيل بالتبديل باستمرار ذهابًا وإيابًا لكل حزمة يتم استلامها أو إرسالها، وهذه العملية بطيئة. هذه المشكلة متأصلة في جميع تطبيقات VPN التي تعمل من خلال برنامج تشغيل TUN/TAP، ولا يمكن القول أن مشكلة السرعة المنخفضة ناتجة عن سوء تحسين OpenVPN (على الرغم من وجود أماكن تحتاج إلى إعادة صياغة بالطبع). لا يوجد عميل VPN واحد لمساحة المستخدمين يوفر حتى جيجابت مع تعطيل التشفير على الكمبيوتر المحمول الخاص بي، ناهيك عن الأنظمة ذات المعالج الضعيف.

أورانج بي وان

يعد Orange Pi One ذو اللوحة الواحدة من Xunlong أفضل عرض من حيث نسبة الأداء / السعر في الوقت الحالي. مقابل 9.99 دولارًا أمريكيًا*، يمكنك الحصول على معالج ARM Cortex-A7 قوي رباعي النواة يعمل (مستقر) بسرعة 1008 ميجاهرتز، ويتفوق بوضوح على جيرانه من حيث السعر مثل Raspberry Pi Zero وNext Thing CHIP. هذا هو المكان الذي تنتهي فيه المزايا. لا تولي شركة Xunlong أي اهتمام على الإطلاق لبرامج لوحاتها، وفي الوقت الذي تم فيه طرح One للبيع، لم تقدم حتى ملف تكوين اللوحة، ناهيك عن الصور الجاهزة. Allwinner، الشركة المصنعة لـ SoC، ليست حساسة بشكل خاص لدعم منتجاتها. إنهم مهتمون فقط بالحد الأدنى من الأداء في نظام التشغيل Android 4.4.4، مما يعني أننا مجبرون على استخدام النواة 3.4 مع تصحيحات Android. لحسن الحظ، هناك المتحمسين الذين يقومون بتجميع التوزيعات، وتحرير النواة، وكتابة التعليمات البرمجية لدعم اللوحات في النواة الرئيسية، أي. إنهم يقومون بالفعل بالعمل لصالح الشركة المصنعة، مما يجعل هذا الهراء يعمل بشكل مقبول. ولأغراضي، اخترت توزيعة Armbian؛ فهي يتم تحديثها بشكل متكرر ومريح (يتم تثبيت النواة الجديدة مباشرة من خلال مدير الحزم، وليس عن طريق نسخ الملفات إلى قسم خاص، كما هو الحال عادة مع Allwinner)، وهي تدعم معظم الأجهزة الطرفية، على عكس الآخرين.

راوتر

من أجل عدم تحميل المعالج الضعيف لجهاز التوجيه بالتشفير وتسريع اتصال VPN الخاص بنا، يمكننا نقل هذه المهمة إلى أكتاف معالج Orange Pi الأكثر قوة عن طريق توصيله بجهاز التوجيه بطريقة ما. يتبادر إلى الذهن الاتصال إما عبر Ethernet أو USB - كلا الجهازين يدعمان هذين المعيارين، لكنني لم أرغب في استخدام المنافذ الموجودة. ولحسن الحظ، هناك طريقة للخروج.

تدعم شريحة محور USB GL850G، المستخدمة في جهاز التوجيه، 4 منافذ USB، اثنان منها غير سلكيين. من غير الواضح لماذا لم تقم الشركة المصنعة بفكها، على ما أعتقد، لمنع المستخدمين من توصيل 4 أجهزة ذات استهلاك تيار مرتفع (على سبيل المثال، محركات الأقراص الثابتة) في وقت واحد. لم يتم تصميم مصدر الطاقة القياسي لجهاز التوجيه لمثل هذا الحمل. وفي كل الأحوال فهذا في صالحنا.
قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك
للحصول على منفذ USB آخر، تحتاج فقط إلى لحام سلكين في الأطراف 8(D-) و9(D+) أو 11(D-) و12(D+).

قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك

ومع ذلك، لا يكفي مجرد توصيل جهازي USB والأمل في أن يعمل كل شيء من تلقاء نفسه، كما هو الحال مع شبكة Ethernet. أولاً، نحتاج إلى جعل أحدهما يعمل في وضع عميل USB، وليس مضيف USB، وثانيًا، نحتاج إلى تحديد كيفية اكتشاف الأجهزة لبعضها البعض. هناك العديد من برامج التشغيل لما يسمى بـ USB Gadgets (التي سميت على اسم النظام الفرعي Linux kernel)، والتي تسمح لك بمحاكاة أنواع مختلفة من أجهزة USB: محول الشبكة، وبطاقة الصوت، ولوحة المفاتيح والماوس، ومحرك الأقراص المحمول، والكاميرا، ووحدة التحكم عبر تسلسلي ميناء. نظرًا لأن جهازنا سيعمل مع الشبكة، فإن محاكاة محول Ethernet هو الأفضل بالنسبة لنا.

هناك ثلاثة معايير لشبكة إيثرنت عبر USB:

  • NDIS البعيد (RNDIS). معيار قديم من Microsoft، يُستخدم بشكل أساسي أثناء نظام التشغيل Windows XP.
  • نموذج التحكم في إيثرنت (ECM). معيار بسيط يقوم بتغليف إطارات Ethernet ضمن حزم USB. يعد رائعًا لأجهزة المودم السلكية المزودة باتصال USB، حيث يكون من الملائم نقل الإطارات دون معالجة، ولكن نظرًا لبساطته وقيود ناقل USB، فهو ليس سريعًا جدًا.
  • نموذج مضاهاة إيثرنت (EEM). بروتوكول أكثر ذكاءً يأخذ في الاعتبار قيود USB ويقوم بتجميع الإطارات المتعددة في إطار واحد على النحو الأمثل، وبالتالي زيادة الإنتاجية.
  • نموذج التحكم بالشبكة (NCM). أحدث بروتوكول. يتمتع بفوائد EEM ويحسن تجربة الحافلة.

لكي يعمل أي من هذه البروتوكولات على لوحتنا، كما هو الحال دائمًا، سيتعين علينا مواجهة بعض الصعوبات. نظرًا لحقيقة أن Allwinner مهتم فقط بأجزاء Android من kernel، فإن Android Gadget فقط هو الذي يعمل بشكل طبيعي - الكود الذي ينفذ الاتصال مع adb، ويصدر الجهاز عبر بروتوكول MTP ويحاكي محرك أقراص فلاش على أجهزة Android. تدعم Android Gadget نفسها أيضًا بروتوكول RNDIS، ولكنها معطلة في Allwinner kernel. إذا حاولت تجميع النواة باستخدام أي أداة USB أخرى، فلن يظهر الجهاز ببساطة على النظام، بغض النظر عما تفعله.
لحل المشكلة بطريقة ودية، تحتاج إلى العثور على المكان الذي تتم فيه تهيئة وحدة تحكم USB في كود أداة Android Android.c التي تم تعديلها بواسطة المطورين، ولكن هناك أيضًا حل بديل لإجراء محاكاة Ethernet على الأقل عمل يو اس بي:

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

يفرض هذا التصحيح وضع عميل USB، مما يسمح لك باستخدام أدوات USB العادية من Linux.
الآن يجب عليك إعادة بناء النواة باستخدام هذا التصحيح والأداة الضرورية. لقد اخترت EEM لأنه... وفقا لنتائج الاختبار، اتضح أنه أكثر إنتاجية من NCM.
يقدم فريق ارمبيان نظام تجميع بسيط ومريح للغاية لجميع اللوحات المدعومة في التوزيع. فقط قم بتنزيله، ثم ضع التصحيح الخاص بنا userpatches/kernel/sun8i-default/otg.patch، تحرير قليلا compile.sh وحدد الأداة المطلوبة:

قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك

سيتم تجميع النواة في حزمة deb، والتي لن يكون من الصعب تثبيتها على اللوحة عبرها dpkg.
كل ما تبقى هو توصيل اللوحة عبر USB وتهيئة محول الشبكة الجديد الخاص بنا لتلقي عنوان عبر DHCP. للقيام بذلك تحتاج إلى إضافة شيء مثل ما يلي إلى /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 يدويًا، لأن... سيكون عشوائيًا في كل مرة يتم فيها إعادة تشغيل الجهاز، وهو أمر غير مريح ومزعج.
نقوم بتوصيل كابل MicroUSB بموصل OTG، ونقوم بتوصيل الطاقة من جهاز التوجيه (يمكن توصيله إلى الأطراف 2 و 3 من المشط، وليس فقط بموصل الطاقة).

كل ما تبقى هو تكوين جهاز التوجيه. يكفي تثبيت الحزمة باستخدام برنامج تشغيل EEM وإضافة جهاز شبكة USB الجديد الخاص بنا إلى جسر منطقة جدار الحماية المحلية:

opkg install kmod-usb-net-cdc-eem

قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك
لتوجيه كل حركة المرور إلى نفق VPN، تحتاج إما إلى إضافة قاعدة SNAT إلى عنوان IP الخاص باللوحة على جانب جهاز التوجيه، أو توزيع عنوان اللوحة كعنوان بوابة عبر dnsmasq. ويتم هذا الأخير عن طريق إضافة السطر التالي إلى /etc/dnsmasq.conf:

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

حيث 192.168.1.100 - عنوان IP الخاص باللوحة الخاصة بك. لا تنس إدخال عنوان جهاز التوجيه في إعدادات الشبكة على اللوحة نفسها!

تم استخدام إسفنجة الميلامين لعزل جهات اتصال اللوحة عن جهات اتصال جهاز التوجيه. اتضح شيئا من هذا القبيل:
قم بتسريع OpenVPN مقابل 9.99 دولار* أو قم بدمج Orange Pi One في جهاز التوجيه الخاص بك

اختتام

تعمل الشبكة عبر USB بسرعة مدهشة: 100-120 ميجابايت/ثانية، كنت أتوقع أقل من ذلك. يمر OpenVPN عبر حوالي 70 ميجابايت/ثانية من حركة المرور المشفرة، وهو ليس كثيرًا أيضًا، ولكنه يكفي لاحتياجاتي. غطاء جهاز التوجيه لا يغلق بإحكام، مما يترك فجوة صغيرة. يمكن للجماليين إزالة موصلات مضيف Ethernet وUSB من اللوحة، مما سيسمح للغطاء بالإغلاق تمامًا ولا يزال هناك بعض المساحة المتبقية.
من الأفضل عدم الانخراط في مثل هذه المواد الإباحية والشراء توريس أمنية.

المصدر: www.habr.com

إضافة تعليق