Programação, automação e informações do Cisco IOS

11

Estou confuso sobre o Cisco IOS e tenho alguma dúvida sobre isso.

O Cisco IOS é usado em roteadores e outros dispositivos.

É possível escrever código (como PHP) para isso?

Se for possível, qual idioma posso usar?

O que me confunde não é como trabalhar com o Cisco IOS; é sobre se eu posso desenvolver e alterar meu roteador ou outros dispositivos de acordo com o que eu preciso para a rede ou não?

Pooya Mahmoodi
fonte

Respostas:

18
  1. Quase todo sistema Cisco IOS da Nota 1 executando pelo menos o IOS 12.2 possui programação de shell tcl integrada . Você pode armazenar scripts tcl em flash e executá-los.

  2. O Cisco IOS também possui um ambiente de programação nativo leve chamado EEM (Embedded Event Manager). Os eventos do EEM podem ser acionados por uma ampla variedade de entradas, como pacotes em uma determinada porta (via Netflow), mensagens de log ou interface para cima / baixo. Pense no EEM como um subconjunto de recursos tclsh no IOS; O EEM é um saco menos do que a programação no TCL, mas você também recebe suporte de recursos irregulares, dependendo do mix do IOS com o qual está lidando. O EEM pode ser executado em um cronograma se isso for adequado às suas necessidades. Na parte inferior desta resposta , incluí um exemplo de script EEM; lembre-se de que o EEM é melhor para pequenos números de instruções "se-faça-faça-isso" ... quando você quiser começar a definir funções e outras coisas, apenas morda a bala e use tclsh.

  3. Os novos produtos da Cisco oferecem suporte a um conjunto especial de APIs SDN enlatadas, mais amplas do que eu posso explicar enquanto digito no meu celular; Um exemplo dessa família inclui o Cisco APIC , mas isso apenas arranha a superfície do que eles têm disponível.

  4. Seria uma negligência se não apontasse que a maioria dos scripts da Cisco realizados nos últimos 20 anos foram por meio de raspagem de tela , snmp e NETCONF (atualmente). Tudo o que você pode fazer a partir da CLI pode ser automatizado através da captura de tela; Passei grande parte da minha carreira fazendo exatamente isso. Os raspadores de tela geralmente hospedam seus scripts em um sistema linux externo e se conectam a um roteador com a arma de sua própria escolha ... geralmente essa é uma dessas linguagens:

  5. Finalmente, os produtos Cisco Nexus mais recentes têm uma API Python (como esta para o Nexus 9K); As APIs python normalmente são mais fáceis de lidar do que as APIs TCL, mas neste momento você está restrito à família Nexus.


Nota 1 A única exceção que eu conheço é o Cisco 3550, que não possui tclshno 12.2 .

Mike Pennington
fonte