مدونة NetworkSet

شرح بروتوكول الـBGP (القسم الثالث)

وصلنا اليوم إلى القسم الثالث من شرح بروتوكول الـBGP والذي سوف أخصصه لشرح كيفية عمل البروتوكول بشكل عام منذ أول لحظة لتشغيله وصولا إلى اللحظة التى يبدأ فيه بتوجية الترافيك إلى مخدمات أنترنت آخرى وسوف يتضمن الشرح أيضا كيفية أعداد البروتوكول على الروتر

كيف يعمل بروتوكول الـBGP ؟

بداية أحب أن أذكر بأن بروتوكول الـBGP يعمل على الطبقة الرابعة وهو يستخدم الـTCP لتمرير الترافيك والأتصال مع الروترات الموججودة في AS آخرى وكما هو معروف عن الـTCP بأن أول شيء يقوم به هو فتح جلسة أو Session مع الطرف الآخر لذا الخطوة الاولى هي فتح جلسة مع الطرف الآخر من خلال البورت 179 الخاص بي بروتوكول الـBGP وأحب أن أعبر عن هذه الخطوة باللغة الأنكليزية بي establish connections with the other BGP router  والخطوة الثانية هي تبادل الـRouting Table مع الطرف الآخر وهو يقوم فيها مرة واحدة فقط وبعدها يقتصر التبادل بين الجاران على شكل تحديثات فقط Update message ومن هنا أحب أن اذكر انواع الـ Messages التي تتم بين الروترات في الـBGPوهي كما مذكورة في الـ RFC 1771 أربع انواع بينما نجد في RFC 2918 قد تم أضافة نوع خامس وهم بالترتيب التالي :

Open message: وهي تستخدم اول مرة من أجل عمل اتصال بين الروترين او كما يتم التعبير عنهم PEERS ومحتويات الـHeader على الشكل التالي:

Optional parameters

Optional parameters length

BGP identifier

Hold-Time

Autonomies system

Version

Update message: وهو النوع الأكثر تبادلا بين الـPeers وهو خاص بتبادل المعلومات والتحديثات بين الجيران ويتضمن نوعين من الرسائل:

الأول : Withdrawn routes وفيه يقوم بأخبار الروتر بأن أحد الأيبيات لم يعد موجودا أو لا يمكن الوصول إليه .

الثاني: Paths وهو يقوم بأعلام الروتر بوجود طريق أو Path أفضل للوصول إلى شبكة أو أيبي معين وتتضمن الرسالة عنوان الأيبي وأيبي الـNext router الخاص بالمسار الجديد ومحتويات الـHeader على الشكل التالي:

Network Layer

Reach ability

Information

Path

Attributes

Total Path

Attribute

Length

Withdrawn

Routes

Unfeasible Routes Length

Notification message: وهي خاصة بتبليغ الطرف الثاني بوجود خطأ في الأتصال وبأن الـ Session سوف يتم أغلاقه وهي تبين أيضا سبب أغلاق الجلسة ومحتويات الـHeader على الشكل التالي:

Error Data

Error Subcode

Error Code

Keep alive message: وهو من النوع المألوف على الجميع وهي تهدف إلى التأكد من وجود اتصال أو Connective بين الـ Peers وهي تتم مع جميع الجيران المتصلين مع الروتر وكل 30 ثانية وحجمه 19 بايت وهو لايحوي أي شيء أي عبارة عن BGP Packet فارغة سوف نأتي على شرحه لاحقا

Route-refresh message: وهو النوع الخامس الذي تحدثت عنه وهو خاص بطلب family routing information (الصراحة لا أعلم ماهي وظيفة هذا النوع من الرسائل بالتحديد أتمنى الأفادة من الخبراء!)ومحتوياته تكون على الشكل التالي:

Subsequent Address Family Identifier

Reserved

Address Family Identifier

وآخيرا أحب أضيف ملاحظة هامة وهي محتوى هذه الرسائل ليس إلا جزء من محتوى BGP Packet وهو محدد تحت قسم الـ Data وهو بشكل عام يكون على الشكل التالي:

Data

Type

Length

Marker

  • Marker: قسم خاص بي الـ Authentication الخاص بي الـ BGP وهو بحجم 16 بايت

  • Length: مفهوم وهو بحجم 2 بايت

  • Type: نوع الرسالة open, update, notification, keepalive route-refresh وهي تكون على شكل أرقام من 1-5 وهو بحجم 1 بايت

  • Data: المعلومات الخاصة بكل رسالة والتى تحدثنا عنها سابقا

ومن هنا نستنتج أن شكل الـ Keep alive  يكون على الشكل التالي

4

Length

Marker

طبعا أنا لا أريد أن ادخل في تفاصيل أكثر حول البروتوكول لان هذا الشيء تابع اكثر لشهادة CCIP الخاصة بمقدمي الخدمة ولنتحدث الآن عن طريقة أعداد بروتوكول الـ BGP

قد تتفأجا قليلا إذا أخبرتك أن تشغيل الـBGP ليس بذلك التعقيد ويتطلب منك في المقام الأول تعريف الروتر بالـ Peers المتصل معهم بشكل يدوي وتعريف الروتر بالشبكات المتصل معها كما تعودنا في أعداد أي بروتوكول توجيه  ويبقى التعقيد الموجود في الـBGP هو في أعداد الـ Attributes والبوليسي والخ………

لذا لنبدأ اولا بطريقة تعريف الجيران ببعضهم البعض وسوف نأخذ المثال الموضح بالصورة التالية

في هذا المثال نجد 3 روترات يمثل كل واحد منها Autonomies system وهي موضحة بالصورة ولنقوم أولا بأعداد الروتر رقم واحد في الـAS 650001

Cisco's IOS

Router1(config)#router bgp 65001

Router1(config-router)#neighbor 10.10.10.2 remote-as 65002

Router1(config-router)#neighbor 10.10.20.2 remote-as 65003

Router1(config-router)#network 10.10.10.0 mask 255.255.255.0

Router1(config-router)#network 10.10.20.0 mask 255.255.255.0

 

وبالنسبة للروتر رقم أثنان

 

Cisco's IOS

Router2(config)#router bgp 65003

Router2(config-router)#neighbor 10.10.20.1 remote-as 65001

Router2(config-router)#network 10.10.10.0 mask 255.255.255.0

Router2(config-router)#network 192.168.10.0 mask 255.255.255.0

وآخيرا الروتر رقم 3

Cisco's IOS

Router3(config)#router bgp 65002

Router3(config-router)#neighbor 10.10.10.1 remote-as 65001

Router3(config-router)#network 10.10.10.0 mask 255.255.255.0

Router3(config-router)#network 192.168.1.0 mask 255.255.255.0

بهذه الأعدادات نكون قد قمنا بتشغيل الـBGP وهي نقطة التوقف لهذا اليوم وسوف أتابع معكم في الأجزاء القادمة أعدادات أكثر تخص هذا البروتوكول مع انني تحدثت في بداية شرحي لهذا البروتوكول بأن الشرح مقسم إلى ثلاثة أقسام لكن زيادة الخير خير وآخيرا أرجو منك الدعوة لي ولوالداي وبالفرج ان شاء الله ودمتم بود

Exit mobile version