网络分流器
1 . 与流量相关的L2-3层高级测试技术探讨
戎腾网络分流器: 对于一个L2-3层网络设备,最基本、最重要的测试是流量转发性能测试。做为一个网络转发设备,首先要保证能够高速、低时延、稳定地转发流量。
相关的性能测试一般是经过流量生成器(通常是硬件测试仪表,能够发出线速的流量)来生成相应的流量让被测试设备承受不一样的负载,检验其表现。一般会测试被测设备的容量(好比吞吐量),以及处理业务的特征如何(好比时延)。以交换机为例,不一样的交换机因为采用了不一样的硬件架构,性能表现会有所不一样;同一个交换机在不一样负载时会有不一样的表现(例如重载时延和轻载时延的差别);交换机配置的不一样也会引发不一样的表现。 前端
为了尽可能独立、公正(不受厂家的技术指标影响),IETF测试标准化工做组(BMWG)针对交换机的测试公布了下面这些主要的RFC(如RFC124二、RFC254四、RFC228五、RFC288九、RFC243二、RFC391八、RFC5180等)。这些RFC定义了测试标准的术语和方法,其中最重要的两个测试规范是RFC2544和RFC2889。 安全
咱们不去讨论RFC2544和RFC2889的内容,只是来探讨一下这两个规范中的测试方法是否足够,在测试过程当中是否考虑了以下内容:网络
(1)包长的选择是否过于简单? 架构
(2)能够随机变换发包间隔(发包速率)吗?ide
(3)发包序列是否灵活多变?工具
(4)数据包的地址数能够增长吗?性能
(5)流量类型是否足够多?流量是否能够混合?测试
(6)是否能够详细地统计成千上万条数据流,并从中快速找出你所须要的数据流?大数据
(7)是否能够跟踪数据流里的多个字段?优化
(8)除了时延和抖动,是否能够清晰地知道数据包的时延分布?
下面咱们来逐条探讨上述提到的内容:
(1)在流量包长的选择上,咱们的测试应该支持更加丰富的包长类型。包长的选择应该支持递增、递减、定制、IMIX、高斯分布等,丰富的包长类型更加贴近网络上的真实状况。
(2)在发包速率的选择上,数据包与数据包间隔(IPG)的变化,Burst与Burst之间间隔(IBG)的变化,Stream和Stream之间间隔(ISG)的变化都应该是能够配置的。流量数据包间隔的变化致使速率的不均匀性,直接能够考验被测试设备的速率计量以及限速准确性;并且这种变化的速率能模拟突发效果,反映真实数据流特性。
(3)选择不一样的发包序列。例如构造了2条流量,第1条是ICMP流,IP地址变化了100次,第2条是TCP流,端口号变化了100次,那么我就有了发包序列的选择。第一种发包序列是ICMP流和TCP流按照设定的速率同时发送。第二种发包序列是顺序发送:先把第一条流里的100个ICMP包都发送出去后,再发送第二条流里的100个TCP包,周而复始。经过调整发包顺序,使被测试设备经受更多状况的测试。
(4)尽量多地选择目的地址(IP、MAC等),在每个方向上构造大量的DMAC、DIP,考验被测试设备在存在大量MAC或者ARP表项时的转发性能。
(5)在测试过程当中,咱们应该选择尽量多的流量类型(MAC、VLAN、IPv四、IPv六、TCP/UDP、MPLS等),甚至一些错误报文(如IP/TCP/UDP Checksum错误、IP TTL为0、FCS错误)、真实的应用层流量。丰富的流量类型能够更全面地检验被测试设备在应对不一样业务流时的表现。
(6)测试应该可以快速找出所需的测试数据流。目前测试仪表均可以发送数以百万的测试数据流,而且能够对这些数据流进行跟踪统计。可是因为测试流量条目众多,如何从这百万的测试流量中找出须要的测试流量,对于问题定位相当重要。例如:须要能快速地从这100万条流量中找出哪100条转发平均时延最大,或者哪100条流量丢包最严重。只有可以快速地找到所须要的流量,才能提升测试效率,减小问题定位的时间。
(7)测试方法以及测试工具应该可以跟踪数据流里的多个字段。例如咱们首先能够根据数据流的源IP地址进行跟踪,而后又想看到这条流的TOS是多少。可以同时跟踪数据流里多个字段的测试工具能够极大地提升测试效率。
(8)不只仅要测试时延和抖动,并且要可以清晰地获得时延分布。知道精确的时延分布,能够帮助研发人员更好地优化被测设备的转发性能。
2 与路由相关的L2-3层高级测试技术探讨
对于路由设备,其最基本最重要的测试包括:路由容量测试(路由条目、路由邻居数等)、大路由表状况下转发性能测试、路由收敛测试、路由震荡测试。那么,咱们在作这些测试时,是否考虑了下面的状况:
(1)仿真的路由条目掩码是否过于单一?
(2)仿真的路由拓扑是否过于简单?
(3)是否考虑了应用层数据流在转发和路由收敛时的状况?
(4)是否考虑了多种协议共同工做时的状况?
(5)路由收敛时间测试的精度是否能够更高?
(6)是否考虑了路由震荡的多种状况?
下面咱们来逐条分析上述提到的问题:
(1)仿真的路由条目是否过于单一?现网上的路由设备中的路由条目掩码很是复杂,所以咱们在对路由设备进行测试时,模拟的路由条目也要尽量地模拟现网的状况,通告的路由条目的掩码要具备多样性,甚至把现网的路由条目灌入路由设备。
(2)仿真的路由拓扑是否过于简单?以OSPF为例:咱们是否只仿真了3类LSA或5类LSA?咱们须要仿真出更复杂的网络拓扑,具备更多类型LSA的拓扑。
(3)是否考虑了应用层数据流在转发和路由收敛时的状况?
首先来看看转发的状况:传统的路由转发测试只是使用测试仪给被测试设备通告了路由后,打入无状态的L2/3流量,来检验路由设备在大路由表下的转发性能。因为这种测试方法并不能检验路由设备是否能在现网环境下高效地运行,所以咱们不只仅应该完成无状态数据流的转发测试,更要测试L4/7应用层流量跑在通告的路由拓扑上的状况。
咱们再来看看应用层流量和无状态流量在路由震荡时的收敛状况,能够很清楚地看出,无状态流量能够很快地收敛,可是真实业务的流量收敛起来就慢了许多。
(4)是否考虑了多种协议共同工做时的状况?在测试中,路由设备应该同时启动多种路由协议,应该考虑组播路由协议和单播路由协议的协同工做,BFD和路由协议的协同工做,IPv4/v6路由协议的协同工做,甚至协议over协议的状况。
(5)路由收敛时间测试的精度是否能够更高?传统的路由收敛测试方法是:(Frames Delta)/(TX Frame Rate)=Tconvergence,精度不高,而且随traffic的包长不一样而形成测试精度不一样。更先进的测试方法是:Tport3,first timestamp–Tport2,last timestamp=Tconvergence,精度高(20ns),测试精度只和测试仪背板时钟晶振有关,精度稳定。
(6)是否考虑了路由震荡的多种状况?
通告/撤销路由条目形成的震荡(邻居关系仍在,路由条目可能部分震荡,或者所有震荡;邻居关系震荡(邻居关系创建/断开),路由条目所有震荡)。
邻居关系震荡又有不少种状况,例如:有Graceful Restart和没有Graceful Restart,相关路由协议Start/Stop,主备控制板倒换,相关链路UP/Down,路由设备出现重启现象等。
除了上述状况,咱们在作L2-3层测试时,还有哪些地方须要注意呢?
(1)QoS(部署QoS时和没有部署QoS时,流量转发结果的比较)。
(2)访控列表(部署ACL时和没有部署ACL时,流量转发结果的比较)。
(3)系统测试(非单台被测试设备-DUT、多台设备组成的被测试系统-SUT、多协议、多种应用)。
(4)稳定性测试(多端口、满负载、长时间、大流量、正常/异常状况)。
(5)DUT状态(测试过程当中,DUT的CPU利用率,内存占用状态等重要指标)等。
3 结束语
在愈来愈复杂的网络环境下,测试内容日趋复杂,高性能、功能强大且稳定的测试工具可以给测试工做者的工做带来极大的便利.
网络分流器做为网络安全领域网络监控前端重要基础装备,对于整个网络安全起到了关键做用!戎腾网络分流器!
核心网采集,骨干网采集,移动互联网采集,大数据采集设备!基于NPS400多核业务板戎腾CDP4000