BGP هو الغراء للإنترنت. بالنسبة للبروتوكول ، الذي تم رسمه
على اثنين من المناديل في عام 1989 ، من المفاجئ
والمرعب في نفس الوقت أنه يتعامل مع جميع التفاعلات تقريبًا بين مزودي خدمات الإنترنت ، كونها جزءًا أساسيًا من الإنترنت.
تتمتع BGP بسمعة سيئة بسبب الطبيعة الموثوقة للروابط بين الأقران بشكل افتراضي والمهمة الصعبة المتمثلة في التحقق من شرعية الطرق. لهذا السبب نسمع في كل مكان عن اختراق BGP بدرجات متفاوتة من الخطورة: من تغيير مسار
كل YouTube إلى
AWS Route 53 .
ولكن لفهم طبيعة هذه الاختراقات ، تحتاج إلى فهم طوبولوجيا الإنترنت. لنبدأ بجهاز توجيه وحيد:
جهاز توجيه واحد يكون قليل الفائدة إذا لم يتمكن من توجيه أي شيء. لذلك ، سنقوم بتوصيل جهاز توجيه آخر به على المستوى المادي (يمكن أن يكون أي شيء: من إيثرنت النحاس والألياف الضوئية تحت الماء إلى روابط 802.11 Wi-Fi).
بعد ذلك ، يجب أن يفهم جهازا توجيه متصلان (في حالتنا الأحمر والأزرق) أنه بإمكانهما توجيه حركة المرور لبعضهما البعض. بعد كل شيء ، فإن نقطة أجهزة التوجيه هي توجيه حركة المرور من وجهة إلى أخرى.
كما ذكرنا سابقًا ، هناك طريقة شائعة للقيام بذلك بين مزودي خدمة الإنترنت وهي تثبيت BGP على كلا الجانبين ، والسماح لهم "بالإعلان" لبعضهم البعض أنه يمكنهم توجيه حركة المرور:

ولكن ليس من المفيد جدًا أن يتحدثوا فقط مع بعضهم البعض ، وفجأة لا ترتبط أجهزة التوجيه الحمراء والزرقاء بشكل مباشر؟ كلما زاد عدد أجهزة التوجيه التي نتصل بها ، زادت تعقيد بنية التوجيه التي نشكلها. هذا ممكن لأن كل نظير BGP يشارك جداول التوجيه مع النظراء الآخرين المرتبطين به:

تعتمد كيفية تبادل أجهزة التوجيه للمعلومات مع بعضها البعض على سياسة التكوين ، ويعتمد هذا عادةً على الظروف الواقعية للعقد المجاورة. هناك إعدادات مختلفة للعملاء ، واتفاقيات تبادل حركة المرور ومقدمي خدمات أعلى.
وبسبب هذا ، تتطلب أجهزة التوجيه مجموعة من التعليمات المبرمجة لتصفية ما لا تريد إعطائه أو أخذه من العقد الأخرى. ولكن من وقت لآخر ، يتمكن المهاجمون من الوصول إلى جهاز توجيه متصل بجهاز توجيه آخر لا يحتوي على مثل هذه المرشحات. من
الصعب للغاية إصلاح هذا على مستوى البرنامج ، لأنه يتطلب تغييرات في أجهزة التوجيه لكل موفر. المحاولات السابقة
ليست واسعة الانتشار .
لدى BGP طريقة لترميز المعلومات باستخدام مسار يسمى المجتمع. يتم تعريفه في RFC1997 (للأسف ، كتب في عام 1996 ، غاب قليلاً). يمكن إرفاق المجتمع بإعلان مسار ويتكون من رقم 32 بت. من الناحية العملية ، يتم تقسيم هذه القيمة إلى رقمين 16 بت (واحد لـ ASN والآخر للإشارة المرتبطة / لـ ASN):

يتم استخدامها لنقل معلومات إضافية حول المسار ، على سبيل المثال ، حيث اتخذ مقدم الخدمة هذا المسار:

هذا مفيد من حيث التصفية. على سبيل المثال ، إذا كان لديك العديد من مقدمي الخدمة وحاولت عدم السماح بحركة المرور خارج البلد ، فيمكنك استخدام المجتمع المناسب لتوجيه حركة المرور على طول هذه المسارات.
جعلني أفكر. ماذا يمكنني أن أشير عبر المجتمع؟ وإلى أي مدى يمكن أن تذهب؟
بعد بعض الاختبارات ، اتضح أن كل شبكة من
المستوى 1 تمحو المجتمع ، باستثناء
المستوى 3 السابق ، الذي يسمح بنقل المجتمع من جهاز التوجيه المصدر إلى العميل. وهذا يعني أيضًا أنه يمكن لجهاز توجيه واحد إرسال المعلومات إلى الآخرين ، حتى بدون اتصال مباشر.
معركة بحرية
بمعرفة وجود قناة اتصال غير مباشرة عبر BGP ، أردت استخدام هذا بطريقة أو بأخرى لإنشاء بعض الاتصالات غير التقليدية. اخترت "المعركة البحرية" كوسيلة ، لأن هذه اللعبة تتطلب نقل الحد الأدنى من المعلومات (إحداثيات X و Y ، بالإضافة إلى معلومات حول اللقطة الأخيرة: الضربة أو الضائعة).
تم إنشاء مباراتين على BGP مجتمعين.

تتناسب اللعبة بأكملها مع رقمين 16 بت ، مما يسمح باللعب الموثوق به من خلال مجتمعين.
نظرًا لأن القتال البحري لعبة لشخصين ، فقد دعوت
AS203729 للعب. إنه متصل بـ BGP في نيويورك ، وأعمال التثبيت الخاصة بي في لندن.
عند التخطيط للعبة ، افترضنا أنه بسبب تواتر تحديث المسارات ، يمكننا
تخفيف حركة مرور BGP . نظرًا لأننا نجلس في حركة مرور حقيقية للإنتاج ، فقد اتفقنا على تعيين موقِّت مدته 30 ثانية لكل حركة ، لأن التخميد سيؤدي إلى إخفاق في خوادم الإنتاج.
مرت أيضًا حركة مرور أخرى عبر أجهزة توجيه اللعبة ، لذلك كان علي الحفاظ على برنامج التوجيه عبر الإنترنت وكان من المستحيل استخدام البرنامج الخفي BGP الخاص. للتغلب على هذا القيد ، قام ثنائي اللعبة بإنشاء وإعادة تكوين تكوين BIRD باستخدام مقبس التحكم الخفي للاستقصاء عن تغييرات المسار.
مع هذه الإعدادات ، في 16 مايو 2018 ،
لعب AS206924 و
AS203729 أول لعبة
لوحية في التاريخ تم إجراؤها على BGP فقط.

سارت اللعبة بسلاسة ، باستثناء توقف لمدة 45 دقيقة بسبب التخميد أعلاه. حدث هذا من جانبي وجعل المستوى 3 يطبق المسار الأقل مثالية لحركة المرور لمدة 45 دقيقة. لمنع تكرار الموقف ، قررنا التبديل إلى فترة 90 ثانية بين التحركات.
على الرغم من ذلك ، تم توجيه الضربة الأخيرة لأسطول صديقي
AS203729 في الخطوة 68. مما يجعلني الفائز الأول في لعبة لوحية أجريت باستخدام بروتوكول توجيه إنترنت عام.
هل كان هذا منطقيا؟ ربما لا. هل كانت ممتعة؟
يا إلهي.تم
نشر شفرة المصدر على كلا الجانبين ، على الرغم من أنني لا أقترح تكرار هذه التجربة.
حتى المرة القادمة!