首先,openflow流表都是使用ovs-ofctl命令进行添加的。

1.

看 ovs-ofctl 的man手册

man ovs-ofctl

或者,这个地方也有:http://www.openvswitch.org/support/dist-docs/ovs-ofctl.8.html

主要就是用,这几个命令:

dump-flows 、add-flow 、del-flows

等。

另外,有关actions的命令也在这个手册里。

2.

有关how to match见如下的man手册

man ovs-fields

或这个:http://www.openvswitch.org/support/dist-docs/ovs-fields.7.html

该手册,文档层次清晰,可以方便的速查。按照逻辑分了如下几个段落,非常清晰:

TUNNEL / METADATA / CONNECTION TRACKING / REGISTER / L2 / L3 / L4

3.

举个栗子:

[root@host100 ~]# ovs-ofctl dump-ports-desc br200-
OFPST_PORT_DESC reply (xid=0x2):
(tap200-): addr:b2:8a::::
config:
state:
current: 10MB-FD COPPER
speed: Mbps now, Mbps max
(vxlan101): addr:1a:b7::d6::
config:
state:
speed: Mbps now, Mbps max
(vxlan102): addr::3e:e2:aa:c3:7c
config:
state:
speed: Mbps now, Mbps max
LOCAL(br200-): addr:a6:::b5::
config:
state:
speed: Mbps now, Mbps max
[root@host100 ~]# ovs-ofctl add-flow br200- 'in_port=2,ip_dst=10.200.0.10 actions=output:4'
[root@host100 ~]# ovs-ofctl dump-flows br200-
cookie=0x0, duration=.771s, table=, n_packets=, n_bytes=, in_port="tap200-1" actions=output:vxlan102
cookie=0x0, duration=.306s, table=, n_packets=, n_bytes=, priority= actions=NORMAL

又举了一个栗子

ovs-ofctl add-flow br200- 'cookie=0x01,table=0,ip_dst=10.200.0.2 actions=move:NXM_NX_TUN_ID[0..23]->NXM_NX_REG0[0..23],resubmit(,1)'
ovs-ofctl add-flow br200- 'cookie=0x02,table=1 actions=move:NXM_NX_REG0[0..23]->NXM_OF_ETH_SRC[24..47],output:vxlan101'

举一个NAT的栗子

# DROUTE up
ovs-ofctl -O openflow13 add-flow br220- 'cookie=0x11,table=0,ip,tcp,ip_dst=10.200.0.2,eth_dst=00:01:02:02:21:01/00:00:00:ff:ff:ff actions=mod_dl_dst:00:01:02:02:21:01,ct(zone=10,table=1)'
ovs-ofctl -O openflow13 add-flow br220- 'cookie=0x12,table=1,ip,tcp,ip_dst=10.200.0.2,eth_dst=00:01:02:02:21:01,ct_state=+new actions=ct(zone=10,nat(dst=10.200.0.11:80),commit),output:tap221-1'
ovs-ofctl -O openflow13 add-flow br220- 'cookie=0x13,table=1,ip,tcp,ip_dst=10.200.0.2,eth_dst=00:01:02:02:21:01,ct_state=+trk+est actions=ct(zone=10,nat),output:tap221-1'
# DROUTE down
ovs-ofctl -O openflow13 add-flow br220- 'cookie=0x14,table=0,in_port=tap221-1,ip,tcp,actions=ct(zone=10,table=1,nat)'
ovs-ofctl -O openflow13 add-flow br220- 'cookie=0x15,table=1,in_port=tap221-1,ct_zone=10,ct_state=+trk+est,ip_src=10.200.0.2,actions=mod_dl_src:00:00:00:ff:00:10,output:vxlan101'

举一个ARP代答的栗子(别人写的,我目前还没看懂)

 cookie=0x15608eadfa234623, duration=.586s, table=, n_packets=, n_bytes=, priority=,arp,metadata=0xc400000001,arp_tpa=10.0.0.57,arp_op= actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:fa::3e:::c4->eth_src,set_field:->arp_op,set_field:10.0.0.57->arp_spa,set_field:fa::3e:::c4->arp_sha,IN_PORT
cookie=0x15608eadfa234693, duration=.078s, table=, n_packets=, n_bytes=, priority=,arp,metadata=0xc400000001,arp_tpa=10.0.0.59,arp_op= actions=move:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:fa::3e:8a:d4:->eth_src,set_field:->arp_op,set_field:10.0.0.59->arp_spa,set_field:fa::3e:8a:d4:->arp_sha,IN_PORT
cookie=0x15608eadfa22ed3f, duration=.364s, table=, n_packets=, n_bytes=, priority= actions=set_field:0x19->reg8,goto_table:

[ovs] 编写openflow流表的文档指引的更多相关文章

  1. Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  2. OVS 精确删除流表

    OVS 精确删除流表 前言 今天看了sdnlab小姐姐的mininet教程之后,看到有一个下流表的操作,优先级没能下成功,然后回来实验一下,这个问题是解决了,不过遇到了一个小问题,ovs如何精确删除流 ...

  3. openflow流表项中有关ip掩码的匹配的问题(控制器为ryu)

    一.写在前面 唉,被分配到sdn安全方向,顶不住,顶不住,感觉搞不出来什么有搞头的东西.可若是让我水水的应付,我想我也是做不到的,世上无难事只怕有心人.好了,进入正题,本次要讨论的时一个比较细节的东西 ...

  4. 利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档

    对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...

  5. arclistsg独立单表模型文档列表

    arclistsg独立单表模型文档列表 (DedeCMS > 5.3) 名称:arclistsg 功能:类似arclist标签,获取指定单表模型(例如:分类信息),指定栏目,指定排序及呈现样式的 ...

  6. 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档

    对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...

  7. 数据库表结构文档查看器 基于netcore

    前言 日常开发业务代码,新接手一块不熟悉的业务时需要频繁的查看对应业务的数据库表设计文档.相比于直接翻看业务代码,有必要提供一个数据库表结构文档查看器来解决这些繁琐的问题. CML.SqlDoc CM ...

  8. HTML文档流和脱离文档流

    文档流:也就是我们通常看到的由左到右.由上而下的元素排列形式,在网页中每个元素都是默认按照这个顺序进行排序和显示的. 脱离文档流:元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理 ...

  9. 读取数据库信息并生成表设计文档Word版本

    1.参考C#代码 using Help.DBAccessLayer.Business; using Help.DBAccessLayer.Model.SqlGenerator; using Newto ...

随机推荐

  1. Effective Java 第三版——63. 注意字符串连接的性能

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  2. webpack2.x抽取css

    这里以.vue文件为例,需要安装extract-text-webpack-plugin包 我们主要设置的文件是webpack.config.js文件. 抽取成一个css文件 这个设置是提取成一个单独的 ...

  3. 亚马逊免费EC2搭建OpenVPN

    系统选择Ubuntu 16.04.5 LTS 1.下载OpenVPN AS 2.1.4 64位版本 sudo wget http://swupdate.openvpn.org/as/openvpn-a ...

  4. iOS最新Mac OS X 10.11之后 安装cocoapods及使用详解

    iOS 最新版 CocoaPods 的安装流程 一.安装方法: 1.移除现有Ruby默认源 gem sources --remove https://rubygems.org/ 为了提高安装的成功几率 ...

  5. python 字符编码判断 chardet评测

    之前一直想找到一个模块,针对字符判断是什么字符集编码的库 网上有chardet的blog,发现自己的环境有这个库,于是就做了测试 >>> import chardet >> ...

  6. Ubuntu命令行快捷启动Matlab

    转载:https://blog.csdn.net/striker_v/article/details/52884485 Matlab R2015b默认安装目录/usr/local/MATLAB/R20 ...

  7. WebViewJavascriptBridge的使用说明

    WebViewJavascriptBridge 项目介绍 在Obj-C 和 WKWebView, UIWebView 中的 Javascript之间传送信息的桥梁. 项目地址 如何使用 Javascr ...

  8. [sqoop] sqoop2 使用

    sqoop版本1.99.7 ,安装省略 1. 启动server sqoop2-server start 2. sqoop2-shell 链接 表示安装成功. 创建link 查看link 创建job 查 ...

  9. centos 7 mysql 开启binlog

    一.前言 本文章用到的mysql 为5.7版本. 按照https://blog.csdn.net/king_kgh/article/details/74800513中的步骤操作,结果启动失败. 配置文 ...

  10. grafana安装和配置(centos7上配置)

    author:  headsen  chen date:  2019-03-29  10:33:19 1,安装: yum install https://s3-us-west-2.amazonaws. ...