#1 楼
这是Perl中一个非常基本的脚本模板,用于远程登录到设备列表(称为devicelist.txt的文件中的每一行)并配置一些命令。根据您正在执行的操作,它应该是一个好的开始。
>
#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。右键单击窗口->选中“将聊天发送到所有标签”
评论
我唯一的警告是一个很明显的警告。这使用telnet,并以纯文本形式在网络上发送密码。建议使用SSH。
–巨石
13年5月14日20:00