一种虚拟机批量在线ip地址自动设置系统及方法

文档序号:7824021阅读:1065来源:国知局
一种虚拟机批量在线ip地址自动设置系统及方法
【专利摘要】本发明涉及一种虚拟机批量在线IP地址自动设置系统及方法,由DHCP请求捕包器、DHCP应答发包器、DHCP应答包构造器和系统管理模块组成。本发明能够灵活为在线虚拟机自动设置IP地址,而不用在虚拟机中安装任何额外程序,保持了虚拟机在作为实验环境时的真实性;既可以通过MAC地址为虚拟机设置固定的IP地址,也可以为虚拟机在一个IP地址段中,自由随机分配IP地址。
【专利说明】一种虚拟机批量在线IP地址自动设置系统及方法

【技术领域】
[0001]本发明涉及大规模网络仿真节点自动化部署领域,具体涉及一种虚拟机批量在线IP地址自动设置系统及方法。

【背景技术】
[0002]在试图解决复杂网络环境中的安全问题时,通常需要提供有效的手段来论证方案、技术的可行性,验证系统的有效性,评估系统的实际应用效能。在网络安全实践过程中,学术界与工业界形成了若干测试验证的方法。常见的包括:分析模型(analytical model)、模拟(Simulat1n)、仿真(Emulat1n)、真实网络(Live Networks)等。分析模型试图通过数学方法建立网络的模型,运用数学工具推导安全技术的可行性与有效性;模拟方法通过软件模拟网络中的各种行为并加以分析评估;仿真手段则在一个可控环境中“复制”研究对象环境,通过加载实验负载对安全技术与产品进行测试;真实网络则是部署到真实的应用环境中,通过实际应用,并辅助以有效的监测工具来检验产品的功能与性能。这些方法中仿真非常接近真实网络,并且仿真所需要的成本较低。近年来随着虚拟化技术的不断发展,大规模网络的仿真往往采用虚拟机作为仿真网络中的节点。在大规模的虚拟机构建与部署过程中,虚拟机IP地址自动化批量设置往往存在一定的挑战性,这主要体现在两个方面。首先,一般虚拟机Hypervisor将IP地址分配视为操作系统管理需要解决的问题,不予考虑;其次,为了保持虚拟机环境的真实性,无法采用在虚拟机中安装后台程序完成IP地址设置这种方法;再次,就算能够通过虚拟机Hypervisor得到虚拟机操作系统所使用的内存块,由于操作系统的多样性,且有些操作系统并未公开源码,很难通过解析并修改操作系统所使用的内存块的办法实现IP地址设置。
[0003]现阶段绝大多数的虚拟机Hypervisor都不支持自动设置虚拟机IP地址的方法和接口,在工程中常见的方法有以下两种:一是在虚拟机关机状态修改虚拟机硬盘镜像文件;一是通过在虚拟机中运行后台进程,例如VMWare Tools。这几中方法的缺点是:方法1只支持在虚拟机关机状态设置IP地址,此外虚拟机硬盘镜像文件中的文件结构因操作系统的不同而各异,取得保存IP地址信息的文件并修改存在一定的风险;方法2修改了虚拟机操作系统,一定程度是影响了仿真的真实程度,限制了虚拟机的使用范围。


【发明内容】

[0004]本发明技术解决问题:克服现有技术的不足,提供一种虚拟机批量在线IP地址自动设置系统及方法,能够在虚拟机环境下,在虚拟机在线状态,实现大规模虚拟机IP地址的自动化配置
[0005]本发明技术解决方案:一种虚拟机批量在线IP地址自动设置系统,包括:DHCP请求捕包器、DHCP应答发包器、DHCP应答包构造器、虚拟机信息数据库和系统管理模块;其中:
[0006]系统管理模块,提供界面,供管理员完成整个系统的配置管理,当有虚拟机批量IP地址设置的任务到达时,解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到;
[0007]DHCP请求捕包器,从桥接虚拟机的网桥或主机网卡上捕获虚拟机所发出的DHCP请求包,然后将捕获的数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据发送给DHCP应答包构造器;
[0008]DHCP应答包构造器,读取虚拟机信息数据库中的任务数据,将MAC地址和IP地址的对应关系以及IP设置规则保存到内存中;对于DHCP请求捕包器发送过来的数据包,进行解析,提取必要的信息,构建应答包,并将应答包发送给DHCP应答发包器;同时DHCP应答发包构造器在数据库中记录IP地址分配日志;
[0009]DHCP应答发包器,接受有DHCP应答包构造器发送的DHCP应答包,并以原始套接字的形式从虚拟机所桥接网桥或主机网卡发送出去。
[0010]所述DHCP请求捕包器的具体实现如下:
[0011](1)在每个用于桥接虚拟机的网桥或主机网卡上初始化,构建包过滤规则,只捕捉DHCP 请求包,即 DHCP DISCOVER 包和 DHCP REQUEST 包;
[0012](2)启动开始捕包;
[0013](3)判断是否结束捕包,若是则结束,否则进行捕包得到下一个数据包,执行步骤⑷;
[0014](4)对得到的数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据;
[0015](5)发送已封装的TCP包到DHCP应答构建器,转到步骤(3)继续执行。
[0016]所述DHCP应答发包器的具体实现如下:
[0017](1)从DHCP应答包构造器接收TCP数据包;
[0018](2)解析TCP数据包,得到有DHCP应答够构造器构造的DHCP应答包;
[0019](3)对该DHCP应答包增加UDP包头;
[0020](4)对该DHCP应答包增加IP包头;
[0021](5)对该DHCP应答包增加以太网包头;
[0022](6)通过原始套接字发送数据包;
[0023](7)判断是否结束DHCP应答发包器,若是则结束,否则转到步骤⑴继续执行。
[0024]所述DHCP应答包构造器的具体实现如下:
[0025](1)在运行之初创建两个线程,线程一和线程二分别从步骤(2)和步骤(5)开始执行;
[0026](2)线程一监听系统管理模块发来的IP地址设置任务消息;
[0027](3)使当有IP地址设置任务到达时,查询虚拟机信息数据库,读取IP地址的设置规则,包括MAC地址和IP地址的对应关系、此次IP地址设置任务包含的MAC地址和IP地址范围;
[0028](4)判断是否结束线程一,若是,则结束线程一,否则转到步骤(2)继续执行;
[0029](5)线程二从DHCP请求捕包器接收TCP数据包;
[0030](6)解析TCP数据包,得到有DHCP请求捕包捕获的DHCP请求包;
[0031](7)根据线程一从数据库中读取的MAC地址和IP地址范围数据判断该请求包是否在处理范围之内,若是则转到步骤(8),否则直接丢弃该包;
[0032](8)判断该DHCP请求包的类型,如果是DHCP DISCOVER则转到步骤(9),若是DHCPREQUEST转到步骤(10)执行;
[0033](9)根据DISCOVER包以及线程一中数据构建DHCP OFFER数据包,转到步骤(11)执行;
[0034](10)根据DISCOVER包以及线程一中数据构建DHCP ACK数据包,转到步骤(11)执行;
[0035](11)对得到的DHCP应答数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据;
[0036](12)发送已封装的TCP包到DHCP应答发包器;
[0037](13)判断是否结束线程二,若是,则结束线程二,否则转到步骤(5)继续执行。
[0038]所述系统管理模块的功能为IP配置任务管理,IP配置任务管理包括新建IP配置任务、执行IP配置任务、取消IP配置任务和IP配置任务查询;
[0039]新建IP配置任务是用户手动新建任务,也可以通过其他系统调用接口向虚拟机批量在线IP地址自动设置系统传递IP配置任务;新建IP配置任务需要指定IP配置规则,包括MAC地址和IP地址的对应关系等,系统支持通过配置文件的方式自动导入IP配置规则;
[0040]执行IP配置任务功能完成IP配置任务的信息入库,以及向DHCP应答包构造器的消息传递,DHCP应答包构造器在收到IP配置任务消息后,读取数据库,更新本地IP配置规则集;
[0041]取消IP配置任务功能用于撤销IP配置任务,该功能向DHCP应答包构造器发生IP配置任务撤销的消息,DHCP应答包构造器在收到IP配置任务撤销消息后,从本地IP配置规则集中删除撤销任务的规则集;
[0042]IP配置任务查询用于IP配置任务的查询统计,该功能通过查询数据库内IP配置过程中保存的数据,完成IP配置任务状态查询、进度查询以及IP配置过程中产生的数据包统计。
[0043]系统管理模块,提供界面,供管理员完成整个系统的配置管理,当有虚拟机批量IP地址设置的任务到达时,解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到。
[0044]虚拟机在线批量IP地址自动设置方法,实现步骤如下:
[0045](1)当有虚拟机批量IP地址设置的任务到达系统管理模块时,系统管理模块解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到;
[0046](2) DCHP应答构造器读取虚拟机信息数据库中的任务数据,将MAC地址和IP地址的对应关系以及IP设置规则保存到内存中;
[0047](3)当该批部署的虚拟机在开机启动时,由于虚拟机网卡获取IP地址的方式都被设定成DHCP,因此虚拟机会发出DHCP请求包,这些请求包有DHCP请求捕包器捕获;
[0048](4) DHCP请求捕获器将捕获的数据包进行封装,发送到DHCP应答构造器;
[0049](5)DHCP应答构造器解析出DHCP请求包,分析该请求源是否在所维护的IP地址自动设置列表中,如果是则构造DHCP应答包,并封装发送给DHCP应答发包器,否则直接丢弃该包;同时DHCP应答发包构造器在数据库中记录IP地址分配日志;
[0050](6) DHCP应答发包器接收到DHCP应答构造器发来的DHCP应答数据包,构建应答网络报文,并通过原始套接字发出;
[0051](7)根据DHCP协议,DHCP运行分为四个基本过程,分别为请求DHCP发现、DHCP提供、DHCP请求和DHCP确认,经过两次捕包和应答完成虚拟机IP地址的自动设置。
[0052]发明与现有技术相比的优点在于:
[0053](1)本发明能够在虚拟机环境下,在虚拟机在线状态,实现大规模虚拟机IP地址的自动化配置。与已公开的方法相比,该方法具有如下优点:1)该方法不用在虚拟机本身操作系统中安装运行任何程序,保持了虚拟机在作为实验环境时的真实性;2)该方法能够为在线虚拟机自动设置IP地址,解决了通过修改虚拟机硬盘镜像文件只能设置离线虚拟机的问题;3)该方法更加灵活,既可以通过MAC地址为虚拟机设置固定的IP地址,也可以为虚拟机在一个IP地址段中,自由随机分配IP地址。

【专利附图】

【附图说明】
[0054]图1为本发明虚拟机在线批量设置IP地址系统的结构图;
[0055]图2为本发明中DHCP请求捕包器处理流程图;
[0056]图3为本发明中DHCP应答发包器处理流程图;
[0057]图4为本发明中DHCP应答包构造器流程图;
[0058]图5为本发明中系统管理模块功能结构图。

【具体实施方式】
[0059]如图1所示,本发明虚拟机在线批量设置IP地址系统包括:DHCP请求捕包器、DHCP应答发包器、DHCP应答包构造器、虚拟机信息数据库和系统管理模块。下面结合具体的实例对本发明进行详细说明。DHCP (Dynamic Host Configurat1n Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。
[0060]图1给出了虚拟机在线批量设置IP地址系统的结构图,其中DHCP请求捕包器和DHCP应答发包器部署于虚拟机部署服务器,为每个用于桥接虚拟机的网桥或主机网卡部署两个线程分别用于处理网络捕包和网络发包。DHCP应答包构造器统一处理DCHP分配的请求,只需要部署一份。系统的主要功能是虚拟机在部署阶段IP地址批量自动设置。
[0061]如图2所示,DHCP请求捕包器的具体实施步骤如下:
[0062](l)DHCP请求捕包器在每个用于桥接虚拟机的网桥或主机网卡上初始化捕包器,构建包过滤规则,只捕捉DHCP请求包,即DHCP DISCOVER包和DHCP REQUEST包;
[0063](2)启动捕包器开始捕包;
[0064](3)判断是否结束捕包,若是则结束,否则进行捕包得到下一个数据包,执行(4);
[0065](4)对得到的数据包进行封装成TCP包,使捕捉到的DHCP包作为TCP数据包的数据;
[0066](5)发送已封装的TCP包到DHCP应答构建器,转到(3)继续执行。
[0067]如图3所示,DHCP应答发包器的具体实施步骤如下:
[0068](1) DHCP应答发包器从DHCP应答包构造器接收TCP数据包;
[0069](2)解析TCP数据包,得到有DHCP应答够构造器构造的DHCP应答包;
[0070](3)对该应答包增加UDP包头;
[0071](4)对该应答包增加IP包头;
[0072](5)对该应答包增加以太网包头;
[0073](6)通过原始套接字发送数据包;
[0074](7)判断是否结束DHCP应答发包器,若是则结束发包器,否则转到⑴继续执行。
[0075]如图4所示,DHCP应答包构造器的具体实施步骤如下:
[0076](l)DHCP应答包构造器在运行之初创建两个线程,线程一和线程二分别从⑵和
(5)开始执行;
[0077](2)监听系统管理模块发来的IP地址设置任务消息;
[0078](3)使当有IP地址设置任务到达时,DHCP应答包构造器查询数据库,读取IP地址设置规则,主要包括MAC地址和IP地址的对应关系、此次IP地址设置任务包含的MAC地址和IP地址范围等;
[0079](4)判断是否结束此线程,若是,则结束此线程,否则转到(2)继续执行;
[0080](5) DHCP应答包构造器从DHCP请求捕包器接收TCP数据包;
[0081 ] (6)解析TCP数据包,得到有DHCP请求捕包捕获的DHCP请求包;
[0082](7)根据线程一的数据判断该请求包是否在处理范围之内,若是则转到(8),否则直接丢弃该包;
[0083](8)判断该DHCP请求包的类型,如果是DHCP DISCOVER则转到(9),若是DHCPREQUEST转到(10)执行;
[0084](9)根据DISCOVER包以及线程一中数据构建DHCP OFFER数据包,转到(11)执行;
[0085](10)根据DISCOVER包以及线程一中数据构建DHCP ACK数据包,转到(11)执行;
[0086](11)对得到的DHCP应答数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据;
[0087](12)发送已封装的TCP包到DHCP应答发包器;
[0088](13)判断是否结束此线程,若是,则结束此线程,否则转到(5)继续执行;
[0089]如图5所示,系统管理模块的主要功能为IP配置任务管理。IP配置任务管理包括新建IP配置任务、执行IP配置任务、取消IP配置任务和IP配置任务查询。
[0090](1)系统管理模块的新建IP配置任务可以是用户手动新建任务,也可以通过其他系统调用接口向本系统传递IP配置任务。新建IP配置任务需要指定IP配置规则,包括MAC地址和IP地址的对应关系等,系统支持通过配置文件的方式自动导入IP配置规则。
[0091](2)执行IP配置任务功能完成IP配置任务的信息入库,以及向DHCP应答包构造器的消息传递,DHCP应答包构造器在收到IP配置任务消息后,读取数据库,更新本地IP配置规则集。
[0092](3)取消IP配置任务功能用于撤销IP配置任务,该功能向DHCP应答包构造器发生IP配置任务撤销的消息,DHCP应答包构造器在收到IP配置任务撤销消息后,从本地IP配置规则集中删除撤销任务的规则集。
[0093](4) IP配置任务查询用于IP配置任务的查询统计,该功能通过查询数据库内IP配置过程中保存的数据,完成IP配置任务状态查询、进度查询以及IP配置过程中产生的数据包统计。
[0094]总之,本发明能够灵活为在线虚拟机自动设置IP地址,而不用在虚拟机中安装任何额外程序,保持了虚拟机在作为实验环境时的真实性;既可以通过MAC地址为虚拟机设置固定的IP地址,也可以为虚拟机在一个IP地址段中,自由随机分配IP地址。
[0095]提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
【权利要求】
1.一种虚拟机批量在线IP地址自动设置系统,其特征在于包括:DHCP请求捕包器、DHCP应答发包器、DHCP应答包构造器、虚拟机信息数据库和系统管理模块;其中: 系统管理模块,提供界面,供管理员完成整个系统的配置管理,当有虚拟机批量IP地址设置的任务到达时,解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到; DHCP请求捕包器,从桥接虚拟机的网桥或主机网卡上捕获虚拟机所发出的DHCP请求包,然后将捕获的数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据发送给DHCP应答包构造器; DHCP应答包构造器,读取虚拟机信息数据库中的任务数据,将MAC地址和IP地址的对应关系以及IP设置规则保存到内存中;对于DHCP请求捕包器发送过来的数据包,进行解析,提取必要的信息,构建应答包,并将应答包发送给DHCP应答发包器;同时DHCP应答发包构造器在数据库中记录IP地址分配日志; DHCP应答发包器,接受有DHCP应答包构造器发送的DHCP应答包,并以原始套接字的形式从虚拟机所桥接网桥或主机网卡发送出去。
2.根据权利要求1所述的虚拟机批量在线IP地址自动设置系统,其特征在于:所述DHCP请求捕包器的具体实现如下: (1)在每个用于桥接虚拟机的网桥或主机网卡上初始化,构建包过滤规则,只捕捉DHCP 请求包,即 DHCP DISCOVER 包和 DHCP REQUEST 包; (2)启动开始捕包; (3)判断是否结束捕包,若是则结束,否则进行捕包得到下一个数据包,执行步骤(4); (4)对得到的数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据; (5)发送已封装的TCP包到DHCP应答构建器,转到步骤(3)继续执行。
3.根据权利要求1所述的虚拟机批量在线IP地址自动设置系统,其特征在于:所述DHCP应答发包器的具体实现如下: (1)从DHCP应答包构造器接收TCP数据包; (2)解析TCP数据包,得到有DHCP应答够构造器构造的DHCP应答包; (3)对该DHCP应答包增加UDP包头; (4)对该DHCP应答包增加IP包头; (5)对该DHCP应答包增加以太网包头; (6)通过原始套接字发送数据包; (7)判断是否结束DHCP应答发包器,若是则结束,否则转到步骤(1)继续执行。
4.根据权利要求1所述的虚拟机批量在线IP地址自动设置系统,其特征在于:所述DHCP应答包构造器的具体实现如下: (1)在运行之初创建两个线程,线程一和线程二分别从步骤(2)和步骤(5)开始执行; (2)线程一监听系统管理模块发来的IP地址设置任务消息; (3)使当有IP地址设置任务到达时,查询虚拟机信息数据库,读取IP地址的设置规则,包括MAC地址和IP地址的对应关系、此次IP地址设置任务包含的MAC地址和IP地址范围; (4)判断是否结束线程一,若是,则结束线程一,否则转到步骤(2)继续执行; (5)线程二从DHCP请求捕包器接收TCP数据包; (6)解析TCP数据包,得到有DHCP请求捕包捕获的DHCP请求包; (7)根据线程一从数据库中读取的MAC地址和IP地址范围数据判断该请求包是否在处理范围之内,若是则转到步骤(8),否则直接丢弃该包; (8)判断该DHCP请求包的类型,如果是DHCPDISCOVER则转到步骤(9),若是DHCPREQUEST转到步骤(10)执行; (9)根据DISCOVER包以及线程一中数据构建DHCPOFFER数据包,转到步骤(11)执行; (10)根据DISCOVER包以及线程一中数据构建DHCPACK数据包,转到步骤(11)执行; (11)对得到的DHCP应答数据包进行封装成TCP包,使捕捉到的DHCP应答包作为TCP数据包的数据; (12)发送已封装的TCP包到DHCP应答发包器; (13)判断是否结束线程二,若是,则结束线程二,否则转到步骤(5)继续执行。
5.根据权利要求1所述的虚拟机批量在线IP地址自动设置系统,其特征在于:所述系统管理模块的功能为IP配置任务管理,IP配置任务管理包括新建IP配置任务、执行IP配置任务、取消IP配置任务和IP配置任务查询; 新建IP配置任务是用户手动新建任务,也可以通过其他系统调用接口向虚拟机批量在线IP地址自动设置系统传递IP配置任务;新建IP配置任务需要指定IP配置规则,包括MAC地址和IP地址的对应关系等,系统支持通过配置文件的方式自动导入IP配置规则; 执行IP配置任务功能完成IP配置任务的信息入库,以及向DHCP应答包构造器的消息传递,DHCP应答包构造器在收到IP配置任务消息后,读取数据库,更新本地IP配置规则集; 取消IP配置任务功能用于撤销IP配置任务,该功能向DHCP应答包构造器发生IP配置任务撤销的消息,DHCP应答包构造器在收到IP配置任务撤销消息后,从本地IP配置规则集中删除撤销任务的规则集; IP配置任务查询用于IP配置任务的查询统计,该功能通过查询数据库内IP配置过程中保存的数据,完成IP配置任务状态查询、进度查询以及IP配置过程中产生的数据包统计; 系统管理模块,提供界面,供管理员完成整个系统的配置管理,当有虚拟机批量IP地址设置的任务到达时,解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到。
6.虚拟机在线批量IP地址自动设置方法,其特征在于实现步骤如下: (1)当有虚拟机批量IP地址设置的任务到达系统管理模块时,系统管理模块解析任务描述,并将IP地址设置规则及相关数据保存到虚拟机信息数据库中,然后通知DHCP应答构造器有新任务达到; (2)DCHP应答构造器读取虚拟机信息数据库中的任务数据,将MAC地址和IP地址的对应关系以及IP设置规则保存到内存中; (3)当该批部署的虚拟机在开机启动时,由于虚拟机网卡获取IP地址的方式都被设定成DHCP,因此虚拟机会发出DHCP请求包,这些请求包有DHCP请求捕包器捕获; (4)DHCP请求捕获器将捕获的数据包进行封装,发送到DHCP应答构造器; (5)DHCP应答构造器解析出DHCP请求包,分析该请求源是否在所维护的IP地址自动设置列表中,如果是则构造DHCP应答包,并封装发送给DHCP应答发包器,否则直接丢弃该包;同时DHCP应答发包构造器在数据库中记录IP地址分配日志; (6)DHCP应答发包器接收到DHCP应答构造器发来的DHCP应答数据包,构建应答网络报文,并通过原始套接字发出; (7)根据DHCP协议,DHCP运行分为四个基本过程,分别为请求DHCP发现、DHCP提供、DHCP请求和DHCP确认,经过两次捕包和应答完成虚拟机IP地址的自动设置。
【文档编号】H04L29/12GK104461697SQ201410827790
【公开日】2015年3月25日 申请日期:2014年12月25日 优先权日:2014年12月25日
【发明者】云晓春, 郝志宇, 费海强, 张永铮, 李伦, 丁振全 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1