소개
이 문서에서는 SSH 디버그의 보고된 사용자 인증 실패와 함께 라우터에 대한 SSH(Secure Shell)가 실패하는 경우 Cisco IOS® 라우터의 문제를 설명합니다.이 문제는 입력한 사용자 자격 증명이 올바르며 텔넷에 대해 동일한 자격 증명이 올바르게 작동하는 경우에도 발생합니다.
참고:Cisco 버그 ID CSCum19502가 SSH와 텔넷 간의 동작을 일관되게 하기 위해 제출되었습니다.
문제
이 디버그에서는 "debug aaa authentication"이 활성화되어 있지만 AAA가 실제로 호출되어 오류를 반환하도록 인쇄되는 AAA(Authentication, Authorization, and Accounting) 디버그가 없습니다.
Router#show debug
General OS:
AAA Authentication debugging is on
SSH:
Incoming SSH debugging is on
ssh detail messages debugging is on
Router#
*Sep 30 20:28:57.172: SSH2 2: MAC compared for #8 :ok
*Sep 30 20:28:57.172: SSH2 2: input: padlength 15 bytes
*Sep 30 20:28:57.172: SSH2 2: Using method =
keyboard-interactive
*Sep 30 20:28:57.172: SSH2: password authentication failed
for cisco
*Sep 30 20:28:59.172: SSH2 2: send:packet of length 64
(length also includes padlen of 14)
*Sep 30 20:28:59.172: SSH2 2: computed MAC for sequence
no.#8 type 51
*Sep 30 20:29:01.751: SSH2 2: ssh_receive: 144 bytes received
*Sep 30 20:29:01.751: SSH2 2: input: total packet length of
128 bytes
*Sep 30 20:29:01.751: SSH2 2: partial packet length(block size)
16 bytes,needed 112 bytes,
여기에 표시된 syslog는 SSH를 시도할 때도 관찰되지만, 일관성 있게 인쇄되지는 않습니다.
*Sep 30 20:23:27.598: %AAA-3-ACCT_LOW_MEM_UID_FAIL: AAA unable to create UID for incoming
calls due to insufficient processor memory
문제의 근본 원인은 라우터의 메모리 부족 상태입니다.AAA가 수신 SSH 세션에 대한 고유 ID(UID)를 생성하기 위해 메모리를 할당하지 못하면 AAA를 시도하지 않더라도 AAA 인증 실패와 동일한 실패를 보고합니다.이 상태는 프로세서 사용 가능 메모리가 AAA "Authentication low-memory threshold"(기본적으로 총 메모리의 3%로 설정되며 show aaa memory 명령을 사용하여 확인할 수 있음)보다 작을 때 발생합니다.이 문제는 ASR(Aggregation Services Router) 1001 플랫폼에서 종종 나타납니다. 이 플랫폼에서는 전체 BGP(Border Gateway Protocol) 테이블과 같은 제어 평면 사용으로 소진될 수 있는 제한된 메모리가 라우터에 있습니다.ASR 1001에는 4GB의 DRAM이 설치되어 있지만 다른 모든 CPU와 Linux 프로세서가 부팅되면 Cisco IOS는 1.1GB를 남겨 둡니다. AAA가 UID에 메모리를 더 이상 할당할 수 없는 수준까지 메모리가 모두 소모되면 SSH가 작동하지 않습니다.
다음 두 ASR의 메모리 데이터를 고려하십시오.
SSH Not Working:
----------------
ASR1#show memory summary
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7FE150387010 1160982064 1146067400 14914664 14225352 13918620
lsmpi_io 7FE14FB7E1A8 6295128 6294304 824 824 412
SSH Working:
------------
ASR2#show memory summary
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7FFB6ACB0010 1160982064 1120122056 40860008 29163912 24132068
lsmpi_io 7FFB6A4A71A8 6295128 6294304 824 824 412
간단한 계산에서 비작동 ASR에서 사용 가능한 총 메모리의 비율은 1.28%(14914664 / 1160982064 * 100)입니다.작동 중인 ASR에서는 3.51%(4086008/1160982064 * 100)로, 이는 인증 메모리 부족 임계값을 막 초과합니다.
메모리 부족 상태로 인해 이 오류가 발생할 때 %AAA-3-ACCT_LOW_MEM_UID_FAIL 메시지가 인쇄되지 않는 경우가 많으므로 이 문제를 식별하기 어렵습니다.또한 AAA에서 메모리 임계값을 계산하는 방법은 RP(Route Processor)에서 사용할 수 있는 프로세서 메모리의 원시 양에 따라 달라지는 것이 아니라 전체 메모리의 백분율에 따라 달라집니다.따라서 보고된 malloc 오류가 없는 경우 show memory summary 명령 출력에서 사용 가능한 것으로 보이는 프로세서 메모리가 여전히 많이 있을 수 있습니다.
참고:Cisco 버그 ID CSCuj50368이 인증 실패의 실제 이유에 대해 SSH 오류 메시지를 더 명확하게 하기 위해 제출되었습니다.
이것이 실제로 문제인지 확인하는 한 가지 방법은 AAA 메모리 통계를 확인하는 것입니다.
Router#show aaa memory
Allocator-Name In-use/Allocated Count
----------------------------------------------------------------------------
AAA AttrL Hdr : 0/65888 ( 0%) [ 0] Chunk
AAA AttrL Sub : 0/65888 ( 0%) [ 0] Chunk
AAA DB Elt Chun : 544/65888 ( 0%) [ 4] Chunk
AAA Unique Id Hash Table : 8196/8288 ( 98%) [ 1]
AAA chunk : 0/16936 ( 0%) [ 0] Chunk
AAA chunk : 0/16936 ( 0%) [ 0] Chunk
AAA Interface Struct : 1600/1968 ( 81%) [ 4]
Total allocated: 0.230 Mb, 236 Kb, 241792 bytes
AAA Low Memory Statistics:
__________________________
Authentication low-memory threshold : 3%
Accounting low-memory threshold : 2%
AAA Unique ID Failure : 96
Local server Packet dropped : 0
CoA Packet dropped : 0
PoD Packet dropped :
실패한 각 SSH 시도에서 "AAA Unique ID Failure" 카운트가 증가하면 이 메모리 부족 상태로 인해 문제가 발생합니다.
이 문제를 해결하려면 표준 ASR 1000 메모리 문제 해결 단계를 수행하여 원인을 파악해야 합니다.ASR에서 메모리 문제를 해결하는 방법에 대한 자세한 내용은 메모리 사용량 개요를 참조하십시오.
솔루션
이 문제를 해결하려면 표준 라우터 메모리 문제 해결 단계를 수행해야 합니다.이 단계에서는 플랫폼/메모리 업그레이드를 보증할 수 있는 정상적인 사용 때문에 문제가 발생하는지 여부를 격리합니다.메모리 누수가 발생할 수 있습니다.자세한 내용은 메모리 누수 탐지기 및 공통 메모리 문제 해결 기술을 참조하십시오.
Cisco 버그 ID CSCum19502의 수정 사항이 없는 버전의 경우, 가장 분명한 해결 방법은 텔넷 또는 콘솔 액세스를 라우터에 활성화하는 것입니다. 이는 SSH만 이 임계값에 영향을 받기 때문입니다.
팁:aaa memory threshold 명령을 사용하면 임계값을 최소 1%로 줄일 수 있습니다.그러나 이는 라우터에 대한 SSH를 임시로 제공하는 방법이지만, 관리자 알림을 받기 전에 프로세서 메모리 사용률이 매우 낮을 수 있다는 것과 같은 다른 영향을 초래할 수 있습니다.이로 인해 대량의 메모리를 사용하는 BGP와 같은 더 중요한 프로세스가 더 이상 작동하지 않을 수 있습니다.따라서 이것은 주의해서 사용해야 할 것입니다.
앞에서 설명한 것처럼 라우터가 메모리를 누수하지 않고 활성화된 기능에 대해 초과 서브스크립션된 것일 수도 있습니다.이 경우 플랫폼/메모리 업그레이드가 필요할 수 있습니다.