一种用于网管容量测试的snmp模拟器及其测试方法_2

文档序号:9754294阅读:来源:国知局
以常用个人PC为例,假如PC系统可用2GB内存(IGB约等于1000MB,IMB约等于1000KB),一个虚拟设备mib数据大小为10M,则只能模拟2*1000/10=200个左右虚拟设备(计算未考虑虚拟设备对象其他内存开销,下同),10000个虚拟设备则需要10000/200=50台PC,
实施困难。
[0029]故而通过开发文档或抓包分析,只保留网管系统发现和保活的snmp请求节点及其父亲节点和实例节点,将裁剪后的mib数据保存为对应设备型号的xml模板文件,其大小只有20KB左右;则10000台只占用(20/1000)*10000=200M的内存。
[0030]步骤三:选择EOC设备型号及需要生成的虚拟设备数量X、定义指定起始IP地址ipl、设备软硬件版本号、团体名、snmp版本等信息,读取对应设备型号的XML模板文件,将节点取值Value修改为指定值,生成X个包含虚拟设备mib数据的XML文件。优选的,所述X个包含虚拟设备mib数据的XML文件以设备IPl?IPX为名称。
[0031 ] 步骤四:根据步骤三所生成的XML文件中的IP地址,生成虚拟设备对象树。
[0032]此步的具体为:选择生成的xml文件,获取文件名称和文件绝对路径。根据文件名称的IP地址点分十进制格式的前三位为分组名称生成分组对象,IP地址前三位相同的虚拟设备挂在同一个分组下,在图形界面生成虚拟设备对象树。
[0033]步骤五:在人机父互界面启动虚拟设备,加载对应XML文件中的mib数据,生成根据OID排序并具有父子关系的mib节点对象列表。
[0034]列表为虚拟设备对象的一个公共属性;每个虚拟设备对象拥有自己独立的mib节点对象列表。
[0035 ]步骤六:直接从网卡提取源IP地址为网管系统服务器IP的SNMP或ARP请求报文(该方式的好处是不占用操作系统端口,从而不会因系统端口数限制模拟设备数量)。为每个到达的报文注册报文到达时间,并将注册过的报文放入到收报队列中;
步骤七:报文处理线程循环从收包队列中读取报文,进行处理后加入报文发送队列。
[0036]本【具体实施方式】中可处理三种报文:
如果为arp报文,处理方式为:如果报文携带的请求IP地址ipl为已经启动的虚拟设备IP地址,则构造mac地址为指定网卡mac地址、IP为ipl的arp响应报文,加入报文发送队列;通过这种arp欺骗,将网管系统snmp请求数据引导至SNMP模拟器指定网卡上;
如果为icmp报文,处理方式为:如果请求的IP地址为已经启动的虚拟设备IP地址,则构造icmp响应报文,加入报文发送队列;
如果为基于udp的snmp报文,处理方式为:如果请求的IP地址为已经启动的虚拟设备IP地址,调用虚拟设备对象的snmp报文处理方法,返回snmp响应报文。处理方式如图5所示。
[0037]步骤八:报文发送线程循环接读取报文发送队列的报文,直接加入S匪P模拟器网卡的发送缓冲区,不经过系统寻址转发。
[0038]报文捕获线程、报文处理线程、发送线程,三个线程同时运行;收包队列和发包队列为线程安全队列。
[0039]步骤九:逐步增加或减少虚拟设备,并观察设备保活状态,服务器网络接口数量流量,记录页面响应时间,找出在特定硬件环境下,网管系统的容量临界点。
[0040]本发明的有益效果为:本发明通过模拟器数据模板生成模拟设备mib数据,直接通过底层的报文捕获和发送效率都很高,单个PC就可模拟数万个网络设备响应网管系统的SNMP请求,并且响应时间为ms级,几乎等于真实网络设备的响应时间。本发明解决了网管系统研发期间没有大量真实网络的设备时,对网管系统容量无法有效验证的困难。有效验证网管容量及其高负载情况功能的可用性,同时节约大量的人力、电力、空间以及设备等资源。
【主权项】
1.一种用于网管容量测试的SNMP模拟器,其特征在于,SNMP模拟器包括电脑、网卡、mib信息采集模块、mib数据裁剪模块、数据构造模块、虚拟设备对象树生成模块、人机交互模块;所述电脑上还运行有报文捕获线程、报文处理线程、报文发送线程、网管系统监测模块; 所述Mib信息采集模块用于采集待测试网管系统管理范围内各个EOC和/或EPON真实网络设备所有节点的mib数据; 所述mib数据裁剪模块用于将网管系统不需要的节点mib数据从所有节点mib数据中剔除出去,并将剩余的节点mib数据保存成对应真实EOC设备型号的XML模板文件,且一种XML模板文件内的mib数据对应于一种虚拟设备的mib数据; 人机交互模块用于选择设备型号、定义起始IP地址、设置设备数量X、启动虚拟设备、停止虚拟设备、增减虚拟设备; 所述数据构造模块用于根据设备型号读取对应XML模板文件,生成X个包含虚拟设备mib数据的xml文件; 虚拟设备对象树生成模块用于根据人机交互模块的设置生成虚拟设备对象树; 所述报文捕获线程用于捕获源IP地址为网管系统服务器IP的报文,并注册报文到达事件,将注册后的报文放入收包队列中; 所述报文处理线程用于循环的从收包队列中读取报文、处理报文,并将处理后产生的响应报文加入到发送报文队列; 所述报文发送线程循环读取发送队列报文,并加入网卡的发送缓冲区; 网管系统监测模块用于观察EOC设备保活状态、服务器网络接口数量及流量、记录页面响应时间,找出网管系统的容量临界点。2.如权利要求1所述的用于网管容量测试的SNMP模拟器的测试方法,包括如下步骤: 步骤一:采集真实EOC设备mib的所有节点数据,并保存为XML文件,所述XML文件里包含有各个节点的节点名称、节点号、父节点标识、节点取值; 步骤二:裁剪真实EOC设备mib节点数据,裁剪后的mib节点数据仅包括网管设备向各个EOC设备发起的SNMP请求中用到的mib节点数据,且裁剪后的mib数据保存为对应EOC设备型号的XML模板文件,所述XML模板文件里包括节点取值项、OID; 步骤三:选择EOC设备型号及需要生成的虚拟设备数量X,读取对应设备型号的XML模板文件,将节点取值项修改为指定值,生成X个包含虚拟设备mib数据的XML文件; 步骤四:根据步骤三所生成的XML文件中的IP地址,生成虚拟设备对象树; 步骤五:启动虚拟设备,加载对应XML文件中的mib数据,生成根据OID排序并具有父子关系的mib节点对象列表; 步骤六:直接从网卡提取源IP地址为网管系统服务器IP的请求报文,并为每个到达的请求报文注册报文到达时间,并将注册过的报文放入到收报队列中; 步骤七:报文处理线程循环从收包队列中读取报文,进行处理后加入报文发送队列;步骤八:报文发送线程循环接读取报文发送队列的报文,直接加入S匪P模拟器网卡的发送缓冲区; 步骤九:逐步增加或减少虚拟设备,并观察设备保活状态,服务器网络接口数量流量,记录页面响应时间,找网管系统的容量临界点。3.如权利要求2所述的模拟大量SNMP代理和网管容量测试系统的测试方法,其特征在于,在步骤七中,处理的报文有三种,分别为arp报文、icmp报文、基于udp的snmp报文; 如果为arp报文,处理方式为:如果报文携带的请求IP地址ipl为已经启动的虚拟设备IP地址,则构造mac地址为指定网卡mac地址、IP为ipl的arp响应报文,加入报文发送队列;通过这种arp欺骗,将网管系统snmp请求数据引导至SNMP模拟器指定网卡上; 如果为icmp报文,处理方式为:如果请求的IP地址为已经启动的虚拟设备IP地址,则构造icmp响应报文,加入报文发送队列; 如果为基于udp的snmp报文,处理方式为:如果请求的IP地址为已经启动的虚拟设备IP地址,调用虚拟设备对象的snmp报文处理方法,返回snmp响应报文。
【专利摘要】本发明提供了一种用于网管容量测试的SNMP模拟器及其测试方法,SNMP模拟器包括电脑、网卡、所述mib信息采集模块、mib数据裁剪模块、数据构造模块、虚拟设备对象树生成模块、人机交互模块;所述电脑上还运行有报文捕获线程、报文处理线程、报文发送线程、网管系统监测模块。本发明解决了网管系统研发期间没有大量真实网络的设备时,对网管系统容量无法有效验证的困难。有效验证网管容量及其高负载情况功能的可用性,同时节约大量的人力,电力,空间以及设备等资源。
【IPC分类】H04L12/24, H04L12/26
【公开号】CN105515825
【申请号】CN201510833087
【发明人】周智
【申请人】成都广达新网科技股份有限公司
【公开日】2016年4月20日
【申请日】2015年11月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1