光猫批量自动化测试——交换机vlan划分

背景

最近工作中遇到一个需求,即一台48口的交换机,接入多台IP地址均为192.168.1.1的光猫和一台测试用PC,需要对这些光猫逐一进行web端自动化测试。

问题

因为每一台光猫的IP一样,所以需要区分出到底访问的是哪台光猫。一开始是使用逐一关断(shutdown/no shutdown)交换机端口的方式进行测试(打开要测试光猫对应的交换机端口,关闭其他端口),但后来发现这样效率很低,端口打开后,网络的连接建立比较久,故决定采用vlan划分的方式进行。

思路

  1. 登录连接交换机
  2. 进入配置
  3. 指定端口
  4. 对光猫连接端口批量划分vlan,测试PC对应端口vlan根据测试需要进行自动化切换(需要测试哪台光猫就设置与那台光猫相同的vlan),代码参见下文。
  5. write(保存)

批量划分vlan方法

需要将1-47口设为vlan 1000~1046
手动设置1口vlan为1000的命令如下(在cmd终端执行):

telnet 192.168.100.254
admin
en
admin
con
interface gigabitEthernet 0/1
switchport access vlan 1000

批量的设置可以参考以下链接:

http://www.docin.com/p-385891299.html

测试时自动切换第48口vlan代码

# coding=utf-8
# -*-coding:gbk-*-
__author__ = 'Tank_Li'

import telnetlib, traceback

def vlanSetting(vlanNum):
    print("登录交换机, 针对测试光猫位置划分vlan")
    # 连接Telnet服务器
    host = "192.168.100.254" # 交换机本身的ip, 项目中最好写在配置文件中
    tn = telnetlib.Telnet(host, timeout=3000)
    try:
        # 输入登录账号
        tn.read_until(b"Password:", 3)
        tn.write(b'admin\n')

        # enable
        tn.read_until(b"Ruijie>", 3)
        tn.write(b'en\n')

        # 再次输入登录密码
        tn.read_until(b"Password:", 3)
        tn.write(b'admin\n')

        # 配置终端
        tn.read_until(b"Ruijie#", 3) # 题主使用的交换机是锐捷的(和思科类似),注意区分
        tn.write(b'con\n')

        # 指定端口
        tn.read_until(b"Ruijie(config)#", 3) 
        tn.write(b'interface gigabitEthernet 0/48' + b'\n') # 48口固定为PC连接的端口

        # 划分vlan
        tn.read_until(b"Ruijie(config-if-GigabitEthernet 0/48)#", 3)
        tn.write(b'switchport access vlan '+ vlanNum + b'\n')  # 参数vlanNum需要与光猫位置作映射,比如"1":"1000"
    except Exception:
        print.exception(traceback.print_exc())
        return False
    finally:
        tn.close()

if __name__ == '__main__':
    vlanSetting(vlanNum)

注意绕坑

如果是人工配置vlan,可以在cmd窗口一次性粘贴所有配置命令(上面的划分vlan方法),但python自动化实现的话则不可以,必须先要建立telnet连接。至于原因,亲爱的读者,你知道吗?

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值