التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

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

هناك حلول تجارية باهظة الثمن لبث الفيديو ، لكن هذه الأجهزة تكلف الكثير من الكيلوبكس. يصف المقال تكوين الحزمة المفتوحة المجانية OpenMPTCPRouter ، ويتعامل مع الأساطير الشائعة حول تجميع القنوات.

أساطير حول جمع القنوات

هناك العديد من أجهزة التوجيه المنزلية التي تدعم وظيفة Multi-WAN. أحيانًا يطلق المصنعون على هذه القناة اسم التلخيص ، وهذا ليس صحيحًا تمامًا. يعتقد العديد من المسوقين الشبكيين بالإضافة إلى LACP والتجميع في طبقة L2 ، لا يوجد تجميع آخر للقنوات. كثيرا ما سمعت أن هذا مستحيل بشكل عام من الأشخاص الذين يعملون في مجال الاتصالات. لذلك ، دعونا نحاول فهم الأساطير الشعبية.

الموازنة على مستوى اتصالات IP

هذه هي الطريقة الأكثر تكلفة والأكثر شيوعًا لاستخدام العديد من قنوات الإنترنت في نفس الوقت. للتبسيط ، دعنا نتخيل أن لديك ثلاثة مزودي خدمة إنترنت ، كل منهم يمنحك عنوان IP حقيقي من شبكتهم. كل هؤلاء الموفرين متصلون بجهاز توجيه مع دعم وظيفة Multi-WAN. يمكن أن يكون هذا OpenWRT مع حزمة mwan3 أو mikrotik أو ubiquiti أو أي جهاز توجيه منزلي آخر ، حيث لم يعد هذا الخيار غير شائع الآن.

لمحاكاة الموقف ، تخيل أن مقدمي الخدمة أعطانا العناوين التالية:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

وهذا يعني ، الاتصال بخادم بعيد example.com من خلال كل من المزودين ، سيرى الخادم البعيد ثلاثة مصادر IP مستقلة للعميل. تسمح لك الموازنة بتقسيم الحمل عبر القنوات واستخدامهم جميعًا في نفس الوقت. من أجل التبسيط ، دعنا نتخيل أننا نقسم الحمل بين جميع القنوات بالتساوي. نتيجة لذلك ، عندما يفتح العميل موقعًا بثلاث صور بشكل مشروط ، يقوم بتنزيل كل صورة من خلال موفر منفصل. على جانب الموقع ، يبدو أنه اتصالات من ثلاثة عناوين IP مختلفة.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
عند الموازنة على مستوى الاتصال ، يمر كل اتصال TCP عبر مزود منفصل.

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

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
عند تنزيل التورنت ، فإن الموازنة على مستوى الاتصال تلخص النطاق الترددي لجميع القنوات

يتيح لك هذا التوازن الحصول على مجموع سرعة قناة الإنترنت عند استخدام اتصالات متعددة. على سبيل المثال ، إذا كانت سرعة كل من المزودين الثلاثة 100 ميغا بت ، فعند تنزيل التورنت سنحصل على 300 ميغا بت. لأن التورنت يفتح الكثير من الاتصالات التي يتم توزيعها بين جميع مقدمي الخدمة وفي النهاية تستخدم القناة بأكملها.

من المهم أن نفهم أن اتصال TCP واحد يمر دائمًا عبر مزود واحد فقط. بمعنى ، إذا قمنا بتنزيل ملف كبير واحد عبر HTTP ، فسيتم إجراء هذا الاتصال من خلال أحد الموفرين ، وإذا انقطع الاتصال بهذا الموفر ، فسينقطع التنزيل أيضًا.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
سيستخدم اتصال واحد دائمًا قناة إنترنت واحدة فقط

وينطبق هذا أيضًا على عمليات بث الفيديو. إذا قمت ببث فيديو متدفق على بعض Twitch المشروط ، فإن التوازن على مستوى اتصالات IP لن يعطي أي فائدة خاصة ، حيث سيتم بث دفق الفيديو ضمن اتصال IP واحد. في هذه الحالة ، إذا بدأ مزود WAN 3 في مواجهة مشكلات في الاتصال ، مثل فقدان الحزمة أو التباطؤ ، فلن تتمكن من التبديل على الفور إلى مزود آخر. يجب إيقاف البث وإعادة الاتصال.

جمع صحيح للقناة

يجعل التجميع الحقيقي للقنوات من الممكن بدء اتصال واحد بـ Twitch الشرطي من خلال جميع المزودين في وقت واحد بحيث إذا انقطع أي من مقدمي الخدمة ، فلن يتم قطع الاتصال. هذه مشكلة صعبة بشكل مدهش ، والتي لا تزال تفتقر إلى الحل الأمثل. كثيرون لا يعرفون حتى أن هذا ممكن!

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

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
يقوم خادم التجميع بتجميع جميع القنوات في نفق واحد. تنشأ جميع الاتصالات من عنوان خادم الجمع

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

الحلول التجارية

لطالما كانت هذه المشكلة مصدر قلق لأولئك الذين يبثون الأحداث مباشرة وليس لديهم إمكانية الوصول إلى الإنترنت عالي الجودة. لمثل هذه المهام ، هناك العديد من الحلول التجارية ، على سبيل المثال ، تصنع Teradek مثل هذه الموجهات الوحشية التي يتم إدخال حزم مودم USB فيها:

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
جهاز توجيه بث الفيديو مع وظيفة تجميع القنوات

عادةً ما تتمتع هذه الأجهزة بالقدرة على التقاط الفيديو عبر HDMI أو SDI. جنبا إلى جنب مع جهاز التوجيه ، يتم بيع اشتراك في خدمة تجميع القنوات ، بالإضافة إلى معالجة دفق الفيديو وتحويله وإعادة إرساله مرة أخرى. يبدأ سعر هذه الأجهزة من 2 ألف دولار مع مجموعة أجهزة المودم ، بالإضافة إلى اشتراك منفصل في الخدمة.

في بعض الأحيان يبدو الأمر مخيفًا للغاية:

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

إعداد برنامج OpenMPTCPRouter

بروتوكول MP-TCP تم اختراع (MultiPath TCP) للقدرة على الاتصال على عدة قنوات في وقت واحد. على سبيل المثال ، له يدعم iOS ويمكنه في نفس الوقت الاتصال بخادم بعيد عبر شبكة WiFi وعبر شبكة خلوية. من المهم أن نفهم أن هاتين ليستا توصيلي TCP منفصلين ، ولكن اتصال واحد تم إنشاؤه عبر قناتين في وقت واحد. لكي يعمل هذا ، يجب أن يدعم الخادم البعيد MPTCP أيضًا.

OpenMPTCPRouter هو مشروع موجه لبرنامج مفتوح المصدر يسمح لك بجمع القنوات حقًا. يعلن المؤلفون أن المشروع في حالة إصدار ألفا ، ولكن يمكن استخدامه بالفعل. يتكون من جزأين - خادم تجميع ، موجود على الإنترنت وجهاز توجيه ، يتصل بهما العديد من موفري الإنترنت وأجهزة العملاء أنفسهم: أجهزة الكمبيوتر والهواتف. يمكن أن يكون جهاز التوجيه المخصص Raspberry Pi أو بعض أجهزة توجيه WiFi أو جهاز كمبيوتر عادي. هناك مجموعات جاهزة لمختلف المنصات ، وهي مريحة للغاية.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
كيف يعمل OpenMPTCPRouter

إعداد خادم التلخيص

يقع خادم التجميع على الإنترنت ويقوم بإنهاء الاتصالات من جميع قنوات جهاز توجيه العميل في جهاز واحد. سيكون عنوان IP لهذا الخادم هو العنوان الخارجي عند الوصول إلى الإنترنت من خلال OpenMPTCPRouter.

لهذه المهمة ، سنستخدم خادم VPS على دبيان 10.

متطلبات خادم الجمع:

  • MPTCP لا يعمل على ظاهرية OpenVZ
  • يجب أن يكون من الممكن تثبيت Linux kernel الخاص بك

يتم نشر الخادم بتنفيذ أمر واحد. سيقوم البرنامج النصي بتثبيت النواة الممكّنة لـ mptcp وجميع الحزم المطلوبة. تتوفر نصوص التثبيت لكل من Ubuntu و Debian.

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

نتيجة التثبيت الناجح للخادم.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

نقوم بحفظ كلمات المرور ، سنحتاجها لتكوين جهاز توجيه العميل ، وإعادة التشغيل. من المهم أن تضع في اعتبارك أنه بعد التثبيت ، سيكون SSH متاحًا على المنفذ 65222. بعد إعادة التشغيل ، نحتاج إلى التأكد من أننا نقوم بالتمهيد باستخدام kernel الجديد

uname -a 
Linux test-server.local 4.19.67-mptcp

نرى نقش mptcp بجانب رقم الإصدار ، مما يعني أن النواة قد تم تثبيتها بشكل صحيح.

إعداد جهاز توجيه العميل

في موقع المشروع تتوفر الإصدارات الجاهزة لبعض الأنظمة الأساسية ، مثل Raspberry Pi و Banana Pi وأجهزة توجيه Lynksys والأجهزة الافتراضية.
هذا الجزء من openmptcprouter مبني على OpenWRT ، باستخدام LuCI كواجهة ، مألوفة لأي شخص سبق له أن واجه OpenWRT. تزن مجموعة التوزيع حوالي 50 ميغا بايت!

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

كمنصة اختبار ، سأستخدم Raspberry Pi والعديد من أجهزة المودم USB مع مشغلين مختلفين: MTS و Megafon. كيف تكتب صورة على بطاقة SD ، على ما أعتقد ، لا داعي للقول.

في البداية ، تم تكوين منفذ Ethernet في Raspberry Pi كشبكة محلية بعنوان IP ثابت. 192.168.100.1. من أجل عدم العبث بالأسلاك الموجودة على الطاولة ، قمت بتوصيل Raspberry Pi بنقطة وصول WiFi وقمت بتعيين عنوان ثابت على محول WiFi الخاص بالكمبيوتر 192.168.100.2. لا يتم تمكين خادم DHCP افتراضيًا ، لذا يجب استخدام العناوين الثابتة.

يمكنك الآن الانتقال إلى واجهة الويب 192.168.100.1

عند تسجيل الدخول لأول مرة ، سيطلب منك النظام تعيين كلمة مرور الجذر ، وسيكون SSH متاحًا بنفس كلمة المرور.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter
في إعدادات LAN ، يمكنك ضبط الشبكة الفرعية المطلوبة وتمكين خادم DHCP.

أستخدم أجهزة المودم التي تم تعريفها على أنها واجهات USB ethernet مع خادم DHCP منفصل ، لذلك يتطلب هذا التثبيت حزم إضافية. الإجراء مماثل لتكوين أجهزة المودم في OpenWRT العادي ، لذلك لن أقوم بتغطيته هنا.

بعد ذلك ، تحتاج إلى تكوين واجهات WAN. في البداية ، تم إنشاء واجهتين ظاهريتين WAN1 و WAN2 في النظام. إنهم بحاجة إلى تعيين جهاز مادي ، في حالتي ، هذه هي أسماء واجهات مودم USB.

حتى لا تتشوش في أسماء الواجهة ، أنصحك بمشاهدة رسائل dmesg أثناء الاتصال عبر SSH.

نظرًا لأن أجهزة المودم الخاصة بي تعمل كموجهات ولديها خادم DHCP بنفسها ، فقد اضطررت إلى تغيير إعدادات نطاقات الشبكة الداخلية وتعطيل خادم DHCP ، لأن كلا المودم في البداية يصدران عناوين من نفس الشبكة ، وهذا يسبب تعارضًا.

يتطلب OpenMPTCPRouter أن تكون عناوين واجهة WAN ثابتة ، لذلك نقوم باختراع الشبكات الفرعية لأجهزة المودم وتكوينها في قائمة إعدادات الواجهة ← openmptcprouter →. هنا تحتاج أيضًا إلى تحديد عنوان IP ومفتاح الخادم الذي تم الحصول عليه أثناء تثبيت خادم التجميع.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

في حالة الإعداد الناجح ، يجب أن تظهر صورة مماثلة في صفحة الحالة. يمكن ملاحظة أن جهاز التوجيه كان قادرًا على الوصول إلى خادم التجميع وتعمل كلتا القناتين بشكل صحيح.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

الوضع الافتراضي هو Shadowsocks + mptcp. هذا هو مثل هذا الوكيل الذي يلتف جميع الاتصالات في حد ذاته. في البداية ، تم تكوينه للتعامل مع TCP فقط ، ولكن يمكنك تمكين UDP أيضًا.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

إذا لم تكن هناك أخطاء في صفحة الحالة ، فيمكن اعتبار الإعداد مكتملاً.
مع بعض الموفرين ، قد ينشأ موقف عندما يتم قطع علامة mptcp على طول مسار حركة المرور ، عندئذٍ سيكون هناك مثل هذا الخطأ:

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

في هذه الحالة ، يمكنك استخدام طريقة تشغيل أخرى ، دون استخدام MPTCP ، المزيد حول هذا الموضوع هنا.

اختتام

يعد مشروع OpenMPTCPRouter مثيرًا للاهتمام ومهمًا للغاية ، لأنه ربما يكون الحل الوحيد المفتوح المعقد لمشكلة تجميع القنوات. كل شيء آخر إما مغلق بإحكام وملك ، أو مجرد وحدات منفصلة لا يستطيع الشخص العادي التعامل معها. في المرحلة الحالية من التطوير ، لا يزال المشروع خامًا تمامًا ، وتوثيق ضعيف للغاية ، والعديد من الأشياء ببساطة لم يتم وصفها. لكن في نفس الوقت ، لا يزال يعمل. آمل أن يستمر في التطور ، وسنحصل على أجهزة توجيه منزلية ستكون قادرة على دمج القنوات بشكل طبيعي خارج الصندوق.

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

تابع مطورنا على Instagram

التجميع الحقيقي لقنوات الإنترنت - OpenMPTCPRouter

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

إضافة تعليق