有没有一种很好的方式来编程configurationpipe理交换机上的VLAN?

我的情况是,我的公司生产的产品(当前)要求用户在pipe理交换机上设置十几个VLAN,专用于我们的产品。

目前,它的工作方式是这样的:用户将他的系统configuration首选项input到我们提供的专有(基于Qt)的GUI中,当他完成时,GUI会吐出一个“VLANconfiguration报告”,指出哪些VLAN需要设置,哪些以太网端口应该是哪些VLAN的成员。 然后用户负责使用交换机的Web界面手动将这些设置input到交换机中。

这种“types”的工作,但要求用户input所有的数据是乏味和容易出错,所以我们想以某种方式自动化的过程:也就是说,我们的程序直接连接到pipe理交换机,告诉交换机要设置哪些VLAN以及要分配哪些端口。

做这个的最好方式是什么? 这是可以使用SNMP来完成的吗? 如果是这样,我在哪里开始实施这样的function? (我对基本的TCP / IP编程相当有经验,但是我不知道从哪里开始使用SNMP。)

RFC2674可能会有帮助。 这将是一个不平凡的实现,但比其他可能的解决scheme更less的供应商特定。 它定义了允许通过SNMP更改VLAN的Q-BRIDGE-MIB 。

编辑:我回到这个问题来纠正一个糟糕的情况。 对于未来的读者来说,一个需要 12个VLAN的系统的想法可能是一个非常错误的标志。 此外,自动configuration客户端的networking设备以创build这些VLAN的概念更有可能成为错误的事情。

由于Tom O'Connor的调查技巧,发现问题作者正在处理的产品可能比大多数人有更好的理由。 我强调情况的不确定性,因为不pipe情况如何,我相信整体概念仍然有严重的根本缺陷。 我愿意做错。

我再次给未来的读者留言:如果你想这样做,假设你做错了。 询问其他人的意见。 其他谁比你更了解networkingpipe理和你的情况。 如果你和其他几个专业人士(最好是那些没有感情上或者直接与这个项目紧密联系的人)都认同这是最好的做法,那么只有编程的方式来创build一个VLAN。

说了上面的话,我原来的答案select了这个职位的作者,应该不那么非正式。 对于我的骚扰行为,我直接向Jeremy Friesner,整个ServerFault社区道歉,我接受不当行为。 这并没有让社区变得更好。

这篇文章的其余部分是为了什么是值得的,而被忽视了。


我的情况是,我的公司生产的产品(当前)要求用户在pipe理交换机上设置十几个VLAN,然后才能使用该产品。

除了我刚刚在我嘴里吐了一下

我的问题是,这样做的最好方法是什么?

我想你已经尽力做到了。 您需要制作一些脚本,通过自己喜欢的方法与最常见的networking设备进行交stream。 例如:以某种方式制作脚本,通过SSH或串行电缆与思科设备通信,并configurationVLAN,并注意客户自己的configuration和VLAN编号等。脚本将是非常复杂的脚本,即使如此,仍然会可能需要向导才能确保select正确的选项。 这意味着大量的时间,大量的努力和特殊的情况下考虑。 在我看来,你已经尽力给客户一个configurationscheme。 这取决于他们如何实施。

如果您的产品需要十几个VLAN(疯狂! SPARTA! ),那么您的客户不必通过全部手工来手持。 事实上,我认为他们想要确保VLAN是针对他们自己的系统量身定做的,而不是用脚本挑出来的。

现在,我已经超过了我最初的愤怒和困惑,想到了实际上付出的东西,创build了“几十个VLAN”,并想自动销毁configuration我的交换机…

只需根据客户提交的价值和产品的要求生成一些文档或networking图,就会更加谨慎。 这样,客户可以评估需要做出哪些实际的改变,并据此进行计划。

在生产环境中无缝地创buildVLAN对于想要由不熟悉环境的第三方自动化来说是非常糟糕的事情。

即使你的代码是无懈可击的(以及无数的版本,供应商和选项,我认为这是一个不可能完成的任务),如果用户没有经验或者可能低估了一个变化对networking的影响,那么你可以无意中完全打开某人的networking。

这在不同的交换机之间会有所不同,但是几年前,当我每周定期从头开始configuration10个交换机时,我使用Net :: Telnet :: Cisco在Perl中编写了整个脚本。 在现代,我可能会使用Net :: SSH :: Perl之类的东西。

你最终可以在控制台上input任何东西,你可以编写脚本。

假设您正在使用Cisco Catalyst交换机(坦率地说,您应该)..然后有两个选项我可以想到。

1)使用Net :: Telnet :: Cisco来告诉交换机将configuration转储到tftp服务器,从那里抓取它,用某些东西parsing它(然后用taup喷出新的拷贝)。

2) 这个文件似乎是做你想做的。 “使用SNMP将VLAN添加到Cisco Catalyst交换机”

我不是说这是一个好主意,但肯定是可以的

如果我对使用基于Web的交换机做类似的事情感到困难,你可能会发现我用Fiddler2来查看HTTP请求,然后用Python的httplib去做一些肮脏的事情。

有一种方法可以做到这一点,但这取决于开关的types。 如果是思科设备,您应该能够创build一个默认的模板configuration,并让它们粘贴到它。 否则,您可以通过SNMP来完成,但OID可能会从供应商变为供应商。

在不知道正在使用的开关模型的情况下,很难正确回答。

我无法想象你的产品需要十几个不同的VLAN或者是如何实际连接的,但是在我看来,这就是使用某种VLAN标记(如802.1Q)的尖叫。

如果您销售交换机并销售产品,您可以坚持与一个供应商(比如思科)合作,并按照杰夫和其他人的build议写信。

但是VLAN又是危险的,我希望客户的networking在部署之前的确是被研究的。