CN118055052A - 动态主机配置协议测试方法、电子设备、计算机可读介质 - Google Patents
动态主机配置协议测试方法、电子设备、计算机可读介质 Download PDFInfo
- Publication number
- CN118055052A CN118055052A CN202211439255.9A CN202211439255A CN118055052A CN 118055052 A CN118055052 A CN 118055052A CN 202211439255 A CN202211439255 A CN 202211439255A CN 118055052 A CN118055052 A CN 118055052A
- Authority
- CN
- China
- Prior art keywords
- dhcp
- mac address
- virtual
- network
- mac
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title claims abstract description 18
- 238000012360 testing method Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims description 83
- 230000008569 process Effects 0.000 claims description 61
- 239000002071 nanotube Substances 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 239000000523 sample Substances 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000009530 blood pressure measurement Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 101100289995 Caenorhabditis elegans mac-1 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种动态主机配置协议DHCP测试方法,包括:根据云平台的现网媒体访问控制MAC地址创建多个模拟MAC地址,其中,所述模拟MAC地址与所述现网MAC地址具有相同的MAC地址特征;根据多个所述模拟MAC地址创建多个虚拟网卡;利用多个所述虚拟网卡进行DHCP测试。本公开还提供一种电子设备、一种计算机可读介质。
Description
技术领域
本公开涉及通信技术领域,特别设计一种动态主机配置协议(DHCP,Dynamic HostConfiguration Protocol)测试方法、一种电子设备、一种计算机可读介质。
背景技术
Neutron是OpenStack项目中负责提供网络服务的组件,基于软件定义网络的思想,实现了网络虚拟化下的资源管理。Neutron架构的组成模块包括Neutron Server、Neutron Plugin、Neutron Agent和Network Provider。Neutron Agent负责在NetworkProvider上真正实现各种网络功能,例如DHCP、路由(Routing)、负载均衡(LoadBalancer)、防火墙(Firewall)、虚拟专用网络(VPN,Virtual Private Network)等。其中,Neutron DHCP Agent通过开源程序Dnsmasq为虚拟机提供域名系统(DNS,Domain NameSystem)缓存和DHCP服务。Neutron DHCP Agent在一个网络内会使用一个Dnsmasq进程提供DHCP服务,在网络容量很大的时候,可能会有性能问题,比如虚拟机无法及时获取网际互连协议(IP,Internet Protocol)地址。
提前通过压力测试的方式对云平台网络的承载能力进行评估,从而保证云平台网络功能的稳定性具有重要意义。
发明内容
本公开实施例提供一种DHCP测试方法、一种电子设备、一种计算机可读介质。
第一方面,本公开实施例提供一种DHCP测试方法,包括:根据云平台的现网媒体访问控制MAC地址创建多个模拟MAC地址,其中,所述模拟MAC地址与所述现网MAC地址具有相同的MAC地址特征;根据多个所述模拟MAC地址创建多个虚拟网卡;利用多个所述虚拟网卡进行DHCP测试。
第二方面,本公开实施例提供一种电子设备,包括:一个或多个处理器;存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例第一方面所述的DHCP测试方法。
第三方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开实施例第一方面所述的DHCP测试方法。
本公开实施例提供的DHCP测试方法,解决了云平台DHCP功能压力测试的难题,注重DHCP server服务能力的测试,实现了DHCP模拟消息的并发性,能够输出比较完善的DHCP测试报告,同时确保测试方法的自动化以及易操作性,使得该模拟器对于运维测试人员来说更好入手,能够大大降低测试工作的人力成本,提高了测试效率。
附图说明
图1是本公开实施例中一种DHCP测试方法的流程图;
图2是本公开实施例中一种电子设备的组成框图;
图3是本公开实施例中一种计算机可读介质的组成框图;
图4是一种OpenStack平台下的DHCP压测模拟器的结构示意图;
图5是DHCP客户端模块的第一实施方式的结构示意图;
图6是DHCP客户端模块的第二实施方式的结构示意图;
图7是DHCP客户端模块模拟有效的MAC地址的序列图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的DHCP测试方法、电子设备、计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在一些相关技术中,普通的DHCP server性能压测场景可以通过创建raw socket连接并修改设备MAC地址等方式来模拟多客户端并发送DHCP请求报文,或者是在终端定时发送多个不同源地址的DHCP请求报文来模拟多个DHCP客户端请求,但是这些技术有些是没有实现真正意义上的消息并发性,有些模拟了多个客户端但是没有对DHCP测试结果进行自动化分析,有些对于一些特殊云平台来说也是无法适用的。通过研究OpenStack源码以及抓包可以发现,Neutron只对自己纳管的MAC地址分配DHCP IP,也就是说,Neutron DHCPAgent管理的网络所对应的Dnsmasq进程只会处理从Neutron创建的虚拟机网卡发来的DHCP请求,相关技术将不足以去解决这些特殊场景下的DHCP压力测试难题。
有鉴于此,第一方面,参照图1,本公开实施例提供一种DHCP测试方法,包括:
S1、根据云平台的现网MAC地址创建多个模拟MAC地址,其中,所述模拟MAC地址与所述现网MAC地址具有相同的MAC地址特征;
S2、根据多个所述模拟MAC地址创建多个虚拟网卡;
S3、利用多个所述虚拟网卡进行DHCP测试。
在本公开实施例中,创建的模拟MAC地址和现网MAC地址具有相同的MAC地址特征,从而使得模拟MAC地址能够满足云平台的MAC地址纳管要求,也即云平台的Neutron能够对模拟MAC地址分配DHCP IP。
在本公开实施例中,云平台可以是任意厂商的云平台,即,本发明提出的DHCP压测模拟器同样可适用于其他对MAC地址有特殊要求的云平台,可以针对不同云平台的不同MAC地址纳管要求进行定制化设计,同时也可以适用于普通网络场景下的DHCP性能测试。本公开实施例对此不做特殊限定。
在本公开实施例中,创建的多个模拟MAC地址为是大规模数量级的模拟MAC地址,通过创建虚拟网卡,能够实现大规模数量级的并发发起DHCP请求,从而能够满足对云平台的压力测试的需求。
本公开实施例提供的DHCP测试方法,解决了云平台DHCP功能压力测试的难题,注重DHCP server服务能力的测试,实现了DHCP模拟消息的并发性,能够输出比较完善的DHCP测试报告,同时确保测试方法的自动化以及易操作性,使得该模拟器对于运维测试人员来说更好入手,能够大大降低测试工作的人力成本,提高了测试效率。
本公开实施例对于如何创建模拟MAC地址不做特殊限定。
在一些实施例中,采用自学习的方式获取特定或任一网络下的现网MAC地址,并建立MAC地址预测模型创建大规模数量级的模拟MAC地址。
相应地,在一些实施例中,根据云平台的现网MAC地址创建多个模拟MAC地址,包括:
获取所述现网MAC地址;
将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址。
本公开实施例对于如何获取现网MAC地址不做特殊限定。
在一些实施例中,获取所述现网MAC地址,包括:
向至少一个局域网中发送MAC地址探测报文;
根据接收到的MAC地址响应报文,获取各个所述局域网中的所述现网MAC地址。
在一些实施例中,MAC地址探测报文为地址解析协议(ARP,Address ResolutionProtocol)报文。
在一些实施例中,向至少一个局域网中发送MAC地址探测报文,包括:
按照预设抽样频率,向至少一个所述局域网中轮询发送所述MAC地址探测报文。
举例说明,通过业务trunk网口,针对局域网内的IP地址在二层网络中广播ARP报文的方式可以获取现网环境中局域网内的MAC地址。IP地址的选择方式可以是对局域网所有网络地址进行轮询抽样,抽样频率取决于用户需求可自行调节,获取到返回的ARP响应报文后,可从ARP报文中获取到局域网的现网MAC地址。
在一些实施例中,对于不同的云平台将有不同的MAC地址特征,可提前针对不同云平台进行MAC地址学习,分析出各个云环境的MAC特征值,并将这些特征值作为影响参数传入预测模型。
相应地,在一些实施例中,将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址,包括:
提取多个云平台对应的MAC地址特征;
将多个云平台的MAC地址特征作为影响参数传入所述MAC地址预测模型;
将所述现网MAC地址输入所述MAC地址预测模型,得到多个所述模拟MAC地址。
需要说明的是,通过将多个云平台的MAC地址特征作为影响参数传输MAC地址预测模型,用户将不用再考虑云环境的实际虚拟机部署规模情况,可以根据测试需求在云环境下动态模拟大规模数量的虚拟机网卡,实现并发发起DHCP请求的功能。
在一些实施例中,可以用不同云平台的现网MAC地址对MAC地址预测模型进行训练,使得MAC地址预测模型能够根据不同云平台的现网MAC地址都能创建满足相应云平台纳管要求的模拟MAC地址。
相应地,在一些实施例中,将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址,包括:
将所述现网MAC地址划分为训练集、验证集、测试集,其中,所述现网MAC地址来自多个云平台;
利用所述训练集对初始MAC地址预测模型进行训练、并利用所述验证集对所述初始MAC地址预测模型进行优化,得到所述MAC地址预测模型;
将所述测试集中的所述现网MAC地址输入所述MAC地址预测模型,得到多个所述模拟MAC地址。
本公开实施例对于如何根据多个模拟MAC地址创建多个虚拟网卡不做特殊限定。
在一些实施例中,根据多个所述模拟MAC地址创建多个虚拟网卡,包括:
根据多个所述模拟MAC地址创建多个候选虚拟网卡;
利用多个所述候选虚拟网卡发送第一DHCP请求探测报文;
在接收到第一DHCP响应探测报文的情况下,将所述候选虚拟网卡作为所述虚拟网卡。
需要说明的是,接收到第一DHCP响应探测报文,表示云平台成功纳管模拟MAC地址,故而能够利用该模拟MAC地址进行DHCP测试。
在一些实施例中,若云平台对模拟MAC地址纳管失败,可以通过进行纳管配置处理,实现对模拟MAC地址的纳管。
相应地,在一些实施例中,在未接收到所述第一DHCP响应探测报文的情况下,根据多个所述模拟MAC地址创建多个虚拟网卡,还包括:
对多个所述模拟MAC地址进行纳管配置处理,以实现对所述模拟MAC地址的纳管;
利用多个所述候选虚拟网卡发送第二DHCP请求探测报文;
在接收到第二DHCP响应探测报文的情况下,将所述候选虚拟网卡作为所述虚拟网卡。
本公开实施例对于如何进行纳管配置处理不做特殊限定。
在一些实施例中,对多个所述模拟MAC地址进行纳管配置处理,包括:
循环调用RESTful API接口创建纳管接口;
将所述纳管接口的入参设置为所述模拟MAC地址,以实现对所述MAC地址的纳管。
在一些实施例中,对多个所述模拟MAC地址进行纳管配置处理,包括:
将所述模拟MAC地址写入后端Dnsmasq配置文件,以实现对所述MAC地址的纳管。
需要说明的是,若没有接收到第二DHCP响应探测报文,表示对模拟MAC地址纳管失败,说明模拟MAC地址不满足云平台的MAC地址纳管要求,模拟MAC地址无法用户DHCP测试。
相应地,在一些实施例中,在未接收到所述第二DHCP响应探测报文的情况下,根据多个所述模拟MAC地址创建多个虚拟网卡,还包括:
利用所述现网MAC地址,创建多个所述虚拟网卡。
需要说明的是,利用现网MAC地址创建虚拟网卡,能够确保对虚拟网卡的硬件地址已成功纳管。在此情况下需保证测试环境中没有用户正在使用虚拟机,因为测试期间可能会导致用户短暂性断网,测试结束后,该影响将消失。
在一些实施例中,根据多个所述模拟MAC地址创建多个候选虚拟网卡,包括:
创建网络命名空间;
在所述网络命名空间中,根据多个所述模拟MAC地址创建多个所述候选虚拟网卡。
需要说明的是,通过创建网络命名空间的方式来生成独立于root网络环境的网络平面,实现与root网络环境的安全隔离,能够使DHCP客户端的网络流量对当前网络环境的影响尽可能最小,同时使得DHCP客户端运行模式更接近于实际场景下的虚拟机网卡的运行模式,使得DHCP客户端进程只在命名空间内运行,从而避免引入其他不可控的网络问题。同时,通过VEth设备来实现网络命名空间和root环境的通信,使得网络名称空间内的DHCP请求报文可以通过特定trunk口发送出去。一方面,网络命名空间可以实现进程与进程之间的安全隔离,另一方面,对于命名空间中模拟出的大量虚拟网卡,通过删除命名空间的方式可以进行一步删除,这对DHCP压测模拟器的安装和卸载过程来说也比较友好简洁。
本公开实施例对于如何利用多个虚拟网卡进行DHCP测试不做特殊限定。
在一些实施例中,利用多个所述虚拟网卡进行DHCP测试,包括:
启动多个虚拟DHCP客户端进程,其中,每一个所述虚拟网卡对应一个所述虚拟DHCP客户端进程;
获取多个所述虚拟DHCP客户端进程与DHCP服务端之间通信的DHCP报文进行分析;
根据分析结果输出DHCP测试报告。
举例说明,在DHCP测试过程中,通过抓包捕获到DHCP客户端和DHCP服务端之间通信的所有报文,针对每次会话涉及的报文类型,建立报文数据结构,获得初始化后的报文数据,进一步地可以利用Python工具从IP配置成功率、网络负载等多维度对该数据进行分析,最后输出DHCP服务压力测试报告。一方面,针对特定的用户数量,测试报告可以给出Neutron DHCP Agent服务部署个数的建议值;另一方面,针对当前的Neutron DHCP Agent服务,测试报告也可以给出可稳定服务的用户数量的建议值。
需要说明的是,Neutron DHCP Agent是指OpenStack场景下的DHCP网络节点,对于不同厂商的云环境,其可能对应不同的专业代称。
在一些实施例中,根据分析结果输出的DHCP测试报告可以表示为表一的形式。在一些实施例中,对于普通网络场景,Neutron DHCP Agent个数可替换为DHCP server个数。
表一
在一些实施例中,考虑到DHCP压力测试期间将会在短时间内并发产生大量请求报文和响应报文,如果DHCP压测模拟器集中式部署在单个服务器上,服务器内部网络将会有网络拥塞甚至广播风暴的问题隐患;而如果将DHCP压测模拟器分布式部署在多个计算节点上,就可以实现DHCP网络流量的分布式管理,避免网络拥塞等问题。具体实施过程中,用户将选择一个DHCP压测模拟器作为模拟器的主节点,其他节点作为分节点,测试动作完毕之后,各个分节点将各自的测试结果上传至主节点进行汇总,最后主节点将输出云环境的DHCP网络性能测试报告。
相应地,在一些实施例中,当前节点为主节点,获取多个所述虚拟DHCP客户端进程与DHCP服务端之间通信的DHCP报文进行分析,包括:
获取主节点虚拟DHCP客户端进程与所述DHCP服务端之间通信的主节点DHCP报文;
接收多个分节点虚拟DHCP客户端进程上报的分节点DHCP测试结果;
根据所述主节点DHCP报文和所述分节点DHCP测试结果进行分析;
其中,多个所述虚拟DHCP客户端进程包括所述主节点虚拟DHCP客户端进程和所述分节点虚拟DHCP客户端进程。
相应地,在一些实施例中,当前节点为分节点,获取多个所述虚拟DHCP客户端与DHCP服务端之间通信的DHCP报文进行分析,包括:
获取分节点虚拟DHCP客户端进程与所述DHCP服务端之间通信的分节点DHCP报文进行分析,得到分节点DHCP测试结果;
将所述分节点DHCP测试结果上报主节点虚拟DHCP客户端进程;
其中,多个所述虚拟DHCP客户端进程包括所述主节点虚拟DHCP客户端进程和所述分节点虚拟DHCP客户端进程。
第二方面,参照图2,本公开实施例提供一种电子设备,其包括:
一个或多个处理器101;
存储器102,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任意一项的方法;
一个或多个I/O接口103,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。
其中,处理器101为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器102为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)103连接在处理器101与存储器102间,能实现处理器101与存储器102的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器101、存储器102和I/O接口103通过总线104相互连接,进而与计算设备的其它组件连接。
第三方面,参照图3,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述任意一种方法。
为了使本领域技术人员能够更清楚地理解本公开实施例提供的技术方案,下面通过具体的实施例,对本公开实施例提供的技术方案进行详细说明:
实施例一
本实施例提出一种适用于OpenStack平台下的DHCP压测模拟器,这是评估OpenStack云平台自身网络承载能力的一种必要的测试工具。该模拟器装置包括:DHCP客户端模块,DHCP报文分析模块。
DHCP客户端模块:可以部署在云环境中与网络节点的业务网互通的任一节点上。1)采用自学习的方式获取特定或任一网络下的所有MAC地址,分析出MAC地址特征(不同的云厂商平台MAC地址有不同的MAC地址特征,可提前针对不同平台做适配,提取不同平台的MAC地址特征值),建立预测模型模拟创建大规模数量级的MAC地址。2)利用OpenvSwitch并结合OpenF low交换协议来实现指定MAC地址模拟大规模数量级的具有不同硬件地址的虚拟机网卡,其中每个硬件地址对应的网卡代表一个DHCP客户端。3)创建DHCP客户端网络命名空间,使得DHCP客户端进程只在命名空间内运行,实现与root网络环境的安全隔离,避免引入其他不可控的网络问题。进一步地可以在网络命名空间中指定MAC地址模拟出大规模数量级的具有不同硬件地址的网卡,且每个硬件地址对应的网卡代表一个DHCP客户端。4)在客户端发起探测报文,例如DHCP discover报文,目的是判断客户端MAC地址是否可直接被云环境纳管,若无法成功获取DHCP响应报文,说明该环境只为自己所管理的MAC地址提供DHCP服务,转向步骤5,否则,DHCP客户端部署成功。5)通过调用接口或修改底层配置等方法使得当前网络环境中的网络服务能够纳管步骤1中模拟出来的MAC地址。一种方法是调用Neutron创建port的RESTFUL API接口,入参中需指定MAC地址。另一种方法是接管NeutronServer和Neutron Plugin为网卡MAC地址分配IP并下发配置到dnsmasq进程的功能,直接写Neutron DHCP Agent纳管的网络对应的后端Dnsmasq配置文件。其他类似的能够实现云平台成功纳管模拟的MAC地址的功能的实施例在这里暂不赘述。若纳管失败,将直接指定获取到的MAC地址重新模拟创建虚拟网卡。
DHCP报文分析模块:针对DHCP方式获取IP过程涉及的DHCP discover报文,DHCPoffer报文、DHCP request报文以及DHCP ack、DHCP nak等报文进行综合分析,从IP分配成功率,IP分配失败率,网络最大负载,网络最小负载,网络平均负载等多维度进行自动化分析,可以根据当前网络环境的IP分配成功率和网络平均负载等因素给出虚拟机部署个数和网络节点部署个数的建议值,从而保证该网络环境能够提供稳健的DHCP服务,最后将生成DHCP服务端网络承载能力的测试报告。
实施例二
图4为一种OpenStack平台下的DHCP压测模拟器的结构示意图。DHCP压测模拟器的DHCP客户端模块和DHCP报文分析模块可以部署在任意计算节点上,通过trunk网卡实现与DHCP服务以及其他计算节点上虚机网卡之间的网络互通。考虑到DHCP压力测试期间将会在短时间内并发产生大量请求报文和响应报文,如果DHCP压测模拟器集中式部署在单个服务器上,服务器内部网络将会有网络拥塞甚至广播风暴的问题隐患。而如果将DHCP压测模拟器分布式部署在多个计算节点上,就可以实现DHCP网络流量的分布式管理,避免网络拥塞等问题。具体实施过程中,用户将选择一个DHCP压测模拟器作为模拟器的主节点,其他节点作为分节点,测试动作完毕之后,各个分节点将各自的测试结果上传至主节点进行汇总,最后主节点将输出云环境的DHCP网络性能测试报告。
图5是DHCP客户端模块的第一实施方式的结构示意图。具体包括MAC地址学习模块、模拟的OpenvSwitch虚拟网卡(图5和图6中用mac 1、mac 2、mac 3、……、mac N、mac N+1、……mac M来表示OpenvSwitch虚拟网卡)以及DHCP客户端进程;此外,还包括ovs网桥。其中MAC地址学习模块可以通过广播发送特定的探测报文捕获到当前网络环境中特定或指定局域网中的所有MAC地址,将这些现网MAC地址作为机器学习的数据集可以建立MAC地址预测模型,进一步地利用预测模型模拟出大规模数量的新的MAC地址。虚拟网卡可以利用OpenvSwitch技术结合OpenFlow流表规则来进行创建,通过指定vlan id创建OpenvSwitch以太网类型端口即可实现。DHCP客户端进程利用dhcpperf工具进行模拟,该工具可模拟发出DHCP discover、DHCP request等多种DHCP客户端报文。
图6是DHCP客户端模块的第二实施方式的结构示意图。具体包括MAC地址学习模块、DHCP客户端命名空间以及DHCP客户端进程,此外,还包括ovs网桥。该实施方式和图4的实施方式的不同之处在于DHCP客户端进程的运行位置不一样以及虚拟网卡的模拟方式不相同。为了使DHCP客户端的网络流量对当前网络环境的影响尽可能最小同时使得DHCP客户端运行模式更接近于实际场景下的虚拟机网卡的运行模式,可以通过创建网络命名空间的方式来生成独立于root网络环境的网络平面,实现与root网络环境的安全隔离,使得DHCP客户端进程只在命名空间内运行,从而避免引入其他不可控的网络问题。同时,通过VEth设备来实现网络命名空间和root环境的通信,使得网络名称空间内的DHCP请求报文可以通过特定trunk口发送出去。一方面,网络命名空间可以实现进程与进程之间的安全隔离,另一方面,对于命名空间中模拟出的大量虚拟网卡,通过删除命名空间的方式可以进行一步删除,这对DHCP压测模拟器的安装和卸载过程来说也比较友好简洁。
实施例三
图7为DHCP客户端模块模拟有效的MAC地址的序列图。该序列图主要描述了DHCP客户端模块在模拟有效的MAC地址的过程中所涉及的各个模块之间的信息交互,主要模块包括neutron网络服务、DHCP客户端进程以及MAC地址学习模块以及云平台环境中的计算节点。
1)MAC地址学习模块通过本节点的业务trunk网口可与各个局域网络互通。通过针对局域网内的IP地址在二层网络中广播ARP报文的方式可以获取现网环境中局域网内的MAC地址。IP地址的选择方式可以是对局域网所有网络地址进行轮询抽样,抽样频率取决于用户需求可自行调节。
2)MAC地址学习模块获取到当前网络环境中虚机网卡返回的ARP响应报文后,可从ARP报文中获取到局域网现有的MAC地址,这些MAC地址将作为机器学习数据模拟的数据集。
3)将MAC地址数据集分割成训练集、验证集和测试集,训练集用于建立预测模型,同时对验证集进行评估和预测,可以进行模型调优,最后将训练好的预测模型用于模拟出大规模数量级的MAC地址数据。对于不同的云厂商环境将有不同的MAC地址特性,可提前针对不同云环境进行MAC地址学习,分析出各个云环境的MAC特征值,并将这些特征值作为影响参数传入预测模型。
4)MAC地址学习模块依据模拟出的MAC地址数据向当前环境下发创建虚拟网卡的请求,创建出来的虚拟网卡可与当前局域网互通。
5)在DHCP客户端利用dhclient进程发送单个DHCP请求探测报文,目的是判断当前网络环境是否可以纳管模拟出的MAC地址。
6)在DHCP客户端抓包,如果无法捕获到DHCP服务的响应报文,说明当前网络环境无法直接纳管模拟出的MAC地址,需要执行8)。
7)在DHCP客户端抓包,如果可以成功捕获到DHCP服务的响应报文,说明DHCP客户端的虚拟网卡模拟成功,直接跳转执行16)。
8)DHCP客户端进程向MAC地址学习模块发送消息,告知模拟出的MAC地址需要被云平台纳管。
9)MAC地址学习模块收到MAC地址需要纳管的请求消息后,可采用两种方式纳管MAC地址。方式一,循环调用Neutron create port的RESTFUL API接口创建port,接口入参中需指定3)模拟的MAC地址,这样就实现了Neutron对模拟出来的MAC地址的纳管,测试完毕后,循环调用Neutron delete port的RESTFUL API接口删除port,实现测试进程的优雅退出,避免模块残留;方式二,直接将MAC地址写入Neutron DHCP Agent纳管的网络所对应的后端Dnsmasq配置文件,实现MAC地址的纳管。该方式相较于方式一更为简洁,但是需要保证测试期间环境中无port的增删改操作,依据Neutron代码的业务逻辑,等到下一次port相关事件发生时,该配置将会自动清除。这种清除逻辑的优点在于当需要卸载DHCP压测模拟器时,只需调用两次neutron port接口即可清除相关配置,但是需要保证测试期间用户不会创建虚机,因为创建虚机的过程会调用Neutron接口创建port,那么相关配置就会失效,此时需要重新下发配置给neutron模块。
10)Neutron配置完成。
11)发送DHCP探测报文判断此时模拟出的MAC地址是否可被当前网络环境成功纳管。
12)若未收到DHCP服务器的响应报文,说明MAC地址纳管失败。
13)若收到DHCP服务器的响应报文,说明MAC地址纳管成功,将直接跳至16)。
14)若MAC地址纳管失败,则说明预测模型模拟的MAC地址和实际MAC地址有差距,将删除4)创建的虚拟网卡。
15)用2)获取的MAC地址直接模拟创建虚拟网卡,15)在对MAC地址有特定纳管要求的云环境且MAC地址纳管失败的场景下执行,在此情况下需保证测试环境中没有用户正在使用虚拟机,因为测试期间可能会导致用户短暂性断网,测试结束后,该影响将消失。
16)最后,启动DHCP客户端进程,实现了大模块数量级DHCP客户端请求的模拟。
DHCP报文分析模块通过抓包捕获到DHCP客户端和DHCP服务端之间通信的所有报文,针对每次会话涉及的报文类型,建立报文数据结构,获得初始化后的报文数据,进一步地可以利用Python工具从IP配置成功率,网络负载等多维度对该数据进行分析,最后输出DHCP服务压力测试报告。一方面,针对特定的用户数量,测试报告可以给出Neutron DHCPAgent服务部署个数的建议值;另一方面,针对当前的Neutron DHCP Agent服务,测试报告也可以给出可稳定服务的用户数量的建议值。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (17)
1.一种动态主机配置协议DHCP测试方法,包括:
根据云平台的现网媒体访问控制MAC地址创建多个模拟MAC地址,其中,所述模拟MAC地址与所述现网MAC地址具有相同的MAC地址特征;
根据多个所述模拟MAC地址创建多个虚拟网卡;
利用多个所述虚拟网卡进行DHCP测试。
2.根据权利要求1所述的方法,其中,根据云平台的现网MAC地址创建多个模拟MAC地址,包括:
获取所述现网MAC地址;
将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址。
3.根据权利要求2所述的方法,其中,获取所述现网MAC地址,包括:
向至少一个局域网中发送MAC地址探测报文;
根据接收到的MAC地址响应报文,获取各个所述局域网中的所述现网MAC地址。
4.根据权利要求3所述的方法,其中,向至少一个局域网中发送MAC地址探测报文,包括:
按照预设抽样频率,向至少一个所述局域网中轮询发送所述MAC地址探测报文。
5.根据权利要求2所述的方法,其中,将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址,包括:
提取多个云平台对应的MAC地址特征;
将多个云平台的MAC地址特征作为影响参数传入所述MAC地址预测模型;
将所述现网MAC地址输入所述MAC地址预测模型,得到多个所述模拟MAC地址。
6.根据权利要求2所述的方法,其中,将所述现网MAC地址输入MAC地址预测模型,得到多个所述模拟MAC地址,包括:
将所述现网MAC地址划分为训练集、验证集、测试集,其中,所述现网MAC地址来自多个云平台;
利用所述训练集对初始MAC地址预测模型进行训练、并利用所述验证集对所述初始MAC地址预测模型进行优化,得到所述MAC地址预测模型;
将所述测试集中的所述现网MAC地址输入所述MAC地址预测模型,得到多个所述模拟MAC地址。
7.根据权利要求1至6中任意一项所述的方法,其中,根据多个所述模拟MAC地址创建多个虚拟网卡,包括:
根据多个所述模拟MAC地址创建多个候选虚拟网卡;
利用多个所述候选虚拟网卡发送第一DHCP请求探测报文;
在接收到第一DHCP响应探测报文的情况下,将所述候选虚拟网卡作为所述虚拟网卡。
8.根据权利要求7所述的方法,其中,在未接收到所述第一DHCP响应探测报文的情况下,根据多个所述模拟MAC地址创建多个虚拟网卡,还包括:
对多个所述模拟MAC地址进行纳管配置处理,以实现对所述模拟MAC地址的纳管;
利用多个所述候选虚拟网卡发送第二DHCP请求探测报文;
在接收到第二DHCP响应探测报文的情况下,将所述候选虚拟网卡作为所述虚拟网卡。
9.根据权利要求8所述的方法,其中,对多个所述模拟MAC地址进行纳管配置处理,包括:
循环调用RESTful API接口创建纳管接口;
将所述纳管接口的入参设置为所述模拟MAC地址,以实现对所述MAC地址的纳管。
10.根据权利要求8所述的方法,其中,对多个所述模拟MAC地址进行纳管配置处理,包括:
将所述模拟MAC地址写入后端Dnsmasq配置文件,以实现对所述MAC地址的纳管。
11.根据权利要求8所述的方法,其中,在未接收到所述第二DHCP响应探测报文的情况下,根据多个所述模拟MAC地址创建多个虚拟网卡,还包括:
利用所述现网MAC地址,创建多个所述虚拟网卡。
12.根据权利要求7所述的方法,其中,根据多个所述模拟MAC地址创建多个候选虚拟网卡,包括:
创建网络命名空间;
在所述网络命名空间中,根据多个所述模拟MAC地址创建多个所述候选虚拟网卡。
13.根据权利要求1至6中任意一项所述的方法,其中,利用多个所述虚拟网卡进行DHCP测试,包括:
启动多个虚拟DHCP客户端进程,其中,每一个所述虚拟网卡对应一个所述虚拟DHCP客户端进程;
获取多个所述虚拟DHCP客户端进程与DHCP服务端之间通信的DHCP报文进行分析;
根据分析结果输出DHCP测试报告。
14.根据权利要求13所述的方法,其中,获取多个所述虚拟DHCP客户端进程与DHCP服务端之间通信的DHCP报文进行分析,包括:
获取主节点虚拟DHCP客户端进程与所述DHCP服务端之间通信的主节点DHCP报文;
接收多个分节点虚拟DHCP客户端进程上报的分节点DHCP测试结果;
根据所述主节点DHCP报文和所述分节点DHCP测试结果进行分析;
其中,多个所述虚拟DHCP客户端进程包括所述主节点虚拟DHCP客户端进程和所述分节点虚拟DHCP客户端进程。
15.根据权利要求13所述的方法,其中,获取多个所述虚拟DHCP客户端与DHCP服务端之间通信的DHCP报文进行分析,包括:
获取分节点虚拟DHCP客户端进程与所述DHCP服务端之间通信的分节点DHCP报文进行分析,得到分节点DHCP测试结果;
将所述分节点DHCP测试结果上报主节点虚拟DHCP客户端进程;
其中,多个所述虚拟DHCP客户端进程包括所述主节点虚拟DHCP客户端进程和所述分节点虚拟DHCP客户端进程。
16.一种电子设备,包括:
一个或多个处理器;
存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至15中任意一项所述的DHCP测试方法。
17.一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至15中任意一项所述的DHCP测试方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211439255.9A CN118055052A (zh) | 2022-11-17 | 2022-11-17 | 动态主机配置协议测试方法、电子设备、计算机可读介质 |
PCT/CN2023/104599 WO2024103783A1 (zh) | 2022-11-17 | 2023-06-30 | 动态主机配置协议测试方法、电子设备、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211439255.9A CN118055052A (zh) | 2022-11-17 | 2022-11-17 | 动态主机配置协议测试方法、电子设备、计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118055052A true CN118055052A (zh) | 2024-05-17 |
Family
ID=91043547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211439255.9A Pending CN118055052A (zh) | 2022-11-17 | 2022-11-17 | 动态主机配置协议测试方法、电子设备、计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118055052A (zh) |
WO (1) | WO2024103783A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1073244A1 (en) * | 1999-07-29 | 2001-01-31 | International Business Machines Corporation | Method and system for monitoring dynamic host configuration protocol (DHCP) service in an internet protocol network |
US7984125B2 (en) * | 2009-11-17 | 2011-07-19 | Iron Mountain Incorporated | Techniques for deploying virtual machines using a DHCP server to assign reserved IP addresses |
CN105323120A (zh) * | 2015-11-26 | 2016-02-10 | 上海斐讯数据通信技术有限公司 | Dhcp服务端的测试方法、测试装置及测试终端 |
CN105338131B (zh) * | 2015-11-30 | 2019-05-31 | 上海斐讯数据通信技术有限公司 | 一种dhcp服务器地址池容量的测试方法及系统 |
CN109768871B (zh) * | 2017-11-09 | 2022-09-16 | 阿里巴巴集团控股有限公司 | 配置多个虚拟网卡的方法、宿主机和存储介质 |
CN110719345B (zh) * | 2019-10-25 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 虚拟机mac地址生成方法、系统、设备及计算机介质 |
CN111447302B (zh) * | 2020-03-30 | 2022-12-27 | 山东华辰连科通信网络有限公司 | 一种利用raw socket模拟多客户端测试DHCP的方法和系统 |
CN111880901B (zh) * | 2020-07-29 | 2023-03-31 | 北京浪潮数据技术有限公司 | 一种网络配置方法、装置、设备及可读存储介质 |
-
2022
- 2022-11-17 CN CN202211439255.9A patent/CN118055052A/zh active Pending
-
2023
- 2023-06-30 WO PCT/CN2023/104599 patent/WO2024103783A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024103783A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9459987B2 (en) | Method and system for comparing different versions of a cloud based application in a production environment using segregated backend systems | |
US7440415B2 (en) | Virtual network addresses | |
US8949399B2 (en) | Dynamic configuration of virtual machines | |
US9146826B2 (en) | Method and apparatus for scaling network simulation | |
WO2015113450A1 (zh) | 一种可视化网络运维方法和装置 | |
CN108777640B (zh) | 一种服务器探测方法、装置、系统及存储介质 | |
EP3905598A1 (en) | Message processing method and apparatus, control plane device, and computer storage medium | |
CN110572439B (zh) | 一种基于元数据服务和虚拟转发网桥的云监控方法 | |
CN106657434B (zh) | 一种ip地址的查看方法和装置 | |
CN109450743A (zh) | 物联网平台压力测试系统、方法、装置及服务器 | |
US10114771B1 (en) | Interconnection of peripheral devices on different electronic devices | |
CN109151025B (zh) | 基于url的负载均衡方法、装置、计算机存储介质及设备 | |
CN107665141B (zh) | 一种数据库配置方法及其设备 | |
CN110071918B (zh) | 一种基于混合云的数据通信方法及装置 | |
US9893945B2 (en) | Process system for constructing network structure deployment diagram and method thereof and computer program product storing analysis program of network structure deployment | |
CN106875765B (zh) | 一种基于vdi的电子教室实现方法及装置 | |
Liu et al. | Towards a community cloud storage | |
CN118055052A (zh) | 动态主机配置协议测试方法、电子设备、计算机可读介质 | |
CN114598680B (zh) | 域名的管理方法、装置及存储介质 | |
CN114448841B (zh) | 一种网卡测试方法、装置、设备及介质 | |
CN110691012A (zh) | 一种报文处理方法和测试仪 | |
CN112367415B (zh) | 属性信息的生成方法、装置、电子设备和计算机可读介质 | |
CN113971118A (zh) | 性能测试方法、装置、设备与计算机可读存储介质 | |
CN109587282B (zh) | 一种面向sr整机柜自动化配置节点ip的方法和系统 | |
CN106506268B (zh) | 一种服务器的访问方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |