المقدمة
يوضح هذا المستند كيفية أستكشاف أخطاء السيناريوهات وإصلاحها عند فقدان اتصال طبقة الأمان (SSH) إلى عناوين IP الخاصة بإدارة موجه خدمات التجميع (ASR5500/ASR 5000).
مشكلات تسجيل الدخول إلى عقد ASR5500
لا يمكنك تسجيل الدخول إلى العقد الأساسية لحزمة ASR5500. يتم إنهاء اتصال SSH على الفور دون مطالبة تسجيل الدخول. تعرض إتصالات Telnet سلوكا مماثلا.
خطوات أستكشاف الأخطاء وإصلاحها
الخطوة 1. حاول تسجيل الدخول إلى العقدة من خلال اتصال وحدة التحكم.
الخطوة 2. في معظم الحالات، لا يتم إصدار أي إختبارات لبروتوكول إدارة الشبكة البسيط (SNMP) يمكن أن تشير إلى سبب فشل الاتصال.
الخطوة 3. السجلات المتعلقة بتسجيل الدخول، الموجودة باستمرار في syslogs هي:
evlogd: [local-60sec55.607] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user **** on tty /dev/pts/0, application ssh, remote IP address XX.XX.XX.XX
evlogd: [local-60sec55.623] [cli 30028 debug] [5/0/8908 <vpnmgr:1> luser_auth.c:1448] [context: local, contextID: 1] [software internal system syslog] Login attempt failure for user **** IP address XX.XX.XX.XX - Access type ssh/sftp
evlogd: [local-60sec53.652] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user **** on tty /dev/pts/0, application ssh, remote IP address XX.XX.XX.XX
evlogd: [local-60sec53.679] [cli 30028 debug] [5/0/8908 <vpnmgr:1> luser_auth.c:1448] [context: local, contextID: 1] [software internal system syslog] Login attempt failure for user **** IP address XX.XX.XX.XX - Access type ssh/sftp#####
evlogd: [local-60sec2.942] [tacacs+ 37201 error] [5/0/8908 <vpnmgr:1> authen_events.c:598] [software internal system critical-info syslog] Authentication failed for user epcats on tty /dev/pts/0, application ssh, remote IP address YY.YY.YY.YY
الخطوة 4. يعرض الأمر show crash list all الأعطال الأخيرة، لاحظ أن تلك المتعلقة vpnmgr مهمة بشكل خاص.
الخطوة 5. يضمن الأمر show task resources all عدم تجاوز عمليتي VPNMGR وSSHd. يعد VPNMGR مسؤولا عن إدارة تجمع عناوين IP وينفذ جميع العمليات الخاصة بالسياق. يدعم SSHd تسجيل الدخول الآمن إلى واجهة سطر أوامر StarOS.
الخطوة 6. تساعد إعادة تشغيل المثيل vpnmgr 1. على إستعادة اتصال SSH مع أدنى تأثير في بعض الحالات. ومع ذلك، قد ينتهي الاتصال بعد فترة.
الخطوة 7. يعمل محول MIO على حل المشكلة. يرجى ملاحظة أنه في السيناريوهات التي قد تصل فيها العملية إلى قيمة الحد الأدنى أو حالة الحمل الزائد، يمكن أن تساعد ميزة "انعكاس MIO" في إزالتها.
الحل البديل في مكانه هو تبديل MIO. يتحدث الجزء التالي عن الخطوات لتحليل السبب الجذري.
تحليل السبب الجذري
- أستخدم الأمر show administrators لتحديد عدد الاتصالات النشطة على العقدة. ومع ذلك، قد لا يعرض الإخراج عددا مفرطا من الجلسات النشطة التي قد تكون أدت إلى انسداد الاتصالات بالعقدة.
نموذج الإخراج:
[local]ASR5500-2# show administrators
Monday September 06 13:15:07 CDT 2021
Administrator/Operator Name M Type TTY Start Time Mode Idle
------------------------------ - ------- -------------- ------------------------ ------------ ----
admin admin /dev/pts/4 Mon Sep 06 13:14:38 2021 Context User 29
admin admin /dev/pts/3 Mon Sep 06 12:21:13 2021 Context User 749
admin admin /dev/pts/2 Thu Sep 02 11:03:57 2021 Context User 342206
[local]ASR5500-2#
- بعد ذلك، قم بتنفيذ هذه الأوامر ثم ابحث في المشكلة. انتقل إلى صدفة تصحيح الأخطاء من خلال الوضع المخفي.
cli test-command pass <password>
debug shell
قم بتشغيل هذه الأوامر في Debug shell:
ps -ef
setvr 1 bash
netstat -n
ps - سرد العمليات. يسمح لك الأمر ps بعرض المعلومات الفنية حول العمليات الحالية على النظام بالإضافة إلى التحقق من حالتها.
-e - إظهار جميع العمليات، بغض النظر عن المستخدم.
-و - إظهار العمليات في تنسيق مفصل.
يعد الأمر netstat أحد خيارات سطر الأوامر الأكثر ملاءمة التي يتم إستخدامها لعرض جميع إتصالات مأخذ التوصيل الموجودة في العقدة. وهو يتمتع بالقدرة على سرد جميع إتصالات مقبس TCP و UDP، بالإضافة إلى إتصالات UNIX. يمكن إستخدام واجهة سطر الأوامر (CLI) هذه أيضا لسرد مقابس الاستماع المحتملة التي قد لا تزال تنتظر تأسيس اتصال.
نموذج الإخراج:
ASR5500-2:card5-cpu0# ps -eF
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 1 0 0 511 640 4 Aug20 ? 00:00:13 init [5]
root 2 0 0 0 0 2 Aug20 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 0 Aug20 ? 00:00:00 [ksoftirqd/0]
root 6 2 0 0 0 0 Aug20 ? 00:00:00 [migration/0]
root 7 2 0 0 0 0 Aug20 ? 00:00:01 [watchdog/0]
root 8 2 0 0 0 1 Aug20 ? 00:00:00 [migration/1]
root 10 2 0 0 0 1 Aug20 ? 00:00:00 [ksoftirqd/1]
root 11 2 0 0 0 0 Aug20 ? 00:00:31 [kworker/0:1]
root 12 2 0 0 0 1 Aug20 ? 00:00:00 [watchdog/1]
root 13 2 0 0 0 2 Aug20 ? 00:00:00 [migration/2]
root 15 2 0 0 0 2 Aug20 ? 00:00:00 [ksoftirqd/2]
root 16 2 0 0 0 2 Aug20 ? 00:00:00 [watchdog/2]
root 17 2 0 0 0 3 Aug20 ? 00:00:00 [migration/3]
root 19 2 0 0 0 3 Aug20 ? 00:00:00 [ksoftirqd/3]
root 20 2 0 0 0 3 Aug20 ? 00:00:00 [watchdog/3]
root 21 2 0 0 0 4 Aug20 ? 00:00:00 [migration/4]
root 22 2 0 0 0 4 Aug20 ? 00:00:00 [kworker/4:0]
root 23 2 0 0 0 4 Aug20 ? 00:00:00 [ksoftirqd/4]
……………………………
ASR5500-2:card5-cpu0# setvr 1 bash
bash-2.05b# netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 10.201.211.23:22 10.227.230.222:51781 ESTABLISHED
tcp 0 0 10.201.211.23:22 10.24.28.55:49918 ESTABLISHED
tcp 0 0 10.201.211.23:22 10.99.10.148:54915 ESTABLISHED
tcp 0 0 10.201.211.23:22 10.227.230.222:51783 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 39221385
unix 2 [ ] DGRAM 27056
bash-2.05b# exit
وفقا للتقرير المذكور سابقا، قامت الخوادم بتشغيل برامج نصية أدت إلى إنشاء إتصالات بصندوق ASR55K. فتحت هذه الخوادم الكثير من هذه الاتصالات التي كانت إما في حالة توقف أو خمول، ولكن لم يتم إغلاقها مطلقا.
حتى بعد إنهاء اتصال TeleTypeWriter (TTY)، ظل اتصال TCP نشطا على بواباتنا.
نتيجة لهذه الاتصالات، وصل ASR5500 إلى الحد الأقصى لعدد إتصالات SSH المسموح بها، مما أعاق الاتصال بالمربع. بمجرد محاولة تسجيل الدخول إلى الخوادم والقضاء على العمليات الأصلية، يتم إطلاق جميع الاتصالات على الفور، ويتم إستعادة بروتوكول SSH على الفور.
يتم إنشاء إتصالات SSH الخاملة هذه لعدم وجود إتصالات TeleTypeWriter (NoTTY). يتم إستخدام إتصالات noTTY هذه من قبل البرامج المتصلة بطريقة لا يتم بها عرض مخرجاتها.
تقوم أوامر مثل اسم المضيف SSH admin@asr55k "show version" بإنشاء اتصال noTTY في معظم الحالات.
وبالمثل، تشير عبارات مثل SSH: *@notty إلى وجود عمليات تسجيل دخول SSH إلى بواباتنا (GW) التي لم يتم تعيين محطة طرفية مرئية لها، مثل shell أو pseudo-terminal. يمكن أن يحدث ذلك أثناء مجموعة متنوعة من العمليات المتعلقة بالبرنامج النصي، خاصة عند إستخدام إتصالات FTP/Secure Copy (SCP).
مقترح الحل
- تنفيذ مهلة على البرامج النصية التي يمكن إستخدامها لخوادم API. يمكن أن تؤدي إتصالات SSH المتعددة التي تنفذ العديد من واجهة سطر الأوامر إلى إزدحام Messenger واستخدام وحدة المعالجة المركزية (CPU) بشكل كبير على جميع عمليات التخزين.
- لتسهيل أستكشاف الأخطاء وإصلاحها، قم بتكوين هذا الخيار:
logging filter runtime facility cli level debug critical-info
- تطبيق هذا التكوين على العقدة. يتم إستخدام هذا الأمر لإنهاء جلسات SSH الخاملة بعد 5 دقائق. يتم إستخدام هذا كآلية حماية ضد الجلسات القديمة التي يتسبب فيها الخادم:
Exec > Global Configuration > Context Configuration
configure > context context_name
administrator encrypted password timeout-min-absolute 300 timeout-min-idle 300
معلومات ذات صلة