CN105827464B - 可自动化部署的虚拟路由器构建方法 - Google Patents
可自动化部署的虚拟路由器构建方法 Download PDFInfo
- Publication number
- CN105827464B CN105827464B CN201610323983.1A CN201610323983A CN105827464B CN 105827464 B CN105827464 B CN 105827464B CN 201610323983 A CN201610323983 A CN 201610323983A CN 105827464 B CN105827464 B CN 105827464B
- Authority
- CN
- China
- Prior art keywords
- module
- virtual router
- file
- virtual
- routing protocol
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols 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子命令即封装好的命令行添加到虚拟路由器开机启动程序中,由于本发明中虚拟路由器的操作系统为ubuntu server12.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地址和端口号上运行;最后就可以在远程终端的命令行窗口输入curl http://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 (2)
1.一种可自动化部署的虚拟路由器构建方法,其特征在于,包括如下步骤:
步骤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地址完成虚拟路由器自身网络的配置,最后启动对应的动态路由协议。
2.如权利要求1所述的可自动化部署的虚拟路由器构建方法,其特征在于:
还包括:
步骤S5,编写增量配置模块,实现远程终端通过url控制虚拟路由器配置的功能;包括:
若文件读取模块获得的自动部署变量的值为假则进入增量配置模块;
增量配置模块采用的是python的轻便web框架Bottle应用来实现;首先Bottle应用有一个url路由器,创建url路由器将url请求地址绑定到回调函数上,回调函数实现了获取url中的目的地址、下一跳地址和对应虚拟路由器网卡这些变量值并在虚拟路由器上添加或删除静态路由的功能;
接着调用Bottle应用的run函数启动http监听服务,设置监听服务在相应的ip地址和端口号上运行;
最后在远程终端上将目的地址、下一跳地址和对应虚拟路由器网卡的静态路由添加或删除成功。
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 CN105827464A (zh) | 2016-08-03 |
CN105827464B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123818B (zh) * | 2016-11-30 | 2020-10-09 | 江南大学 | 一种虚实网络灵活可扩展融合的仿真方法 |
CN108123819B (zh) * | 2016-11-30 | 2020-10-16 | 江南大学 | 一种虚实网络无缝融合的仿真方法 |
CN108234187B (zh) * | 2016-12-22 | 2020-10-30 | 江南大学 | 一种面向数据报文转发的高逼真链路仿真方法 |
CN110990127B (zh) * | 2019-12-23 | 2023-05-12 | 深信服科技股份有限公司 | 虚拟机自动部署方法、装置、设备及存储介质 |
CN112039691B (zh) * | 2020-08-06 | 2022-04-01 | 中国科学院信息工程研究所 | 一种网络仿真平台中虚拟路由器自动配置方法和装置 |
CN113542446B (zh) * | 2021-06-11 | 2023-04-07 | 杭州玖欣物联科技有限公司 | 一种基于lwm2m协议的网关设备IP地址远程管理方法 |
Citations (3)
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 | 北京奇虎科技有限公司 | 一种配置服务器集群的方法和装置 |
-
2016
- 2016-05-16 CN CN201610323983.1A patent/CN105827464B/zh active Active
Patent Citations (3)
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 | 北京奇虎科技有限公司 | 一种配置服务器集群的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105827464A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105827464B (zh) | 可自动化部署的虚拟路由器构建方法 | |
US11630646B2 (en) | Software defined network controller | |
CN109284140B (zh) | 配置方法及相关设备 | |
CN107809383B (zh) | 一种基于mvc的路径映射方法及装置 | |
CN111835532B (zh) | 网络验证的方法和装置 | |
CN109639749B (zh) | 云桌面的访问方法、装置、设备及存储介质 | |
CN110275775A (zh) | 容器应用的资源配置方法、系统及存储介质 | |
CN113810206B (zh) | 一种网络自动化编排管理方法、实体、控制器及电子设备 | |
CN106155264B (zh) | 管理存储子系统的电力消耗的计算机方法与计算机系统 | |
US20170329739A1 (en) | Methods and systems for loading a boot agent on a router network device | |
KR20160074503A (ko) | 서버에서 시험 분산 애플리케이션을 에뮬레이션하는 기법 | |
US9928082B1 (en) | Methods and systems for remote device configuration | |
CN104967572B (zh) | 网络访问方法、装置及设备 | |
CN104519482A (zh) | 一种设备参数配置方法及装置 | |
CN111124535B (zh) | 云主机qga的功能扩展方法、装置、设备及存储介质 | |
CN109218462A (zh) | 一种云数据中心物理主机的ip分配方法 | |
KR20150088462A (ko) | 클라우드 환경에서 네트워크 장치의 연동 방법 및 장치 | |
Castillo-Lema et al. | Mininet-NFV: Evolving Mininet with OASIS TOSCA NVF profiles towards reproducible NFV prototyping | |
CN107404410B (zh) | 一种云环境下构建虚拟网络功能平台的方法及装置 | |
CN114615285B (zh) | 一种物理机的部署方法、装置、电子设备及存储介质 | |
CN114244703B (zh) | 一种裸金属服务器检查及部署方法、装置、设备、介质 | |
CN116820958A (zh) | 一种基于代理的多环境自动化测试方法及系统 | |
CN102137058B (zh) | 一种基于tab页的页面访问方法和装置 | |
CN112685203B (zh) | 操作获取方法和装置、存储介质及电子设备 | |
CN112463289A (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 |