基于 python的网络设备配置自动化设计与实现
摘要:网络配置自动化主要是应对当下网络规划所产生繁杂的工作量,其所需要的人工成本,时间成本不断增加,因此通过网络配置自动化进行一些简单而重复的配置显得尤为重要。网络配置自动化不仅缩短了网络配置的时间,同时提高了工作效率,在网络系统日益庞大的今天具有十分重要的现实意义与价值。
关键词:网络配置自动化;Python;Paramiko
一、网络配置自动化的发展现状
1.网络配置自动化的重要性
十年来,网络技术有了翻天覆地的变化,核心连接速度从千兆时代迈向万兆时代,连接速度的发展速度早已超过了交换机的连接速度和端口密度的发展速度。但对网络设备的配置方式却还停留在传统的配置方式,并没有因设备的发展而发展。时至今日,命令行界面在网络设备配置工作中仍然占有着十分重要的地位。许多企业的网络配置人员还是在使用传统的手动方式来配置与管理数以千计的端口。
2.设计意义及现状
网络配置自动化主要是应对当下网络规划所产生繁杂的工作量,其所需要的人工成本,时间成本不断增加,因此通过网络配置自动化进行一些简单而重复的配置显得尤为重要。网络配置自动化不仅缩短了网络配置的时间,同时提高了工作效率,在网络系统日益庞大的今天具有十分重要的现实意义与价值。
近几年来,随着自动化技术的兴起,以Python为主的编程能力已成为网络配置人员的基本需求。自动化运维的发展阶段主要有纯手工阶段、脚本阶段、工具阶段。其中纯手工阶段由于繁杂重复的对系统机型配置与日常管理已经渐渐不适应当下网络发展的速度。而脚本阶段与工具阶段都在双管齐下的发展。
二、网络配置自动化需求分析
1. 网络配置自动化系统功能需求分析
网络配置有各种经常配置的配置项和配置文件。手动地配置交换机、路由器和网络设备配置不仅是一个费时的过程,而且还经常会出错。利用Python语言可以用来建立一个网络设备配
置的一个脚本,能够检查配置错误的设备,并允许管理员在不停机情况下处理错误。自动划分VLAN或进行批量化的配置操作,从而简化了网络工作人员的工作流程,提高工作人员的工作效率。
2. 网络配置自动化模拟器系统功能需求分析
eNSP(Enterprise Network Simulation Platform)是华为为广大用户开发的一款图形化操作的网络仿真工具,软件可以对网络中的各种设备进行仿真,完美呈现出对现场设备进行配置使用体验,可以支持大规模网络模拟,甚至可以做模拟器与真实的设备相连接的实验,为广大用户在虚拟的环境中能够模拟演练,为用户学习网络技术提供了方便。
三、网络配置自动化的设计与实现
1. 系统总体设计方案
系统总体设计方案采用的是模块化的设计方法,模块化方法作为软件开发中的一种设计方法,就是把一个待开发的系统分解成若干小的部分,对复杂的事情进行简单化的处理。模块化方法主要涉及设计的规则:把系统进行分解,分解成三个或多个小的模块。每一个小的模
块都可以进行独立的开发与测试,最后再组装成整个软件。对一个系统进行分解,以得到模块系统结构的方法有数据结构设计法、功能分解法、数据流设计、面向对象的设计等。新的配置通过连接模块建立连接,然后通过应用模块对网络进行配置,最后在验证模块中判断是否成功,并返回相应的信息。在连接模块中通过SHClient类的set_missing_host_key_policy方法与设备建立远程连接并进行一个设备登录的验证,在建立验证后,就可以将我们所需要进行的新配置发送到相应的设备上进行配置,并返回一个相应配置的内容以方便我们进行相应的判断,最后在验证模块的配合下对设备的配置的成功与否进行一个判断,并列举出相应配置失败的设备,方便使用者进行一个相应的判断。
2. 连接模块的设计与实现
通过在Python中导入Paramiko模块来建立SSH远程访问控制,通过sys模块中的argv[]函数用来获取外部的IP地址文件再搭配for loop来循环读取IP地址来批量登录网络设备。在设备上配置好的SSH用户信息建立远程连接访问。设备登录成功后便会反馈”成功登录到+设备的IP地址”提示登录成功。
3. 应用模块的设计与实现
同连接模块读取IP地址一样,我们通过sys模块中的argv[]函数用来获取外部的IP地址文件再搭配for loop来循环读取我们所需要的配置命令来批量获取我们所需要的命令,此时sys.argv便是[AT.py,ip.txt,]这个含有三个元素的列表。搭配sys.argv,与连接模块的IP地址一样,我们可以很灵活地选用我们脚本需要调用的参数(文本文件),而无需反反复复地修改脚本代码。。
4. 验证模块的设计与实现
通过验证模块搭配for循环下的try except异常处理语句,以处理由于批量登录网络设备时登录失败造成Python脚本执行失败的问题。在for循环下使用try except通过socket模块来处理目标主机不可达并返回一个的问题,用excpet paramiko.ssh_exception.Authentic ationException:来处理用户名与密码不匹配时返回的错误。然后使用for循环,打印出 switch with authentication issue和switch not reach able两个列表里的元素,这样就能明确的分辨出哪些网络设备的错误是由于远程登录用户名或密码错误引起的,那些错误是由于链路不可达引起的。方便我们对有问题的设备进行排错。
四、展望
本文设计的系统虽然可以解决网络配置工作中的绝大部分需要重复性配置的工作,但限于时间紧迫与个人能力水平有限的原因,该系统与理想中的自动化程度还是存在着巨大的差距的,目前该系统对一些网络配置工作仍然需要网络配置工作人员人工来进行配置,而且脚本执行的效率与可靠性星然需要大量的优化,虽然成为自动化配置,但受制于显示的网络配置化境,未来仍然需要更多的计算机工作人员来完善网络配置全自动这个最终目标。
参考文献:
[1] 韩立刚,李圣春,韩利辉.华为HCNA路由与交换学习指南[M].北京:人民邮电出版社,2019:252-263.
[2] Ahmed Jawad Kadhim,Jaber Ibrahim Naser.Proactive Load Balancing Mechanism for Fog Computing Supported by Parked Vehicles in IoV-SDN[J].中国通信,2021,18(02):271-289.
python在线模拟器[3] Chao Bu,Jinsong Wang. Computing tasks assignment optimization among edge computing servers via SDN[J]. Peer-to-Peer Networking and Applications,2021(prepublish).
[4] 陈吉龙,翟健宏.虚拟化工控网络靶场的设计与自动化部署[J].智能计算机与应用,2020,10(05):56-62+66.
[5] 崔晗.网络办公自动化设计[J].数码世界,2021(02):71-72..
[6] 张忠伟.钢铁厂自动化系统网络构建和日常维护分析[J].冶金管理,2020(03):255-256.
作者简介:
曹梦超,男,山东协和学院,网络工程17-01班学生。
樊冬梅,女,山东协和学院,讲师。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论