Spirent TestCenter 中文教程入门使用 - 如何创建流量

发表日期:2024/12/24 浏览次数:
STC创建流量方式有两种,一种是Bound stream,另一种是Raw stream.

Bound stream流量创建方式是基于对象建流方式,流量的源和目的节点基于的对象是不同仪表端口中的提前创建好的Endpoint Endpoint可以是普通的Device,路由协议发布的Route,或者DHCP等接入协议分配到的地址等等,报文头的源和目的MAC/VLAN/IP等属性值都是继承了Endpoint的地址,Bound Stream最大优势是结合各种网络协议,批量的为多达几百个测试端口创建各种拓扑的复杂流量
Raw stream是在每一个portTraffic generator下面添加的,不依赖于其他任何协议,也不需要提前创建device, 一般用于纯流量测试 报文头的源和目的MAC/VLAN/IP等属性值也可以灵活配置,通过在报文头部的某一个字段进行递增和递减等操作,也能够构造复杂的流量模型。
通过前期的文章,我们知道了如何通过向导创建BGP device和发布BGP Route,那么这一期将通过向导方式来创建基于BGP RouteBound Stream流量,另外后面还会讲解Raw Stream流量的创建


Bound Stream流量
下面是Bound Stream流量创建用到的测试网络拓扑图(1)以及STC预先做好的配置(2), STC使用4个仪表Portport1->port4,每个Port分别创建一个BGP device ( device1->device4 ), 分别与DUT建立BGP邻居,并分别发布各两条BGP路由(1.0.0.0->4.0.1.0).
1.png
1 测试网络拓扑图        

2.png
2  BGP DeviceRoute预配置

1.启动Bound Stream流量创建向导
3.png
图3

2. 选择Ports
4.png
图4

3.选择源和目的Endpoints
源选择port1port2 BGP route,目的选择port3port4 BGP route, 然后左边一列依次选择Pair, Bidirectional, one-to-one, stream only generation选项,然后点击Add, 那么下面会显示两行双向流,后面会用比较多篇幅讲解这个界面中选项的作用。
5.png
5

Endpoints界面各选项介绍:
3.1 端口拓扑(distribution)  选项
 6.png 
6  端口拓扑
参考了RFC2889标准,有三种拓扑(Fully meshed, Backbone, Pair)可以供选择,默认拓扑是PairPair拓扑比较灵活,除了可以选择一个源端口和一个目的端口,达到端口一对一效果流量之外,也可以选择多个源端口或者多个目的端口,达到端口一对多或者多对一效果根据测试目的选择相应拓扑,例如整机转发压力测试可以选择Fully meshed拓扑

3.2 ProtocolEncapsulation列表
过滤需要显示在SourceDestination表中的Endpoints.
9.png
7

3.3 Orientation选项
UnidirectionalA->B单向, BidirectionalA<->B双向
10.png
8

3.4 Endpoints Mapping选项
11.png
每个端口一般创建有多个Endpoints, 例如Port1包含Device D1D2, Port2包含DeviceD3D4, 那么选择one-to-one情况下,那么流量是D1<->D3D2<->D4单向两条Flow(双向共四条Flow, 如果选择many-to-many那么流量是D1<->D3D1<->D4, D2<->D3, D2<->D4,单向四条Flow(双向八条FlowFlow的概念下面会详细讲解。
            
3.5 Stream only Generation选项
12.png
10
数据统计的粗细粒度来决定是否勾选这个选项。
我们首先要理解一下FlowStream的概念,一条Flow表示构建这条流量的OSI L2-L7报文头部的字段是唯一的,类似唯一的IP五元组,能够区分不同的流量,DUT可以根据不同流量做出转发决策STC可以在创建Bound Stream流量中选择不同的源和目的,或者在创建Raw Stream流量中对报文头部中的字段进行递增递减等操作,从而构造出很多不同的流量,也就是很多不同的Flow.
Stream是用在统计分析中的,一条Stream包含一个唯一的Stream ID,四个字节的Stream ID包含在20字节的思博伦签名字段当中STC收到数据包首先会检查是否有签名字段,如果有,那么就会接着检查Stream ID的值,STC会基于相同Stream ID的数据包分别进行独立的统计分析。
Stream only Generation选项作用是Stream ID如何映射到Flow,例如创建了两条Flow的流量,那么如果勾选上,那么两条Flow会各有一个Stream ID, 也就是两条Stream,每条Flow都可以独立统计,如果不勾选,那么只生成一条Stream,两条Flow会共用一个Stream ID, 合并进行统计。一般的测试场景就是一条Stream会对应多条Flow,方便合并进行统计

3.6 Show All Headers选项
勾选后,流量向导中的Frame界面中会显示全部的报文头,包括以太网头部。
13.png
图11

3.7 Bypass IP Subnet Checking选项
如果流量的源和目的IP不在一个网段,默认不勾选的情况下,流量的目的MAC用的是网关的MAC,如果勾选这个选项,虽然源和目的不在一个网段,但是还是使用目的IPMAC地址
14.png
12

4.Tunnel Binding界面
该界面可选,配置跟MPLSSRV6协议标签绑定相关,由于现在是普通的BGP route的流量, 默认配置就行了。
15.png
13

5. Frame Size界面相配置
该界面可以配置StreamBlock的名字1IP 头部protocolQOS字段的值2frame Size (Fixed, Random, Increment, Decrement, Auto, iMIX)3以及一些选项4,下面会利用一些篇幅讲解这些选项。
16.png
14

Frame Size界面各选项介绍:
5.1 Allow port to generate traffic to itself选项
17.png
15

有一种测试场景,Bound Stream的源和目的节点都在同一个仪表端口,也就是流量从发送端口发出到DUT后,DUT把流量原路返回给发送端口,那么勾上这个选项才能正常进行统计。

5.2 Expand Stream blocks under ports选项
18.png
16

前面讲过了FlowStream的概念,这里另外还要讲一下Streamblock概念才能更好理解这个选项,StreamBlock是具有一些共性stream的集合,StreamBlock提高了STC的扩展率和操作效率,能快速方便的配置大量的流
通过这个向导创建后在Traffic Generator主界面显示的也是一行一行的StreamBlock,一行Streamblock可能包含多条Stream
回到Endpoints界面的配置 (17),如果端口拓扑选择Backbone, 那么Port1端口会发送流量到Port3port4,然后这个选项选择“Multiple paths per streamblock”,那么Port1端口只生成一行Streamblock(图18,如果选择“One path per streamblock”,那么Port1端口会生成两行Streamblock(图19,分别对发往不同端口的流量单独创建一行Streamblock
19.png
17

20.png

18

21.png

19

5.3 High Speed Result Analysis选项
勾选上,发送和接收数据流都是硬件处理;不勾选,发送和接收都是CPU软件处理。默认是勾选上的,只有特殊情况才不勾选
22.png
20

5.4 Enable Analyzer Preload选项
勾选这个选项的目的是让接收端口知道期望收到哪条Stream的数据包,如果接收端口没有收到期望收到的某条Stream的任何数据包,那么它将会为这条Stream统计为100%丢包
23.png
21

6. Frame界面配置
勾选 Show AllFields”显示报文头部的全部字段,Bound Stream流量的报文头部继承了BGP RouteEthernetIP头部地址属性,所以这些属性显示的是灰色,无法在这里更改,但其它字段可以进行修改,可以通过点击 Add Header, 添加IPV4封装的上层头部,例如TCP/UDP头。

24.png

22

7. Traffic Load界面配置流量负载
配置流量调度模式和相应的流量负载,流量调度模式分别可以配置为Port based, Rate Based, Priority Based, Manual Based四种,具体四种详细定义需要单独另外文章展开讨论,在这里不做细谈,当前默认配置。
25.png
23

8. Rx Port界面选择流量的接收端口(24)
该界面配置可选,添加期望收到该流量的接收端口,根据测试的需要添加,如果添加了Rx Port并在Settings界面勾选 “collect stray frames” 选项(图25),那么如果不是期望的端口收到了该流量的数据包,这些数据包就会被统计为stray”帧(迷失帧)
26.png
24

27.png
25

9.完成流量创建并查看
9.1 可以通过点击 All Stream Blocks 查看全部端口已创建的StreamBlock(图26或者点击各自端口下的“Traffic Generator 查看这个端口作为发送端口的StreamBlock(图27
28.png
26

29.png

27

9.2 右键点击某条StreamBlock, 选择Preview, 可以查看这条StreamBlock包含两条Stream, 对应两条Flow  (已勾选Stream only generation)
30.png
28

10. 发送流量,查看结果
10.1 统计结果窗口依次选择“System Views->Streams->Stream Block Results”,启动BGP Device, BGP邻居建立完成,点击发送流量,一共有四个发送端口,每个端口一条Stream Block,那么在这个统计界面(图29)会显示四条Stream Block的统计,统计包含有丢包,乱序,重复包,时延值等等。
31.png
29

10.2 统计结果窗口依次选择“System Views->Streams-> Detailed Stream Results,因为每一条Streamblock包含两条Stream,那么统计界面会显示总共8Stream的统计(图30)。

32.png

30

Raw Stream流量
通过上一节创建bound stream流量,我们知道了FlowStream, Streamblock的概念,那么下面我将用Raw Stream方式建立一条Streamblock(下表), 包含三条Stream, 每一条Stream对应一条Flow.
33.png

1. 占用两个仪表端口,端口1点击"Add Raw Stream Block"
两个端口使用光纤直接连接,端口1作为发送流量端口,端口2作为接收统计端口
34.png


2. StreamBlock编辑窗口
2.1 General页,配置数据帧的Frame Size, Payload

  • Frame size:Fixed, Increment, Decrement, Random, Auto, iMIX
  • Payload fill constant和Payload Fill type:  Payload fill constant配置的是payload的前四个16进制数,可以填全0,全1,AAAA,5555,0F0F, FFFF,剩余的payload填充
    由Payload fill type决定,可以配置Constant, Increment, Decrement, PRBS
  • Insert FCS error: 是否发送FCS error帧
  • Include Signature Field:  发送的数据帧payload是否带20字节的思博伦签名字段

35.png


2.2 Frame
a. 默认是EthernetII+IPV4封装,可以通过删除,添加,插入,修改等操作得到需要的各种头部和字段

36.png


b. 修改源和目的IP地址

37.png


c. 右键点击Source,选择Insert IPv4 Modifier

38.png


d. Modifier对话框
选择increment递增,递增数目Count3,选择Use Streams 该选项功能同Bound Stream向导中的“Stream only Generation),点击OK

39.png


e. 按照同样步骤给Destination添加递增选项,最终显示如下图

40.png


3.  Preview页,查看最终生成的流量

41.png


4. 查看统计
在左右统计窗口同时打开“Stream Block Results”和“Detail Stream Results

42.png

    
5. 抓包
在端口2中进行抓包,下面是实际发送的数据包,可以查看到是仪表是轮询着发送三条flow的数据包

43.png