المحتويات

المقدمة

المتطلبات الأساسية

المكونات المستخدمة

المشكلة

الحل

المقدمة

TACACSD هي عملية IOS XR مرتبطة بخدمة Tacacs AAA. يناقش هذا المستند خطأ برمجيا وأعراضه التي يمكن أن تتسبب في قيام الموجهات التي تشغل IOS XR الإصدار 4.2.X أو أقل بمراقبة إستخدام وحدة المعالجة المركزية (CPU) العالي المستمر.

المتطلبات الأساسية

لا توجد متطلبات خاصة لهذا المستند.

المكونات المستخدمة

تنطبق المشكلة التي يتم معالجتها في هذا المستند على الموجهات Cisco GSR و ASR9000 و CRS وغيرها من الموجهات التي تشغل IOS XR. تم أخذ المخرجات المستخدمة أدناه من موجه معملي يشغل إصدار IOS XR أقل من 4.2.X.

المشكلة

قد تلاحظ الموجهات التي تشغل IOS XR الإصدار 4.2.X أو أقل إستخدام وحدة المعالجة المركزية (CPU) العالي المستمر بسبب عملية مسجل الإنذار بسبب خطأ برمجي معروف. إظهار إخراج وحدة المعالجة المركزية (CPU) العملية مسجل التنبيه التي تستهلك الحد الأقصى من إستخدام وحدة المعالجة المركزية.

show proc cpu | ex "0% 0% 0%"

CPU utilization for one minute: 100%; five minutes: 100%; fifteen minutes: 100%

PID 1Min 5Min 15Min Process

<snip>

53281 2% 2% 2% syslogd_helper

57379 1% 1% 1% fabricq_prp_driver

69636 1% 1% 1% correlatord

69677 6% 6% 6% syslogd

118842 1% 1% 1% sysdb_svr_local

122962 3% 3% 3% gsp

229604 2% 2% 2% eem_ed_syslog

262456 1% 1% 1% tacacsd

452726918 67% 71% 72% alarm-logger

463302887 1% 1% 1% exec

<snip>

في مخزن التسجيل المؤقت قد ترى سجلات مستمرة مماثلة ل:

TACACSD[xxxx]: ٪SECURITY-TACACSD-7-GENERIC_ERROR: فشل الحصول على طلب: المفتاح -xxxxx/xxxx/xxxx جلسة xxxx

show log

<snip>

RP/0/7/CPU0:Dec 26 04:02:03.149 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_UP :

TACACS+ server 32.95.X.X/XXXX is UP

RP/0/7/CPU0:Dec 26 04:02:05.956 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_DOWN :

TACACS+ server 32.95.X.X/XXXX is DOWN - Socket 43: Connection timed out

RP/0/7/CPU0:Dec 26 04:02:09.468 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_DOWN :

TACACS+ server 199.37.X.X/XXXX is DOWN - Socket 43: Connection timed out

RP/0/7/CPU0:Dec 26 04:02:09.647 : tacacsd[1110]: %SECURITY-TACACSD-6-TIMEOUT_IGNORED :

A time out event has been ignored for context key -953829129/1073/60000000/6486405

(session 6486405)

RP/0/7/CPU0:Dec 26 04:02:11.647 : tacacsd[1110]: %SECURITY-TACACSD-7-GENERIC_ERROR :

Failed to get request for: key -953829129/1073/60000000/6486405 session 105407493

RP/0/0/CPU0:last message repeated 520 times

RP/0/7/CPU0:Dec 26 04:02:34.064 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_UP :

TACACS+ server 32.95.X.X/XXXX is UP

RP/0/7/CPU0:Dec 26 04:02:34.064 : tacacsd[1110]: %SECURITY-TACACSD-7-GENERIC_ERROR :

Failed to get request for: key -953829129/1073/60000000/6486405 session 105407493

يمكن رؤية تفاصيل عمليات مسجل التنبيه وtacacsd كما هي أدناه.

show processes alarm-logger

<snip>

Job Id: 114

PID: 135303

Executable path: /c12k-os-4.2.4/sbin/alarm-logger

Instance #: 1

Version ID: 00.00.0000

Respawn: ON

Respawn count: 1

Max. spawns per minute: 12

Last started: Tue Aug 13 02:17:23 2013

Process state: Run

Package state: Normal

core: MAINMEM

Max. core: 0

Level: 91

Placement: None

startup_path: /pkg/startup/alarm-logger.startup

Ready: 0.672s

Process cpu time: 1401.018 user, 49.774 kernel, 1450.792 total

JID TID Stack pri state TimeInState HR:MM:SS:MSEC NAME

114 1 88K 10 Receive 0:00:02:0071 0:00:40:0919 alarm-logger

114 2 88K 10 Receive 3242:46:17:0308 0:00:00:0000 alarm-logger

114 3 88K 10 Reply 0:00:00:0000 0:23:08:0029 alarm-logger

114 4 88K 10 Mutex 0:00:00:0000 0:00:21:0957 alarm-logger

-------------------------------------------------------------------------------

<snip>

show processes tacacsd

<snip>

Job Id: 1110

PID: 266551

Executable path: /disk0/iosxr-infra-4.2.4/bin/tacacsd

Instance #: 1

Version ID: 00.00.0000

Respawn: ON

Respawn count: 1

Max. spawns per minute: 12

Last started: Tue Aug 13 02:23:47 2013

Process state: Run

Package state: Normal

Started on config: cfg/gl/aaa/tacacs/

Process group: central-services

core: MAINMEM

Max. core: 0

Placement: Placeable

startup_path: /pkg/startup/tacacsd.startup

Ready: 3.954s

Process cpu time: 1010.118 user, 185.932 kernel, 1196.050 total

JID TID Stack pri state TimeInState HR:MM:SS:MSEC NAME

1110 1 108K 16 Sigwaitinfo 3242:46:40:0742 0:00:00:0116 tacacsd

1110 2 108K 10 Nanosleep 0:01:03:0835 0:00:00:0019 tacacsd

1110 3 108K 10 Receive 3242:46:41:0593 0:00:00:0002 tacacsd

1110 4 108K 10 Reply 0:00:00:0000 0:08:55:0970 tacacsd

1110 5 108K 16 Receive 3242:46:40:0771 0:00:00:0000 tacacsd

1110 6 108K 10 Receive 0:07:07:0403 0:04:03:0462 tacacsd

1110 7 108K 10 Receive 0:00:01:0389 0:03:28:0939 tacacsd

1110 8 108K 10 Receive 0:00:01:0332 0:03:03:0622 tacacsd

-------------------------------------------------------------------------------

<snip>

ينتج إرتفاع وحدة المعالجة المركزية (CPU) عن فيض رسائل syslog مما يتسبب في امتلاء المخزن المؤقت لمسجل التنبيه. وبالتالي تظل عملية مسجل التنبيه مشغولة بمحاولة معالجة الرسالة ومواجهة حالة التخزين المؤقت الكامل في نفس الوقت.  في هذه الحالة، تكون عملية TACACS طاغية على مسجل الإنذار. بما أن مسجل التنبيه هو ضحية، فإن إعادة تشغيل عملية مسجل التنبيه لن تساعد في الوقت الذي يظل فيه مخزن الذاكرة المشتركة المؤقت ثابتا بعد إعادة تشغيل العملية.

الحل

تم معالجة هذه المشكلة وإصلاحها عبر أخطاء البرامج CSCuh98484 - يتسبب خطأ TACACSD "فشل في الحصول على طلب للمفتاح" في إرتفاع مستوى وحدة المعالجة المركزية. تفاصيل الخطأ موجودة هنا

يرجى ملاحظة أن إعادة تشغيل عملية tacacsd هي حل بديل يجب أن يقوم بإيقاف السجلات ويجب أن يعود إستخدام وحدة المعالجة المركزية إلى المستوى العادي. لن تؤثر إعادة تشغيل عملية tacacsd على أي وظائف أو إعادة توجيه حزم البيانات، وستضع العملية في حالتها الأولية.

تم إصلاح هذا الخطأ في إصدارات IOS XR التالية.

4.3.2.SP2

4.3.2.SP3

4.3.2.SP5

4.3.2.SP6

4.3.2.SP7

4.3.2.SP8