سوف نستكمل اليوم بعون الله القسم الثاني من شرح بروتوكول الـ BGP والذي سوف أخصصه للتحدث عن كيفية أختيار أفضل مسار موجود للشبكة والتى تعتمد على مايسمى بي الـ Attribute ولمشاهدة القسم الأول من الشرح أطلع على الرابط التالي شرح بروتوكول الـBGP (القسم الأول)
كما أسلفت في شرحي للقسم الاول أن عملية اختيار أفضل مسار تتم من خلال أستخدام عدة معايير تدعى Attribute وهي بشكل عام كثيرة ومعقدة وسوف أحاول أكبر قدر من الأمكان بأن أشرحها باللغة العربية لان فهمها بلغتها الأنكليزية أسهل من فهمها باللغة العربية وهي بشكل عام تقسم إلى قسمين :
القسم الاول Well-Known ويعد أستخدمها أجباريا ومدعومة في أغلب أنواع الروترات وهي أيضا تقسم إلى قسمين
Mandatory: وهي أجبارية ويتم أرسال معلومات عنها في كل مرة يتم تبادل معلومات أو update message بين الـ Peers أمثلة عليها Origin, AS Path, Next Hop
Discretionary: ترجمتها تعني نسبية وهي أيضا مطلوبة بين الروترات التى تعمل من خلال الـBGP وتختلف عن سابقتها في شيء واحد وهو موضوع ارسال معلومات عنها فهي ليست أجبارية في كل مرة يتم تبادل الرسائل بين الـPeers أمثلة عليها Local Preference, Atomic Aggregate
القسم الثاني Optional وهو كما واضح أنه أختياري وهو مدعوم من بعض الأنواع وأيضا له نوعين
Transitive: وهو يرسل إلى الطرف الثاني وبغض النظر كان مدعوم من الطرف الثاني أم لا ويتم حفظها أيضا فأذا كانت مدعومة سوف يتم أستخدامها وإذا لم تكن سوف تبقى محفوظة عنده أمثلة عليها Aggregator, Community
Non- Transitive: نفس السابق والفارق الوحيد أن الروتر سوف يقوم بحذفها بشكل مباشر في حال كان لايدعم هذا النوع من الـ Attribute أمثلة عليها Med, Cluster ID, Originator
وآخيرا هناك Attribute خاصة بسيسكو وبأجهزتها ولاتتصنف تحت أي بند من البنود السابقة وتدعي Weight
كيف تتم عملية أختيار أفضل مسار في BGP
لأختيار أفضل مسار في الـ BGP يقوم الروتر بشكل منظم بالاختيار من خلال قيمة الـ Attribute فقد يكون الشرط أن تكون أعلى قيمة أو أصغر قيمة أو ان تكون ذات علامة معينة يفهمها البروتوكول وحده سوف تقول لي لم أفهم شيء حتى الآن ؟؟؟ لنأخذ مثال صغير وليكن بروتوكول الـ RIP فعندما يقوم الريب بأختيار أفضل مسار فهو ينظر إلى عدد الهوب الموجودة للوصول إلى الهدف ولو في حال تساوى مساران في الوصول إلى الهدف فأنا الريب يقوم بعمل Load Balancing بين المساران ويقوم بالنقل عبر الأثنان ولو قارنا هذه الحادثة مع بروتوكول الـBGP يعني لو في حال تساوى المساران في قيمة معينة فهو سوف يتوجه إلى Attribute أصغر منها أو أقل أهمية ويقوم بمقارنة المسارين من خلال الـAttribute الجديدة ولو في حال أيضا تساوى فهو ينزل درجة آخرى وينظر إلى Attribute أخى وهكذا حتى يصل إلى أفضل مسار وطبعا موضوع التساوي إلى الأبد قي الـBGP شيء مستحيل!!!لنتعرف الآن على أهم الـ Attribute المتاحة
Weight
كما ذكرت مسبقا بأن هذه الـAttribute خاصة بأجهزة سيسكو ولايتم الأعلان عنها إلى باقي الروترات الموجودة في AS آخرى ويتم أعدادها فقط على Locally Router وهي تفيد في حال لو كان هناك اكثر من مسار للوصول إلى الهدف بحيث تختار صاحب الوزن الاكبر وهي تأخذ قيمة من 0 إلى 65535 وهناك أكثر من طريقة لأعدادها مثل neighbor command, the as-path access list, أو route mapsعلى الروتر وهذا مثال توضيحي
وكما نرى من الصورة أن الـRTA قد علم عن الشبكة 175.10.0.0 من خلالAS400 وقد قام بأرسال هذا التحديث إلى RTC ونلاحظ أيضا أن RTB هو أيضا قد علم عن الشبكة 175.10.0.0 من خلال RTC وهو بدوره أيضا أرسل هذا التحديث إلى RTC لذا RTC سوف يملك مساران للوصول إلى الشبكة 175.10.0.0 لذا يجب على RTC عليه أن يقرر اي المسارين يجب أن يختار لذا سوف أتوجه إلى الأعدادات وبشكل يدوي وأقوم بأعطاء وزن أكبر weight للتحديث Update القادم من خلال RTA وبالتالي سوف يختار الروتر المسار RTA بشكل مباشر لكي يتصل مع الشبكة 175.10.0.0 والسبب طبعا هو أخباري البروتوكول بأن التحديث القادم من الـRTA يملك أفضلية أكبر من RTB والذي عرفتها من خلال الوزن المعطى
Local preference
يستخدم هذا الـattribute بشكل محلي Locally وهو يساعد الـBGP في أختيار المنفذ الذي سوف يتصل معه مع الشبكات الخارجية وخصوصا في حال لو كان لدينا أكثر من منفذ في داخل الـAS locallyويمكن أعداده بشكل يدوي على الروترات وهو By Default 100 لذا القيمة الأعلى هي التى تربح لنشاهد هذه الصورة
كما يتضح لكم أن للـAS 256 هناك منفذان يستطيعا أن يصلا إلى الشبكة 170.10.0.0 لذا قمت بتغيير قيمة الـLocal preference على الروتر RTD إلى 200 بينما قيمة الـ Local preference على RTC 150 والذي بدوره يعطي الأفضلية لي RTD لكي يكون هو نقطة الخروج مع الشبكات الخارجية أو الـAS وبالتالي سوف يختار الروتر RTD لكي يكون هو الروتر أو المنفذ للشبكة 170.10.0.0
Network or Aggregate
يفضل الـBGP كمعييار له أن يتم أضافة شبكات إلى Routing Table التى تكون عبارة عن Aggregate لمجموعة من الشبكات وليس كشبكات منفصلة لان هذا الشيء يخفف من عدد الشبكات الموجودة في القائمة
AS_PATH
فكرة هذا الـAttribute مثل فكرة بروتوكول الـRIP في أختيار أفضل مسار والفرق الوحيد اننا هنا لاننظر إلى عدد Next hop بل ننظر إلى عدد AS بحيث نختار المسار الذي يحوي أقل عدد من الـAS للوصول إلى الهدف وهذه صورة توضيحية
Origin
يعرف هذا الـ Attribute بروتوكول الـBGP من أين حصل على Route معين فهو يفضل IGPعلى EGP كما بفضل EGP على Incomplete وهو يعني أن هذا الـRoute غير معروف من أين أو أنه ناتج عن عملية Redistribution إلى BGP
Multi-exit discriminator (MED
هذا الـAttribute يعمل بنفس مبدأ الـLocal Preference ويختلف معه في شيئان مهمان الأول ان القيمة الأقل هي الأفضل والثاني وهو أن هذا المعييار خاص بأختيار الروتر الخارجي في حال لو كان لدينا روتر متصل مع أكثر من AS لنشاهد هذه الصورة ونفهم الفكرة
كما نشاهد أن الروتر الموجود في الـAS200 يملك مساران للوصول إلى الشبكة 120.68.1.0 لذا فهو سوف يختار المسار الذي يملك أقل قيمة MED وهو كما واضح الروتر B الذي يملك قيمة 1000 هو الأفضل
كما يفضل الـBGP أختيار المسارات من الـEBGP على المسارات من الـIBGP وهي شيء منطقي لان أفضل للروتر أن يتصل معها من خلال AS بشكل مباشر على ان يتصل معها من خلال روتر موجود في IBGP وهو بدوره متصل مع AS
Next Hop
الصراحة لست متأكدا تماما من فكرته لكن سوف أضعه باللغة الأنكليزية
The EBGP next-hop attribute is the IP address that is used to reach the advertising router. For EBGP peers, the next-hop address is the IP address of the connection between the peers. For IBGP, the EBGP next-hop address is carried into the local AS
Router C advertises network 172.16.1.0 with a next hop of 10.1.1.1. When Router A propagates this route within its own AS, the EBGP next-hop information is preserved. If Router B does not have routing information regarding the next hop, the route will be discarded. Therefore, it is important to have an IGP running in the AS to propagate next-hop routing information
يفضل الـBGP دائما أختيار الـPath الأقدم أو أول أعلان وصله من خلال الـPeers أو باللغة الأنكليزيةWhen both paths are external, it prefers the path that was received first (the oldest one.
كما يفضل الـBGP أختيار الروتر الذي يملك أقل Router-ID وباللغة الأنكليزيةThis prefers the route that comes from the BGP router with the lowest router ID.
وفي حال تساوى Router-ID سوف يقوم بأختيار أقل cluster list length (لا أعلم ماهي؟)وباللغة الانكليزيةIf the originator or router ID is the same for multiple paths, it prefers the path with the minimum cluster list length
وأذا تساوت كل هذه الأشياء فانه يختار أقل IP Neighbor باللغة الأنكليزيةThis prefers the path that comes from the lowest neighbor address.
وهذه بعض السلايدات التى تشرح الموضوع بشكل كامل وأبسط :
وآخيرا أعتقد أن الموضوع يحوي بعض الأخطاء والهفوات والتى حاولت على مدى 3 أيام أن أقوم بشرح هذه المعايير بأفضل صورة ممكنة ونظرا لكون خبرتي العملية مع BGP هي صفر فأنا أعتقد أن أخطات في شرح بعض الأمور والتى أعتذر عنها مسبقا كما أتمنى من الأخوة الكرام والخبراء في الـBGP تصحيحها لي وإذا كان هناك أي أضافة على الموضوع فأنا أرحب بها بكل سرور كون موضوع الـBGP لم يشرح ولا بموقع عربي بهذا الشكل وهذا ما أحاول أن أقدمه لكم بأبسط صورة ممكنة كما أحب أن أبلغكم بأن نشاطي على المدونة سوف يقل نوعا ما كون أمتحانات الجامعة أصبحت على الأبواب وهذه هي السنة الآخيرة لي فيها لذا لاتنسونا من دعواتكم ودمتم بود