[0020] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0021] 需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0022] 本发明提供一种软路由性能测试方法,应用于采用了第三层交换技术的网络设备中。该软路由性能测试方法运用了报文在不同子网间发送需要经过路由处理的原理。下面举例说明一下两个站点通过三层交换机实现跨网段通信是怎样一个过程。假定站点A、B通过三层交换机进行通信。站点A和B所在网段都属于交换机上的直连网段,若站点A和站点B不在同一子网内,发送站A首先要向其“缺省网关”发出ARP请求报文,而“缺省网关”的IP地址其实就是三层交换机上站点A所属VLAN的IP地址。当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,交换机就向发送站A回一个ARP回复报文,告诉站点A交换机此VLAN的MAC地址,同时可以通过软件把站点A的IP地址、MAC地址、与交换机直接相连的端口号等信息设置到交换芯片的三层硬件表项中。站点A收到这个ARP回复报文之后,进行目的MAC地址替换,把要发给B的包首先发给交换机。交换机收到这个包以后,同样首先进行源MAC地址学习,目的MAC地址查找,由于此时目的MAC地址为交换机的MAC地址,在这种情况下将会把该报文送到交换芯片的三层引擎处理。一般来说,三层引擎会有两个表,一个是主机路由表,这个表是以IP地址为索引的,里面存放目的IP地址、下一跳MAC地址、端口号等信息。若找到一条匹配表项,就会在对报文进行一些操作(例如目的MAC与源MAC替换、TTL减1等)之后将报文从表中指定的端口转发出去。若主机路由表中没有找到匹配条目,则会继续查找另一个表――网段路由表。这个表存放网段地址、下一跳MAC地址、端口号等信息。一般来说这个表的条目要少得多,但覆盖的范围很大,只要设置得当,基本上可以保证大部分进入交换机的报文都走硬件转发,这样不仅大大提高转发速度,同时也减轻了CPU的负荷。若查找网段路由表也没有找到匹配表项,则交换芯片会把包送给CPU处理,进行软路由,也可称作上CPU。由于站点B属于交换机的直连网段之一,CPU收到这个IP报文以后,会直接以B的IP为索引检查ARP缓存,若没有站点B的MAC地址,则根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向交换机回复其MAC地址,CPU在收到这个ARP回复报文的同时,同样可以通过软件把站点B的IP地址、MAC地址、进入交换机的端口号等信息设置到交换芯片的三层硬件表项中,然后把由站点A发来的IP报文转发给站点B,这样就完成了站点A到站点B的第一次单向通信。由于芯片内部的三层引擎中已经保存站点A、B的路由信息,以后站点A、B之间进行通信或其它网段的站点想要与A、B进行通信,交换芯片则会直接把包从三层硬件表项中指定的端口转发出去,而不必再把包交给CPU处理。这种通过“一次路由,多次交换”的方式,大大提高了转发速度。需要说明的是,三层引擎中的路由表项大都是通过软件设置的。
[0023] 在一个实施例中,如图1所示,所述软路由性能测试方法包括:
[0024] 步骤S1,将所述网络设备的第一端口与第一计算机的第一网卡相连,所述网络设备的第二端口与第二计算机的第二网卡相连,创建发包VLAN,并将第一端口配置到所述发包VLAN,设置第一端口所连接的网段的IP地址;创建收包VLAN,将所述网络设备的的其余端口中的至少一个配置到所述收包VLAN,设置配置成所述收包VLAN的端口所连接的网段的IP地址。具体地,所述发包VLAN和所述收包VLAN为不同的VLAN,当所述网络设备收到源地址为所述发包端口的网段的IP地址、目的地址为所述收包端口的网段的IP地址的数据包,且该数据包为所述网络设备第一次收到的源地址为所述发包端口的网段的IP地址、目的地址为所述收包端口的网段的IP地址的数据包时,由于该数据包是跨VLAN发送,因此,所述网络设备不能直接对该数据包进行硬件转发,需要进行软路由处理。
[0025] 步骤S2,第二计算机与所述网络设备进行通信测试。具体地,第二计算机与所述网络设备进行不间断的通信测试,通过通信测试的结果确定所述网络设备工作是否处于异常状态,当所述通信测试出现丢包的情况,则说明所述网络设备工作处于丢包状态,即异常状态。当所述通信测试未出现丢包的情况,则说明所述网络设备工作处于不丢包状态,即正常状态。在一个实施例中,所述通信测试包括通过ping命令测试。
[0026] 步骤S3,第一计算机构造至少一个以所述发包VLAN端口连接的网段的IP地址为源地址、所述收包VLAN连接的网段的的IP地址为目的地址的数据包,不同所述数据包具有不同的源地址或不同的目的地址,并设置发包速率,以所述发包速率发送所构造的数据包。具体地,所述数据包包括IP报文。在一个实施例中,所述第一计算机构造的数据包可以是多个具有不同的源地址或不同的目的地址的数据包,以保证这些数据包都需要在被测试的所述网络设备中进行路由转发。在一个实施例中,所述数据包的目的地址是不可达的IP地址。由于当所述数据包的目的地址是不可达的IP地址时,无法确定目的地址对应的MAC地址,即无法建立硬件转发表。因此,每次发送这种目的地址是不可达的IP地址的数据包时,都将进行软路由处理。这样,所述第一计算机可以通过连续发送同一个数据包来检测所述网络设备的软路由能力。
[0027] 步骤S4,根据第二计算机与所述网络设备通信测试状态调整所述发包速率,进而确定在所述通信测试处于不丢包状态下的最大发包速率。具体地,当所述第二计算机与所述网络设备通信测试状态为不丢包状态(即正常通信状态)时,提高第一计算机的发包速率;当所述第二计算机与所述网络设备通信测试状态为丢包状态(即异常通信状态)时,降低第一计算机的发包速率。通过不断尝试,进而确定在所述通信测试处于不丢包状态下的最大发包速率。
[0028] 在一个实施例中,所述软路由性能测试方法还包括:在设定时间段内,以所述最大发包速率发包,同时检测所述通信测试状态。具体地,第一计算机在设定时间段内都以所述最大发包速率发送数据包,同时实时检测所述通信测试是否一直处于不丢包状态。如果实时检测所述通信测试一直处于不丢包状态,则所述最大发包速率对应着被测的网络设备的最大软路由能力。如果实时检测所述通信测试有时处于丢包状态,则所述最大发包速率需要进行调整,即降低所述发包速率进行进一步的测试。
[0029] 在一个实施例中,所述第一计算机与所述第二计算机为同一计算机,所述第一网卡与所述第二网卡为同一计算机的不同网卡。具体地,该计算机至少包括两块网卡,其中一块连接网络设备的第一端口,另一块连接网络设备的第二端口。
[0030] 在一个实施例中,所述软路由性能测试方法还包括:所述网络设备通过串口与第三计算机相连,在第三计算机上查看所述网络设备的运行状态。在一个实施例中,所述网络设备的运行状态包括所述设备的CPU使用率。所述网络设备的运行状态还可以包括所述网络设备的内存使用率。所述网络设备的运行状态还可以包括路由处理报文的数量。在一个实施例中,所述第三计算机通过命令行界面查看所述网络设备的运行状态。通过查看所述网络设备的运行状态可以进一步确定所述网络设备的性能及稳定性。在一个实施例中,,所述第一计算机、所述第二计算机以及第三计算机为同一计算机,所述第一网卡与所述第二网卡为同一计算机的不同网卡。具体地,该计算机至少包括两块网卡,其中一块连接网络设备的第一端口,另一块连接网络设备的第二端口,同时,该计算机还通过串口线与所述网络设备进行连接,并通过串口命令查看所述网络设备的运行状态。
[0031] 综上所述,本发明的一种软路由性能测试方法通过一个模拟不同的发包速率发送需要路由的数据包,具有软路由能力的网络设备在收包的同时发送协议数据包,来检测网络设备的软路由能力以及CPU的性能。网络设备的软路由能力是网络设备的重要能力,本发明大大增强了对网络设备的性能的测试能力。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0032] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。