CN105827464A - 可自动化部署的虚拟路由器构建方法 - Google Patents

可自动化部署的虚拟路由器构建方法 Download PDF

Info

Publication number
CN105827464A
CN105827464A CN201610323983.1A CN201610323983A CN105827464A CN 105827464 A CN105827464 A CN 105827464A CN 201610323983 A CN201610323983 A CN 201610323983A CN 105827464 A CN105827464 A CN 105827464A
Authority
CN
China
Prior art keywords
virtual router
module
routing protocol
file
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610323983.1A
Other languages
English (en)
Other versions
CN105827464B (zh
Inventor
郑文辉
王凯
王晓锋
李剑锋
刘渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Xinmintong Network Technology Co.,Ltd.
Original Assignee
Jiangnan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangnan University filed Critical Jiangnan University
Priority to CN201610323983.1A priority Critical patent/CN105827464B/zh
Publication of CN105827464A publication Critical patent/CN105827464A/zh
Application granted granted Critical
Publication of CN105827464B publication Critical patent/CN105827464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种可自动化部署的虚拟路由器构建方法,包括如下步骤:步骤S1,在虚拟路由器中编写命令行封装模块,并将封装的命令行添加到虚拟路由器开机启动程序中,实现虚拟路由器的自启功能;步骤S2,编写文件读取模块,读取读文件参数所指的文件中的相关变量的值;读文件参数所指的文件中的相关变量包括:自动部署变量,其值为真或假;路由协议变量,其值为一个指定的动态路由协议;步骤S3,编写虚拟网络配置嗅探模块,实现虚拟路由器网卡ip地址获取的功能;步骤S4,编写动态路由协议仿真模块,基于步骤S2和S3,实现动态路由协议的自动化配置。步骤S5,编写增量配置模块。本发明使用户可以灵活方便的进行虚拟网络管理。

Description

可自动化部署的虚拟路由器构建方法
技术领域
本发明涉及一种计算机网络和云计算领域,具体地说是一种基于云计算的一种可自动化部署的,可实现动态路由协议的虚拟路由器。
背景技术
虚拟网络是一种包含至少部分是虚拟网络链接的计算机网络。虚拟网络链接是在两个计算设备间不包含物理连接,而是通过网络虚拟化来实现。常见的虚拟网络形式为基于协议的虚拟网络,如VALN、VPN和VPLS等和基于虚拟设备如在hypervisor内部的网络连接虚拟机的虚拟网络。
云计算数据中心虚拟网络包含软件和硬件层次的虚拟化。硬件层次的网络虚拟化需要特定设备的支持,因此增加一定的硬件成本但性能可能会好些。软件层次的网络虚拟化比较灵活,结合虚拟交换机和虚拟路由器可以构建满足各种需求的路由网络。但是,目前的虚拟路由器无法实现动态路由协议,只能通过静态路由的配置实现转发的功能,比较消耗时间以及人力。
发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种可自动化部署的虚拟路由器构建方法,可以方便的在云数据中心网络通过软件创建虚拟路由器,实现虚拟网络中不同网段的路由作用;本发明可以实现虚拟路由器自动灵活地部署,大量节约人力、时间,使用户可以灵活方便的进行虚拟网络管理,实现不同的网络需求。本发明采用的技术方案是:
一种可自动化部署的虚拟路由器构建方法,包括如下步骤:
步骤S1,在虚拟路由器中编写命令行封装模块,并将封装的命令行添加到虚拟路由器开机启动程序中,实现虚拟路由器的自启功能;步骤S1中,具体包括:
首先创建config子命令,config子命令包括读文件参数,读文件参数后的内容为所需读取的文件;
接着设置config子命令的默认执行函数,然后将config子命令即封装好的命令行添加到虚拟路由器开机启动程序中;
步骤S2,编写文件读取模块,读取读文件参数所指的文件中的相关变量的值;读文件参数所指的文件中的相关变量包括:
自动部署变量,其值为真或假;
路由协议变量,其值为一个指定的动态路由协议;
步骤S3,编写虚拟网络配置嗅探模块,实现虚拟路由器网卡ip地址获取的功能;
步骤S4,编写动态路由协议仿真模块,基于步骤S2和S3,实现动态路由协议的自动化配置。
进一步地,步骤S2中,所述读取读文件参数所指的文件中的相关变量的值具体包括:
通过文件读取模块将读文件参数所指的文件内容存储到python的一个字典对象中,该字典对象有两个键Auto和Protocol,分别作为自动部署变量和路由协议变量;解析得到它们各自的值。
进一步地,步骤S3具体包括:虚拟网络配置嗅探模块利用linux网络配置库pyroute2中的网络配置模块IPRoute;首先获取虚拟路由器各网卡的名称,再调用网络配置模块IPRoute的get_addr方法返回各网卡的ip地址信息。
进一步地,步骤S4具体包括:首先根据文件读取模块中获得的自动部署变量的值判断是否进入动态路由协议仿真模块,若自动部署变量值为真进入该动态路由协议仿真模块并根据路由协议变量的值判断所要配置的动态路由协议类型,再调用虚拟网络配置嗅探模块获取虚拟路由器的网卡ip地址,根据获取的ip地址完成虚拟路由器自身网络的配置,最后启动对应的动态路由协议。
进一步地,所述的可自动化部署的虚拟路由器构建方法,还包括:
步骤S5,编写增量配置模块,实现远程终端通过url控制虚拟路由器配置的功能;包括:
若文件读取模块获得的自动部署变量的值为假则进入增量配置模块;
增量配置模块采用的是python的轻便web框架Bottle应用来实现;首先Bottle应用有一个url路由器,创建url路由器将url请求地址绑定到回调函数上,回调函数实现了获取url中的目的地址、下一跳地址和对应虚拟路由器网卡这些变量值并在虚拟路由器上添加或删除静态路由的功能;
接着调用Bottle应用的run函数启动http监听服务,设置监听服务在相应的ip地址和端口号上运行;
最后在远程终端上将目的地址、下一跳地址和对应虚拟路由器网卡的静态路由添加或删除成功。
本发明的优点在于:
1)本发明构建的虚拟路由器可以实现动态路由协议,如OSPF协议和RIP协议。
2)本发明可以实现虚拟路由器自动灵活地部署,大量节约人力、时间,使用户可以灵活方便的进行虚拟网络管理,实现不同的网络需求。
3)本发明可以通过url实现对虚拟路由器的控制。
附图说明
图1为本发明的流程图。
图2为本发明的各模块工作流程图。
图3为本发明的实验网络拓扑图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
如图1、图2所示,本发明提出的可自动化部署的虚拟路由器构建方法,包括如下具体步骤:
步骤S1,在虚拟路由器中编写命令行封装模块,并将封装的命令行添加到虚拟路由器开机启动程序中,实现虚拟路由器的自启功能;
在本实施例中,命令行封装模块调用了python(一种计算机程序设计语言)的命令行解析工具argparse,首先创建ArgumentParser的一个对象,调用该对象的add_subparsers方法创建子命令config,它包括读文件参数“-c”,读文件参数“-c”为后的内容为所需读取的文件,如config–c/examples/meta.json,(本例中需要读取的文件是json格式的文件),再调用set_defaults函数设置config子命令的默认执行函数,然后将config子命令即封装好的命令行添加到虚拟路由器开机启动程序中,由于本发明中虚拟路由器的操作系统为ubuntuserver12.04,所以需将封装好的命令行添加到/etc/rc.local中。虚拟路由器启动时会自动执行封装好的命令行,并进一步解析执行config子命令的默认执行函数;
步骤S2,编写文件读取模块,用于读取读文件参数“-c”所指的文件中的相关变量的值;
在本实施例中,文件读取模块利用了python的json库。对于读文件参数“-c”所指的文件中的字段首先利用decode函数解码json数据返回python字段的数据类型,再用json.loads函数把json格式字符串解码转换成python对象。如json文件中的内容为{"Auto":"true","Protocol":"OSPF"},通过文件读取模块将文件内容存储到python的一个字典对象中,该字典对象有两个键Auto和Protocol,分别作为自动部署变量和路由协议变量;解析得到它们的值分别为true(或false)和OSPF(一种动态路由协议)。步骤一中的config子命令的默认执行函数首先就会调用文件读取模块将参数“-c”后的文件中的内容存储到字典对象中;
步骤S3,编写虚拟网络配置嗅探模块,实现虚拟路由器网卡ip地址获取的功能;
在本实施例中,虚拟网络配置嗅探模块利用了linux网络配置库pyroute2中的网络配置模块IPRoute;首先获取虚拟路由器各网卡的名称,再调用网络配置模块IPRoute的get_addr方法返回各网卡的ip地址信息。对于网卡名称的获取方法,由于在虚拟路由器的/sys/class/net目录下有以网卡的名称命名的文件夹,利用python的os.listdir函数返回/sys/class/net目录下的所有文件夹名称就能获得网卡名称;
步骤S4,编写动态路由协议仿真模块,基于步骤S2和S3,实现RIP、OSPF等动态路由协议的自动化配置;
在本实施例中,首先根据文件读取模块中获得的自动部署变量(即“Auto”)的值判断是否进入动态路由协议仿真模块,若自动部署变量Auto值为真(true)进入该动态路由协议仿真模块并根据路由协议变量Protocol的值判断所要配置的动态路由协议类型,再调用虚拟网络配置嗅探模块获取虚拟路由器的网卡ip地址,根据获取的ip地址完成虚拟路由器自身网络的配置,最后启动对应的动态路由协议,完成虚拟路由器自学习的功能。
步骤S5,编写增量配置模块,实现远程终端通过url(统一资源定位符)控制虚拟路由器配置的功能。
在本实施例中,若文件读取模块中获得的自动部署变量Auto的值为false则进入增量配置模块。该增量配置模块采用的是python的轻便web框架Bottle来实现的,该框架可开启http服务进行监听,可接受外部的url请求。首先Bottle应用会有一个url路由器,它将url请求地址绑定到回调函数上,比如要实现添加一条路由的功能,则创建url路由器route('/add_ip_route/<des_ip>/<next_ip>/<interface>'),并绑定回调函数Add_ip_route,Add_ip_route函数则实现了获取url中目的地址<des_ip>、下一跳地址<next_ip>和虚拟路由器网卡<interface>变量值并添加路由的功能。接着调用Bottle应用的run函数启动http监听服务,设置监听服务在相应的ip地址和端口号上运行;最后就可以在远程终端的命令行窗口输入curlhttp://ip:port/add_ip_route/<des_ip>/<next_ip>/<interface>即可将目的地址为<des_ip>,下一跳地址为<next_ip>,经过<interface>网卡的静态路由添加成功。
本发明的效果可以通过以下实验以及图3进一步说明:
如图3的网络拓扑中router1、router2和router3均为虚拟路由器,vm1、vm2和vm3为启动的虚拟通信终端,net1、net2、net3、net4、net5和net6为创建的虚拟子网,只需在云平台上完成上述虚拟网络以及相关虚拟机和虚拟路由器的创建,虚拟路由器间便可自动配置动态路由协议。经过验证,vm1、vm2和vm3可通过虚拟路由器相互通信。

Claims (5)

1.一种可自动化部署的虚拟路由器构建方法,其特征在于,包括如下步骤:
步骤S1,在虚拟路由器中编写命令行封装模块,并将封装的命令行添加到虚拟路由器开机启动程序中,实现虚拟路由器的自启功能;步骤S1中,具体包括:
首先创建config子命令,config子命令包括读文件参数,读文件参数后的内容为所需读取的文件;
接着设置config子命令的默认执行函数,然后将config子命令即封装好的命令行添加到虚拟路由器开机启动程序中;
步骤S2,编写文件读取模块,读取读文件参数所指的文件中的相关变量的值;读文件参数所指的文件中的相关变量包括:
自动部署变量,其值为真或假;
路由协议变量,其值为一个指定的动态路由协议;
步骤S3,编写虚拟网络配置嗅探模块,实现虚拟路由器网卡ip地址获取的功能;
步骤S4,编写动态路由协议仿真模块,基于步骤S2和S3,实现动态路由协议的自动化配置。
2.如权利要求1所述的可自动化部署的虚拟路由器构建方法,其特征在于:
步骤S2中,所述读取读文件参数所指的文件中的相关变量的值具体包括:
通过文件读取模块将读文件参数所指的文件内容存储到python的一个字典对象中,该字典对象有两个键Auto和Protocol,分别作为自动部署变量和路由协议变量;解析得到它们各自的值。
3.如权利要求1所述的可自动化部署的虚拟路由器构建方法,其特征在于:
步骤S3具体包括:虚拟网络配置嗅探模块利用linux网络配置库pyroute2中的网络配置模块IPRoute;首先获取虚拟路由器各网卡的名称,再调用网络配置模块IPRoute的get_addr方法返回各网卡的ip地址信息。
4.如权利要求1所述的可自动化部署的虚拟路由器构建方法,其特征在于:
步骤S4具体包括:首先根据文件读取模块中获得的自动部署变量的值判断是否进入动态路由协议仿真模块,若自动部署变量值为真进入该动态路由协议仿真模块并根据路由协议变量的值判断所要配置的动态路由协议类型,再调用虚拟网络配置嗅探模块获取虚拟路由器的网卡ip地址,根据获取的ip地址完成虚拟路由器自身网络的配置,最后启动对应的动态路由协议。
5.如权利要求1所述的可自动化部署的虚拟路由器构建方法,其特征在于:
还包括:
步骤S5,编写增量配置模块,实现远程终端通过url控制虚拟路由器配置的功能;包括:
若文件读取模块获得的自动部署变量的值为假则进入增量配置模块;
增量配置模块采用的是python的轻便web框架Bottle应用来实现;首先Bottle应用有一个url路由器,创建url路由器将url请求地址绑定到回调函数上,回调函数实现了获取url中的目的地址、下一跳地址和对应虚拟路由器网卡这些变量值并在虚拟路由器上添加或删除静态路由的功能;
接着调用Bottle应用的run函数启动http监听服务,设置监听服务在相应的ip地址和端口号上运行;
最后在远程终端上将目的地址、下一跳地址和对应虚拟路由器网卡的静态路由添加或删除成功。
CN201610323983.1A 2016-05-16 2016-05-16 可自动化部署的虚拟路由器构建方法 Active CN105827464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610323983.1A CN105827464B (zh) 2016-05-16 2016-05-16 可自动化部署的虚拟路由器构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610323983.1A CN105827464B (zh) 2016-05-16 2016-05-16 可自动化部署的虚拟路由器构建方法

Publications (2)

Publication Number Publication Date
CN105827464A true CN105827464A (zh) 2016-08-03
CN105827464B CN105827464B (zh) 2019-03-19

Family

ID=56529768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610323983.1A Active CN105827464B (zh) 2016-05-16 2016-05-16 可自动化部署的虚拟路由器构建方法

Country Status (1)

Country Link
CN (1) CN105827464B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123819A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络无缝融合的仿真方法
CN108123818A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络灵活可扩展融合的仿真方法
CN108234187A (zh) * 2016-12-22 2018-06-29 江南大学 一种面向数据报文转发的高逼真链路仿真方法
CN110990127A (zh) * 2019-12-23 2020-04-10 深信服科技股份有限公司 虚拟机自动部署方法、装置、设备及存储介质
CN112039691A (zh) * 2020-08-06 2020-12-04 中国科学院信息工程研究所 一种网络仿真平台中虚拟路由器自动配置方法和装置
CN113542446A (zh) * 2021-06-11 2021-10-22 杭州玖欣物联科技有限公司 一种基于lwm2m协议的网关设备IP地址远程管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262407A (zh) * 2008-04-14 2008-09-10 中兴通讯股份有限公司 一种虚拟路由器建立隧道的方法
CN101383822A (zh) * 2008-07-10 2009-03-11 北京邮电大学 航空电信网路由器虚拟机
CN102821044A (zh) * 2012-07-27 2012-12-12 北京奇虎科技有限公司 一种配置服务器集群的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262407A (zh) * 2008-04-14 2008-09-10 中兴通讯股份有限公司 一种虚拟路由器建立隧道的方法
CN101383822A (zh) * 2008-07-10 2009-03-11 北京邮电大学 航空电信网路由器虚拟机
CN102821044A (zh) * 2012-07-27 2012-12-12 北京奇虎科技有限公司 一种配置服务器集群的方法和装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123819A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络无缝融合的仿真方法
CN108123818A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络灵活可扩展融合的仿真方法
CN108123818B (zh) * 2016-11-30 2020-10-09 江南大学 一种虚实网络灵活可扩展融合的仿真方法
CN108123819B (zh) * 2016-11-30 2020-10-16 江南大学 一种虚实网络无缝融合的仿真方法
CN108234187A (zh) * 2016-12-22 2018-06-29 江南大学 一种面向数据报文转发的高逼真链路仿真方法
CN108234187B (zh) * 2016-12-22 2020-10-30 江南大学 一种面向数据报文转发的高逼真链路仿真方法
CN110990127A (zh) * 2019-12-23 2020-04-10 深信服科技股份有限公司 虚拟机自动部署方法、装置、设备及存储介质
CN112039691A (zh) * 2020-08-06 2020-12-04 中国科学院信息工程研究所 一种网络仿真平台中虚拟路由器自动配置方法和装置
CN112039691B (zh) * 2020-08-06 2022-04-01 中国科学院信息工程研究所 一种网络仿真平台中虚拟路由器自动配置方法和装置
CN113542446A (zh) * 2021-06-11 2021-10-22 杭州玖欣物联科技有限公司 一种基于lwm2m协议的网关设备IP地址远程管理方法
CN113542446B (zh) * 2021-06-11 2023-04-07 杭州玖欣物联科技有限公司 一种基于lwm2m协议的网关设备IP地址远程管理方法

Also Published As

Publication number Publication date
CN105827464B (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN105827464A (zh) 可自动化部署的虚拟路由器构建方法
US11630646B2 (en) Software defined network controller
US9391869B2 (en) Virtual network prototyping environment
CN111290753B (zh) 前端开发环境的搭建方法、装置、设备及存储介质
CN103346900A (zh) 大二层网络中虚拟机热迁移后的路由配置方法和网关
CN113572689A (zh) 微服务网关管理方法、系统、设备、可读存储介质及产品
KR102274178B1 (ko) 서버에서 시험 분산 애플리케이션을 에뮬레이션하는 기법
CN106155264B (zh) 管理存储子系统的电力消耗的计算机方法与计算机系统
US20170329739A1 (en) Methods and systems for loading a boot agent on a router network device
CN111835532A (zh) 网络验证的方法和装置
CN113037761B (zh) 登录请求的验证方法及装置、存储介质、电子设备
US9928082B1 (en) Methods and systems for remote device configuration
CN110196804B (zh) 业务的测试方法和装置、存储介质、电子装置
CN113612702B (zh) 一种实现裸金属检查流程的方法、系统、设备和存储介质
CN104519482A (zh) 一种设备参数配置方法及装置
CN109218462B (zh) 一种云数据中心物理主机的ip分配方法
CN111124535B (zh) 云主机qga的功能扩展方法、装置、设备及存储介质
WO2017219778A1 (zh) 路由器业务配置方法及路由器、存储介质
CN107404410B (zh) 一种云环境下构建虚拟网络功能平台的方法及装置
CN102137058B (zh) 一种基于tab页的页面访问方法和装置
CN116701004A (zh) 云函数开发方法、装置、电子装置和存储介质
CN114760199B (zh) 基于sdn的网络配置信息下发方法、系统和存储介质
CN116208497B (zh) 一种可编程网络系统、方法、交换机及装置
CN109871288A (zh) 执行Android系统命令的方法、装置、设备及介质
CN114615285B (zh) 一种物理机的部署方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221122

Address after: Room 205, No. 191-7, North Hanjiang Road, New District, Wuxi City, Jiangsu Province, 214028

Patentee after: Wuxi Xinmintong Network Technology Co.,Ltd.

Address before: 1800 No. 214122 Jiangsu city of Wuxi Province Li Lake Avenue

Patentee before: Jiangnan University

TR01 Transfer of patent right