我最近接触过一位网络工程师,他希望将他的小型网络管理职责卸载到初级帮助台技术人员。需要管理的具体位置在其单站点属性上作为租户的ISP,因此每天都会进行大量的小调整。

我认为为他写一个winform应用程序来管理现场的32个Cisco设备会很有帮助。我想最初提供的功能可以修改访问控制列表,端口VLAN分配和每个VLAN的带宽限制......在列表中添加更多,因为它被认为是有价值的。

我最初的想法是用网络设备模拟telnet会话;利用我的网络工程师熟悉的命令行/ IOS交互。我自己学习Cisco IOS惯例所需的时间最短。

虽然在搜索解决方案时,似乎大多数人都喜欢SNMP。那,或者,他们的具体情况将他们推向了SNMP的方向。

我想知道我是否忽略了SNMP的明显优势。 我应该使用SNMP吗?为什么或为什么不呢?

有帮助吗?

解决方案

SNMP非常适合获取思科设备的 out 信息,但控制设备并不是很有用。 (虽然从技术上讲,你可以使用SNMP和TFTP的组合将新配置推送到Cisco IOS设备。但是发送一个全新的配置是控制路由器或交换机的一种非常钝的工具。

其他一位评论者提到了Cisco IOS XR XML API。值得注意的是,IOS XR XML API仅适用于运行IOS XR的设备。 IOS XR仅用于思科的一些高端运营商级设备,因此对于99%的思科路由器和交换机而言,IOS XR XML API不是一种选择。

其他可能性是SSH或HTTP(许多Cisco路由器,交换机,AP等具有可选的Web界面)。但我建议反对其中任何一个。据我所知,Web界面在各种设备上并不是非常一致,而且相当惊人的思科设备数量不支持SSH,或者至少不支持基本许可证。

Telnet确实是唯一的出路,除非你只针对一小部分设备型号。为了给您提供一些可比性,思科自己的CiscoWorks网络管理软件使用Telnet连接到托管设备。

其他提示

我不会使用SNMP,而是使用一种名为'expect'的语言。它为这些路由器提供了一个非常好的期望/响应处理器。

我已经使用思科交换机进行了大量真实的SNMP编程,并且在Net-SNMP之上找到Python非常合理。以下是通过Google图书通过Net-SNMP和Python上传新思科配置的示例: Cisco Switch通过Net-SNMP和Python上传。我应该透露我是该链接中引用的书的共同作者。

每个人的milage可能会有所不同,但我个人不喜欢使用 expect ,并且更喜欢使用SNMP,因为它实际上被设计为“简单网络管理协议”。在紧要关头,期待是好的,但这不是我的第一选择。一些公司使用期望的原因之一是开发人员习惯于使用expect。我不一定会绕过SNMP只是因为有一个人自动telnet或ssh的例子。先尝试一下自己。

可能会有一些真正可怕的事情发生在预期中,这可能也不是很明显。因为期望等待输入,所以在适当的条件下会有非常微妙的问题难以调试。这并不意味着一个非常有经验的开发人员无法开发出可靠的代码,但也需要了解它。

您可能想要了解的其他一项内容是使用多处理模块编写非阻塞SNMP代码的示例。因为这是我第一次发布stackoverflow的帖子,所以我不能发布多个链接,但是如果你谷歌它可以找到它,或者使用IPython和Net-SNMP找到另一个链接。

编写SNMP代码时要记住的一件事是它涉及阅读大量文档并进行反复试验。就思科而言,文档非常好。

SNMP也不错,但它可能无法完成您需要做的所有事情。根据您使用的库以及它如何隐藏与SNMP交互的详细信息,您可能很难找到要更改的MIB的正确部分,甚至知道如何更改它们以执行您想要的操作。

不使用SNMP的一个原因是您可以使用 IOS XR XML API 。使用该命令将要发送到设备的命令捆绑起来可能要容易得多,而不是与SNMP交互。

我发现SNMP对管理层来说很痛苦。如果你只需要获取一些数据就很棒;如果你需要改变东西或使用它,那么它可能非常耗时。在我的情况下,我对CLI很满意,因此Telnet方法运行良好。我编写了一些Python脚本,使用 Telnetlib

与telnet相比,SNMP在所讨论的设备上有相当大的CPU损失;我建议尽可能使用telnet。 (如前面的答案中所述,IOS XR XML API会很好,但据我所知,IOS XR仅部署在高端运营商级路由器上。)

就现有配置管理系统而言,两个商业播放器是HP Opsware和EMC Voyence。两者都可能做你需要的。我不知道许多实际上支持部署更改的开源解决方案。 (例如, RANCID 仅进行配置监控,而不是预先登台和部署配置更改)。

如果您要推出自己的解决方案,我建议您选择与网络管理员坐下来为他提供的服务提供最佳实践部署模型(例如标准化ACL,QoS队列和VLAN名称; ACL中具有相同功能的类似条目,用于不同的客户等)。在开始设计之前,确保所有现有的已部署配置符合此BP,这将使问题更易于管理。祝你好运。

旁注:在重新编写另一个服务供应系统/网络管理系统的轮子之前,请尝试查找现有的服务。我知道很多不同程度的灵活性/功能的商业解决方案,但我确信有很多开源的。

思科为帮助台应用程序提供了菜单选项。基本上你telnet到盒子,它提供了一个很好的干净菜单(按1,2,3)。有关更多信息,请查看此链接:

http:/ /www.cisco.com/en/US/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026

期待的另一次投票。

此外,您不希望允许通过telnet或SNMP配置防火墙 - ssh是唯一的方法。原因是ssh加密其有效负载,并且不会将特权管理凭证暴露给潜在的拦截。

如果由于某种原因你不能直接使用ssh,可以考虑将支持ssh的串口控制台服务器连接到防火墙的控制台端口,并按照这种方式进行配置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top