الرئيسية » Cisco » الذاكرة المنخفضة في راوترات سيسكو.. أسباب وحلول!!

الذاكرة المنخفضة في راوترات سيسكو.. أسباب وحلول!!

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

بعد أن تعرفنا على المشكلة وأضرارها نأتي الآن إلى أسبابها والتي قد تكون:

  • عطل هاردوير في الذاكرة.
  • أخطاء برمجية.
  • استنزاف الذاكرة من قبل بعض الـ services أو البرامج.
  • الإعدادات الخاطئة.

ولكن من أهم العوامل التي تؤدي إلى استنزاف الذاكرة هو بروتوكول الـ BGP فهو يقوم بمعالجة كميات كبيرة من الـ routes مقارنة مع بروتوكولات الـ routing الأخرى لذلك فهو يعتبر من أكثر البروتوكولات استهلاكا للذاكرة. حيث أصبح ذلك شائعا خصوصا عند عبور الـ count limit الخاص بالـ route.

 

حالات الذاكرة وخطورتها :

تتغير حالات استهلاك الذاكرة حسب خطورتها، لكن بشكل افتراضي يتعامل بروتوكول  الـ BGP (والذي سنأخذه كمثال للتطبيق) مع حالات الذاكرة المنخفضة كالتالي (مع العلم إنها غير ثابتة ويمكن تغيير قيمها):

Minor alert (85%): تعتبر هذه الحالة اقل الحالات خطورة حيث يتوقف بروتوكول الـ BGP عن بدء أي route جديدة ولكن لحسن الحظ ستبقى الـ routes القديمة موجودة.

Severe alert (90%): هذه الحالة هي الثانية في درجة خطورتها حيث يقوم بروتوكول الـ BGP بإيقاف routes معينة كل دقيقتين حتى تتحول الحالة إلى minor. والتي تعتبر بالفعل حل جيد بدلا من فقدان جميع الـ routes. ولكن كيف يختار البروتوكول الـ route التي يجب إيقافها؟

الطريقة كالتالي: يقوم البروتوكول بحساب النسبة بين مجموع الـ paths التي تم استلامها و مجموع الـ paths التي حددت كأفضل path لكل راوتر. مثال: إذا فرضنا إن الـ paths التي استلمناها مجموعها 60 ومجموع الـ paths التي حددت كأفضل path هو 40 إذن ستكون النسبة 3:2 لذلك فالـroute  ذات الأعلى نسبة سوف يتم إيقافها وهذا شيء منطقي لكونها الأقل أهمية.

الشيء الرائع أيضا في هذه الحالة هو أننا نستطيع تحديد الـ route التي يختارها الراوتر لكي يتم إيقافها بقصد المحافظة على route أكثر أهمية حسب اعتقادنا كما سنرى بعد قليل.

Critical alert (95%): الحالة الاستثنائية والأكثر خطورة لذلك يقوم الـ BGP بإيقاف جميع الـ routes بشكل نهائي وبصورة تدريجية.

 

بعد أن تعرفنا على هذه الحالات نأتي الآن لنلقي نظرة على رسائل الـ log التي تظهر في cli الراوتر عند حدوثها وهي كما وضحت سابقا:

Cisco's
%PLATFORM-2-MEMORY_ALERT: Memory Status Alert : MINOR
PLATFORM-2-MEMORY_ALERT: Memory Status Alert : SEVERE
PLATFORM-2-MEMORY_ALERT: Memory Status Alert : CRITICAL

 

وحين استعادة جزء من الذاكرة تتغير رسائل الـlog إلى:

%

Cisco's

PLATFORM-2-MEMORY_ALERT: Memory Status Alert : MINOR ALERT RECOVERED

 

%PLATFORM-2-MEMORY_ALERT: Memory Status Alert : SEVERE ALERT RECOVERED

 

%PLATFORM-2-MEMORY_ALERT: Memory Status Alert : CRITICAL ALERT RECOVERED

أما عندما تتوقف إحدى الـ route كما رأينا في Severe alert  تظهر هذه الرسالة :

Cisco's
%BGP-2-PEERSHALTED:  bgp-100 [5440] ; BGP 10.1.5.99 shutdown due to no memory condition (Severe Alert)

 

كيف نعرف حالة الذاكرة الآن؟

لاستعراض حالة الذاكرة حاليا نستعمل الأمر show والتي يظهر فيها إن الذاكرة وصلت إلى حالة الـ Severe Alert:

Cisco's
Router# show system internal memory-status
MemStatus: Severe Alert

 

كما يمكننا وبشكل آخر استعراض حالة الراوتر من حيث عدد الـ process التي يعالجها حاليا وحالة الـ CPU و الذاكرة وغيرها وبالتأكيد عن طريق الأمر Show:

 

Cisco's

Router# show system resources

Load average:   1 minute: 0.23   5 minutes: 0.22   15 minutes: 0.20

Processes   :   980 total, 1 running

CPU states  :   3.0% user,   2.5% kernel,   94.5% idle

Memory usage:   4115812K total,   2885968K used,   1229844K free

 

 

Cisco's

Router# show routing memory estimate

Shared memory estimates:

  Current max     32 MB;  27495 routes with 16 nhs

          in-use   1 MB;     67 routes with  1 nhs (average)

  Configured max  32 MB;  27495 routes with 16 nhs

 

تغيير إعدادات الذاكرة:

الآن وصلنا إلى أهم جزء في هذا المقال وهو تغيير إعدادات الذاكرة وكيف نستثني route من الإيقاف من قبل الراوتر، والطريقة كالتالي:

بداية نقوم بتفعيل الـ BGP في الراوتر:

Cisco's
Router(config-router)# router bgp [AS NUMBER]

لإعداد الراوتر المطلوب استبعاده:

Cisco's
Router(config-router)# neighbor [peer address] remote-as [AS NUMBER]

تفعيل خيار الاستثناء لهذا الـ route:

Cisco's
[Router(config-router-neighbor)#low-memory exempt

 

ومثل ما وضحنا انه يمكن تغيير قيمة النسبة الذي تتغير عندها الحالة وكما يلي:

Cisco's
Router (config)#system memory-thresholds minor {%} severe {%} critical {%}

 

ولمنع الراوتر من إيقاف الـ routes عند الوصول إلى حالة الـcritical  نستعمل الأمر التالي (على الرغم من إن سيسكو لا تنصح بهذه العملية):

Cisco's
Router (config)#system memory-thresholds threshold critical no-process-kill

 

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

Print Friendly

عن فادي الطه

مهندس كمبيوتر ومعلوماتية وطالب ماجستير في تخصص شبكات الكمبيوتر..

تعليق واحد

  1. جزاك الله خيرا يا اخى … فعلا معلومات رائعه وغائبه عنا فى العمل

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

*

x

‎قد يُعجبك أيضاً

حل مشكلة error 27850 عند تنصيب Cisco VPN Client

مقال سريع لتوثيق مشكلة صادفتني وقمت بحلها بخطوتان وهي تنصيب برنامج سيسكو الخاص بالـ VPN ...

مقارنة بين أنظمة سيسكو IOS و IOS-XR و IOS-XE و NX-OS

في هذا المقال سوف نتعرف سوياً على جميع الأنظمة التشغيلية التى قامت سيسكو بتطويرها وهي ...

VPNمجاني باستخدام برنامج الـ Team Viewer

أصبح برنامج team Viewer عصب عمل أغلب مهندسي الكمبيوتر وأصبح الاعتماد عليه كبير في عمليات ...