关键词不能为空

当前您在: 主页 > 英语 >

Openflow Switch 测试方法学

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-19 12:21
tags:

-

2021年2月19日发(作者:同系物)


Contents


1.


2.


3.


4.




Test case 1


:测试


Openflow


交换机的流表容量


................... .................................................. .......... 1


Test case 2


:测试


Openflow


交换机的流表学习速率


................. .................................................. .... 5


Test case 3


:测试


Openflow


交换机的吞吐量,时延,抖动和丢包率


......................................... 12


Test case 4


:测试


Openflow


交换机的流表震荡


................... .................................................. ........ 14


1.



Test case 1


:测试


Ope nflow


交换机的流表容量




?



测试目的:


测试


Openflow


交换机最多能支持的流表数量




?



测试拓扑:





?



预配置


(


请注意,预配置部分是写本文需要,在


OpenvSwitch


上所做的配置。读者在用


OVS



实验时候可参考此配置,实际测试则不需要进行此部分

< p>
)


?



设置


br1



flow table 0


表项容量为


100


Step 1


:在


OVS


ovsdb


中,在


Bridge


表中,把


br1


条目的


flow_tables


列中关联


br1



flow_table 0,


并且 在


Flow_Table


表中创建一行。



ovs-vsctl set Bridge br1 flow_tables:0=@table0 -- --id=@table0 create Flow_Table name=table0



查看


Bridge


表和


Flow_Table< /p>


表:



[root@localhostmrzhao]# ovs-vsctl list bridge


_uuid



: c5601237-6574-465b-843f-ac52c61d5bad


Controller


datapath_id


: [bca3710d-1280-44eb-8436-20bbe5c8161c]


:


datapath_type


:


external_ids


fail_mode


flood_vlans


flow_tables


ipfix


: []


: {}


: []


: []


: {0=bebe5b02-6216-4a8a-af5d-27f1dde2bf48}


mirrors


: []


name


:


netflow


: []


other_config


: {}


ports


: [358480c2-0709-476d-8446-3020584454d0, 4f1a7238-d611-4345-8b06-83a62d414952,


5dd30471-07c4-4eac-90a1-0cf7d96e7b07, a4c3be4c-bda5-4686-af08-4e59d51040bd, eaf6eb05-0d95-


4775-9abb-1b139469a9b9]


protocols


sflow


: []


: []


status


: {}


stp_enable


: false


[root@localhostmrzhao]# ovs-vsctl list Flow_table


_uuid


: bebe5b02-6216-4a8a-af5d-27f1dde2bf48


: {}


: []


: []


:


external_ids


flow_limit


groups



name



overflow_policy


: []


prefixes



: []


Step 2


:设置


br1



table0


的流表大小是


100


条流表项



ovs-vsctl set Flow_Table table0 flow_limit=100


查看流表项设置:



[root@localhostmrzhao]# ovs-vsctl list Flow_table


_uuid


: bebe5b02-6216-4a8a-af5d-27f1dde2bf48


: {}


: 100


: []


:


external_ids


flow_limit


groups



name



overflow_policy


: []


prefixes




: []


?



测试步骤



1.



查看初始流表,显示只有一条流 表


(


对应


LLDP

< br>报文转发控制器的流表


)





[root@localhostmrzhao]# ovs-ofctl dump-flows br1


NXST_FLOW reply (xid=0x4):


cookie=0x0, duration=3.937s, table=0, n_packets=0, n_bytes=0, idle_age=3, dl_type=0x88cc


actions=CONTROLLER:5000


2.



创建


50


条流表


(


初始值,


Initial flow number),


下发。本例中一条流表包含三个匹配字段:




Address


ation Address



显示成功下发


50


条流表:



流量验证也显示全部转发,没有丢包:





3.


< /p>


增加


50


条流表,总共

< br>100



(step = 50


条流表


)


,下发。显示成功下发


90


条流表:




发送流量也可以看到有


10


%丢包:< /p>





Open vSwitch


上查看,也可以看到,除了


LLDP


那条


flow table


之外,只 有


90


条流表:



[root@localhostmrzhao]# ovs-ofctl dump- aggregate br1


NXST_AGGREGATE reply (xid=0x4): packet_count=26760 byte_count=3318240


flow_count=91




?



测试结果:



指标值:交换机最大支持的流表数量



本例的测试结果为


91


条。




注:


a.


为什么只有


91


条,而不是设置的


10 0


条,需要查看


OVS


文档分析原因。




b.


为了验证这个测试结果的正确性,仪表配置不动,我们把


table0


的流表数限制改为


200




ovs-vsctl set Flow_Table table0 flow_limit=200


< p>
然后可以看到,原配置的


100


条流表全部下发:





OVS


上查看,


100


条流表也全部学到。< /p>



[root@localhostmrzhao]# ovs- ofctl dump-aggregate br1


NXST_AGGREGATE reply (xid=0x4): packet_count=26760 byte_count=3318240 flow_count=101



?



测试方法深入讨论



1.



配置单独的


L2


匹配域测试例,单独的


L3


匹配域 测试例。根据交换机的实现方式不同,不


同匹配方式对交换机的性能和流表规格有明显影 响。例如有些交换机会把


L2


匹配放在


L2


内存中,而不是在通常放流表的


TCAM


中,这样测试例如果只测试


L2


匹配则无法验证



TCAM


容量。



2.



配置


12


元组全匹配的测试例。匹配元 组的多少,可能对


Openflow


交换机流表的容量发生


影响。



3.


< /p>


单个流表和多个流表对性能规格也有明显区别,需验证交换机在单个流表下的容量,多个< /p>


流表下的流表容量,以及能同时支持多少个表的数量(例如



255


个)。对于多流表的容量,


由 于流表之间并非一一对应的关系,比如逻辑上流表


1


的多个流表 项可以映射到流表


2



同一个流表项 。所以多流表下的流表容量,可以考虑和应用场景结合起来,比如用


Openflow< /p>


来实现


VPN


,可以测试伪线的容量,< /p>


VPN VRF


的容量等等。




2.



Test case 2


:测试


Ope nflow


交换机的流表学习速率




?



测试目的:


测试


Openflow


交换机流表的学习速率,即每秒学习多 少条流表




?



测试拓扑:





?



预配置


(


请注意,预配置部分是写本文需要,在


OpenvSwitch


上所做的配置。读者在用


OVS



实验时候可参考此配置,实际测试则不需要进行此部分

< p>
)


?




Test case 1


的基础上,把


br1



table0


的容量调整为


1,000,000


条流表



ovs-vsctl set Flow_Table table0 flow_limit=1000000


< /p>


测试方法


1


:流量图形采样法

< p>


A





Custom


方式创建流表



B





flow


方式创建和流表相对应的验证流量



C





图形结果计算流表学习时间和学习速度




?



测试步骤



1.




custom


方式创建

< p>
5000



flow(


创 建的流表条数必须在


Test Case 1


测试到的最大流 表数


之内


)







2.



创建一条验证流,匹配


5000



flow


。 验证流量的带宽可设置小于转发吞吐量,避免因为


转发丢包导致的测试结果偏差。





3.



在验证流统计视图上,把



Rx Ra te(fps)



统计量加入到图形显示中。

< br>




4.



先发送流量,然后在

< p>
Openflow


仿真控制器上把


5000


条流表发送给被测交换机:





5.



观察流量,等待接收流量上升到和发送流量一致。





6.


< /p>


用标尺测量出从流量开始上升到平稳之间的时间,从标尺中可以看到,流表全部学习到


4.883


秒:





?



测试结果:



本例测试结果:学习


5000


条流表,用了


4.883


秒,平均每秒学习


1024


条流表




测试方法


2

< p>
:流量直接验证法



A.



创建


Bound


流量



B.




Bound


方式从


Bound stream


中提取流表



C.




Command Sequence


中“


Openflow: Add flows to switches


”命令,来直接测试结果




?



测试步骤



1.



创建


bound stream


,有< /p>


5000


个目的


IP

地址,对应


5000



Strea m.


请注意,创建流的时候


需要创建



stream only generator



-


-


-


-


-


-


-


-



本文更新与2021-02-19 12:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/667441.html

Openflow Switch 测试方法学的相关文章