人们如何处理将VLAN添加到其网络(甚至设备的子集)上的所有交换机的需求?目前,我们每周会添加大约6个新的VLAN,随着网络的发展,这已成为一项非常繁琐且风险很大的任务。

#1 楼

这是Perl中一个非常基本的脚本模板,用于远程登录到设备列表(称为devicelist.txt的文件中的每一行)并配置一些命令。
根据您正在执行的操作,它应该是一个好的开始。

>

评论


我唯一的警告是一个很明显的警告。这使用telnet,并以纯文本形式在网络上发送密码。建议使用SSH。

–巨石
13年5月14日20:00

#2 楼

我会说您有几个选择:


手动。花费大多数时间。最安全?取决于进行配置的人。也许没什么大不了的吗?
编写脚本!使用Perl,Python,Ruby或任何您有经验的语言。花费一些时间来构建它,但是一旦完成,您就可以将脚本重用于其他配置任务。它可以自定义,但要取决于您是否喜欢编码。从来没有尝试过。在设备上需要使用RW,我真的不喜欢在网络设备上运行RW。


评论


您是否有编写脚本的示例?我还以为兰西德只是为了阅读,而不是修改?

–SimonJGreen
13年5月13日在22:12

我早在Python中构建了一个工具,可以针对多个设备运行命令。它需要两个CSV文件作为参数。一个带有命令,一个带有主机。可以在matthewstone.net/2013/03/easyexpect上找到。我还在研究一个更大的工具,它是EasyExpect的子代,称为ZeroCLI。尚未完成,但请放在此处以求完整。 github.com/mstone7699/ZeroCLI

–巨石
13年5月13日在22:34



Rancid是用于检索的,但它也附带了clogin,您可以使用它来自动登录设备。它还将文件作为参数,您可以在其中放置应输入的命令。

–丹尼尔·迪布(Daniel Dib)
13年5月14日下午5:45

#3 楼

配置管理软件可能值得研究-Puppet的网络设备管理可以轻松地将VLAN添加到众多Cisco设备(如果使用的是Cisco)。

评论


瞻博网络还启动了一个人偶代理(github.com/Juniper/puppet-netdev-stdlib-junos)

– Jan-Philipp
13年5月14日在14:15

#4 楼

您现在面临的挑战是您将进入混合环境。您提到您从假设思科开始向瞻博网络迈进吗?在纯Cisco环境中,带密码的VTP v3将成为支持4k vlan的方式。在Juniper世界中,等效项就是GVRP。

您可以使用某种形式的集中管理,例如Shane Madden,SolarWinds,HP OpenView等提到的Puppet,但您仍然可以使用从两个供应商管理。在适当的硬件上使用VTP和GVRP可能是可行的方法,不会增加其他解决方案的潜在成本或管理其他新事物的复杂性。

#5 楼

VTP可能就是您的答案。像任何“自动化”工具一样,它具有风险,但是您可以通过适当的规划来减轻风险。您还应该阅读一些内容以确保您了解其工作原理,或者您可能会无意中造成自己的问题(同样,就像任何自动化工具一样)。帮助避免某些潜在问题并提供其他好处。

通过在所选搜索引擎中搜索“ vtp版本3配置”,您可以轻松找到数百个文档。

评论


不幸的是,不久前我们达到了VTP的200 VLAN限制。我们也已经开始转移到瞻博网络。

–SimonJGreen
13年5月14日6:30

您在哪个平台上达到200 VLAN VTP限制?

–约瑟夫·冈斯堡
13年5月14日在7:39

我从未听说过VTP 200 VLAN的限制,我们通过VTP超过200个VLAN。我很想听听您的意思。 VTP版本1和2仅限于使用ISL指定的VLAN 1-1001,但是VTP版本3达到dot1Q4095。交换机可以支持的本地VLAN数量有限制,但是您不能即使在透明模式下也要在本地违反此规定。

– YLearn♦
13年5月14日在12:09

使用VTP风险很大,容易破坏数据中心

– Jan-Philipp
13年5月14日在15:37

@ Jan-Philipp,请您解释一下您的说法,而不仅仅是说“有风险”?为什么会有风险,IYO?

– pboin
13年5月14日在15:41

#6 楼

Solarwind的网络配置管理器可以在IOS设备和其他一些设备中运行脚本。

它还执行每晚配置备份,更改报告和配置审核之类的操作。他们的定价并不可怕,但是他们正在将NCM与Orion Network Performance Monitor合并,我不确定您是否可以再单独运行NCM。

评论


我相信NCM仍将作为独立产品提供,但在每个新版本中它都与NPM集成在一起。如果您的环境很大,那么NCM仅适合于备份和配置更改报告。

–harrijs
13年5月14日在3:43



#7 楼

听起来您的核心已经崩溃。这是正确的吗?

基于添加新VLAN来处理太多更改的一种方法是将L3边界移到更靠近访问的地方。它需要先做一些工作,但是如果您的设计计划周密,并且经过深思熟虑,它应该使添加新VLAN成为一到三个设备任务(取决于L3是在分发层还是在访问层停止)。

您还可以从中获得许多其他好处,包括在丢失链接的情况下更快地收敛。

#8 楼

我将ruby与net-scp和net-ssh gem一起使用,以通过我们的网络设备自动执行任务。这是执行命令的简短脚本(摘录,不是成品):

begin
    Net::SSH.start(fqdn, username, :password => loginPassword) do |session|
        output = ""

        channel = session.open_channel do |ch|
            ch.send_channel_request "shell"
            ch.on_data do |ch, data|
                output += data
            end

            ch.send_data "conf t\n\r"
            #Some tasks here
            ch.send_data "exit\n\r" #Exit config mode
            ch.send_data "exit\n\r" #Exit device

        end

        # Wait for everything to complete
        channel.wait
    end
rescue Exception=>e
    errorOutput = fqdn + ": " + e.to_s
    puts errorOutput
    puts output
    return device
end
return output


请记住,您应该有一个空白的loginPassword变量。如果为空,它将使用RSA公钥进行登录(在HP ProCurve和Cisco 15.X平台上受支持)。

使用git之类的代码和一些简短脚本,您可以组织所有设备配置包含不同的更改以及进行更改的人员(假设您的工程师提取配置并在工作完成后提交它们)。在生产设备上运行之前的实验室。特别是在执行命令和更改配置时。测试,测试,测试。

#9 楼

如果您对网络设备使用相同的构造函数(例如Cisco),则SecureCRT是您的最佳选择。它是一个SSH客户端,可以让您在销售时在多个终端上发送命令:



进行设置:
1。连接到不同标签中的所有设备
2。前往查看
3。选中“聊天窗口”选项
4。右键单击窗口->选中“将聊天发送到所有标签”

#10 楼

可以使用NOC,NOC Project,它是ISP的可扩展,高性能和开源OSS系统。您可以轻松地在整个网络中添加VLAN。