[ovs] 编写openflow流表的文档指引
首先,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流表的文档指引的更多相关文章
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- OVS 精确删除流表
OVS 精确删除流表 前言 今天看了sdnlab小姐姐的mininet教程之后,看到有一个下流表的操作,优先级没能下成功,然后回来实验一下,这个问题是解决了,不过遇到了一个小问题,ovs如何精确删除流 ...
- openflow流表项中有关ip掩码的匹配的问题(控制器为ryu)
一.写在前面 唉,被分配到sdn安全方向,顶不住,顶不住,感觉搞不出来什么有搞头的东西.可若是让我水水的应付,我想我也是做不到的,世上无难事只怕有心人.好了,进入正题,本次要讨论的时一个比较细节的东西 ...
- 利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档
对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...
- arclistsg独立单表模型文档列表
arclistsg独立单表模型文档列表 (DedeCMS > 5.3) 名称:arclistsg 功能:类似arclist标签,获取指定单表模型(例如:分类信息),指定栏目,指定排序及呈现样式的 ...
- 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档
对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...
- 数据库表结构文档查看器 基于netcore
前言 日常开发业务代码,新接手一块不熟悉的业务时需要频繁的查看对应业务的数据库表设计文档.相比于直接翻看业务代码,有必要提供一个数据库表结构文档查看器来解决这些繁琐的问题. CML.SqlDoc CM ...
- HTML文档流和脱离文档流
文档流:也就是我们通常看到的由左到右.由上而下的元素排列形式,在网页中每个元素都是默认按照这个顺序进行排序和显示的. 脱离文档流:元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理 ...
- 读取数据库信息并生成表设计文档Word版本
1.参考C#代码 using Help.DBAccessLayer.Business; using Help.DBAccessLayer.Model.SqlGenerator; using Newto ...
随机推荐
- 【C#】C#线程_计算限制的异步操作
目录结构: contents structure [+] 线程池简介 执行上下文(Execution Context) CancelTokenSource的使用 ThreadPool Task和Tas ...
- ionic3 表单输入元素input的三种事件
1.onblur事件 onblur事件即为失去焦点时触发的事件,而所谓的焦点就是一闪一闪的光标.而ionic中onblur则为ionBlur,具体用法如下: //html<ion-input [ ...
- SNF软件开发机器人-子系统-导出-导入功能-多人合作时这个功能经常用到
导出 导出可以将资源表和子系统导出并形成一个json文件. 1.效果展示: 2.使用说明: 点击导出按钮后会弹出一个导出页面.页面的左侧可以选择功能,右侧可以选择资源表,选择功能的同时右侧中功能所需的 ...
- delphi 导出到excel的7种方法
本文来自 爱好者8888 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/kpc2000/article/details/17066823?utm_source=cop ...
- WPF ViewModelLocator
在WPF中应用ViewModelLocator <Window x:Class="Demo.Views.MainWindow" ... xmlns:prism="h ...
- C++ char 类型:字符型和最小的整型
C++ 中没有 byte,Java 中有 byte. 但是 C++ 有 char,char 是可用来放整数的最小字节类型. #include <iostream> int main() { ...
- Scratch 可能能帮你找到学习编程的初心
Scratch 是MIT 出品的一款少儿编程软件,基于Adobe Air开发,这个运行环境在如今已经显得有些过时,但只要这个软件有用,软件本身就不会过时. 编程的本质大致是调用计算机的指令编写一系列任 ...
- linux技巧---为各应用创建快捷方式
linux中启动或关闭应用有时候比较麻烦,你必须cd到该应用的可执行脚本的目录中再执行该脚本,不能在任意目录下开启或关闭应用..当然,设置了环境变量path可以解决在任意目录下开启应用的问题,但是每个 ...
- Web重温系列(一):利用寄宿于IIS的WCF序列化文件
这两年一直在做WinForm,对于Web已经比较生疏了,其实之前做的也不是很多. 这两天做了一个小工具,功能很简单,就是想有个地方存放办公室同事的机器名和IP的信息,包括附加的用户名和更新时间.比较之 ...
- Ubuntu 16.04设置开机启动脚本的方法
需求:公司卡片机容量太小,只有100G,由于使用的人比较的多,开机使用后有时候就会出现磁盘空间占满数据写不进去的情况,影响工作进度,而且每次使用完都得关掉卡片机,所以就有必要写个清理磁盘的脚本,当卡片 ...