Codificação de caracteres padrão da Cisco no console

2

Pergunta

Qual é a codificação de caracteres padrão usada pela maioria dos dispositivos Cisco ao se comunicar através do console?

Antecedentes

Sou um desenvolvedor de software, escrevendo um aplicativo que faz interface com vários dispositivos Cisco através de suas portas de console (basicamente, ele executa comandos de configuração do IOS e responde a certos erros semelhantes a feedback).

Meu software é executado em mac / windows / linux e cada sistema operacional tem seus próprios sistemas de codificação de caracteres padrão. Por isso tenho que ter muito cuidado quando envio bytes para a consola e quando recebo bytes da consola. Se eu não especificar a codificação de caracteres correta, as coisas quebram de formas malucas. Como quando eu pressiono "return" depois de enviar um comando, em certos sistemas, ele "pressiona" duas vezes, em vez de uma vez! Ou, quando eu receber dados e tentar entender, o programa ficará confuso com a conversão incorreta de bytes / caracteres.

Resumo

Se eu ligar um novo (ou recém-redefinido) Cisco 3845 ou 2955 e conectar via console e enviar dados / bytes / caracteres para frente e para trás ...
... qual codificação o dispositivo usará, por padrão. Minha suspeita é que é UTF-8.

    
por gMale 21.04.2011 / 02:05

3 respostas

3

Se o seu equipamento americano, eu acho que posso afirmar com segurança que ele usa apenas ASCII para o seu texto normal. Ele provavelmente não executará nenhum tipo de verificação de conjunto de caracteres, portanto, os nomes definidos pelo usuário podem ser qualquer conjunto de caracteres, desde que os bytes individuais sejam válidos no que diz respeito ao dispositivo. Se você receber um jargão de uma conexão serial, a porta está configurada incorretamente. Quando eu era mais novo e usava portas seriais regularmente, às vezes eu reconhecia o tipo de rabiscos e identificava qual configuração estava errada.

Quanto a problemas com a chave de entrada, o dispositivo usará o mesmo caractere para "entrar" se você estiver se conectando do Windows (onde a nova linha é \r\n ) ou unix ( \n ) ou mac ( \r ) , escolha um que funcione corretamente e sempre funcione. Dependendo de como você está se conectando (Diretamente ao dispositivo de porta serial ou assumindo o controle de um aplicativo de terminal?) Pode haver configurações como "eco local" que faz com que o que você digita seja impresso na tela pela aplicação do terminal texto para você, então ligar o eco local fará com que todas as letras sejam duplicadas)

    
por 21.04.2011 / 04:11
3

Nada mais complexo que simplesmente ASCII antigo. Eu entendo UTF-8 é compatível com isso, então você deve estar ok com isso.

Como um aparte, eu estive na rota de escrever programas para controlar e obter relatórios de várias caixas Cisco, eu comecei usando conexões de console, mas percebi depois de um curto período de tempo que realmente não é uma solução de longo prazo, você vai acabar usando o SNMP para qualquer coisa complexa.

A principal razão para isso é que a resposta da CLI nem sempre é consistente e quase certamente irá mudar entre as versões do IOS, a segunda razão é que o SNMP, embora aparentemente complexo quando visto pela primeira vez, é projetado para obter informações da rede e alterar as configurações, é padrão e sempre dará resultados consistentes. Apenas meu valor de 10p.

    
por 21.04.2011 / 03:11
0

Isenção de responsabilidade: não sou um desenvolvedor de software =)

O documento abaixo ajuda de alguma forma? Ele discute "conjunto de caracteres" em várias áreas - incluindo valores padrão. Não tenho certeza se isso é o mesmo que "codificação de caracteres", pelo menos no contexto em que você está perguntando.

link

    
por 21.04.2011 / 03:10