zoukankan      html  css  js  c++  java
  • ovs流表高级特性(一)

    表 1. 流表常用字段

    对于 add−flow,add−flows 和 mod−flows 这三个命令,还需要指定要执行的动作:actions=[target][,target...]

    一个流规则中可能有多个动作,按照指定的先后顺序执行。

    常见的操作有:

      • output:port: 输出数据包到指定的端口。port 是指端口的 OpenFlow 端口编号
      • mod_vlan_vid: 修改数据包中的 VLAN tag
      • strip_vlan: 移除数据包中的 VLAN tag
      • mod_dl_src/ mod_dl_dest: 修改源或者目标的 MAC 地址信息
      • mod_nw_src/mod_nw_dst: 修改源或者目标的 IPv4 地址信息
      • resubmit:port: 替换流表的 in_port 字段,并重新进行匹配
      • load:value−>dst[start..end]: 写数据到指定的字段

    ip

    Same as dl_type=0x0800.

    icmp

    Same as dl_type=0x0800,nw_proto=1.

    tcp

    Same as dl_type=0x0800,nw_proto=6.

    udp

    Same as dl_type=0x0800,nw_proto=17.

    arp

    Same as dl_type=0x0806.

    rarp

    Same as dl_type=0x8035.

     1、添加一条flow:屏蔽 STP 协议的广播数据包

    [root@kunpeng82 devuser]# ovs-ofctl add-flow vswitch1 "table=0, dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, actions=drop"
    [root@kunpeng82 devuser]# ovs-appctl ofproto/trace br0 in_port=1,dl_dst=01:80:c2:00:00:05
    br0: unknown bridge
    ovs-appctl: ovs-vswitchd: server returned an error
    [root@kunpeng82 devuser]# ovs-appctl ofproto/trace vswitch1 in_port=1,dl_dst=01:80:c2:00:00:05
    Flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=01:80:c2:00:00:05,dl_type=0x0000
    
    bridge("vswitch1")
    ------------------
     0. dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, priority 32768
        drop
    
    Final flow: unchanged
    Megaflow: recirc_id=0,eth,in_port=1,dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0,dl_type=0x0000
    Datapath actions: drop
    [root@kunpeng82 devuser]# ovs-appctl ofproto/trace vswitch1 in_port=1,dl_dst=01:80:c2:00:00:15
    Flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=01:80:c2:00:00:15,dl_type=0x0000
    
    bridge("vswitch1")
    ------------------
     0. priority 0
        NORMAL
         >>>> received packet on unknown port 1 <<<<
         >> no input bundle, dropping
    
    Final flow: unchanged
    Megaflow: recirc_id=0,eth,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=00:00:00:00:00:00,dl_dst=01:80:c2:00:00:15,dl_type=0x0000
    Datapath actions: drop

    2、再添加一条flow:

    ovs-ofctl add-flow  vswitch1 "table=0, priority=0, actions=resubmit(,1)"

    添加之后talbe不存在actions=normal的flow:cookie=0x0, duration=177867.865s, table=0, n_packets=153445, n_bytes=16182100, priority=0 actions=NORMAL

    [root@kunpeng82 devuser]# ovs-ofctl dump-flows vswitch1
    cookie=0x0, duration=1424.340s, table=0, n_packets=0, n_bytes=0, dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0 actions=drop
    cookie=0x0, duration=552.220s, table=0, n_packets=6, n_bytes=420, priority=0 actions=resubmit(,1)

     
    [root@kunpeng82 devuser]# ovs-appctl ofproto/trace vswitch1 in_port=1,dl_dst=01:80:c2:00:00:15
    Flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=01:80:c2:00:00:15,dl_type=0x0000
    
    bridge("vswitch1")
    ------------------
     0. priority 0
        resubmit(,1)
     1. No match.
        drop
    
    Final flow: unchanged
    Megaflow: recirc_id=0,eth,in_port=1,dl_dst=01:80:c2:00:00:10/ff:ff:ff:ff:ff:f0,dl_type=0x0000
    Datapath actions: drop
    [root@kunpeng82 devuser]# 
  • 相关阅读:
    java.lang.NoSuchMethodError
    asm相关内容想下载(包括 jar 包)
    Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
    The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    交通测速方式
    卡口和电子警察的区别
    Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable
    在window上安装mysql
  • 原文地址:https://www.cnblogs.com/dream397/p/12653074.html
Copyright © 2011-2022 走看看