Introdução
Este documento descreve o recurso "Manuseio de declaração gracioso", introduzido na versão 21.5.0 do StarOS.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- StarOs
- Servindo GPRS Support Node (SGSN)
Componentes Utilizados
As informações neste documento são baseadas no StarOS R21.5 e posterior.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O recurso pode ser encontrado na documentação oficial aqui: Guia SGSN-Admin.
A estrutura de Manuseio de Asserção de Segurança permite o tratamento de sessões de assinante de forma segura para as quais a condição ASSERT é atingida no momento da execução da chamada. Isso é obtido sem afetar outras sessões de assinante no mesmo proclet.
Normalmente, quando a condição ASSERT é atingida, o proclet do Session Manager (SessMgr) reinicia e recupera todas as sessões de assinante do AAA Manager (AAMgr). As sessões de assinante recuperadas são movidas para o estado IDLE.
Quando o Manuseio de Declaração de Segurança está habilitado, o proclet SessMgr não é reiniciado. Em vez disso, o proclet do SessMgr recupera apenas a sessão do assinante afetado do AAMgr e limpa a sessão do assinante existente no SessMgr. As sessões de assinante recuperadas são movidas para o estado IDLE. No momento do procedimento de recuperação, todas as mensagens direcionadas ao assinante são descartadas. Após a recuperação, o assinante continua a tratar as mensagens direcionadas a ele. Com esse procedimento, as sessões de assinante que permanecem no SessMgr permanecem inalteradas.
Problema
Há alguns casos de canto e/ou colisão para os quais a correção da causa raiz é complexa ou a causa raiz é desconhecida. Nesses casos, uma abordagem de asserção apropriada é usada para evitar a reinicialização completa do gerenciador de sessão.
Solução
Com asserção gratuita, você pode limpar e restaurar a sessão 1 que atinge a condição de asserção gratuita.
Não há impacto em nenhuma outra sessão no mesmo sessmgr.
Não há interceptação SNMP ou syslog para uma reinicialização normal.
Não há perda de KPI no caso de uma declaração gratuita. A tarefa em si não é reiniciada.
No entanto, as asserções graciosas são manipuladas como qualquer outra falha, o que significa que você obtém uma entrada em show crash list.
Como identificar uma declaração gratuita do SSD:
- Despejo de estado iniciado pelo sistema com núcleo. - é visto na saída "show crash" antes da pilha
- o crashed proclet é iniciado pelo usuário ou não boxer - é visto após a pilha na saída "debug console cpu"
- pid 7939 facility sessmgr failover 5132->94 - em "debug console CPU" não é registrado/visto em caso de declaração gratuita
Configurar
O Manuseio de Asserção de Segurança pode ser configurado da seguinte forma:
configure
debug controlled-assert s4sgsn
[ disable | enable ] core-generation
limit-per-assert assert_value
[ no ] test file-name file_name line-number line_num [ sequence-number seq_num ]
end Tome nota:
-
afirmação controlada: Configura a estrutura de declaração controlada.
-
s4sgsn: Configura a declaração controlada S4-SGSN.
-
geração de núcleo: Configura a geração de núcleo para asserção controlada. Padrão: Habilitado.
-
limite por asserção: Configura o limite por asserção para asserção controlada. Padrão: 5.
-
test file-name file_name line-number line_num [ sequence-number seq_num ]: Configura o tratamento de teste de asserção controlado.
-
file-name nome_do_arquivo: Configura o nome do arquivo onde o controle de declaração é necessário. file_name deve ser uma sequência alfanumérica de 1 a 254 caracteres.
-
line-number line_num: Configura o número da linha onde o controle de declaração é necessário. line_num deve ser um inteiro de 1 a 4294967295.
-
sequence-number seq_num: Configura o número de sequência onde o controle assert é necessário. seq_num deve ser um inteiro de 1 a 100. Padrão: 1.
-
desabilitado: Desabilita a ação especificada para uma estrutura de declaração controlada.
-
enable: Habilita a ação especificada para uma estrutura de declaração controlada.
-
não: Remove a configuração de teste especificada relacionada à estrutura de asserção controlada.
Exemplo
********************* CRASH #93 ***********************
SW Version : 21.5.19
Similar Crash Count : 8
Time of First Crash : 2019-May-21+06:57:14
Fatal Signal 6: Aborted
Note: System-initiated state dump w/core. <<< This note indicates a graceful assert.
Process: card=10 cpu=0 arch=X pid=11573 cpu=~16% argv0=sessmgr
Crash time: 2019-May-23+06:00:13 UTC
Recent errno: 11 Resource temporarily unavailable
Build_number: 71813
Verificar
Use esta seção para confirmar se a sua configuração funciona corretamente.
Exemplo de obtenção de estatísticas de asserção controlada para todos os sessmgrs ativos:
# zcat ssd_s4sgn.log.gz | sed -n -e '/\*\{7\} show session subsystem facility sessmgr all debug-info /,/\*\{7\}/p' | sed -e '/^SessMgr: /,/^Controlled Assert Stats/{/^SessMgr: /!{/^Controlled Assert Stats/!d}}' | grep -E "SessMgr: Instance [0-9]{1,3}$" -A 10Saída de exemplo:
SessMgr: Instance 135
Controlled Assert Stats
Module Name :SGW_DRV
Assert Count:0
Count File:Line Last Assert hit time(in sec)
Module Name :S4_SGSN
Assert Count:1
Count File:Line Last Assert hit time(in sec)
1 sess/sgsn/sgsn-app/s4_sm/s4_smn_egtpc.c:3164 2019/01/30 09:28:11 UTC
Essas informações (contagem e número de linha) serão redefinidas se o sessmgr for para uma reinicialização para qualquer outro travamento. Depois que o número máximo de vezes (padrão 5) é atingido, o núcleo não é gerado.
Troubleshooting
Atualmente, não existem informações disponíveis específicas sobre Troubleshooting para esta configuração.