
هل يمكن دمج عدة قنوات إنترنت في قناة واحدة؟ هناك الكثير من المفاهيم الخاطئة والأساطير حول هذا الموضوع ، حتى مهندسي الشبكات ذوي الخبرة في كثير من الأحيان لا يعرفون أن هذا ممكن. في معظم الحالات ، يسمى تجميع الارتباطات عن طريق الخطأ 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 مختلفة.
عند الموازنة على مستوى الاتصال ، يمر كل اتصال TCP من خلال موفر منفصل .
غالبًا ما يؤدي وضع الموازنة هذا إلى حدوث مشاكل للمستخدمين. على سبيل المثال ، تقوم العديد من المواقع بإرفاق ملفات تعريف الارتباط والرموز بإحكام على عنوان IP الخاص بالعميل ، وإذا تغير فجأة ، فسيتم رفض الطلب أو خروج العميل من الموقع. غالبًا ما يتم إعادة إنتاج هذا على أنظمة بنك العميل والمواقع الأخرى التي لها قواعد صارمة لجلسة المستخدم. فيما يلي مثال توضيحي بسيط: تتوفر ملفات الموسيقى في VK.com فقط مع مفتاح جلسة صالح مرتبط بـ IP ، وغالبًا ما لا يقوم العملاء الذين يستخدمون هذا التوازن بتشغيل الصوت ، لأن الطلب لم يذهب من خلال الموفر الذي ترتبط به الجلسة.
عند تنزيل السيول ، فإن التوازن على مستوى الاتصال يلخص عرض النطاق الترددي لجميع القنواتيتيح لك هذا التوازن الحصول على ملخص لسرعة قناة الإنترنت عند استخدام اتصالات متعددة. على سبيل المثال ، إذا كان لدى كل من الموفرين الثلاثة سرعة 100 ميغابت ، فعند تنزيل السيول ، نحصل على 300 ميغابت. لأن سيل يفتح العديد من الاتصالات التي يتم توزيعها بين جميع مقدمي الخدمات والاستفادة في نهاية المطاف القناة بأكملها.
من المهم أن نفهم أن اتصال TCP واحد سينتقل دائمًا إلى مزود واحد فقط. أي إذا قمنا بتنزيل ملف كبير واحد عبر HTTP ، فسيتم إجراء هذا الاتصال من خلال أحد الموفرين ، وإذا تعطل الاتصال مع هذا الموفر ، فسوف ينقطع التنزيل أيضًا.
سيستخدم اتصال واحد دائمًا قناة إنترنت واحدة فقطهذا صحيح للبث الفيديو. إذا كنت تقوم ببث الفيديو على نوع من Twitch الشرطية ، فلن تحقق التوازن على مستوى اتصالات IP أي فائدة خاصة ، حيث سيتم بث دفق الفيديو داخل اتصال IP واحد. في هذه الحالة ، إذا بدأ موفر WAN 3 في مواجهة مشكلات الاتصال ، على سبيل المثال ، فقد الحزمة أو تقليل السرعة ، فلن تتمكن من التبديل على الفور إلى مزود آخر. يجب إيقاف البث وإعادة الاتصال مرة أخرى.
قناة حقيقية تلخيص
يتيح الجمع الفعلي للقنوات إمكانية بدء اتصال واحد بـ Twitch الشرطي على الفور من خلال جميع الموفرين بطريقة أنه إذا تعطل أحد مقدمي الخدمة ، فلن ينقطع الاتصال. هذه مهمة صعبة بشكل مدهش ، والتي لا تزال تفتقر إلى الحل الأمثل. كثيرون لا يعرفون حتى أن هذا ممكن!
من الرسوم التوضيحية السابقة ، نتذكر أن خادم Twitch الشرطي يمكنه تلقي دفق فيديو منا من عنوان IP مصدر واحد فقط ، مما يعني أنه يجب أن يكون دائمًا ثابتًا معنا ، بغض النظر عن الموفرين الذين سقطوا وتلك التي تعمل. لتحقيق ذلك ، نحتاج إلى خادم تجميع يقوم بإنهاء جميع اتصالاتنا ودمجها في واحد.
يقوم خادم التلخيص بتجميع جميع القنوات في نفق واحد. تحدث جميع الاتصالات من عنوان خادم التلخيصفي هذا المخطط ، يتم استخدام جميع مقدمي الخدمة ، ولن يؤدي تعطيل أي منهم إلى انقطاع الاتصال بخادم Twitch. في الواقع ، هذا هو نفق VPN خاص ، يوجد أسفله العديد من قنوات الإنترنت في وقت واحد. المهمة الرئيسية لمثل هذا المخطط هي الحصول على قناة اتصال عالية الجودة. إذا بدأت المشاكل في أحد الموفرين ، وفقدان الحزمة ، والتأخير المتزايد ، فلن يؤثر ذلك على جودة الاتصال بأي طريقة ، حيث سيتم توزيع الحمل تلقائيًا من خلال قنوات أخرى أفضل متوفرة.
حلول تجارية
لطالما أزعجت هذه المشكلة أولئك الذين يبثون الأحداث الحية ولا يمكنهم الوصول إلى الإنترنت عالي الجودة. هناك العديد من الحلول التجارية لمثل هذه المهام ، على سبيل المثال ، تصنع شركة Teradek أجهزة توجيه وحشية يتم فيها إدخال حزم من أجهزة مودم USB:
فيديو بث الموجه مع قناة تلخيص وظيفةفي مثل هذه الأجهزة ، عادة ، القدرة على التقاط الفيديو عبر HDMI أو SDI. جنبا إلى جنب مع جهاز التوجيه ، يتم بيع الاشتراك في خدمة تلخيص القناة ، وكذلك معالجة دفق الفيديو ، وتحويلها إلى رمز إضافي والترحيل. سعر هذه الأجهزة يبدأ من 2 ألف دولار مع مجموعة من أجهزة المودم ، بالإضافة إلى اشتراك منفصل في الخدمة.
في بعض الأحيان يبدو مخيف جدا:

تكوين OpenMPTCPRouter
تم اختراع
بروتوكول MP-TCP (TCP MultiPath) من أجل القدرة على الاتصال عبر قنوات متعددة في وقت واحد. على سبيل المثال ،
يدعم نظام التشغيل iOS ويمكنه الاتصال في نفس الوقت بخادم بعيد عبر شبكة WiFi وشبكة خلوية. من المهم أن نفهم أن هذه ليست اتصالين منفصلين TCP ، ولكن اتصال واحد فقط تأسيسها على قناتين. لكي يعمل هذا ، يجب أن يدعم الخادم البعيد MPTCP أيضًا.
OpenMPTCPRouter هو مشروع موجه مفتوح المصدر يسمح لك بإضافة القنوات حقًا. يعلن المؤلفون أن المشروع في حالة ألفا ، لكن يمكن استخدامه بالفعل. يتكون من جزأين - خادم تجميع موجود على الإنترنت وجهاز توجيه ، يتصل به العديد من مزودي الإنترنت وأجهزة العميل أنفسهم: أجهزة الكمبيوتر والهواتف. كموجه مخصص أو Raspberry Pi أو بعض أجهزة توجيه WiFi أو كمبيوتر عادي يمكن أن تعمل. هناك مجموعات جاهزة لمختلف المنصات ، وهي مريحة للغاية.
كيف يعمل OpenMPTCPRouterتكوين خادم التلخيص
يقع خادم التلخيص على الإنترنت وينهي الاتصالات من جميع قنوات جهاز التوجيه العميل إلى واحد. سيكون عنوان IP لهذا الخادم هو العنوان الخارجي عند الوصول إلى الإنترنت من خلال OpenMPTCPRouter.
لهذه المهمة ، سوف نستخدم خادم VPS على دبيان 10.
متطلبات خادم التلخيص:
- MPTCP لا يعمل على OpenVZ الافتراضية
- يجب أن يكون من الممكن تثبيت Linux kernel الخاص بك
يتم نشر الخادم عن طريق تنفيذ أمر واحد. سيقوم البرنامج النصي بتثبيت kernel بدعم mptcp وجميع الحزم اللازمة. تتوفر مخطوطات التثبيت لأوبونتو وديبيان.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
نتيجة تثبيت خادم ناجح.

نقوم بحفظ كلمات المرور ، وسنحتاج إليها لتكوين جهاز توجيه العميل وإعادة التشغيل. من المهم أن تضع في اعتبارك أنه بعد التثبيت ، سيكون SSH متاحًا على المنفذ 65222. بعد إعادة التشغيل ، يجب عليك التأكد من أننا نتمهيدًا باستخدام kernel الجديد
uname -a Linux test-server.local 4.19.67-mptcp
نرى mptcp بجانب رقم الإصدار ، مما يعني أن النواة مثبتة بشكل صحيح.
إعداد جهاز توجيه العميل
على
موقع المشروع ، تتوفر التجميعات الجاهزة لبعض المنصات ، على سبيل المثال Raspberry Pi و Banana Pi و Lynksys وأجهزة التوجيه الافتراضية.
يعتمد هذا الجزء من openmptcprouter على OpenWRT ، باستخدام LuCI كواجهة ، مألوفة لكل من واجه OpenWRT. مجموعة التوزيع تزن حوالي 50MB!

كمقعد اختبار ، سأستخدم Raspberry Pi وعدة أجهزة مودم USB مع مشغلين مختلفين: MTS و Megaphone. كيفية كتابة الصورة على بطاقة SD ، في اعتقادي ، لا حاجة لمعرفة ذلك.
في البداية ، تم تكوين منفذ Ethernet في Raspberry Pi باعتباره شبكة محلية مع عنوان IP ثابت
192.168.100.1 . لكي لا العبث بالأسلاك الموجودة على الطاولة ، قمت بتوصيل Raspberry Pi بنقطة وصول WiFi وقم بتعيين العنوان الثابت
192.168.100.2 على محول WiFi للكمبيوتر. لم يتم تمكين خادم DHCP بشكل افتراضي ، لذلك تحتاج إلى استخدام عناوين ثابتة.
يمكنك الآن الانتقال إلى واجهة الويب
192.168.100.1عند تسجيل الدخول الأول ، سيطلب منك النظام تعيين كلمة مرور الجذر ، وسوف يكون SSH متاحًا بنفس كلمة المرور.

في إعدادات LAN ، يمكنك تعيين الشبكة الفرعية المطلوبة وتمكين خادم DHCP.
أستخدم أجهزة المودم ، والتي يتم تعريفها على أنها واجهات USB Ethernet مع خادم DHCP منفصل ، لذلك تطلب تثبيت
حزم إضافية . الإجراء مماثل لإعداد أجهزة المودم في OpenWRT المعتادة ، لذلك أنا لن تنظر فيه هنا.
بعد ذلك ، تحتاج إلى تكوين واجهات WAN. في البداية ، تم إنشاء واجهات افتراضية اثنين WAN1 و WAN2 في النظام. يجب أن يتم تخصيص جهاز فعلي لهم ، وهذه هي حالتي أسماء واجهات مودم USB.
من أجل عدم الخلط بين أسماء الواجهات ، أنصحك بمشاهدة رسائل dmesg عن طريق الاتصال عبر SSH.
نظرًا لأن أجهزة المودم الخاصة بي تعمل كموجهات ، ولديهم خادم DHCP ، اضطررت لتغيير إعدادات نطاقات الشبكة الداخلية الخاصة بهم وتعطيل خادم DHCP ، لأن كلا المودمين يبدوان في البداية عناوين من نفس الشبكة ، وهذا يتسبب في حدوث تعارض.
يتطلب OpenMPTCPRouter أن تكون عناوين واجهات WAN ثابتة ، لذلك نأتي بأجهزة مودم للشبكة الفرعية وتكوينها في إعدادات قائمة نظام → openmptcprouter →. تحتاج هنا إلى تحديد عنوان IP ومفتاح الخادم الذي تم الحصول عليه أثناء تثبيت خادم التلخيص.

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

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

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

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

اشترك في مطور Instagram الخاص بنا
