6g下载网
当前位置: 主页 > 软件教程 > 云计算 >

OpenvSwitch流表分析介绍

时间: 2017-01-17 14:38 来源: 本站整理

分享到:

今天小编整理一篇OpenvSwitch流表分析介绍的文章和大家分享,希望能给大家提供帮助。

OpenvSwitch流表分析

流表是交换机进行转发策略控制的核心数据结构。交换机芯片通过查找流表项来决策进入交换机网络的数据包执行适当的处理动作。流表中包含若干个流表项,每一个流表项中包含若干个域:包头域、活动计数器、0个或多个执行动作。

OpenvSwitch流表分析介绍

1、包头域:执行规则的条件,主要是指定数据包各层协议字段值,作为数据包中与流规则的匹配条件。

2、计数器:用来统计流量的信息,如:duration存活时间、错误、n_packets发包数等。

3、动作:定义了对匹配规则的数据包的处理方式,如:drop丢包、转发、修改等。

例:br-tun流表信息

  1. # ovs-ofctl dump-flows br-tun  
  2. NXST_FLOW reply (xid=0x4):  
  3. #从port1进来的包转到表1处理  
  4. cookie=0x0,duration=10970.064s, table=0n_packets=189n_bytes=16232idle_age=16,priority=1,in_port=1 actions=resubmit(,1)  
  5. #从port2进来的包转到表2处理  
  6. cookie=0x0,duration=10906.954s, table=0n_packets=29n_bytes=5736idle_age=16,priority=1,in_port=2 actions=resubmit(,2)  
  7. #不匹配上面两条则drop  
  8. cookie=0x0,duration=10969.922s, table=0n_packets=3n_bytes=230idle_age=10962,priority=0 actions=drop 
  9.  #表1,单播包转到表20处理  
  10. cookie=0x0,duration=10969.777s, table=1n_packets=26n_bytes=5266idle_age=16,priority=0,dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=resubmit(,20)  
  11. #多播包转到表21处理  
  12. cookie=0x0,duration=10969.631s, table=1n_packets=163n_bytes=10966idle_age=21,priority=0,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=resubmit(,21)  
  13. #表2,port2进来的包在这里处理了.同样是转给表10处理  
  14. cookie=0x0duration=688.456s,table=2n_packets=29n_bytes=5736idle_age=16priority=1,tun_id=0x1actions=mod_vlan_vid:1,resubmit(,10)  
  15.  #表10,进行规则学习,具体就不解释了。学习到的规则后续会给表20来使用 cookie=0x0duration=10969.2s, table=10n_packets=29n_bytes=5736,idle_age=16priority=1actions=learn(table=20,hard_timeout=300,priority=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1  
  16. #表20,根据目的mac设置tun_id,通过指定的port发出去  
  17. cookie=0x0duration=682.603s,table=20n_packets=26n_bytes=5266hard_timeout=300idle_age=16,hard_age=16priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:32:0d:dbactions=load:0->NXM_OF_VLAN_TCI[],load:0x1->NXM_NX_TUN_ID[],output:2  
  18. #无规则的交给表21处理  
  19. cookie=0x0,duration=10969.057s, table=20n_packets=0n_bytes=0idle_age=10969,priority=0 actions=resubmit(,21)  
  20. #表21,根据vlan找到对应的出去的口  
  21. cookie=0x0duration=688.6s,table=21n_packets=161n_bytes=10818idle_age=21priority=1,dl_vlan=1actions=strip_vlan,set_tunnel:0x1,output:2  
  22. # drop  
  23. cookie=0x0,duration=10968.912s, table=21n_packets=2n_bytes=148idle_age=689,priority=0 actions=drop 

字段介绍:

Cookie:流规则标识。

duration:流表项创建持续的时间(单位是秒)。

table:流表项所属的table编号。

n_packets:此流表项匹配到的报文数。

n_bytes:此流表项匹配到的字节数。

idle_age:此流表项从最后一个匹配的报文到现在空闲的时间。

hard_age:此流表项从最后一次被创建或修改到现在持续的时间。

Priority:流表项的优先级,数字越大优先级越高,范围是:0~7。

OpenvSwitch流表分析介绍的文章和大家分享结束,感谢阅读!

(责任编辑:大卫)

分享到:

------分隔线----------------------------