Border Gateway Protocol (BGP)
Baisics
BGP :
هو عبارة عن بروتوكول مهم جداً جداً ويتم استخدامه في شبكات الانترنت بشكل كبير جداً ، ويعتمد عليه بشكل رسمي في ربط الشبكات الكبيرة والعملاقة بينما يقوم بربط الشبكات مع شبكات مزودي الخدمة ISP ليتم الاتصال بالشبكة الآخر التي تكون على مستوى العالم، هذا البروتوكول ضخم جداً ولديه مميزات كثيرة جداً .
كما نعلم أن البروتوكولات تنقسم إلى قسمين :
Interior gateway routing (IGP)
هذا النوع يندرج فيه البروتوكولات التي تعمل في الشبكات الداخلية مثل , OSPF.EIGRP, RIP,
Exterior gateway routing (EGP)
هذا النوع يندرج فيه البروتوكولات التي تعمل بتوصيل الشبكات الداخلية مع الخاريجة مثل يكون لدنيا شبكة في دولة ونحن نريد الاتصال بها، سيتم الربط عن طريق البروتوكولات التالية BGP , EGP وهذه البروتوكولات المسؤولة عن ربط الشبكات عن طريق الانترنت
يعتمد بروتوكول الـ BGP في العمل على بروتوكول الـ TCP ويقوم بحجز البورت 179 ، ليستطيع الاتصال بباقي الراوترات التي تعمل بنفس البروتوكول .
الخصائص التي يعمل فيها بروتوكول BGP
- يعتبر بروتوكول الـ BGP من أهم البروتوكولات الموجودة في عالم الشبكة ويجب أن نكون على معرفة ولو بشكل بسيط في فهم ومعرفة المعلومات عنه
- بروتوكول الـ BGP تم تطويره من بروتوكول سابق وهو EGP
- يعتمد بروتوكول الـ BGP على خاصية تحديد المناطق وهي الـ AS الذي أيضاً يعتمد عليها بروتوكول الـ EIGRP
- يعتبر هذا البروتوكول من أبطأ البروتوكولات الخاصة في التوجيه لأنه يربط الشبكات الكبيرة في بعضها البعض
- يتكون بروتوكول الـ BGP من ثلاث جداول Peers Table , Topology Table, Routing Table
- يتم حساب واعتماد اختيار أفضل مسار في بروتوكول الـ BGP عن طريق خوارزمية
- يعمل بروتوكول الـ BGP على شكل Path Vectory
- يعمل في داخل بروتوكول نقل المعلومات والبيانات وهو الـ TCP في عملية الاتصال ما بين الراوترات الآخر
- عيب بروتوكول الـ BGP أنه يجب على مهندس الشبكة أن يقوم بعمل إعدادات تعريف وتوجيه الراوترات التي تعمل ببروتوكول الـ BGP بشكل يدوي
- يحتوي على نوعان من البروتوكولات بروتوكول للشبكة الداخلية وبروتوكول للشبكة الخارجية
- بروتوكول الـ BGP هو بروتوكول غير محتقر بمعنى مفتوح المصدر
- يتم استخدام بروتوكول الـ BGP على الأغلب بشكل كامل في شركة مزودي الخدمة
- يعمل في الطبقة السابعة وهي طبقة الـ Application ويستخدم بروتوكول الـ TCP بورت Port 179
- يعمل بروتوكول الـ BGP على تبادل المعلومات والبيانات بشكل كامل في حالة أن الراوتر لم يسبق عليه تفعيل بروتوكول الـ BGP , وبعد تفعيل البروتوكول سيقوم بعمل إرسال كامل البيانات والمعلومات وبعدها يتوقف عن الإرسال وفي حال تم تحديث أو تم التعديل سيتم معاودة إرسال التحديثات
- توقيت إرسال التحديثات عندما يتواجد تحديث في الراوتر ، سيتم تجميع كل التحديثات وإرسالها دفعه واحدة وسيكون التوقيت للشبكات البعيدة أو الخارجية كل Sec 30 ثانية وفي الشبكات الداخلية التي تخضع في داخل نطاق واحد AS سيكون توقيت التحديث كل Sec 5 ثواني ، وهذه مفيدة في عدم انشغال الشبكة بشكل مستمر
- تتم عملية تعريف الجيران بطريقة يدوية بمعنى أن مهندس الشبكة هو من يقوم بتعريف الجيران على الراوتر بجميع الراوترات الموجودة ، ولا يدعم الطريقة الديناميكية
- قيمة المسافة الإدارية 20 Admin distance في بروتوكول الـ BGP Ex الخارجي و في الداخلي BGP In تكون قيمة المسافة الادارية 200 Admin distance
- يعمل ويدعم تقسيم الشبكات VLsm, CIDR , Classless
- يعمل على منع دوران البيانات في الشبكة من خلال تقنية منع دوران البيانات وهي Split-horizon
أنواع الأتصال في بروتوكول BGP
يوجد نوعان من الاتصال يتم استخدامها في بروتوكول الـ BGP :
Single homed Customers
هذا النوع من الاتصال يكون متصل بشكل مباشر مع شركة مزودي الخدمة مثلاً عندما ا يكون شركة مزودي خدمة صغيرة فرع صغير منها ويتم ربطها بشركة مزودي خدمة عملاقة ويكون الاتصال مباشر .
Multi homed Coustomers
هذا النوع من الاتصال يكون أيضاً مباشر ولكن يكون متعدد مثلاً عندما ا يكون لدنيا شبكتين من مزودي الخدمة ومتصلين بهم من مكان واحد بمعنى نستطيع الاتصال بأي مزود نريد .
جداول الـ BGP Table , BGP
يوجد ثلاث جداول يعتمد عليهم بروتوكول الـ BGP ويتم تبادلهم ما بين الراوترات التي تعمل ببروتوكول الـ BGP سنتعرف عليهم .
- Neighbor Table
- BGP forwarding database table
- IP routing table
1- جدول الجيران Neighbor Table :
List of BGP Neighbors BGP peers, Configured statically .
هذا الجدول يحتوي على قائمة كاملة بجميع الراوترات التي تعمل ببروتوكول الـ BGP .
2- BGP forwarding database table :
List of all Networks learned from each neighbor .
هذا الجدول الذي يحتوي على جميع المسارات والبيانات التي تم إرسالها واستقبالها ما بين الراوترات التي تعمل ببروتوكول الـ BGP حيث يتم تعرفة المسارات بشكل مفصل .
3- IP routing table :
List of best paths to destination networks .
هذا الجدول يحتوي على جميع عناوين الشبكة التي تعمل ببروتوكول BGP ، ليستطيع أي من الشبكات المسجلة في داخل الجدول من الوصول إلى الشبكات الآخر بكل سهولة .
رسائل بروتوكول الـ BGP
BGP Messages
تستخدم هذه الرسائل في عملية التحديثات التي يستخدمها بروتوكول الـ BGP في عملية إرسال التحديثات، وكل رسالة لها وظيفتها الاساسية وتحتوي على معلومات سنقوم بشرح هذه الرسائل ، وتتكون من أربعة رسائل مهمة جداً :
- Open Message
- Notification Message
- Update Message
- Keepalive Message
هذه هي الرسائل المستخدمة في بروتوكول الـ BGP سنقوم بشرحها لنتعرف على ماذا تحتوي كل رسالة من المعلومات .
1 – Open Message :
هذه الرسالة المسؤولة عن تنظيم و فتح قناة اتصال ما بين الراوترات المجاورة، و تحتوي أيضاً على عنوان الـ ID .
2- Keepalive Message :
هذه الرسالة المسؤولة عن تأكد قناة الاتصال مفتوحة أم لا ما بين الراوترات ليقوم بعملية الإرسال، ويتم إرسال رسالة تؤكد كل Sec 60 ثانية لعملية التأكيد من أنه القناة مفتوحه أم لا .
3- Update Message :
هذه الرسالة التي تحتوي على التحديثات مثل الشبكات الجديدة التي تم إضافتها والمسارات والكثير من التحديثات والمعلومات الآخرى .
4- Notification Message :
هذه الرسالة المسؤولة عن الأخطاء حيث تقوم بإرسال رسالة موجود بداخلها الأخطاء التي حصلت ليتم التعرف عليها وحلها .
حالة بداية تشغيل الـBGP Startup Operation , BGP
عند عملية إعدادات وتفعيل بروتوكول الـ BGP على أحد الراوتر سيبدأ بتجهيز نفسه إلى عدة حالات ليبدأ في التغير والتحديث في الراوترات الآخر سنقوم بذكر الحالة وشرحها .
Idel State :
هذه حالة الراوتر عندما ا نقوم بعملية البحث عن جدول التوجيه ليتعرف على الرواترات الآخرى .
Active 1 State :
هذه الرسالة في حالة لم يتم الرد بعد وقت معين سيتم تحويل الراوتر إلى هذه الحالة Active .
Connect State :
هذه حالة الراوتر عندما يعرف الراوتر الرئيسي ويكون قد تم الإنتهاء من عملية التوثيق ما بينهم .
Open Sent :
هذه رسالة يقوم بإرسالها الراوتر لمعرفة معلومات الجيران، ليستطيع ترتيب الاتصال ما بينهم .
Active 2 State :
هذه الرسالة تقوم بعملية حسب قناة الاتصال ما قبل أن يقوم الراوتر بعملية الإرسال .
Open Confirm :
هذه عبارة عن رسالة موافقة من الراوترات الآخر الموجودة في الشبكة للتأكد على موافقة فتح قناة الاتصال وتبادل المعلومات .
Established State :
هذه الرسالة الاخيرة و هي عملية تبادل المعلومات ما بين الراوترات .
BGP Synchronization
Synchronization :
هي قاعدة في بروتوكول الـ BGP و وظيفة هذه القاعدة أنه لا نستطيع إرسال أي قاعدة Rule تم التعرف عليها من خلال الـ IBGP ، إلا إذا كان الراوتر متواجد في الـ IGP الخاصة في الشبكة الداخلية وتكون هذه القاعدة مفعله بشكل تلقائي ويجب على مهندس الشبكة عمل ايقاف لهذه العملية .
الأمر التالي هو الذي سنقوم بعمله لنقوم بعملية ايقاف العملية الـ Synchronization
Router (Config-Router) # no synchronization
Disables BGP Synchronization so a router can advertise routers in BGP without learning them in IGP, but make sure that you make all restrictions to avoid black holes .
BGP Split horizon rule : Avoid routing loops inside the AS
- هذه العملية مهمة جداً ووظيفتها كتالي عندما ا يقوم أحد الراوترات بإرسال تحديثات للجيران سيتم وصول التحديثات لكل الراوترات ويحصل بما يسمى Loops ولكن مع هذه العملية ستقوم بعمل بلوك على المنفذ الذي خرج منه التحديثات مثل عندما ا يقوم الراوتر بإرسال التحديث المنفذ لا يعاود استقبالها مرة أخرى لأنه تم الخروج منها ، و بهذه الحالة سيتم تجاوز عملية دوران البيانات في الشبكة Loops Network .
Full Mesh Fashion (sessions between all BGP neighbors) to avoid split horizon rule.
Full Mesh Fashion :
عيب هذه الشبكة لو كان لدنيا شبكة مزود خدمة ضخمة جداً وجميع الراوترات متصلة مع بعضها البعض بشكل مباشر ، هذا عيب كبير جداً في استهلاك السرعة واستهلاك قوة الراوترات بشكل رهيب واشغال القطع المادية في داخل الراوترات أيضاً والشبكة ولكن يوجد بعض الحلول التي سنتعرف عليها :
- تقسيم الـ AS الى عدة AS مما يجعل الشبكة أكثر مرونة من أن تكون في AS واحد .
- Route reflector هذه العملية تقوم بوظيفة إلغاء عملية دوران البيانات بشكل نهائي .