نواصل معكم اليوم الحديث الذي بدأناه في تدوينة سابقة عن الـ Policy Based Routing ماهي وكيف نستفيد منها والتى وعدت فيها بتخصيص تدوينة كاملة تتحدث عن كيفية الأستفادة من هذه الخاصية من خلال الـ Route-Map والتى سوف تكون محور حديثنا لهذا اليوم
Route-Map
تعتبر هذه الخاصية على أجهزة سيسكو احد الخواص الهامة جدا فهي تقوم بوظيفة كبيرة وهامة ألا وهي تغيير قواعد اللعبة ؟ والمقصود هنا باللعبة هي عملية توجيه وأرسال الترافيك عبر الشبكة من خلال أتاحة أمكانية التوجيه أعتمادا على معطيات آخرى غير الـ Destination الخاص بالباكيت والموضوع أيضا ليس مقتصرا على التوجيه فقط لأن الـ Route-Map تمكننا من التلاعب بالـ Header الخاص بالباكيت وتغييره أيضا بالأضافة إلى أستخدامه مع الـ Redistribution والـ BGP والـ NAT وطبعا الـ PBR والكثير من الأستخدامات التى لايسعني ذكرها فأنا كلما أتعرض لسؤال غامض لا أفهم كيف تم تطبيقه أول مايخطر على بالي هو الـ Route-Map لأن هذه الخاصية تتيح لك الكثير من الأمور ومن تعامل مع لغات البرمجة سوف يفهم فكرة الـ Route-Map أسرع من غيره لأن الفكرة نفسها موجودة في لغات البرمجة وهي (IF/Then/Else) لكن هنا نحن نعتمد على Match و Set لتطبيق القواعد العملية على الشبكة.
أمر الـ Match
يعتبر أمر الـ Match المسؤول عن تحديد الشيء الذي يجب أن يتطابق مع الـ Route-Map وبكلام آخر يعتبر أمر الـ Match هنا هو الشرط الذي يجب أن يتحقق لكي نقوم بتطبيق المعطيات القادمة من أمر الـ SET مثل أن نقول Match ip address ونتبعها برقم أكسس ليست قمت بأعداداها مسبقا مثل أن أقول
ليصبح لدي امر الـ Route-map كالآتي match ip address 1 والذي يعني ان وجد أي أيبي ينتمي للأكسس ليست رقم واحد عندها قم بعمل matching له ومن هنا أحب ان أشير إلى شيء خطير وهام الأكسس ليست هنا لاتلعب أي دور في المنع أو السماح يعني لو كان الأمر السابق deny فهذا لايعني شيء مادام الأمر لم يتم تطبيقه على أحد المنافذ نعود للـ Match فلو فرضنا أن هناك فعلا باكيت مرت تحمل هذا الأيبي عندها مباشرة سوف يعمل الـ Route-Map لأن أحد شروطه قد تحقق وسوف أوضح كل هذه الامور بأمثلة في تدوينة ثالثة سوف أطرح فيها ثلاث أو أربع أمثلة لحالات مختلفة لأن موضوع الـ Route-Map هام وأحتاج إلى شرحه بشكل كامل لذلك موضوعنا هذا سوف يكون نظري.
وقبل أن ننتقل إلى أمر الـ Set أود الأشارة إلى أمر بالغ الأهمية وهو وجود أكثر من شرط فلو فرضت أن كتبت الأوامر التالية :
في مثالنا هذا تقول لنا سيسكو أن الـ Route Map سوف تطبق في حالة واحدة فقط وهي وجوب وجود Match للثلاثة معا وبكلام آخر يجب أن يتم عمل Match للشروط الثلاثة الموضحة في الاعلى أما لو في حال كان الأمر على الشكل الآتي Match ip address 1, 2, 130 فالـ Route Map سوف تتفعل في حال وجود Match لاي واحده من الأكسس ليست
بكلام آخر
If several match commands are present in a clause, all must succeed for a given route in order for that route to match the clause (The logical AND algorithm is applied for multiple match commands).
If a match command refers to several objects in one command, either of them should match (the logical OR algorithm is applied).
الشرح |
الأمر |
الشرط سوف يكون مع المنفذ ورقمه |
match interface interface-type interface-number [… interface-type interface-number] |
الشرط مع الأيبي أو مع عنوان الشبكة |
match ip address {[access-list-number | access-list-name] | prefix-list prefix-list-name} |
الشرط مع الـ Next-Hop أو مع الوجهة التى سوف ترسل إليه الشبكة |
match ip next-hop {access-list-number | access-list-name} |
الشرط مع العنوان المرسل Source IP |
match ip route-source {access-list-number | access-list- |
الشرط مع قيمة الـ Metric الخاصة بتوجيه الشبكة وهي أما رقم ثابت أو قيمة تحدد بين رقمان |
match metric metric-value [+–deviation] |
الشرط مع نوع وشكل التوجيه وهي خاصة بي الـ Redistribution |
match route-type {internal | external [type-1 | type-2] | level-1 | level-2} |
أمر الـ SET
قبل أن ندخل في أمر الـ Set سوف أذكر بشيء هام ذكرته في البداية فأنا تحدثت أن الـ Route-Map يستطيع أن يعدل ويغير في المحتويات ولكن أنا لم أذكر أن هناك Action أو ردة فعل يقوم الـ Route-Map بأتخاذها فعندما نبدأ بأعداد الـ Route-Map نكتب الأمر التالي :