一、协议解析
1.1协议介绍
基于TCP/UDP协议的报文,对其上层载荷信息进行的重放,就是通用协议的仿真。整个仿真过程是有连接状态的交互,即有真实的连接存在,超时或收到错误报文会断开连接或发送相应的错误码。
1.2协议用途
常用于数据库审计,或者IDS/IPS测试
二、通用协议在supernova测试仪中可应用的场景
2.1 网关模式
测试仪同时模拟客户端和服务端,测试流量穿过受测设备(防火墙、WAF、负载均衡),或以旁路形式引流到受测设备(IDS/IPS、审计设备),获得到受测设备的新建、并发、吞吐等性能参数。
2.2应用服务模式
测试仪只模拟客户端,向受测设备(如数据库服务器)发送流量,获取响应,得到其性能。
三、用例功能介绍
3.1分配cpu核
用例的运行需要分配cpu核数,用例的性能与分配的核数成正比。
3.2限速配置
对于通用协议中新建和并发用例而言,限速是指每秒完成通用协议中循环的次数,也就是每秒执行的重放次数。
对于吞吐而言,是指发送的链路层带宽速率。限速单位支持最低为bps,最高为Gbps,默认为Mbps。
固定速率:设置一个限速数值,运行过程中速率将一直保持该数值,上下浮动不超过1%;
随机速率:限速方式为随机速率时,设置最小、最大限速数值,速率将按每秒从最小速率和最大速率之间随机速率值运行直到运行结束;
梯形速率:限速方式为梯形速率时,设置一个限速数值,运行开始阶段速率将按时间或者百分比递增到该数值,中间过程将一直保持设置的限速数值,运行结束前速率按时间或者百分比递减至0,中间过程上下浮动不超过1%;
雪崩速率:限速方式为雪崩速率时,设置最大、最小速率和保持时长,测试过程中速率将以最大速率保持一段时长,再以最小速率保持一段时长,交替进行;
正弦速率:限速方式为正弦速率时,设置最大、最小速率和渐变时长,测试过程中速率会在每一个渐变时长内完成一次正弦变化;
楼梯速率:限速方式为楼梯速率时,设置初始、最大、递增速率和保持时长,测试过程中速率将以初始速率保持一段时长,按递增速率每次递增并保持一段时长,最后按最大速率一直运行结束,形状类似楼梯。
3.3抓包设置
可以设置需要抓的协议类型,指定IP地址、端口、文件大小或者包数。可在运行前或运行中设置抓包。
3.4虚拟用户数量
一个虚拟用户就会建立一条连接,多个虚拟用户数量就是运行用例同时建立多条连接。虚拟用户数量代表着并发的宽度。
3.5循环执行次数
执行通用协议流模板中循环的次数,对应运行界面中通用协议重放速率总数。如图所示
3.6接收超时时长
通用协议发送报文后,等待响应的超时秒数。
3.7循环次数
通用协议流模板对象里对内容的重放次数。
具体而言,一个会话执行一次(start-end)算一个循环;完成指定的循环次数后,会主动关闭会话。
四、网关模式案例
4.1 用例拓扑图
说明:测试仪使用“网关模式”模拟客户端和服务端,以旁路的形式
过一台审计设备,测试其数据库处理性能。
4.2 用例目的
本次案例测试审计系统每秒最大SQL处理速率
4.3 测试预计结果
被测试设备要求达到5000/秒的速率
五、网关案例测试步骤
这里以Oracel数据库报文为例进行验证测试。首先过滤pcap包,只含有1条SQL流,然后再导入。
5.2给上传的数据包设置循环100,保证每个用户执行100次。
点击编辑,更改循环次数为100。含义为一个会话循环执行100次,完成循环次数后,主动关闭会话。然后重新建立会话。
5.3创建通用协议新建模型,设置限速为爬坡10秒,维持100秒,下降10秒。
(1)在网关模式中,创建通用协议新建,选择直连模式。
(2)限速设置
设置梯形限速,上升10秒,维持100秒,下降10秒。客户端限速5000,即稳定后每秒重放速率保持5000次。
5.4参数配置
(1)参数选择默认。
(2)对象中选择刚才导入的pacp包
(3)服务端端口号改成1521
(4)启动用例,在监控中查看运行界面。
5.5用例运行结束,得到总的重放次数,也就是生成的SQL总数。
如图所示,重放总数为500407。
5.6 查看审计日志记录的日志总数。
审计日志记录的日志总数与测试仪测试仪重放总数一致,没有丢包。符合4.3中要求,测试通过。
六、应用服务模式案例
6.1用例拓扑
测试仪只模拟客户端与PostgreSQL服务器进行打流,获取服务器处理数据库的性能。
6.2应用服务模式下通用协议模拟postgresql客户端发送请求,测试服务器处理数据库的性能。
(1)抓一个真实postgresql命令的psql包,上传到通用协议对象中,或者克隆通用协议的模板
(2)修改报文内容,增加跳变域或变量,例如在创建库时,让库名每次都不同
利用变量来改变库名
通过跳变来控制库名
接收断言的配置
当服务器响应的报文与导入的报文载荷内容不一致时,需要修改接收断言
载荷长度:这条报文的载荷内容长度
特殊字符:以末尾的16进制字符结束
不匹配内容,只检查结束标志:只要符合结束标志中的内容,报文不会被丢弃
匹配全部载荷内容,匹配名称:既要匹配全部载荷内容又要匹配结束标志
匹配字符串或者正则表达式:要满足匹配的字符串或者正则表达式一致,也要满足结束标志
结束标志和接收断言为与关系,需同时满足
本次案例以结束标志中的特殊字符和接收断言的匹配字符串或正则表达式来作为示例
(3)设置抓包和循环执行次数,测试报文是否正确
确定无误后,修改参数,测试postgresql服务器的性能
6.3测试结果展示
服务器的最大新建速率为1600