思博伦通信
思博伦技术专栏
您的测试是否适应真实的世界
——为什么真实的测试需要的是仿真,而不仅仅是对4~7层的模拟
思博伦通信
编者按:在缺少真正的安全和性能测试时,我们看到的往往是终端用户的不满、产品开发或服务交付中的延误、收入损失,以及其它财务方面的赔偿,例如巨额的罚金等。真实且恰当的测试可以帮助您在网络和运营中避免这些类型的重大风险,更重要的是,可以避免您的声誉遭受日益严重的损害。思博伦通信的《您的测试是否适应真实的世界》一文对为什么真实的测试需要的是仿真,而不仅仅是对4~7层的模拟进行了详细的分析和研究。为了树立对系统的信心,需要使用真实的测试场景对其进行连续的测试和监视,这就需要使用仿真而不是使用模拟的场景,因为后者只能做到形似,而无法复制出真实的现实环境。
如今的世界,永远在线,永远联网,我们也都期待能享有安全、无缝且无拘无束的在线体验。在许多情况下,必须遵守一致性要求和服务水平协议,才能满足和/或超越这些期待。然而,在缺少真正的安全和性能测试时,我们看到的往往是终端用户的不满、产品开发或服务交付中的延误、收入损失,以及其它财务方面的赔偿,例如巨额的罚金等。真实且恰当的测试可以帮助您在网络和运营中避免这些类型的重大风险,更重要的是,可以避免您的声誉遭受日益严重的损害。
利用可支持最高水平真实性的测试设备,您将能够确保通过真实的测试来充分实现预期的性能、可用性和扩展能力水平。正因如此,要想在测试中实现应有的真实性,最关键的就是选择能够仿真的测试解决方案,而不仅仅是具备模拟的能力。
在反映真实世界的测试中,最重要的是仿真出整个网络,而不仅仅是单个交换机和路由器。这一过程中包含与服务质量(QoS)相关的各种控制变量,例如时延和包丢失等。4~7层的真实网络测试还要涉及到对TCP/IP栈和IPSec等安全协议的各种行为的仿真。这类测试还包括与体验质量(QoE)相关的各种控制变量,例如响应时间和视频质量等。
纸面上看起来,测试解决方案常常十分相似。要确保找到正确的测试解决方案,您可以在做出最后的选择之前考虑对它们进行一次实战或深度试用。通过这种前瞻且连续的方法,可以让您的联网产品和服务经受攻击的考验并得到强化,也只有这样您才能为意外情况做好计划,并确保您的测试确实适合您所在环境的独特要求。
测试设备应当能够实现完整TCP/IP栈上的流量生成,包括4~7层,以及第2层在内。由于各机构都在网络的建设和防护方面投入了巨大的资源,因此要想维持整个运营和基础设施的完整性和连续性,性能和安全测试就具有至关重要的意义。
为确保有能力应对持续增加的流量负载,有些客户可能会超量采购并/或超量供应硬件和软件,希望以此来确保运营的安全稳妥。如果能够在正确的测试解决方案中进行恰当的投资,就可以避免超量供应所带来的过度支出。
要想真正地测试有状态应用感知安全设备,真实性必不可少。有效的测试还需要另外一个重要的组成部分:适合的测试解决方案。这一过程中的挑战在于,要选择可实现最高水平测试真实性的测试解决方案,而这也是产生有意义测试结果所不可或缺的。
目前,市面上有多种不同的类型测试解决方案,包括免费软件、自研解决方案以及商用解决方案选项。在网络测试这个纷繁复杂的世界中,每种类型的解决方案都有其位置。但如果需要的是让人充满信心的结果,测试必须根植于特有的测试需求和环境。测试应生成真实的有状态终端用户流量,否则那种避重就轻且流于表面的测试(缺少适当的被测负载)或许只会创造出一种虚假的安全感。
●验证网络设备,发现性能极限。
●通过概念验证(PoC)对网络设计和升级执行尽职审查。
●根据要求的变化,规划出扩展和增长的空间,为网络资源的恰当供应提供支持。
●确认自己所测试的是网络所具备的真实行为。
●执行生产前和生产过程中的测试,对现实系统的行为建立信心。
●了解生产流量的模式,以及如何对其进行测试。
●确保安全解决方案能够在负载下经受住考验。
测试仿真和测试模拟通常是两个可以互换使用的概念。然而,两者并不是一回事。测试仿真指的是模仿、复制或重现具体的场景,从而重新创造出某个时间点的快照。而测试模拟是一种对网络场景的编造,其目标是与某个场景相似,且如果不仔细评价的话只要说得过去或经得起推敲即可。尽管两者之间存在一种微妙的相似性,但要想确保真实的测试,两者的区别至关重要。
要想更好地理解两者的异同,可参考如下的例子:
●测试仿真:该解决方案的仿真能力可以生成合法且真实的负载。利用这种方式,可以对目标系统的额外特性和能力加以测试。仿真还可以驱动一些间接行为,例如向目标系统的CPU发出更高的需求。这是一层非常重要的真实性,尤其是在运行性能或扩展能力测试时。
●测试模拟:该测试解决方案的模拟能力可以生成多种TCP/IP流量,但无法提供有意义的负载。这样不仅无法让目标系统处理负载,还无法针对那些对应的特性和能力施加考验,因为只有真实的负载才能做到这一点。在考虑4~7层更加详细的真实测试场景时,仿真的优点会变得愈发明显。
正如以上例子所示,测试仿真比模拟更有价值。与此同时,由于以下几个原因,仿真的重要性也在不断提高:
——设备更加智能化。从防火墙、负载均衡器,到交换机和路由器的各类网络设备都具备了越来越复杂的逻辑和状态管理。仿真是生成多种不同设备状态,并对相关逻辑进行考验的唯一办法。
——OSI模型中的真实负载需求。例如,为了测试支持深层包检查(DPI)的设备,必须在OSI模型的所有层使用真实的负载。恰当的仿真还必须确保在测试系统与被测系统(SUT)之间交换正确的流量序列。
——设备正承担着多种角色。随着设备功能的增多,设备上的某项活动对同一设备上其它活动产生影响的可能性也变得更大。例如,通常运行虚拟交换机的服务器也在运行其它应用。这样就会形成多种应用对CPU等共享资源的竞争。仿真可以实现对这些间接影响的测试,例如虚拟交换机产生更大的CPU消费等。
——停机、服务中断和故障带来的成本正在不断提高。生产网络中存在的单个问题可能会造成多个类别中的成本增加,包括对业务的干扰、丢失的收入、终端用户生产力、IT生产力以及探测和恢复的相关成本等。然而,如果无法实现真实的仿真测试,实验室中“似乎能用”的东西可能会在现实世界中遭遇惨败。
在考虑4~7层更加详细的真实测试场景时,仿真的优点会变得愈发明显。
目前,4~7层出现了越来越多的复杂精密的高性能安全和应用感知设备。这一因素与其它因素结合在一起,对测试设备的网络仿真能力的复杂性提出了更高的要求。如果4~7层设备没有经过适当的测试,它们将会在生产网络中面临更高的故障风险。这些设备出现的故障可能让网络在威胁面前大门洞开,而无法抵御其本应对抗的各种威胁。
真实的流量对于DPI和内容感知设备也具有至关重要的意义。在这方面的要求涉及到了多种应用协议和流量。尽管HTTP是一种常用的协议,但必须意识到,强健的4~7层测试解决方案所应支持的远不止HTTP。例如,此类解决方案也应支持SSL和IPSec流量,因为有了它们才能更好地反映出现实世界的真实情况。
由于最重要的网络流量往往都是经过加密的,要实现恰当的网络仿真,就要求测试设备能够生成加密的数据交换。此外,SSL和IPSec的终结设备传统上都只具备较低的性能,因为它们的运行都是CPU密集型的。如果您的业务要用到安全通信,就应当以尽可能接近设备实际使用的方式对其进行测试。
不同的机构拥有不同类型的应用,包括各类定制应用在内。因此,测试解决方案必须提供一系列的机制,能够驱动与这些应用相关的所有不同流量,当然也包括定制应用。有些测试解决方案的能力范围仅限于简单的流量捕捉和回放,而不具备驱动有状态应用交换的能力。为了恰当地仿真出定制应用流量,测试工程师需要使用可创建相同定制流量剖面,并在极端规模下驱动这些流量的能力。
在性能方面,业界关注的焦点已经从2、3层的服务质量(QoS)转向了4~7层的体验质量(QoE)。这是一项非常重要的区别,因为网络提供的高性能并不总是等同于较高的客户体验,而高性能和糟糕客户体验的事情常常会同时出现。仅凭IP流量的时延大小并不能确定终端用户的体验到底如何。
要想准确地测试体验质量(QoE),测试设备需要具备生成真实终端用户流量的能力。在这种情况下,测试流量必须反映出终端用户主观感受中的各种变化,包括显性和隐性的变化。为实现这一目标,测试工程师应当有能力对响应时间、语音质量和视频质量等变量进行控制和调节。
找到正确的测试设备可能是一项巨大的挑战,尤其是当“模拟”被错误地表达为“仿真”时。如果某种设备将自己描述为“支持仿真”,千万不要选择该设备。应当进行更深入地探究,确认该设备确实可以精确地复制网络中最重要的应用、设备和协议的内部和外部行为。仿真所具有的深度、广度和真实度才是实现精确测试过程中的最重要的因素。
复杂、精密的测试仿真意味着根据有状态的互动来复制出设备之间真切的行为和流量。如果有状态设备收到的只是随机流量和其中包含的傻瓜负载,那么真实性将无从谈起。这些流量必须自始至终承载着包含特定意义的对话内容。
要实现真实性,测试解决方案必备的最重要组成部分之一,就是允许工程师控制栈中诸多变量和域的定制TCP/IP栈。不幸的是,有些解决方案只是呆在操作系统之上,并调用Socket的API。虽然多种TCP/IP流量都可以使用这些Socket来发送,但精细的控制却荡然无存。相比之下,如果能够直接访问TCP/IP栈中的任意层,则可以有效控制畸形包、丢失包以及重传等特性。
易用性和灵活的用户选项则是另外一项重要的选择标准。虽然测试解决方案需要具备强大的测试选项,但测试团队的职责和经验水平也是存在差异的。因此,测试解决方案需要具备供应可视性的灵活能力,同时还应提供一个直观的用户界面,让所有的用户都能根据自己的职责灵活地加以应用。
在今天的应用感知世界中,消费者对体验质量(QoE)和服务质量(QoS)的期待越来越高。随需解决方案也必须变得更快、更安全。如果无法满足消费者的期望,则可能对业务带来严重的不良效应。服务的中断不仅会对业务造成直接影响,而且会让客户对业务失去信心,进而影响其长期的购买模式。
为了树立对系统的信心,需要使用真实的测试场景地其进行连续的测试和监视。这就需要使用仿真而不是使用模拟的场景,因为后者只能做到形似,而无法复制出真实的现实环境。