[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 ...
随机推荐
- Unty中通过镜像优化HDRI全景图体积
全景图即HDRI贴图,可以代替6面cubemap,传统3D软件运用较为广泛.一般反射探针,天空盒等都会用到. 但是体积过大是个问题,特别是移动端会对包体大小进行控制,虽说可以通过球面贴图替换掉部分环境 ...
- DB2修改自增主键起始值
ALTER TABLE DB2INSTL.BT_AUDIT_COUNTY_DIFF_HISTORY_PX ALTER COLUMN ID RESTART WITH 18239
- 华为AR配置内部服务器示例(只有1个公网IP)
AR配置公网和私网用户都可以通过公网地址访问内部服务器示例(只有1个公网IP) 适用于:V200R003C01及以后的系统软件版本. 组网需求: 由于只有1个公网IP(100.100.1.2),想实现 ...
- 转载:Quartz.NET 入门
分享自:http://www.cnblogs.com/jys509/p/4628926.html 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮 ...
- Redis在C#中的使用及Redis的封装
Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(string ...
- Win10添加右键在此处打开命令行
通过添加注册表项,实现右击“在此处打开命令行功能” 注册表位置:HKEY_CLASSES_ROOT\Directory\Background\shell\ win10系统用标识右键菜单打开命令行的键, ...
- [爬虫]采用Go语言爬取天猫商品页面
最近工作中有一个需求,需要爬取天猫商品的信息,整个需求的过程如下: 修改后端广告交易平台的代码,从阿里上传的素材中解析url,该url格式如下: https://handycam.alicdn.com ...
- 12 Best Live Chat Software for Small Business Compared (2019) 最佳的wordpress在线聊天工具推荐插件 来帮你和潜在客户互动
12 Best Live Chat Software for Small Business Compared (2019) Did you know that more than 67% of ...
- Sigmoid函数简介
Sigmoid函数是一个在生物学中常见的S型的函数,也称为S型生长曲线.[1] 中文名 Sigmoid函数 外文名 Sigmoid function 别名 S型生长曲线 Sigmoid函数由下列公式定 ...
- k8s的使用
. 查看 kubectl 的状态 kubectl version . 查看集群信息 kubectl cluster-info . 查看节点信息 kubectl get nodes . 创建一个发布 k ...