背景技术
随着网络的发展,网络通讯设备的产量也越来越大,而通常不管是研发部门还是生产部门,专用测试仪的数量都很紧张。这是因为专用测试仪虽然功能强大,但是价格不菲并且提供的测试端口数量有限,为了加快生产和测试速度而大量使用专用的测试仪,必将增加产品的成本。
如果将现有的通讯设备产品临时改造为测试仪,尽可能的实现用产品来测试产品,这对生产线的产品检验测试非常有意义。如交换机的端口可以自动向被测设备发送线速流量,由于设备价格相比专用的测试仪低,并且可以提供高密度的测试接口,可以大大缓解测试设备紧缺的情况。
要使交换机的端口实现发送流量,一般采用的方法是利用交换机的CPU(中央处理单元)发送,即CPU将数据帧大量进行复制,然后发送到端口上。但是单纯利用CPU发送显然不现实,发送性能太差,甚至无法使一个端口达到线速。一般情况都是利用网络处理器(NP)和CPU配合使用来产生线速流量。网络处理器是专门为处理数据帧而设计的可编程处理器,它能够直接完成网络数据处理的一般性任务。硬件体系结构大多采用高速的接口技术和总线规范,具有较高的I/O(输入/输出)能力,处理能力得到了很大提升。因此当网络处理器配合CPU就能够很容易的实现数据帧的大量复制,达到线速流量。然而现在一般的二层交换机是没有网络处理器的,并且很多三层交换机也没有网络处理器,在这种情况下,仅靠CPU实现发线速流量是不太可行的。
除此之外还有一种产生数据帧的方法,即用专门的FPGA(现场可编程门阵列)实现基于FPGA的二、三层交换机的线速流量发生及性能测试,很多专用的测试仪就是采用的这种技术。它采用上行和下行FPGA技术在每个端口上实现线速的流量发生和统计分析,包括时延的实时测试。利用FPGA,还可以由硬件实时计算IP(互联网协议)的校验和等。但一般的二、三层交换机上是没有FPGA的,若要增加必然会提高成本,也会使开发复杂度增加。
目前将普通的二层三层交换机作为测试仪来使用时,一般采用发送的技术是用CPU配合网络处理器,单独用CPU前者发测试帧的性能很差,添加网络处理器配合CPU使用则成本高并且通常二层交换设备是没有网络处理器的。单纯利用广播风暴可以很容易形成限速流量,但发送难以控制。
因此,现有技术中在没有网络处理器也没有FPGA的设备上不能实现端口发线速流量的数据帧。
发明内容
考虑到上述问题而做出本发明,为此,本发明的主要目的在于提供一种用于以太网交换机的端口线速发送测试数据帧的方法及以太网交换机,以解决在没有网络处理器也没有FPGA的以太网交换机上不能实现端口线速发送测试数据帧的问题。
在本发明的实施例中,提供了一种用于以太网交换机的端口线速发送测试数据帧的方法,包括:建立虚拟局域网,一个虚拟局域网包括一个第一类端口和多个第二类端口,其中,虚拟局域网的虚拟局域网标签与虚拟局域网内的第一类端口的标识相对应;将具有虚拟局域网的虚拟局域网标签的测试数据帧发送到一个第二类端口;接收到测试数据帧的第二类端口在虚拟局域网标签所对应的虚拟局域网内广播测试数据帧以在多个第二类端口之间形成广播风暴;第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧。
优选的,该方法还包括:建立多个第一类端口;其中,针对每个第一类端口建立的每个虚拟局域网均包括多个第二类端口,且第一类端口和第二类端口的数量相同。
优选的,第一类端口和第二类端口的数量均为2。
其中,第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧具体包括:将2个第一类端口与待测试设备连接并向待测试设备发送测试数据帧对待测试设备进行测试。
其中,2个第一类端口属于同一台以太网交换机,第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧具体包括:将以太网交换机作为待测试设备,将2个第一类端口互连以对以太网交换机进行测试。
在本发明的实施例中,还提供了一种以太网交换机,包括:多个第二类端口,用于接收具有虚拟局域网的虚拟局域网标签的测试数据帧,并在虚拟局域网标签所对应的虚拟局域网内广播测试数据帧以在第二类端口之间形成广播风暴;第一类端口,用于向待测试设备转发其接收到的广播风暴带来的测试数据帧;其中,一个第一类端口和多个第二类端口构成一个虚拟局域网,虚拟局域网的虚拟局域网标签与虚拟局域网内的第一类端口的标识相对应;发送单元,用于将测试数据帧发送到一个第二类端口。
优选的,该以太网交换机中第一类端口的数量为多个;其中,针对每个第一类端口建立的每个虚拟局域网均包括多个第二类端口,且第一类端口和第二类端口的数量相同。
优选的,该以太网交换机中第一类端口和第二类端口的数量均为2。
优选的,该以太网交换机中2个第一类端口与待测试设备连接,其用于向待测试设备发送测试数据帧以对待测试设备进行测试。
优选的,该以太网交换机中2个第一类端口互连,用于对该以太网交换机进行测试。
本发明上述实施例的用于以太网交换机的端口线速发送测试数据帧的方法及该以太网交换机,通过利用可控的广播风暴结合端口VLAN(虚拟局域网)划分实现端口线速发送测试数据帧,解决了在没有网络处理器也没有FPGA的设备上不能实现端口线速发送测试数据帧的问题,从而不必使用专用测试仪就可以对待测试设备进行测试,大大降低了研发和生产成本。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
如图1所示,本发明的实施例提出了一种用于以太网交换机的端口线速发送测试数据帧的方法,包括以下步骤:
步骤S102,建立虚拟局域网,一个虚拟局域网包括一个第一类端口和多个第二类端口,其中,虚拟局域网的虚拟局域网标签与虚拟局域网内的第一类端口的标识相对应;
步骤S104,将具有虚拟局域网的虚拟局域网标签的测试数据帧发送到一个第二类端口;
步骤S106,接收到测试数据帧的第二类端口在虚拟局域网标签所对应的虚拟局域网内广播测试数据帧以在多个第二类端口之间形成广播风暴;
步骤S108,第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧。
该实施例中,交换机CPU进行测试数据帧的构造,在二层交换和转发的过程中由ASIC(特定用途集成电路)芯片利用广播风暴复制报文,通过对端口进行VLAN组的划分对广播风暴进行控制,同时利用ASIC芯片的端口计数器进行统计,实现没有网络处理器的线板50%的端口达到线速发送测试数据帧的能力。该实施例实现方法简单,但却能够解决单纯由CPU发送性能差,无法达到线速的问题,也为将交换机产品转化为测试仪提供了更大的适应性。
优选的,该方法还包括:建立多个第一类端口;其中,针对每个第一类端口建立的每个虚拟局域网均包括多个第二类端口,且第一类端口和第二类端口的数量相同。通过增加第一类端口,可以建立多个虚拟局域网,从而提高测试的灵活性。
优选的,第一类端口和第二类端口的数量均为2。
其中,第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧具体包括:将2个第一类端口与待测试设备连接并向待测试设备发送测试数据帧对待测试设备进行测试。通过该优选方法可以利用具有第一类端口的以太网交换机对其他设备进行测试。
其中,2个第一类端口属于同一台以太网交换机,第一类端口向待测试设备转发其接收到的广播风暴带来的测试数据帧具体包括:将以太网交换机作为待测试设备,将2个第一类端口互连以对以太网交换机进行测试。通过该优选方法可以进行自测,将两个出流量的端口互连,通过客户端软件进行流量统计,达到自己发送线速流量测试自己的效果,节省了专用测试仪的使用。
如图2所示,根据本发明的优选实施例的端口线速发送测试数据帧的方法,具体包括以下步骤:
步骤一,对以太网交换机的端口进行分组。一般的,将4个端口分为一组是比较合理的,下面以4个端口P1、P2、P3、P4组成的一个端口组为例进行说明。
因为要人为造成广播风暴,所有端口要关闭生成树协议,并禁止端口广播抑制功能,同时停止所有端口的MAC(媒体访问控制)地址学习功能。
一个端口组可以再分为发送端口(第一类端口)和环回(loopback)端口(第二类端口),端口P1、P2为发送端口,端口P3、P4为环回端口。
步骤二,组建与发送端口数量相等的VLAN。并且该组的发送端口分别加入到不同VLAN之中,其中,VLAN的tag(标签)与VLAN内的发送端口的标识相对应。设置发送端口VLAN链路类型为Access(接入),并将发送端口设为接收全部丢弃,只要端口有收报计数即可。
该组的环回端口要同时加入到所有VLAN之中,设置环回端口VLAN链路类型为Trunk(中继),并设置环回端口为单端口自环回。一个端口组的环回端口不能少于2个,否则无法形成广播风暴。因为环回端口属于不同的VLAN,所以环回端口发送的数据帧必须是带VLAN-tag的。为使发送端口达到线速,数据帧复制的速度不应小于发送的速度。所以一般环回端口的数量等于发送端口的数量。
例如,端口P1、P3和P4属于VLAN 101,端口P2,P3和P4属于VLAN 102。因为环回端口属于两个VLAN,端口P3和P4发送的数据帧必须是带VLAN-tag的,这两个端口设为自环回。
将端口及其VLAN属性配置好后,在每组就形成了若干广播域。按照二层转发流程,如果一个数据帧查找二层转发表失败,就会在VLAN中广播。由于在初始化时已禁止了所有端口的MAC地址学习功能,所以二层转发表始终是空的,从所有端口接收上来的帧自然会形成广播。
步骤三,交换机CPU构造一个测试数据帧,这个数据帧必须带发送端口的VLAN-tag,如VLAN 101,然后CPU将数据帧发送给任一环回端口,则立即会在环回端口之间形成广播风暴。
例如,端口P3接收到一个数据帧,VLAN-Tag是VLAN 101,就会在VLAN 101中形成广播,于是端口P1和端口P4就会各发出一个数据帧。端口P4是自环回的,马上会接收到一个数据帧,同样会在VLAN 101中形成广播,于是端口P1和端口P3又各发出一个数据帧。那么端口P3也是自环回的,……,数据帧在两个环回端口之间震荡,如此广播形成风暴,端口P1实现了源源不断的向外线速发送测试流量。
同理,CPU向环回端口发送一个VLAN-tag为102的数据帧,则发送端口P2也可以线速发送测试数据流量。
步骤四,在发送端口发送测试数据流量的同时,CPU可以通过读取发送端口的端口计数器,对发送速率和发送总量进行统计。可以实时显示在控制台终端,供测试人员参考。CPU还可以根据测试要求可以对发送端口进行出口限速,实现发送不同速率的测试数据流。
如果需要捕获报文,可以配置端口sFlow(流采样)功能并上报CPU,或配置端口ACL(访问控制列表),对接收的数据帧进行过滤和重定向。
步骤五,将端口P3或者端口P4中任意一个的环回解除,则广播风暴停止,端口P1和端口P2也就停止发送。从而可以控制端口发送测试数据帧的开始和结束。
运用这样的方法,四个一组的端口中就可以有两个端口向外发送数据帧,整体看50%的发送端口产生线速测试数据流量,另外50%的端口用来广播风暴。
通过运用该实施例,可以很容易地将二、三层通讯设备作为测试设备来使用。该实施例一方面可以测试其它设备,即将两个发送端口接到被测设备上;另外也可以进行自测,将两个出流量的端口互连,通过客户端软件进行流量统计,达到自己发送线速流量测试自己的效果,从而节省了专用测试仪的使用,对于通讯设备研发和生产来说,都大大降低了成本。该实施例简单实用,测试效率较高,尤其适用于生产线检验测试。
本发明的实施例还提供了一种以太网交换机,包括:
多个第二类端口,用于接收具有虚拟局域网的虚拟局域网标签的测试数据帧,并在虚拟局域网标签所对应的虚拟局域网内广播测试数据帧以在第二类端口之间形成广播风暴;
第一类端口,用于向待测试设备转发其接收到的广播风暴带来的测试数据帧;其中,一个第一类端口和多个第二类端口构成一个虚拟局域网,虚拟局域网的虚拟局域网标签与虚拟局域网内的第一类端口的标识相对应;
发送单元,用于将测试数据帧发送到一个第二类端口。
该实施例的以太网交换机通过利用可控的广播风暴结合端口VLAN划分实现端口线速发送测试数据帧,解决了在没有网络处理器也没有FPGA的设备上不能实现端口线速发送测试数据帧的问题,从而不必使用专用测试仪就可以对待测试设备进行测试,大大降低了研发和生产成本。
优选的,该以太网交换机中第一类端口的数量为多个;其中,针对每个第一类端口建立的每个虚拟局域网均包括多个第二类端口,且第一类端口和第二类端口的数量相同。
优选的,该以太网交换机中第一类端口和第二类端口的数量均为2。
优选的,该以太网交换机中2个第一类端口与待测试设备连接,其用于向待测试设备发送测试数据帧以对待测试设备进行测试。
优选的,该以太网交换机中2个第一类端口互连,用于对该以太网交换机进行测试。
本发明上述实施例的用于以太网交换机的端口线速发送测试数据帧的方法及装置,通过利用可控的广播风暴结合端口VLAN划分实现端口线速发送测试数据帧,解决了在没有网络处理器也没有FPGA的设备上不能实现端口线速发送测试数据帧的问题,不必使用专用测试仪就可以对待测试设备进行测试,大大降低了研发和生产成本。
显然,本领域的技术人员应该明白,上述的本发明的各模块单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。