一种基于单网卡绑定多IP的流量回放方法与流程

文档序号:20781071发布日期:2020-05-19 21:14阅读:125来源:国知局
本发明属于数据传输
技术领域
:,涉及网络环境测试中流量回放方法。
背景技术
::在网络环境测试中,只有真实的复现当时出现问题的场景才能够更好的发现问题。网络环境中的问题,基本上都可以通过分析网络中的流量找到问题的所在。因此,复现真实的网络流量成为了关键的一步。背景流量还原是从用户流量行为的角度模拟真实的网络场景中的流量行为。目前,实现流量回放的方式主要基于流量特征的回放和基于跟踪的回放。第一种方式主要通过提取网络流量的特征来生产满足当前特征的流量,完成网络场景还原。该方式使用合适的模型拟合真实网络流量中的某些特征,如数据包到达时间、数据包时间间隔、数据包大小以及数据包速率等。该方法虽然能够根据指定模型参数多次构造相同的流量,便于网络实验重复实施,但只适用于在简单网络场景中构造小规模流量。第二种方式主要将捕获的流量文件根据实验网络拓扑环境要求,重新构造数据包并按照原始流量文件时序发送数据包达到流量还原目的。该方法将重新捕获的流进行回放,因此能够保留真实环境中的流量特征及内容。但是由于回放所使用的虚拟机数量有限,因此该方法只能适用于小规模的流量回放。网络测试中有时为了还原真实的网络环境,需要将真实环境中产生的流量进行回放,由于在虚拟环境中能产生的虚拟机和真实的物理机数量上相差很大,无法满足回放的ip地址数量。针对这一现状,需要找到一种解决方案。技术实现要素:为了解决现有技术中,在流量回放测试过程中,虚拟主机数量无法满足真实主机数量的问题,本发明提出了一种基于单网卡绑定多ip的流量回放方法。通过将多个ip地址绑定到单个虚拟网卡中实现流量的回放。本发明解决其技术问题采用的技术方案是:一种基于单网卡绑定多ip的流量回放方法,包括:(1)、分析原始pcap文件得到回放需要的最少虚拟机数量和每个虚拟机应该绑定的ip地址;(2)、将原始的大pcap文件拆分成与每个虚拟机发包相关的小pcap文件;(3)、在每个虚拟机上根据分配的ip地址进行绑定ip和路由规则配置;(4)、在每个虚拟机上将分配给本机的pcap文件按照原有相对时间间隔进行流量回放。进一步的,所述(1)中,通过多路归并算法,得出一个组合:{虚拟机id:所分ip地址列表};判断每个虚拟机id对应的ip地址列表中的地址数量是否大于254,如果大于则将继续增加虚拟机数量,通过计算每个流包的数量来进行划分;直到每个ip地址列表中的ip数量都小于254个,此时便可得到所需最少的虚拟机数量以及每个虚拟机上对应的ip地址列表。进一步地,所述步骤(2)中,根据{虚拟机id:所分ip地址列表}组合,将原始大pcap文件进行拆分,拆分的小pcap文件中的数据包与每个虚拟机ip列表一一对应;并将数据包文件名命名为min_pcap_虚拟机序号.pcap。进一步地,所述步骤(3)中,通过命令的方式绑定ip地址或路由规则配置。进一步地,所述步骤(4)具体包括:首先读入ip地址文件和回放开始的时间戳,随后进行参数的初始化和读取pcap文件,判断该pcap文件是否读完,如果未读完则读取pcap文件的数据;如果读完,本虚拟机的回放结束。进一步地,上述方案中,在读取pcap文件的时候判断是否为第一个数据包,如果是,则计算回放开始时间和该包发送时间的差值;随后读取pcap文件的信息,对文件中的内容进行分析,获取源ip地址、源端口号、目的ip地址、目的端口号、时间戳、数据包内容信息;然后将时间戳加上计算好的时间差值作为发包时间,随后利用libnet进行重构数据包;等待发包时间,若当前时间为发包时间则立即发送数据包给目标主机;发送完成后继续判断pcap文件是否读完;重复以上步骤,直到pcap文件读完。本发明提出的一种基于单网卡绑定多ip的流量回放方法,可以在网络靶场中利用相对较少的虚拟机完成一定规模的流量回放,高度的还原了真实网络的流量交互,更好的模拟网络环境。其有益效果如下:(1)利用单网卡绑定多个ip,减少了虚拟机的数量,降低了回放成本;(2)回放过程中源ip、源端口、目的ip、目的端口,数据包的内容都与原数据保持一致,高度的还原了真实的流量;(3)根据原始流量的交互关系,合理的分配虚拟机数量以及虚拟机上所绑定的ip地址。附图说明图1为本发明实施例的流量回放架构图;图2是原始pcap文件分析流程图;图3是ip绑定流程示意图;图4是路由配置流程示意图图;图5是pcap文件回放流程示意图图。具体实施方式为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。本实施例提供的基于单网卡绑定多ip的流量回放方法,如图1所示,具体内容如下:1、分析原始pcap文件得到回放需要的最少虚拟机数量和每个虚拟机应该绑定的ip地址该步骤主要完成ip地址划分及pcap文件拆分,如图2所示。该步骤的输入是原始pcap文件和单位时间内虚拟机最多能处理包的数量。其中原始pcap文件为真实网络环境中利用抓包工具抓取的流量。本方法主要回放其中的流量部分。该步骤的输出是回放该pcap文件所需要的最少的虚拟机数量以及每个虚拟机上所需要绑定的ip地址和在该虚拟机上回放的pcap文件名。通过多路归并算法,得出一个组合{虚拟机id:[所分ip地址列表]},多路归并算法保证了该虚拟机上的ip地址不会给自己虚拟机上的ip地址发送数据包。其次判断ip地址列表中的地址数量是否大于254,如果大于则将继续增加虚拟机数量,通过计算每个流包的数量来进行划分,直到每个ip地址列表中的ip数量都小于254个,此时便可得到所需最少的虚拟机数量以及每个虚拟机上对应的ip地址列表。在计算过程中以流为单位进行计算,确保每个流中的数据包不会被分配到不同的虚拟机上,在ip分配的时候也保证了每个虚拟机最多不会被分配到254个ip地址。该步骤主要通过计算每个流在交互过程中的包的数量以及包的发包时间来确定单位时间内,保证每个流中的数据包不会被分配到不同的虚拟机上。并通过计算每个流中包的数量来划分流,确保每台虚拟机分到ip地址的数据流的总包数不会有较大的差异。2、根据上述步骤划分的组合,将原始大pcap文件进行拆分,拆分的小pcap文件中的数据包与每个虚拟机ip列表一一对应,输出的文件名命名规则为min_pcap_虚拟机序号.pcap。3、在每个虚拟机上根据分配的ip地址进行绑定ip和路由规则配置首先读取下发的需要绑定的ip地址文件,通过字符串拼接将ip地址加入到命令中,随后将该命令执行,流程如图3所示。于此同时,需要访问本机ip地址的虚拟机需要添加对应的路由规则以便能够将不同的网段连通。路由规则配置方式与ip地址绑定的方式相似,流程如图4所示。另外,由于是对原始流量进行回放,在回放过程中接受端主机会返回rst包,因此需要对其进行过滤,可以通过iptables来禁止本机发送rst包,主要通过执行shell脚本中的命令(iptables-aoutput-ptcp–tcp-flagsrsttst-jdrop)进行配置。4、在每个虚拟机上将分配给本机的pcap文件按照原有相对时间间隔进行流量回放,流程如图5所示。该步骤的输入是本虚拟机需要回放的ip地址和回放开始的时间戳。首先读入ip地址文件和回放开始的时间戳,随后进行参数的初始化和读取pcap文件,判断该pcap文件是否读完,如果未读完则读取pcap文件的数据;如果读完,本虚拟机的回放结束。在读取pcap文件的时候需要判断是否为第一个数据包,如果是,则计算回放开始时间和该包发送时间的差值,这样做的目的是为了保证回放过程中每个包的时间间隔与原时间间隔尽可能一致。随后读取pcap文件的信息,对文件中的内容进行分析,获取源ip地址、源端口号,目的ip地址、目的端口号、时间戳、数据包内容等信息。然后将时间戳加上计算好的时间差值作为发包时间,随后利用libnet进行重构数据包。等待发包时间,若当前时间为发包时间则立即发送数据包给目标主机。发送完成后继续判断pcap文件是否读完,重复以上步骤,直到pcap文件读完。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1