文章很长,其实主要是讲中兴的OLT如何写割接脚本最快最方便。
众所周知,中兴的Epon设备是目前所有设备中最差的,尽管有某国有电信公司采购大振其名声,但是仍然掩盖不住中兴Epon设备的缺陷,如果你还在为选择Epon设备而奔走,我建议你选Raisecom 其后是GreenWay,这是实践中得出来的。
众所周知,中兴的Epon设备是目前所有设备中最差的,尽管有某国有电信公司采购大振其名声,但是仍然掩盖不住中兴Epon设备的缺陷,如果你还在为选择Epon设备而奔走,我建议你选Raisecom 其后是GreenWay,这是实践中得出来的。
先说中兴的Epon设备,设备不能单独配置Pon为Access,虽然设备上是可行的,但是用在大型的网络中会有瞬断等情况,那天中兴的所谓工程师捣鼓了半天也没搞天,结果还是我们这些门外汉搞定了。所以至今我们的设备中仍然要将每一个Pon口下的每一个ONU,然后是每一个ONU的每一个电口配置为Trunk,可能你不知道这有多严重的缺陷,那我告诉你吧,你要想修改一个Epon的配置,你需要改4700行命令,而且这些命令是基本上是没有规律的。
好了,我们说一下这4700行的命令如何输入到中兴Epon C220 ,C200中,当你粘贴了7行代码时,后面的全部被截断,中兴的工程师说为了系统稳定,其实是他们的处理机制导致CPU过高无法响应后面的代码,有时是7行,有时候3行就会中断,你可以想一下4700行代码要贴到里面需要贴到哪年?至于中兴Epon不能防止环路,不能防止ARP,也不能自动注册ONU,这些不今天要说的,今天就说一下如何将中兴的Epon批量修改ONU的Vlan。如果你还没有装Windows,请安装吧,就如同 @terryxxy 所说,我们离不开windows。
以我实际工作中为例,原来一台中兴的C220,下面插了pon板11块,共44个pon口,由于vlan初期使用的vlan不连续,现在需要重新划分为连续的vlan,这就需要简化工作,一定要备份原始配置,这个配置以后会多次用到,SecureCRT+VBS脚本,来解决问题,事情要分三步:
1 删除ONU
由于长时间的更换ONU,使ONU的编号出现不连续的情况,因此脚本有时候会出错,这就需要删除ONU并重新创建,按照新的顺序
删除的指令原始如下
interface epon-olt_0/1/1
no onu 1
no onu 2
no onu 3
no onu 4
no onu 5
no onu 6
no onu 7
!
请注意要有一个!,这个相当于exit,用来切换interface用的,首先,把此时的文件另存为一个备份,第二步要用到。然后把这指令做成SecureCRT的脚本后如下
crt.Screen.Send "interface epon-olt_0/1/1 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 1 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 2 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 3 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 4 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 5 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 6 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "no onu 7 " & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
crt.Screen.Send "!" & VbCr
crt.sleep 10
crt.screen.WaitForString "#",10
crt.sleep 10
嗯,我知道大家可能一看就头晕了,心想我怎么才能把这么复杂的代码欠入到脚本的“”中去啊,其实不必害怕,使用windows自的notepad可以实现一小部分功能,不过如果你愿意或者你是一个标准的IT人,你真的应该试一下移植到Windows下的VIM(单文件小巧,如果不熟练的可以用GVim)。下面是方法
把上面的类似interface XXXX no onu 1 ....no onu 64 ! 这一类的做成一个文本,使用VIM打开,然后下列命令如无特殊说明,均使用Shift+: 来使用
%s/^/
crt.Screen.Send "/g
%s/$/
" \& VbCr\r
crt.sleep 10\r
crt.screen.WaitForString "#",10\r
crt.sleep 10/
g
好了,现在你的4000多行的代码就完全换成了SecureCRT的脚本了,存为*.vbs,然后用SecureCRT打开运行吧。。。。
这个傻13的中兴设备,光是这么智能的脚本就要执行40多分钟 。。。汗。
2 注册ONU
由于上一步已经删除了所有的ONU,这一步我们要注册所有的ONU,方法仍然是使用Vim的查找替换使用上一步中存为备份的文件,将上一步的中 no onu 1 换成是"onu 1 type ZTE-D400 mac ",不过事情不总是这么简单,我们要把所有的no onu 1(2,3....10....32....64)换成相应的vim
%s/onu \d\{,2}/\0
type ZTE-D400 mac /g
%s/no //g
现在所有的interface 下应该都是如下格式了
onu 1 type ZTE-D400 mac
onu 2 type ZTE-D400 mac
onu 3 type ZTE-D400 mac
onu 4 type ZTE-D400 mac
onu 5 type ZTE-D400 mac
onu 6 type ZTE-D400 mac
onu 7 type ZTE-D400 mac
这接下来我们就需要在所有的mac结尾后面加上ONU的MAC地址,在VIM很简单,先打开原始的配置备份,使用vim的过滤得到
onu 1 type ZTE-D400 mac 0015.eba3.da26
onu 3 type ZTE-D400 mac 0015.eba3.dcad
onu 4 type ZTE-D400 mac 0015.eba3.d688
onu 5 type ZTE-D400 mac 0015.eba3.d85d
onu 8 type ZTE-D400 mac 0015.eba3.d87f
onu 9 type ZTE-D400 mac 0015.eba3.d7d8
onu 19 type ZTE-D400 mac 0015.eba3.d801
然后将光标移动到mac字样的后面,按下contl+q 这时可以移动光标向下选中所有的mac地址,然后contl+c。到上面的所有以mac为结尾的那个文件中,使用contl+v ,这个时候你就会看到所有的mac地址就按当时的顺序一个一个的排列起来。
同样的方法,倒置为vbs脚本格式。
3 修改ONU电口的vlan
大体方法如1,2中所示,基本一样,总之一句话,多学学Vim,可以提高工作效率,放弃系统自带的记事本和写字板吧。
就在我这与这文章的时候,我的中兴C220脚本执行了1个半小时了,一台设备还没自动配置完,我真要哭了。
评论
发表评论
读过之后是不是文思泉涌了?,快快让大家拜读一下你的高见吧~~~