我对Cisco IOS感到困惑,对此有些疑问。
Cisco IOS用于路由器和其他设备。
是否可以为此编写代码(例如PHP)?
如果可能,我可以使用哪种语言?
让我感到困惑的不是如何使用Cisco IOS;它使我感到困惑。关于是否可以根据网络需求开发和更改路由器或其他设备?
我对Cisco IOS感到困惑,对此有些疑问。
Cisco IOS用于路由器和其他设备。
是否可以为此编写代码(例如PHP)?
如果可能,我可以使用哪种语言?
让我感到困惑的不是如何使用Cisco IOS;它使我感到困惑。关于是否可以根据网络需求开发和更改路由器或其他设备?
Answers:
至少运行IOS 12.2的几乎每个Note 1 Cisco IOS系统都具有内置的tcl shell可编程性。您可以将tcl脚本存储在Flash中并运行它们。
Cisco IOS还具有称为EEM(嵌入式事件管理器)的轻型本机编程环境。EEM事件可由多种输入触发,例如某个端口上的数据包(通过Netflow),日志消息或接口打开/关闭。将EEM视为IOS中tclsh功能的子集;EEM比在TCL中编程要容易得多,但是根据要处理的IOS组合,您还可以获得不完善的功能支持。如果适合您的需要,可以按计划的时间表运行EEM。在此答案的底部,我提供了一个示例EEM脚本。请记住,EEM最适合少量的“ if-this,do-that”语句...当您要开始定义函数等时,只需硬着头皮使用tclsh
。
思科的新产品支持一组特殊的罐装SDN API,其范围比我在手机上键入时所能解释的范围要广。这个家族的一个例子包括Cisco APIC,但这仅仅是他们可用的表面。
如果我不指出过去20年中完成的大多数Cisco脚本编写都是通过屏幕抓取,snmp和(如今)NETCONF 进行的,那我会很失落。您可以从CLI进行的任何操作都可以通过屏幕抓取来自动进行;我在职业生涯中花费了很大一部分时间。屏幕抓取程序通常将其脚本托管在外部linux系统上,并使用自己选择的武器连接到路由器...通常是以下语言之一:
Net::SSH::Perl
,Net::Telnet::Cisco
,Net::SNMP
,和Cisco::Reconfig
pexpect
,netmiko
,exscript
,pysnmp
,和ciscoconfparse
net-ssh
,snmp
和cisco
最后,较新的Cisco Nexus产品具有Python API(例如Nexus 9K的该 API );python API通常比TCL API更易于处理,但是目前您仅限于Nexus系列。