Programmation, automatisation et informations Cisco IOS

11

Je suis confus au sujet de Cisco IOS, et j'ai une question à ce sujet.

Cisco IOS est utilisé dans les routeurs et autres périphériques.

Est-il possible d'écrire du code (comme PHP) pour cela?

Si c'est possible, quelle langue puis-je utiliser?

La chose qui m'embrouille n'est pas comment travailler avec Cisco IOS; il s'agit de savoir si je peux développer et changer mon routeur ou d'autres appareils selon ce dont j'ai besoin pour le réseau ou non?

Pooya Mahmoodi
la source

Réponses:

18
  1. Presque tous les systèmes Cisco IOS Note 1 exécutant au moins IOS 12.2 ont une programmabilité de shell tcl intégrée . Vous pouvez stocker des scripts tcl en flash et les exécuter.

  2. Cisco IOS dispose également d'un environnement de programmation natif léger appelé EEM (Embedded Event Manager). Les événements EEM peuvent être déclenchés par une grande variété d'entrées, telles que des paquets sur un certain port (via Netflow), des messages de journal ou une interface haut / bas. Considérez EEM comme un sous-ensemble de capacités tclsh dans IOS; EEM est moins efficace que la programmation en TCL, mais vous bénéficiez également d'une prise en charge inégale des fonctionnalités en fonction du mix IOS avec lequel vous avez affaire. EEM peut être exécuté selon un calendrier cron si cela convient à vos besoins. Au bas de cette réponse , j'ai inclus un exemple de script EEM; gardez à l'esprit que EEM est préférable pour les petits nombres d'instructions "si-ceci, faites-cela" ... quand vous voulez commencer à définir des fonctions et autres, mordez simplement la balle et utilisez tclsh.

  3. Les nouveaux produits Cisco prennent en charge un ensemble spécial d'API SDN en conserve qui sont plus larges que je ne peux expliquer lors de la frappe sur mon téléphone mobile; un exemple de cette famille inclut Cisco APIC , mais cela ne fait qu'effleurer la surface de ce dont ils disposent.

  4. Je m'en voudrais de ne pas souligner que la plupart des scripts Cisco effectués au cours des 20 dernières années l'ont été via le grattage d'écran , snmp et (ces jours-ci) NETCONF. Tout ce que vous pouvez faire à partir de la CLI peut être automatisé via le grattage d'écran; J'ai passé une grande partie de ma carrière à faire exactement cela. Les gratteurs d'écran hébergent généralement leurs scripts sur un système Linux externe et se connectent à un routeur avec l'arme de leur choix ... généralement c'est l'une de ces langues:

  5. Enfin, les nouveaux produits Cisco Nexus ont une API Python (comme celle-ci pour le Nexus 9K); Les API python sont généralement plus faciles à gérer que les API TCL, mais à ce stade, vous êtes limité à la famille Nexus.


Remarque 1 La seule exception que je connaisse est le Cisco 3550, qui n'a pas tclshen 12.2 .

Mike Pennington
la source