Programación, automatización e información de Cisco IOS

11

Estoy confundido sobre Cisco IOS, y tengo algunas dudas al respecto.

Cisco IOS se utiliza en enrutadores y otros dispositivos.

¿Es posible escribir código (como PHP) para eso?

Si es posible, ¿qué idioma puedo usar?

Lo que me confunde no es cómo trabajar con Cisco IOS; ¿Se trata de si puedo desarrollar y cambiar mi enrutador u otros dispositivos de acuerdo con lo que necesito para la red o no?

Pooya Mahmoodi
fuente

Respuestas:

18
  1. Casi todos los sistemas Cisco IOS de Note 1 que ejecutan al menos IOS 12.2 tienen programabilidad incorporada de tcl shell . Puede almacenar scripts tcl en flash y ejecutarlos.

  2. Cisco IOS también tiene un entorno de programación nativo ligero llamado EEM (Embedded Event Manager). Los eventos EEM pueden ser activados por una amplia variedad de entradas, como paquetes en un determinado puerto (a través de Netflow), mensajes de registro o interfaz arriba / abajo. Piense en EEM como un subconjunto de capacidades tclsh en iOS; EEM apesta menos que la programación en TCL, pero también obtienes compatibilidad con características irregulares dependiendo de la mezcla de IOS con la que estés tratando. EEM puede ejecutarse en un horario cron si eso se adapta a sus necesidades. Al final de esta respuesta , incluí un script EEM de ejemplo; tenga en cuenta que EEM es mejor para números pequeños de "si-esto, hacer-eso" ... cuando desee comenzar a definir funciones y tal, simplemente muerda la viñeta y úsela tclsh.

  3. Los nuevos productos Cisco admiten un conjunto especial de API SDN enlatadas que son más amplias de lo que puedo explicar mientras escribo en mi teléfono móvil; Un ejemplo de esta familia incluye Cisco APIC , pero eso solo está rascando la superficie de lo que tienen disponible.

  4. Sería negligente si no señalara que la mayoría de las secuencias de comandos de Cisco realizadas en los últimos 20 años han sido a través de raspado de pantalla , snmp y (actualmente) NETCONF. Todo lo que pueda hacer desde la CLI puede automatizarse mediante el raspado de pantalla; He pasado gran parte de mi carrera haciendo exactamente esto. Los raspadores de pantalla generalmente alojan sus scripts en un sistema Linux externo y se conectan a un enrutador con el arma de su elección ... generalmente ese es uno de estos idiomas:

  5. Finalmente, los nuevos productos Cisco Nexus tienen una API Python (como esta para el Nexus 9K); Las API de Python suelen ser más fáciles de manejar que las API de TCL, pero en este punto está restringido a la familia Nexus.


Nota 1 La única excepción que conozco es el Cisco 3550, que no tiene tclshen 12.2 .

Mike Pennington
fuente