组网方案的可靠性测试,可归纳为以下几大类:
1、网络系统持续长时间、大压力高负荷、高频率震荡条件下的持续运行能力,即Duration测试。
2、网络系统告警管理功能、系统故障定位手段能力评估。
3、单点故障情况下系统自动恢复时间。
4、验证链路聚合、MSTP、RRPP、BFD、GR、VRRP、ECMP、IRF等HA(High Availability)特性的组合部署功能,并通过调整达到最佳的组合应用效果。
5、构造各类攻击,从端到端对网络系统进行攻击。此类测试往往可以融合在Duration测试中共同完成。
网络系统持续运行能力测试
网络系统持续运行能力测试的目标是要通过更恶劣环境的测试,以确保网络系统在客户的网络环境中上线后,在各种冲击和压力下,仍旧能够保持稳定运行。测试方法很明确:在组网测试环境中对运营商或者行业客户网络的控制平面和数据平面模型进行模拟,保持环境在大压力并且震荡的条件下持续运行,同时监控网络各个整体运行状况作为测试结果数据。
测试参数的设计是保证测试效果的重点。其内容主要包括以下几部分。
1、 测试组网设备参数。
以客户的原始组网模型进行组网测试是最理想的环境。但是考虑成本因素,实际测试投入中往往难以搭建相对真实网络1:1的测试网络环境。为实现测试目的,充分验证系统的可靠性,测试组网的抽象和取舍是重点。抽象简化组网规模的原则是:充分分析暴露网络系统的性能压力瓶颈,重点保留系统中的瓶颈关键节点。
例如,针对一个接入至核心层结构明晰的树形网络,常用的可行方案是在业务流量压力最大的核心层采用1:1组网测试。树形结构网络的核心层的设备数量较少,这也为测试环境的1:1组网提供了可能性。
汇聚和接入层设备数量逐层递减,接入层设备采用几个分支模拟真实应用,其余分支使用高性能测试仪器的多个端口直接连接在汇聚层设备上模拟拓扑和流量。可根据被测试网络的控制平明和数据平面路径,灵活调整测试组网。
2、 控制平面和数据平面参数。
即协议模型和流量模型。协议模型可以通过客户的组网的规划和行业抽象,得到较为明确的数据参数。由于应用系统与网络系统的维护技术人员之间的业务理解往往存在壁垒,并且在网络规划设计阶段,无法通过流量监控获取模型,所以流量模型难以准确界定,因此成为困扰组网方案测试的主要因素。比较有效的手段是针对行业特征进行分析,并结合以往的经验来设定普遍意义的参数。参数还可根据不同类型客户的实际上线预期进行加权预估。
3、 振荡系数与方法。
针对控制平面和数据平面的振荡是Duration测试的基本要求之一。网络系统是一个动态的环境。来自网络系统边缘与出口的各类输入输出变化,会产生更大的压力和暴露更多的瓶颈。而通过剧烈高频度的振荡,营造比客户实际环境更加恶劣的网络,能够更快更充分暴露较深或者需要较长时间才能够发现的缺陷。通过振荡在测试网络中掀起的狂风巨浪,会让我们更加明确了解网络系统的健康可靠程度。
网络系统测试的振荡系数常用经验值为30%,即加载在测试系统的协议表项和流量在已设定的参数基础上,周期性上下浮动30%。并可根据需要调整以观察不同频率条件下的振荡结果,例如可分别以5分钟、10分钟、30分钟、1小时为一个周期。以路由条数为例,路由振荡导致整个网络系统中各个节点大量发布、删除路由信息,并引发流量路径的迁移,给予测试系统更大的不稳定性压力。实际测试时,还需要根据行业客户应用特征网络对系数进一步分析,灵活调整。例如,互联网行业客户,普遍存在搜索类业务突发,对流量振荡的要求更高。
振荡的模拟可通过业界常用测试仪器较为方便实现,本文不再赘述。
网络系统预警管理功能、系统故障定位手段能力评估
网络系统必须具备系统风险预警功能和便利的故障定位维护功能。
网管系统对网络的实时监控,预先告警功能主要包括网络节点CPU、内存、端口流量、端口状态等参数的监控告警。当占用率或者端口流量持续超过阈值,即可触发告警,使管理员提前预知风险,进行分析维护。
系统故障定位手段为事后维护。一旦网络系统产生故障点,网络管理系统需记录网络切换事件,方便快速帮助管理员找到故障点,并保存故障信息和系统状态,便于后期缺陷复现定位。
维护类测试以功能测试为主,通过打入攻击CPU的流量、制造流量拥塞等方法构造各类预警条件,通过shutdown或者重启设备等命令行,插拔端口、关闭电源等手段检验网络系统对故障点的定位和告警信息是否完备。若设备支持可维护性测试特性,还可通过设备软件的可维护性测试命令,构造设备节点系统软硬件故障,查看系统保存的故障状态信息是否完备,以复现定位缺陷。
测试时,同样需在大压力复杂条件下执行,以检测告警、故障信息是否得到高优先级处理。
从端到端对网络系统进行各类攻击测试
此类测试往往融合在Duration测试中共同完成。使用测试仪器公司、开源软件、自行开发的各类异常报文攻击工具,可以实现对网络系统的安全漏洞、健壮性的综合测试。
网络系统方案的可靠性测试的所有测试内容,都需要在整网环境下执行,以保证网络系统的复杂关联性,互相影响得到充分验证。