Contents

Introduction

Problema

Solução

Introduction

Este documento descreve o problema em um roteador Cisco IOS® quando o Secure Shell (SSH) para o roteador às vezes falha com uma falha de autenticação de usuário relatada nas depurações SSH. Esse problema ocorre mesmo que as credenciais de usuário inseridas estejam corretas e as mesmas credenciais funcionem corretamente para Telnet.

Note: O bug da Cisco ID CSCum19502 foi arquivado para tornar o comportamento entre SSH e Telnet consistente.

Problema

Observe nessas depurações que, mesmo que "debug aaa authentication" esteja ativado, não há depurações de Autenticação, Autorização e Contabilidade (AAA) sendo impressas para mostrar que AAA é chamada e retorna a falha.

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,

Às vezes, o syslog mostrado aqui também é observado quando o SSH é tentado, mas não é impresso consistentemente:

*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

A causa raiz do problema são as condições de memória baixa no roteador. Quando o AAA não aloca a memória para criar o UID exclusivo para a sessão SSH recebida, ele relata a mesma falha de uma falha de autenticação AAA mesmo que o AAA não seja tentado. Essa condição ocorre quando a memória livre do processador cai abaixo do "limiar de memória baixa de autenticação" AAA, que por padrão é definido como 3% da memória total e pode ser verificado com o comando show aaa memory. Esse problema é frequentemente visto em uma plataforma ASR (Aggregation Services Router) 1001, na qual há memória limitada no roteador que pode ser esgotada com o uso pesado do plano de controle, como uma tabela BGP (Border Gateway Protocol) completa. No ASR 1001 há 4 GB de DRAM instalada, mas depois que todos os outros processadores de CPUs e Linux inicializam, o Cisco IOS obtém os 1,1 GB restantes. Quando a memória é esgotada a ponto de o AAA não poder mais alocar memória para o UID, o SSH falha ao funcionar.

Considere estes dados de memória de dois ASRs:

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

A partir de um cálculo simples, no ASR inoperante, a porcentagem de memória livre é de 1,28% (14914664 / 1160982064 * 100) do total de memória disponível. No ASR funcional, é de 3,51% (40860008 / 1160982064 * 100), que está logo acima do limite de memória baixa de autenticação.

Esse problema é difícil de identificar porque a mensagem %AAA-3-ACCT_LOW_MEM_UID_FAIL frequentemente não é impressa quando esse erro ocorre devido à condição de memória baixa. Além disso, a forma como a AAA calcula o limite de memória não depende da quantidade bruta de memória do processador disponível no RP (Route Processor, processador de rota), mas sim de uma porcentagem da memória total. Portanto, ainda pode haver muita memória do processador mostrada como livre na saída do comando show memory summary quando isso ocorre sem falhas de malloc reportadas.

Note: O bug da Cisco ID CSCuj50368 foi arquivado para tornar as mensagens de erro SSH mais explícitas sobre o motivo real da falha de autenticação.

Uma forma de verificar se esse é realmente o problema é examinar as estatísticas de memória 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                      :

Se a contagem de "Falha de ID Exclusiva de AAA" incrementar em cada tentativa de SSH com falha, o problema é causado por essa condição de memória baixa.

Para solucionar esse problema, as etapas padrão de solução de problemas de memória ASR 1000 devem ser seguidas para isolar a causa. Para obter mais informações sobre como solucionar problemas de memória no ASR, consulte Visão geral de uso da memória.

Solução

Para solucionar esse problema, devem ser tomadas as etapas padrão de solução de problemas de memória do roteador. As etapas isolam se o problema é devido ao uso normal, caso em que uma atualização de plataforma/memória pode ser justificada; ou um vazamento de memória no qual pode ser necessário monitorar e solucionar problemas adicionais de memória. Consulte Detector de vazamento de memória e técnicas comuns de solução de problemas de memória para obter mais detalhes.

Para versões que não têm a correção do bug da Cisco ID CSCum19502 , a solução mais óbvia é habilitar o Telnet ou o acesso do console ao roteador, já que somente o SSH é afetado por esse limite.

Tip: O comando aaa memory threshold permite reduzir os valores de limite para um mínimo de 1%. No entanto, embora isso forneça uma maneira temporária de SSH para o roteador, pode levar a outras implicações, como a permissão de utilização da memória do processador para cair muito pouco antes dos administradores serem alertados. Isso pode fazer com que processos mais importantes, como o BGP que usa grandes quantidades de memória, não funcionem mais. Por isso, é algo que deve ser usado com cautela.

Como explicado anteriormente, é completamente plausível que o roteador não vaze memória, mas apenas tenha uma assinatura excessiva para os recursos habilitados. Nesse caso, uma atualização de plataforma/memória pode ser garantida.