Pergunta

Recentemente, fui abordado por uma rede de engenheiro, colega de trabalho que gostaria de descarregar seus deveres de administração de rede menor a uma tecnologia helpdesk de nível júnior. A localização específica na necessidade de gestão funciona como um ISP para os inquilinos em sua propriedade de um único site, então não há um monte de pequenos ajustes sendo feitos em uma base diária.

Estou pensando que seria útil para escrever-lhe um aplicativo winform para gerenciar os dispositivos 32 Cisco, on-site. Eu gostaria de inicialmente fornecer funcionalidade que poderia modificar listas de controle de acesso, as atribuições de porta de VLAN e limitações de largura de banda por VLAN ... adicionando mais para a lista como seu considerado valioso.

Meu pensamento inicial foi para emular uma sessão telnet com o dispositivo de rede; utilizando a familiaridade da minha rede de engenheiro com a linha de comando interação / IOS. tempo mínimo seria necessário para aprender as convenções Cisco IOS, eu mesmo.

Ainda que na busca de soluções, parece que a maioria das pessoas favorecem SNMP. Isso, ou, suas circunstâncias específicas empurrou-os na direção do SNMP.

Eu queria saber se eu tenha esquecido uma vantagem óbvia de SNMP. Deveria eu estar usando SNMP? Por que ou por que não?

Foi útil?

Solução

SNMP é ótimo para obter informações a de um dispositivo Cisco, mas não é muito útil controlar o dispositivo. (Embora tecnicamente, você pode empurrar uma nova configuração para um dispositivo Cisco IOS usando uma combinação de SNMP e TFTP. Mas o envio de uma nova configuração toda é um instrumento muito brusco para controlar seu roteador ou switch).

Um dos outros comentadores mencionou a API XML Cisco IOS XR. É importante notar que o XML API IOS XR só está disponível em dispositivos que rodam IOS XR. IOS XR só é utilizado em alguns dos dispositivos de nível de operadora de ponta da Cisco, assim, por 99% de todos os roteadores e switches Cisco o XML API IOS XR não é uma opção.

Outras possibilidades são SSH ou HTTP (muitos roteadores Cisco, switches, AP, etc. têm uma interface web opcional). Mas eu recomendo contra qualquer um desses. Para meu conhecimento, a interface web não é muito consistente em todos os dispositivos, e um número surpreendente de dispositivos Cisco não suportam SSH, ou pelo menos não apoiá-lo na licença base.

Telnet é realmente a única maneira de ir, a menos que você está alvejando apenas uma pequena gama de modelos de dispositivos. Para dar-lhe algo para comparar contra, próprio software CiscoWorks de gerenciamento de rede da Cisco utiliza o Telnet para conectar a dispositivos gerenciados.

Outras dicas

Eu não usaria SNMP, em vez olhar para uma pequena linguagem chamada 'espera'. faz para uma muito agradável esperar processador / resposta para estes routers.

Eu fiz uma quantidade razoável de mundo real programação SNMP com switches Cisco e encontrar Python em cima do Net-SNMP a ser bastante razoável. Aqui está um exemplo, através de livros do Google, de carregar uma nova configuração Cisco via Net-SNMP e Python: Cisco interruptor Carregar via Net-SNMP e Python . I deve divulgar que eu era o co-autor do livro referenciado no link.

milage Todo mundo pode variar, mas eu pessoalmente não gosto de usar expect, e preferem usar SNMP porque foi realmente concebido para ser um "Simple Network Management Protocol". Em uma pitada, esperar é ok, mas não seria a minha primeira escolha. Uma das razões que algumas empresas usam esperar é que um desenvolvedor só fica acostumado a usar esperar. Eu não necessariamente calçar-se ignorando SNMP só porque há um exemplo de telnet alguém automatizar ou ssh. Experimentá-lo por si mesmo em primeiro lugar.

Pode haver algumas coisas realmente horríveis que acontecem com espera, que podem não ser óbvio também. Porque esperar aguarda a entrada, sob as condições certas haver problemas muito sutis que são difíceis de depurar. Isso não significa que um desenvolvedor muito experiente não pode desenvolver código confiável, com espera, mas algo estar cientes de também.

Uma das outras coisas que você pode querer olhar é um exemplo de usar o módulo de multiprocessamento para escrever sem bloqueio código SNMP. Porque este é o meu primeiro post para stackoverflow Eu não posso postar mais de um link, mas se você google para ele você pode encontrá-lo, ou outro sobre o uso IPython e Net-SNMP.

Uma coisa para manter em mente ao escrever código SNMP é que envolve a leitura de um monte de documentação e fazendo tentativa e erro. No caso da Cisco, a documentação é muito bom embora.

SNMP não é ruim, mas pode não ser capaz de fazer tudo o que você precisa que ele faça. Dependendo da biblioteca você usa e como ele esconde os detalhes de interagir com SNMP que você pode ter um tempo difícil encontrar as peças corretas do MIB para mudar e até mesmo saber o que ou como alterá-las para fazer o que quiser.

Uma das razões para não usar SNMP é que você pode fazer toda a configuração que você precisa usar o IOS XR XML API . Poderia ser muito mais fácil de agrupar-se os comandos que você deseja enviar para os dispositivos que utilizam a isso do que para interagir com SNMP.

Eu encontrei SNMP para ser uma dor para a gestão. Se você só precisa pegar um pouco de dados é ótimo; se você precisa mudar as coisas ou uso se fortemente que pode ser muito demorado. No meu caso eu estou confortável com o CLI assim uma abordagem Telnet funciona bem. Eu escrevi alguns scripts Python para executar tarefas administrativas em várias peças de equipamentos de rede usando Telnetlib

SNMP tem bastante sucesso significativo CPU nos dispositivos em questão em comparação com telnet; Eu recomendo telnet sempre que possível. (Como dito em uma resposta anterior, o XML API IOS XR seria bom, mas tanto quanto eu sei IOS XR só é implantado em roteadores carrier grade high-end).

Em termos de sistemas de gerenciamento de configuração existentes, dois jogadores comerciais são HP Opsware, e EMC Voyence. Ambos provavelmente vai fazer o que você precisa. Eu não estou ciente de muitas soluções open source que realmente suportam alterações implantação. ( RANCID , por exemplo, só faz a monitorização de configuração, não pré-preparação e implantação de alterações de configuração).

Se você estiver indo para rolar sua própria solução, uma coisa que eu recomendo é sentar-se com o seu administrador de rede e chegando com um modelo de implantação de melhores práticas para o serviço que está oferecendo (por exemplo padronizado ACL, QoS fila e VLAN nomes; entradas semelhantes em ACLs que têm a mesma função para diferentes clientes, etc.). Certifique-se de que todas as cumpre configuração empregados existentes com este BP antes de iniciar seu projeto, ele vai fazer o problema muito mais manejável. Melhor da sorte.

Sidenote: antes de reinventar a roda escrever outro serviço de provisionamento de sistema de gerenciamento de sistema / rede, tente olhar para os já existentes. Eu sei que um monte de soluções comerciais de vários graus de flexibilidade / funcionalidade, mas estou certo de que há um monte de código aberto queridos.

Cisco incluiu opções de menu para aplicações de helpdesk. Basicamente você telnet para a caixa e apresenta um menu agradável limpo (pressione 1, 2, 3). Para mais informações confira este link:

http: / /www.cisco.com/en/US/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026

Outro voto para esperar.

Além disso, você não quer para permitir a configuração de seus firewalls, quer através de telnet ou SNMP - ssh é o único caminho a percorrer. A razão é que ssh criptografa sua carga útil, e não irá expor as credenciais de gestão privilegiados para o potencial de interceptação.

Se por algum motivo você não pode usar ssh diretamente, considere conectar-se um ssh-habilitado servidor console serial à porta do console do firewall e configurá-lo dessa forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top