资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
交换机自动登录、批量备份、批量配置交换机自动登录、批量备份、批量配置 以及自动透传以及自动透传 vlanvlan 的实现的实现作者:鲍继川作者:鲍继川时间:时间:2013.5.132013.5.13目录目录1 前言2.交换机自动登录实现3.交换机自动批量备份实现4.交换机批量配置实现5.交换机自动透传 vlan 实现5.1 对交换机编号,记录接口信息5.2 生成交换机接口信息矩阵5.3 实现深度优先算法和测试路径5.4 生成 ie 输入界面5.5 实现两个交换机之间透传 vlan6.总结7.附录 代码备注:文档所有的代码针对华为系列交换机,可能有些交换机备注:文档所有的代码针对华为系列交换机,可能有些交换机 35263526 等等,在执等等,在执 行保存时会出错,所有程序如果看懂能自己改就非常好了。这需要学习行保存时会出错,所有程序如果看懂能自己改就非常好了。这需要学习 javascriptjavascript 编程和编程和 securecrtsecurecrt 编程,我是边写边学的。我以前所有的代码全部编程,我是边写边学的。我以前所有的代码全部 用用 vbscriptvbscript 写的,后来考虑到写的,后来考虑到 vbscriptvbscript 循环控制不好,全部用循环控制不好,全部用 javascriptjavascript 改改 写了一遍。后来我自己开专线业务,比如写了一遍。后来我自己开专线业务,比如 F400F400 自动开局,自动开局,9806H9806H 开局等等,全开局等等,全 部用可视化的部用可视化的 ieie 界面开局。非常自动化,也非常好用,用自己写的东西开局,界面开局。非常自动化,也非常好用,用自己写的东西开局, 非常流畅。联系电话:非常流畅。联系电话:18996677991899667799 邮箱:邮箱:bc5367gmail.combc5367gmail.com1 1 前言前言自从进入事数据方面工作以来,不断的感觉到了对交换机和其他设备数据操作的繁琐和重复。很多业务的开通都是重复性的操作,只是几个参数的不同。为了节省时间和提高效率,通过不断的摸索和学习,查看各种资料,结合编程和算法,慢慢研究出对设备的自动批量控制和自动开通业务。比如,从交换机 A 透传 vlan 到交换机B,我们不再需要考虑中间的交换机走向,而让程序自动寻路去透传vlan。下面就交换机为例详细阐述如何实现对交换机的自动登录,批量配置,批量备份,以及自动透传 vlan。2.2.交换机自动登录实现交换机自动登录实现假设交换机的拓扑图如下:在图中我们一共可以看到 9 个交换机分别为 A、B、C、D、E、F、G、H、I,然 后对交换机的信息保存为以下 txt 格式文件,每行分别依次为交换机的登录 ip、用户名、密码、二级密码,中间用空格隔开。如 allswip.txt:100.100.100.X 用户名 A 密码 A 二级密码 A 100.100.100.X 用户名 B 密码 B 二级密码 B 100.100.100.X 用户名 C 密码 C 二级密码 C 等等。利用 secureCRT(最好 6.0 版本以上)程序软件,点击菜单栏里的脚 本,运行 交换机名称登录程序.js 文件(代码见附录) ,出现以下对话框:例如输入交换机名称 E 后,通过读取上面的 allswip.txt 文件,对 allswip.txt 进行逐行匹配,找到后,程序自动输入交换机的密码,二级密码, 进入 sys 视图。即可实现交换机的自动登录功能,省去手工输入的麻烦和繁琐, 也可实现下面的交换机自动备份和批量配置。3.3.交换机自动批量备份实现交换机自动批量备份实现与上面的交换机自动登录类似,也是通过自己写的脚本程序备份.js,逐 行登录 allswip.txt 里面的交换机,登录后,对会话日志进行记录。对交换机 自动输入 dis cu 命令后,发送很多空格键。断开会话后,所有配置会保存在 自己设定的每个文件名里。生成的备份文件保存在备份文件夹中。如下:备份效果图如下:所有实现代码见附录。4.4.交换机自动批量配置实现交换机自动批量配置实现对交换机批量配置融通对交换机批量备份类似,只不过是要读取一下配置的 文件,读取后进入交换机 sys 视图,自动粘贴,保存交换机即完成。过程中需 要用到 securecrt 的剪贴板操作。全部都可以对所有交换机自动执行完成。代码见附录。4.4.交换机自动透传交换机自动透传 vlanvlan5.15.1 对交换机编号,记录接口信息对交换机编号,记录接口信息将所有交换机进行编号,只需要在 xuhao.txt 文件中进行保存。即可如下:、 其实是以行号来对交换机进行编号的。例如 0 行表示 A,1 行表示 B,等等。便于以后增 删交换机,增删交换机后序号会自动改变。 编完号后,对每个交换机的接口记录在 jhjjk.txt 文件中,如下所示:其中第一行 A B G1/0/1 表示 A 到 B 是通过 A 交换机的 G1/0/1 接口相连。 以此类推。当然有多个口子可以写成这样: A B ETH-1 ETH-2 B C G0/0/1 G0/0/2 G0/0/3不论口子有多少。5.25.2 生成交换机接口信息矩阵生成交换机接口信息矩阵完成上述步骤后,对交换机序号xuhao.txt 文件进行逐行读取,再根据 交换机接口信息文件 jhjjk.txt 进行查找,即可生成每一个交换机的连接矩阵。 如 A 与 B 有连接,则写入 1,否则写入 0.生成矩阵的程序截图如下:生成的矩阵保存在 matrix.txt 文件中。如下图:此文件中记录了交换机所有的连接信息,但不包含端口,端口会在自动透传 vlan 时 用到。5.35.3 实现深度优先算法和测试路径实现深度优先算法和测试路径深度优先搜索算法(Depth-First-Search) ,是搜索算法的一种。是沿着树的深度遍历树 的节点,尽可能深的搜索树的分支。当节点 v 的所有边都己被探寻过,搜索将回溯到发现 节点 v 的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。 如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复 进行直到所有节点都被访问为止。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓 扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。方法步骤: 假设初始状态是图中所有顶点都未被访问,则深度优先搜索方法的步骤是: 1)选取图中某一顶点 Vi 为出发点,访问并标记该顶点;2)以 Vi 为当前顶点,依次搜索 Vi 的每个邻接点 Vj,若 Vj 未被访问过,则访问和标 记邻接点 Vj,若 Vj 已被访问过,则搜索 Vi 的下一个邻接点;3)以 Vj 为当前顶点,重复步骤2) ,直到图中和 Vi 有路径相通的顶点都被访问为止;4)若图中尚有顶点未被访问过(非连通的情况下) ,则可任取图中的一个未被访问的 顶点作为出发点,重复上述过程,直至图中所有顶点都被访问。伪代码如下:假设图采用邻接矩阵作为存储结构,具体算法如下详细代码见附录。通过深度优先算法即可对路径进行测试,确保所有的路径是正确的。输入起点和终点 交换机后,点击脚本运行下面的路径测试.js,出现一下画面。如下:从上图可以看出,A 到 H 有两条路径可达,可以将生成的路径保存在 jhj.txt 文件中, 以方便透传 vlan 时读取。 (jhj.txt 文件必须先创建后,输入不同起点和终点后会先删除再写 入,避免重复写入)内容如下:0 是交换机 A 的序号,7 是交换机 I 的序号,3 是 D 的序号,4 是 E 的序号。 通过自己写的序号到交换机名称翻译程序即可实现路径翻译如下:5.45.4 生成生成 ieie 输入界面输入界面到此时,已经完成一大部分工作,接下来时美化界面,最实用的是通过 javascript 调用 ie 生成输入界面。调节各种 HTML 参数,也可实现 OK 键的回车监听功能。如下图:5.55.5 实现两个交换机之间透传实现两个交换机之间透传 vlanvlan通过下图的路径:交换机 vlan 的透传流向为01 ; 0 1 3; 1 3 7; 7 3 发现只有第一个起点的交换机和最后一个交换机是单向的,中间的交换机是 双向的,那么所以透传时得分开出来。假如 function telnet(a, b)函数是将 vlan 从 a 交换机透传到 b 交换机。那 么透传 vlan 可以简单描述为:第一步:telnet(0,1)中间: telnet(1,0)telent(1,3)telnet(3,1)telent(3,7);最后一步:telnet(7,3);以实现程序化的处理方法。telnet(a,b)表示登录 a 交换机后,通过接口表 jhjjk.txt 可以找到 a 到 b 的接口,比如 G1/0/1;再通过 port trunk al vlan 命令即可透传完 a 到 b 这一步。Telnet(a.c)依次类推。 通过逐行读取 jhj.txt 文件中的路径,即可实现所有路径的透传业务。6 6 总结总结在几个月的工作中,在繁忙之余,写完所有的功能代码。在编程实践中也 陆陆续续遇到了各种各样的问题。通过查阅 securecrt 的官方网站和各种资料, 完成了以上 javascript 脚本程序。另外,有些华为交换机的型号命令略有不同, 也可以通过程序进行优化和改进。可以通过这些程序自动地去完成大量的重复 工作。能把原来开通业务的时间从十多分钟降至 2-3 分钟以内。 后续也对中兴 9806H 专线业务进行自动化的开通编程,F400 的专线自动开 局等等。大大地提高了工作效率。缩短了业务开通时间。也减轻了自己的工作 量。 ,用起来流畅才是正道。7 7 附录附录前文中提到的所有 javascript 程序均放置在 E 盘 easy 文件夹下,目录路径 如下:e:easy 。所有代码如下:交换机名称登录.js # $language = “JScript“ # $interface = “1.0“ var objTab; objTab= crt.GetScriptTab(); crt.Screen.Synchronous = true;function main() var fso, f; var ForReading = 1, ForWriting = 2;fso = new ActiveXObject(“Scripting.FileSystemObject“); f = fso.OpenTextFile(“E:easyallswip.txt“, ForReading); var swname;swname = crt.Dialog.Prompt(“请输入交换机名称:“, “登录交换机 “, “, false); swname=swname.replace(/(s*)|(s*$)/g, “); if(swname=“) crt.Dialog.MessageBox(“交换机名称不能为空“); while ( f.AtEndOfStream != true ) var str = f.Readline(); t=str.split( ); /crt.Dialog.MessageBox(t1); if(t1=swname) objTab.Session.Connect(“/telnet “ + t0); objTab.Screen.WaitForString (“Username:“); objTab.Screen.Send(t1 +“r“); objTab.Sc
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号