Программирование, автоматизация и информация Cisco IOS

11

Я запутался в Cisco IOS, и у меня есть некоторые вопросы по этому поводу.

Cisco IOS используется в маршрутизаторах и других устройствах.

Можно ли написать код (например, PHP) для этого?

Если это возможно, какой язык я могу использовать?

Меня смущает не то, как работать с Cisco IOS; это вопрос о том, могу ли я разработать и изменить свой маршрутизатор или другие устройства в соответствии с тем, что мне нужно для сети, или нет?

Поя Махмуди
источник

Ответы:

18
  1. Почти каждая система Cisco IOS Note 1 , работающая по крайней мере на IOS 12.2, имеет встроенную программируемость оболочки tcl . Вы можете хранить tcl-скрипты во флэш-памяти и запускать их.

  2. В Cisco IOS также имеется легкая встроенная среда программирования, называемая EEM (Embedded Event Manager). События EEM могут быть вызваны различными входами, такими как пакеты на определенном порту (через Netflow), сообщения журнала или интерфейс вверх / вниз. Думайте об EEM как о подмножестве возможностей tclsh в IOS; EEM отстой меньше, чем программирование в TCL, но вы также получаете поддержку пятнистых функций в зависимости от микса IOS, с которым вы имеете дело. EEM может работать по расписанию cron, если это соответствует вашим потребностям. В нижней части этого ответа я включил пример сценария EEM; имейте в виду, что EEM лучше всего подходит для небольших чисел операторов "если-это, делай-то" ... когда вы хотите начать определять функции и тому подобное, просто прикусите маркер и используйте tclsh.

  3. Новые продукты Cisco поддерживают специальный набор стандартных API SDN, которые шире, чем я могу объяснить при наборе текста на моем мобильном телефоне; один пример из этого семейства включает Cisco APIC , но это лишь поверхностное представление о том, что у них есть.

  4. Я был бы упущен, если бы не указал, что большинство сценариев Cisco, выполненных за последние 20 лет, были сделаны с помощью скриншотов , snmp и (в наши дни) NETCONF. Все, что вы можете сделать из CLI, может быть автоматизировано с помощью скрапинга экрана; Я потратил большую часть своей карьеры, занимаясь именно этим. Скребки экрана обычно размещают свои сценарии во внешней системе Linux и подключаются к маршрутизатору с оружием по своему выбору ... обычно это один из следующих языков:

  5. Наконец, более новые продукты Cisco Nexus имеют API-интерфейс Python (такой как этот для Nexus 9K); С API Python обычно проще работать, чем с TCL API, но на данный момент вы ограничены семейством Nexus.


Примечание 1 Единственное исключение, о котором я знаю, - это Cisco 3550, которого нет tclshв 12.2 .

Майк Пеннингтон
источник