https://www.sdnlab.com/sdn-guide/14747.html

http://sdnhub.cn/index.php/openv-switch-full-guide/

http://www.rendoumi.com/open-vswitchde-ovs-vsctlming-ling-xiang-jie/

http://www.openvswitch.org/support/dist-docs/ovs-vsctl.8.txt

openvswitch完全使用手册:

https://www.cnblogs.com/puremans/p/6562388.html

很重要很典型的vxlan设置:

http://docs.openvswitch.org/en/latest/howto/userspace-tunneling/

ovs-ofctl 语法

http://www.rendoumi.com/open-vswitchzhong-ovs-ofctlde-xiang-xi-yong-fa/

http://www.openvswitch.org/support/dist-docs/ovs-ofctl.8.txt

摘要:

       priority=value
The priority at which a wildcarded entry will match in comparison to others. value is a number between and , inclusive. A higher value will match before a lower one. An exact-
match entry will always have priority over an entry containing wildcards, so it has an implicit priority value of . When adding a flow, if the field is not specified, the flow's pri‐
ority will default to . OpenFlow leaves behavior undefined when two or more flows with the same priority can match a single packet. Some users expect ``sensible'' behavior, such as more specific flows taking
precedence over less specific flows, but OpenFlow does not specify this and Open vSwitch does not implement it. Users should therefore take care to use priorities to ensure the behavior
that they expect.
       table=number
For flow dump commands, limits the flows dumped to those in the table with the given number between and . If not specified (or if is specified as number), then flows in all tables
are dumped.

关键流表

#add bridge and setup tunnel
ovs-vsctl --may-exist add-br br0
ovs-vsctl add-port br0 vxlantarget1 -- set interface vxlantarget1 type=vxlan options:remote_ip=$TARGET_REMOTE_1 options:local_ip=$VXLAN_LOCALIP options:in_key=flow options:out_key=flow
ovs-vsctl add-port br0 vxlantarget2 -- set interface vxlantarget2 type=vxlan options:remote_ip=$TARGET_REMOTE_2 options:local_ip=$VXLAN_LOCALIP options:in_key=flow options:out_key=flow
ovs-vsctl add-port br0 vxlanclient1 -- set interface vxlanclient1 type=vxlan options:remote_ip=$CLIENT_REMOTE_1 options:local_ip=$VXLAN_LOCALIP options:in_key=flow options:out_key=flow
#ovs-vsctl set port veth0- tag=
#in
$OVS_OFCTL add-flow br0 "cookie=0x1111,table=0, priority=100, tun_id=$VNI,dl_dst=$NLB_MAC,nw_dst=$NLB_VIP,actions=move:NXM_NX_TUN_ID[0..23]->NXM_NX_REG0[0..23],resubmit(,1)"
$OVS_OFCTL add-flow br0 "cookie=0x2222,table=1, priority=100, actions=move:NXM_NX_REG0[0..23]->NXM_OF_ETH_SRC[24..47],output:$nlbnet1_port" #out
$OVS_OFCTL add-flow br0 "cookie=0x3333,table=0, priority=100, in_port=$nlbnet1_port,dl_dst=$TARGET_MAC_1,actions=move:NXM_OF_ETH_SRC[24..47]->NXM_NX_TUN_ID[0..23],output:$vxlantarget1_port" $OVS_OFCTL add-flow br0 "cookie=0x4444,table=0, priority=100, in_port=$nlbnet1_port,dl_dst=$TARGET_MAC_2,actions=move:NXM_OF_ETH_SRC[24..47]->NXM_NX_TUN_ID[0..23],output:$vxlantarget2_port"

ovs 所有options选项的文档

[root@vrouter1 ~]# man ovs-vswitchd.conf.db
       Each  tunnel  must be uniquely identified by the combination of type, options:remote_ip, options:local_ip, and options:in_key. If two ports are defined that are the same except one has an optional
identifier and the other does not, the more specific one is matched first. options:in_key is considered more specific than options:local_ip if a port defines one and another port defines the
other.
。。。 。。。
options : in_key: optional string
Optional. The key that received packets must contain, one of: · . The tunnel receives packets with no key or with a key of . This is equivalent to specifying no options:in_key at all. · A positive -bit (for Geneve, VXLAN, and LISP), -bit (for GRE) or -bit (for STT) number. The tunnel receives only packets with the specified key. · The word flow. The tunnel accepts packets with any key. The key will be placed in the tun_id field for matching in the flow table. The ovs-ofctl manual page contains additional
information about matching fields in OpenFlow flows. options : out_key: optional string
Optional. The key to be set on outgoing packets, one of: · . Packets sent through the tunnel will have no key. This is equivalent to specifying no options:out_key at all. · A positive -bit (for Geneve, VXLAN and LISP), -bit (for GRE) or -bit (for STT) number. Packets sent through the tunnel will have the specified key. · The word flow. Packets sent through the tunnel will have the key set using the set_tunnel Nicira OpenFlow vendor extension ( is used in the absence of an action). The ovs-ofctl man‐
ual page contains additional information about the Nicira OpenFlow vendor extensions. options : key: optional string
Optional. Shorthand to set in_key and out_key at the same time.

[ovs] openvswitch 入门的更多相关文章

  1. [ovs] openvswitch 从源码编译安装

    文档:https://docs.openvswitch.org/en/latest/intro/install/general/ 1. yum install autoconf automake li ...

  2. OpenShift上的OpenvSwitch入门

    前段时间参加openshift培训,通过产品部门的讲解,刷新了我对OpenShift一些的认识,今天先从最弱的环节网络做一些了解吧. Openvswitch是openshift sdn的核心组件,进入 ...

  3. [ovs] openvswitch ovs ovs-vsctl ovs-appctl 命令行参数自动补全 bash bash-completion

    1, 安装bash_completion: [root@vrouter1 ~]# yum install bash-completio 2,  找到你的ovs的补全脚本装在了哪里 [root@vrou ...

  4. Openstack组件实现原理 — OpenVswitch/Gre/vlan

    目录 目录 前文提要 Neutron 管理的网络相关实体 OpenVswitchOVS OVS 的架构 VLan GRE 隧道 Compute Node 中的 Instance 通过 GRE 访问 P ...

  5. Docker 学习4 Docker容器虚拟化网络概述

    一.docker 虚拟化网络概述 1.OVS: OpenVSwitch,不仅能模拟二层网络,还能模拟三层网络,或者VLAN,VXLAN,流控 SDN软件定义网络技术等. 2.overlay netwo ...

  6. CloudStack学习-3

    此次试验主要是CloudStack结合openvswitch 背景介绍 之所以引入openswitch,是因为如果按照之前的方式,一个网桥占用一个vlan,假如一个zone有20个vlan,那么岂不是 ...

  7. neutron ml2

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhoumingbo532/article/details/27964675 在介绍ml2之前,先介绍 ...

  8. KVM原理及使用

    Qemu 和 Qemu-kvm Qemu: http://qemu-project.org/Download Qemu-kvm:https://sourceforge.net/projects/kvm ...

  9. DOCKER学习_005:Flannel网络配置

    一 简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信, Flannel是CoreOS开发,专门用于docker多机 ...

随机推荐

  1. SDL示例一:实现七段数码管的显示

    [时间:2017-05] [状态:Open] [关键词:sdl2,数字,七段数码管,图形显示,示例代码] 0 引言 本文是针对我的step-into-sdl2/7LedDigit的原理介绍,有兴趣的可 ...

  2. android手机抓wireshark包的步骤-tcpdump(需root权限)

    1. 先给手机刷root权限,执行命令: adb root   adb remount ok后:把tcpdump放到c盘根目录下:C:\   2. 执行命令: adb push c:/tcpdump ...

  3. Weka算法Clusterers-Xmeans源代码分析(一)

    <p></p><p><span style="font-size:18px">上几篇博客都是分析的分类器算法(有监督学习),这次就分 ...

  4. Ubuntu命令行

    1.打开图形界面的终端 打开:Ctrl+Alt+T 退出:Ctrl+D 2.打开DOS界面的终端 打开:Ctrl+Alt+F1(F1~F6) 退出:Ctrl+Alt+F7 3.用户 ubuntu初始r ...

  5. Java知多少(26)源文件的声明规则

    当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则: 一个源文件中只能有一个public类. 一个源文件可以有多个非public类. 源文件的名称应该和pu ...

  6. Gradle依赖的统一管理,解决依赖冲突

    看见别人在用implementation rootProject.ext.dependencies["xxxx"]不知道是什么意思,上网查了一下,原来是为了解决或者说预防gradl ...

  7. Gson - 学习

    Google 的 Gson 库,Gson 是一个非常强大的库,可以将 JSON 格式的数据转化成 Java 对象,也支持将 Java 对象转成 JSON 数据格式. Gson 依赖 本文将会快速开始使 ...

  8. 如何处理MySQL每月5亿的数据

    第一阶段:1,一定要正确设计索引2,一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描)3,一定要避免 limit 100000 ...

  9. svn eclipse链接

    先下载site-1.8.22.zip 安装包 然后 在D:\software\eclipse\dropins 目录下新建 svn文件夹 把下载的文件解压到该文件夹下 ,*.xml 删除 不需要 只要 ...

  10. Linux设备文件三大结构:inode,file,file_operations

    驱动程序就是向下控制硬件,向上提供接口,这里的向上提供的接口最终对应到应用层有三种方式:设备文件,/proc,/sys,其中最常用的就是使用设备文件,而Linux设备中用的最多的就是字符设备,本文就以 ...