是否有一种在托管交换机上以编程方式配置 VLAN 的好方法?

Jer*_*ner 6 vlan snmp

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

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

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

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

Wes*_*ley 14

编辑:我回到这个问题来纠正一个糟糕的情况。对于未来的读者来说,需要12 个 VLAN的系统的想法可能是出现严重错误的迹象。此外,自动配置客户端的网络设备以创建这些 VLAN 的想法更有可能是错误的。

多亏了 Tom O'Connor 的侦探技巧,我们发现问题的作者正在处理的产品可能比大多数人有更好的理由这样做。我强调情况的不确定性,因为无论情况如何,我认为整体概念仍然存在严重的根本缺陷。我愿意犯错。

我再次给未来的读者留言:如果你想这样做,假设你做错了事。向他人征求意见。其他可证实比您更了解网络管理主题和您的方案的人。如果您和其他几位专业人士(最好是那些在情感上或专业上与项目没有直接联系的人)都同意这是最好的做法,则只能以编程方式创建十几个 VLAN。

综上所述,我最初的回答是针对帖子作者的,应该不那么随意。对于我在骚扰中的部分,我直接向 Jeremy Friesner、整个 ServerFault 社区道歉,我接受不法行为。它并没有使社区处于良好状态。

这篇文章的其余部分就其价值而言是无足轻重的。


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

除了我只是在嘴里吐了一点...

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

我认为你已经尽力了。您需要制作某种脚本,通过它们自己的首选方法与最常见的网络设备通信。例如:以某种方式制作一个脚本,通过 SSH 或串行电缆与 Cisco 设备通信并配置 VLAN,并注意您的客户自己的配置和 VLAN 编号等。该脚本将是非常复杂的脚本,即使如此,仍然会可能需要由向导驱动以确保选择了正确的选项。这意味着要考虑大量时间、大量精力和大量特殊情况。在我看来,你已经尽力给客户端一个配置方案。由他们来处理它的放置方式。

如果您的产品需要十几个 VLAN(Madness!SPARTA!),那么您的客户端不应该通过将它们全部制作出来而被手持。其实,我倒是觉得他们会,以确保做出的VLAN都适合自己的系统,而不是一个脚本吐了。

  • 现在 VLAN 增加了 30%!提供 100% 的 VLAN 每日推荐限额!免责声明:产品按重量而非体积销售。产品可能含有 5 号红色染料。 (7认同)
  • 如果你的产品开始弄乱我的开关,我真的会开车到你的办公室并把你打得毫无意义。实际上,它甚至不会走那么远:只要它要求我提供 switch 凭据,我就会伸手去拿我的车钥匙...... (6认同)
  • 我一看到“现在有 12 个 VLAN !!” 在盒子上,我会戴上我的曲棍球面具并寻找电锯。 (6认同)
  • 天啊,让人们冷静下来。在我被杀之前,让我注意,正在配置的交换机是专用于我们的产品在专用 LAN 上使用的交换机……而不是一般的 IT 或办公室交换机。我想我应该更清楚这一点。 (4认同)

gra*_*ace 5

现在,我已经结束了最初的愤怒和困惑,想到您实际上会为此付出代价,从而创建“数十个 VLAN”,并希望自动破坏配置我的交换机......

根据客户提交的值和您的产品要求生成一些文档或网络图会更加谨慎。这样,所述客户可以评估必须做出哪些真正的改变并相应地进行计划。

在生产环境中随意创建 VLAN 是一件非常糟糕的事情,希望由不熟悉环境的第 3 方实现自动化。

即使您的代码是万无一失的(并且有无数的版本、供应商和选项,我认为这是一项不可能完成的任务),如果用户缺乏经验或可能低估了更改对网络的影响,您可能会无意中完全破坏某人的网络。


top*_*gon 2

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