

Spirent TestCenter 中文教程入門使用 - 如何創(chuàng)建流量
→Spirent TestCenter以太網(wǎng)測試儀
STC創(chuàng)建流量方式有兩種,一種是Bound stream,另一種是Raw stream.
Bound stream流量創(chuàng)建方式是基于對(duì)象建流方式,流量的源和目的節(jié)點(diǎn)基于的對(duì)象是不同儀表端口中的提前創(chuàng)建好的Endpoint, Endpoint可以是普通的Device,路由協(xié)議發(fā)布的Route,或者DHCP等接入?yún)f(xié)議分配到的地址等等,報(bào)文頭的源和目的MAC/VLAN/IP等屬性值都是繼承了Endpoint的地址,Bound Stream最大優(yōu)勢是結(jié)合各種網(wǎng)絡(luò)協(xié)議,批量的為多達(dá)幾百個(gè)測試端口創(chuàng)建各種拓?fù)涞膹?fù)雜流量。
Raw stream是在每一個(gè)port的Traffic generator下面添加的,不依賴于其他任何協(xié)議,也不需要提前創(chuàng)建device, 一般用于純流量測試, 報(bào)文頭的源和目的MAC/VLAN/IP等屬性值也可以靈活配置,通過在報(bào)文頭部的某一個(gè)字段進(jìn)行遞增和遞減等操作,也能夠構(gòu)造復(fù)雜的流量模型。
通過前期的文章,我們知道了如何通過向?qū)?chuàng)建BGP device和發(fā)布BGP Route,那么這一期將通過向?qū)Х绞絹?/span>創(chuàng)建基于BGP Route的Bound Stream流量,另外后面還會(huì)講解Raw Stream流量的創(chuàng)建。
Bound Stream流量
下面是Bound Stream流量創(chuàng)建用到的測試網(wǎng)絡(luò)拓?fù)鋱D(圖1)以及STC預(yù)先做好的配置(圖2), STC使用4個(gè)儀表Port(port1->port4),每個(gè)Port分別創(chuàng)建一個(gè)BGP device ( device1->device4 ), 分別與DUT建立BGP鄰居,并分別發(fā)布各兩條BGP路由(1.0.0.0->4.0.1.0).

圖1 測試網(wǎng)絡(luò)拓?fù)鋱D

圖2 BGP Device和Route預(yù)配置
1.啟動(dòng)Bound Stream流量創(chuàng)建向?qū)?/span>

圖3
2. 選擇Ports

圖4
3.選擇源和目的Endpoints
源選擇port1和port2 BGP route,目的選擇port3和port4 BGP route, 然后左邊一列依次選擇Pair, Bidirectional, one-to-one, stream only generation選項(xiàng),然后點(diǎn)擊Add, 那么下面會(huì)顯示兩行雙向流,后面會(huì)用比較多篇幅講解這個(gè)界面中選項(xiàng)的作用。

圖5
Endpoints界面各選項(xiàng)介紹:
3.1 端口拓?fù)?/span>(distribution) 選項(xiàng)
圖6 端口拓?fù)?/span>
參考了RFC2889標(biāo)準(zhǔn),有三種拓?fù)洌‵ully meshed, Backbone, Pair)可以供選擇,默認(rèn)拓?fù)涫荘air,Pair拓?fù)浔容^靈活,除了可以選擇一個(gè)源端口和一個(gè)目的端口,達(dá)到端口一對(duì)一效果流量之外,也可以選擇多個(gè)源端口或者多個(gè)目的端口,達(dá)到端口一對(duì)多或者多對(duì)一效果。根據(jù)測試目的選擇相應(yīng)拓?fù)洌缯麢C(jī)轉(zhuǎn)發(fā)壓力測試可以選擇Fully meshed拓?fù)?/span>。
3.2 Protocol和Encapsulation列表
過濾需要顯示在Source和Destination表中的Endpoints.

圖7
3.3 Orientation選項(xiàng)
Unidirectional是A->B單向, Bidirectional是A<->B雙向

圖8
3.4 Endpoints Mapping選項(xiàng)
圖9
每個(gè)端口一般創(chuàng)建有多個(gè)Endpoints, 例如Port1包含Device D1和D2, Port2包含DeviceD3和D4, 那么選擇one-to-one情況下,那么流量是D1<->D3和D2<->D4,單向兩條Flow(雙向共四條Flow), 如果選擇many-to-many那么流量是D1<->D3,D1<->D4, D2<->D3, D2<->D4,單向四條Flow(雙向八條Flow),F(xiàn)low的概念下面會(huì)詳細(xì)講解。
3.5 Stream only Generation選項(xiàng)

圖10
數(shù)據(jù)統(tǒng)計(jì)的粗細(xì)粒度來決定是否勾選這個(gè)選項(xiàng)。
我們首先要理解一下Flow和Stream的概念,一條Flow表示構(gòu)建這條流量的OSI L2-L7報(bào)文頭部的字段是唯一的,類似唯一的IP五元組,能夠區(qū)分不同的流量,DUT可以根據(jù)不同流量做出轉(zhuǎn)發(fā)決策。STC可以在創(chuàng)建Bound Stream流量中選擇不同的源和目的,或者在創(chuàng)建Raw Stream流量中對(duì)報(bào)文頭部中的字段進(jìn)行遞增遞減等操作,從而構(gòu)造出很多不同的流量,也就是很多不同的Flow.
Stream是用在統(tǒng)計(jì)分析中的,一條Stream包含一個(gè)唯一的Stream ID,四個(gè)字節(jié)的Stream ID包含在20字節(jié)的思博倫簽名字段當(dāng)中,STC收到數(shù)據(jù)包首先會(huì)檢查是否有簽名字段,如果有,那么就會(huì)接著檢查Stream ID的值,STC會(huì)基于相同Stream ID的數(shù)據(jù)包分別進(jìn)行獨(dú)立的統(tǒng)計(jì)分析。
Stream only Generation選項(xiàng)作用是Stream ID如何映射到Flow,例如創(chuàng)建了兩條Flow的流量,那么如果勾選上,那么兩條Flow會(huì)各有一個(gè)Stream ID, 也就是兩條Stream,每條Flow都可以獨(dú)立統(tǒng)計(jì),如果不勾選,那么只生成一條Stream,兩條Flow會(huì)共用一個(gè)Stream ID, 合并進(jìn)行統(tǒng)計(jì)。一般的測試場景就是一條Stream會(huì)對(duì)應(yīng)多條Flow,方便合并進(jìn)行統(tǒng)計(jì)。
3.6 Show All Headers選項(xiàng)
勾選后,流量向?qū)е械?/span>Frame界面中會(huì)顯示全部的報(bào)文頭,包括以太網(wǎng)頭部。

圖11
3.7 Bypass IP Subnet Checking選項(xiàng)
如果流量的源和目的IP不在一個(gè)網(wǎng)段,默認(rèn)不勾選的情況下,流量的目的MAC用的是網(wǎng)關(guān)的MAC,如果勾選這個(gè)選項(xiàng),雖然源和目的不在一個(gè)網(wǎng)段,但是還是使用目的IP的MAC地址。

圖12
4.Tunnel Binding界面
該界面可選,配置跟MPLS和SRV6協(xié)議標(biāo)簽綁定相關(guān),由于現(xiàn)在是普通的BGP route的流量, 默認(rèn)配置就行了。

圖13
5. Frame Size界面相配置
該界面可以配置StreamBlock的名字(1),IP 頭部中protocol和QOS字段的值(2),frame Size (Fixed, Random, Increment, Decrement, Auto, iMIX)(3),以及一些選項(xiàng)(4),下面會(huì)利用一些篇幅講解這些選項(xiàng)。

圖14
Frame Size界面各選項(xiàng)介紹:
5.1 Allow port to generate traffic to itself選項(xiàng)

圖15
有一種測試場景,Bound Stream的源和目的節(jié)點(diǎn)都在同一個(gè)儀表端口,也就是流量從發(fā)送端口發(fā)出到DUT后,DUT把流量原路返回給發(fā)送端口,那么勾上這個(gè)選項(xiàng)才能正常進(jìn)行統(tǒng)計(jì)。
5.2 Expand Stream blocks under ports選項(xiàng)

圖16
前面講過了Flow和Stream的概念,這里另外還要講一下Streamblock概念才能更好理解這個(gè)選項(xiàng),StreamBlock是具有一些共性stream的集合,StreamBlock提高了STC的擴(kuò)展率和操作效率,能快速方便的配置大量的流。
通過這個(gè)向?qū)?chuàng)建后在Traffic Generator主界面顯示的也是一行一行的StreamBlock,一行Streamblock可能包含多條Stream。
回到Endpoints界面的配置 (圖17),如果端口拓?fù)溥x擇Backbone, 那么Port1端口會(huì)發(fā)送流量到Port3和port4,然后這個(gè)選項(xiàng)選擇“Multiple paths per streamblock”,那么Port1端口只生成一行Streamblock(圖18),如果選擇“One path per streamblock”,那么Port1端口會(huì)生成兩行Streamblock(圖19),分別對(duì)發(fā)往不同端口的流量單獨(dú)創(chuàng)建一行Streamblock。

圖17

圖18

圖19
5.3 High Speed Result Analysis選項(xiàng)
勾選上,發(fā)送和接收數(shù)據(jù)流都是硬件處理;不勾選,發(fā)送和接收都是CPU軟件處理。默認(rèn)是勾選上的,只有特殊情況才不勾選。

圖20
5.4 Enable Analyzer Preload選項(xiàng)
勾選這個(gè)選項(xiàng)的目的是讓接收端口知道期望收到哪條Stream的數(shù)據(jù)包,如果接收端口沒有收到期望收到的某條Stream的任何數(shù)據(jù)包,那么它將會(huì)為這條Stream統(tǒng)計(jì)為100%丟包。

圖21
6. Frame界面配置
勾選 “Show AllFields”顯示報(bào)文頭部的全部字段,Bound Stream流量的報(bào)文頭部繼承了BGP Route的Ethernet和IP頭部地址屬性,所以這些屬性顯示的是灰色,無法在這里更改,但其它字段可以進(jìn)行修改,可以通過點(diǎn)擊 “Add Header”, 添加IPV4封裝的上層頭部,例如TCP/UDP頭。

圖22
7. Traffic Load界面配置流量負(fù)載
配置流量調(diào)度模式和相應(yīng)的流量負(fù)載,流量調(diào)度模式分別可以配置為Port based, Rate Based, Priority Based, Manual Based四種,具體四種詳細(xì)定義需要單獨(dú)另外文章展開討論,在這里不做細(xì)談,當(dāng)前默認(rèn)配置。

圖23
8. Rx Port界面選擇流量的接收端口(圖24)
該界面配置可選,添加期望收到該流量的接收端口,根據(jù)測試的需要添加,如果添加了Rx Port并在Settings界面勾選 “collect stray frames” 選項(xiàng)(圖25),那么如果不是期望的端口收到了該流量的數(shù)據(jù)包,這些數(shù)據(jù)包就會(huì)被統(tǒng)計(jì)為“stray”幀(迷失幀)。

圖24

圖25
9.完成流量創(chuàng)建并查看
9.1 可以通過點(diǎn)擊 “All Stream Blocks” 查看全部端口已創(chuàng)建的StreamBlock(圖26),或者點(diǎn)擊各自端口下的“Traffic Generator” 查看這個(gè)端口作為發(fā)送端口的StreamBlock(圖27)

圖26

圖27
9.2 右鍵點(diǎn)擊某條StreamBlock, 選擇Preview, 可以查看這條StreamBlock包含兩條Stream, 對(duì)應(yīng)兩條Flow (已勾選Stream only generation)

圖28
10. 發(fā)送流量,查看結(jié)果
10.1 統(tǒng)計(jì)結(jié)果窗口依次選擇“System Views”->“Streams”->“Stream Block Results”,啟動(dòng)BGP Device, 等BGP鄰居建立完成,點(diǎn)擊發(fā)送流量,一共有四個(gè)發(fā)送端口,每個(gè)端口一條Stream Block,那么在這個(gè)統(tǒng)計(jì)界面(圖29)會(huì)顯示四條Stream Block的統(tǒng)計(jì),統(tǒng)計(jì)包含有丟包,亂序,重復(fù)包,時(shí)延值等等。

圖29
10.2 統(tǒng)計(jì)結(jié)果窗口依次選擇“System Views”->“Streams”-> “Detailed Stream Results”,因?yàn)槊恳粭lStreamblock包含兩條Stream,那么統(tǒng)計(jì)界面會(huì)顯示總共8條Stream的統(tǒng)計(jì)(圖30)。

圖30
Raw Stream流量
通過上一節(jié)創(chuàng)建bound stream流量,我們知道了Flow,Stream, Streamblock的概念,那么下面我將用Raw Stream方式建立一條Streamblock(下表), 包含三條Stream, 每一條Stream對(duì)應(yīng)一條Flow.

1. 占用兩個(gè)儀表端口,端口1點(diǎn)擊"Add Raw Stream Block"
兩個(gè)端口使用光纖直接連接,端口1作為發(fā)送流量端口,端口2作為接收統(tǒng)計(jì)端口

2. StreamBlock編輯窗口
2.1 General頁,配置數(shù)據(jù)幀的Frame Size, Payload
Frame size:Fixed, Increment, Decrement, Random, Auto, iMIX
Payload fill constant和Payload Fill type: Payload fill constant配置的是payload的前四個(gè)16進(jìn)制數(shù),可以填全0,全1,AAAA,5555,0F0F, FFFF,剩余的payload填充
由Payload fill type決定,可以配置Constant, Increment, Decrement, PRBS
Insert FCS error: 是否發(fā)送FCS error幀
Include Signature Field: 發(fā)送的數(shù)據(jù)幀payload是否帶20字節(jié)的思博倫簽名字段

2.2 Frame頁
a. 默認(rèn)是EthernetII+IPV4封裝,可以通過刪除,添加,插入,修改等操作得到需要的各種頭部和字段

b. 修改源和目的IP地址

c. 右鍵點(diǎn)擊Source,選擇Insert IPv4 Modifier

d. Modifier對(duì)話框
選擇increment遞增,遞增數(shù)目Count是3,選擇Use Streams (該選項(xiàng)功能同Bound Stream向?qū)е械摹癝tream only Generation”),點(diǎn)擊OK

e. 按照同樣步驟給Destination添加遞增選項(xiàng),最終顯示如下圖

3. Preview頁,查看最終生成的流量

4. 查看統(tǒng)計(jì)
在左右統(tǒng)計(jì)窗口同時(shí)打開“Stream Block Results”和“Detail Stream Results”

5. 抓包
在端口2中進(jìn)行抓包,下面是實(shí)際發(fā)送的數(shù)據(jù)包,可以查看到是儀表是輪詢著發(fā)送三條flow的數(shù)據(jù)包




