المقدمة
يصف هذا المستند الطريقة الصحيحة لتكوين خريطة مسار وعرضها داخل وضع التكوين، مع التأكيد بشكل خاص على أهمية تحديد الإجراء (السماح أو الرفض) والرقم التسلسلي.
معلومات أساسية
وهو يتناول سلوكا تم ملاحظته حيث يبدو أن إدخال خريطة المسار الذي تم تكوينه في الأصل مع إجراء رفض قد تغير للسماح بشكل غير متوقع.
المشكلة
في Cisco IOS® XE، إذا تم إدخال خريطة مسار دون تحديد إجراء (السماح/الرفض) ورقم تسلسلي بشكل صريح، فإن واجهة سطر الأوامر (CLI) تقوم بتقسيم الإجراء المراد السماح به إلى إعدادات افتراضية. وقد يؤدي ذلك إلى تغيير سلوك خريطة المسار بشكل غير مقصود إذا لم يكن المسؤولون حريصين على بناء الجملة.
سلوك مراقب
عند تطبيق هذا التكوين:
router(config)#route-map TEST1 deny 1
router(config-route-map)#match ip address prefix-list PREFIXES
router(config-route-map)#exit
router(config)#route-map TEST1 permit 10
router(config-route-map)#match ip address prefix-list FIX
router(config-route-map)#exit
الناتج المتوقع هو:
router(config)#do sh run | sec TEST1
route-map TEST1 deny 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
ومع ذلك، عند إعادة الدخول إلى إختبار خريطة المسار 1 دون تحديد تسلسل أو إجراء كما هو موضح:
router(config)#route-map TEST1
router(config-route-map)#do sh run | sec TEST1
يظهر إخراج واجهة سطر الأوامر (CLI) بشكل غير متوقع:
route-map TEST1 permit 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
هذا يشير إلى أنه تم تعديل إدخال الرفض 1 الذي تم تكوينه في الأصل للسماح ب 1.
سلوك CLI المتوقع
عندما تدخل الأمر router(config)# route-map test1 دون تحديد إجراء (السماح أو الرفض) ورقم تسلسلي، يفترض المحلل أنك تعني "السماح" بشكل افتراضي.
· بمجرد الخروج من هذا الوضع الفرعي، يقوم Cisco IOS XE بإعادة كتابة التسلسل الأول وتغيير الإجراء من "رفض السماح" بسبب عدم توفير إجراء صريح. ومجرد إدخال <name> لخريطة المسار دون رقم تسلسلي يدخل التسلسل 10 كتصريح بشكل افتراضي. قد يتجاوز هذا السلوك الإدخالات السابقة في بعض الأحيان إذا لم يتم تحديده بعناية.
وبمعنى آخر، لا يتم إطلاق التغيير بواسطة عملية غير مرئية - بل هي ببساطة المعالجة الافتراضية ل CLI لأمر مخطط مسار غير مكتمل.
للحفاظ على الرفض في الجملة الأولى، قم دائما بتضمين كل من الإجراء والرقم التسلسلي، على سبيل المثال:
رفض الموجه(config)# route-map TEST1 1.
لماذا يحدث هذا
هذا ليس خطأ ولكنه سلوك مقصود من محلل Cisco IOS XE CLI. وهي تلتزم بهذه القواعد:
- إذا تم إستدعاء خريطة مسار بدون رقم تسلسلي، يتم افتراض التسلسل 10.
- في حالة عدم تحديد أي إجراء، يكون السماح هو الإعداد الافتراضي.
- في حالة إعادة إدخال خريطة مسار موجودة دون تفاصيل، يمكن لبرنامج IOS إعادة تعيين الإجراءات الافتراضية، مما يؤدي إلى تعديل الإدخالات السابقة بشكل غير متعمد.
الحل
للحفاظ على السلوك المقصود لتكوين خريطة المسار، قم دائما بتضمين كلا الاحتمالين:
- الفعل (السماح أو الرفض)
- والرقم التسلسلي
router(config)#route-map TEST1 deny 1 >>>>>>>>>>>>>>> This ensures IOS-XE does not override the entry with default values.
router(config-route-map)#do sh run | sec route-map TES
route-map TEST1 deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST1 permit 10
match ip address prefix-list ALL-VPN-FIX
الأسلوب الموصى به للتنفيذ
وترد هنا نواتج التكوين للرجوع إليها. يعكس سلوك الأمر أهمية أرقام التسلسل المحددة بشكل صحيح وكيف لا يؤثر ترتيب إدخال السماح/الرفض على ترتيب تصاعدي لرقم التسلسل في التكوين الجاري تشغيله.
مثال 1. إستخدام CLI غير صحيح يؤدي إلى السماح الافتراضي
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#$dress prefix-list ALL-PREFIXES
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#route-map TEST permit 10
ASR1002-1(config-route-map)#$dress prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#do sh run | sec TEST
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config)#exit
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST permit 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
لاحظ كيف يصبح الرفض 1 مسموحا به 1. بدلا من ذلك، قم بتضمين الإجراء مع رقم التسلسل للحفاظ على التكوين الصحيح لخريطة المسار:
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
مثال 2. صيانة أمر التسلسل بغض النظر عن أمر الإدخال
ASR1001-1(config)#route-map test deny 50
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1(config)#route-map test permit 40
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
على الرغم من إدخال جملة الرفض أولا، إلا أن CLI تقوم بفرز الرقم التسلسلي التصاعدي، وليس حسب أمر التكوين.
القرار
عند تكوين خرائط المسار في Cisco IOS-XE، قم دائما بتعريف:
قد يؤدي الفشل في القيام بذلك إلى سلوك غير متوقع بسبب إعدادات CLI الافتراضية. ويعد فهم هذه الفروق الدقيقة أمرا أساسيا للحفاظ على عمليات تكوين سياسة التوجيه الدقيقة.