• 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]# 
  • 相关阅读:
    Ahoi2013 作业
    bzoj 2502 清理雪道 (有源汇上下界最小流)
    zoj 3229 Shoot the Bullet(有源汇上下界最大流)
    TCP协议和socket API 学习笔记
    http、TCP/IP协议与socket之间的区别
    ios多线程和进程的区别(转载)
    iOS进程间通信之CFMessagePort
    功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
    [深入浅出Cocoa]iOS程序性能优化
    IOS之禁用UIWebView的默认交互行为
  • 原文地址:https://www.cnblogs.com/dream397/p/12653074.html
Copyright © 2020-2023  润新知