ovs-vsctl命令
ovs-vsctl [options] -- [options] command [args] [-- [options] command [args]]...
通过连接到 ovsdb-server 进程来查询和修改数据库,从而实现对 ovs-vswitchd 的配置。
1. ovs 命令
ovs-vsctl init
如果 ovs 数据库为空,则初始化它。
ovs-vsctl show
打印数据库的概略情况。
ovs-vsctl emer-reset
重置配置。删除 OpenFlow 控制器、SSL等配置,但不会删除网桥。
2. 网桥命令
ovs-vsctl add-br br1
创建网桥 br1.
ovs-vsctl add-br brv1 br1 1
创建一个虚假的网桥 brv1,它以 br1 为父,brv1 位于 vlan 1上。
ovs-vsctl del-br br1
删除网桥 br1.
ovs-vsctl list-br
罗列所有的网桥,包括虚假的网桥。
ovs-vsctl br-exists br1
查看网桥 br1 是否存在;如果存在,命令退出码为 0,否则为 2.
ovs-vsctl br-to-vlan brv1
查看虚假网桥 brv1 所在的 vlan;如果 brv1 不是虚假网桥,则返回 0.
ovs-vsctl br-to-parent brv1
查看虚假网桥 brv1 所在的父网桥。
3. 端口命令
ovs-vsctl list-ports br1
罗列网桥 br1 上的所有端口。
ovs-vsctl add-port br1 ens34
在网桥 br1 上创建 ens34 端口,且该端口使用了 ens34 网络设备。
ovs-vsctl add-port br1 ens34 tag=1
在网桥 br1 上创建 ens34 端口,且是 vlan1 上的 access 端口。
ps:此时 ens34 位于虚假网桥 brv1 上。
ovs-vsctl del-port br1 ens34
从网桥 br1 上删除 ens34 端口。
ovs-vsctl port-to-br ens34
查看 ens34 端口所在的网桥。
4. bond 命令
ovs-vsctl add-bond br1 bond0 ens34 ens38
在网桥 br1 上创建 bond0 端口,它包含 ens34 和 ens38 两个网络接口。
ovs-vsctl add-bond-iface bond0 ens37
添加网络接口 ens37 到 bond0 端口;如果之前 bond0 端口不是 bond,则将它转换为 bond。
ovs-vsctl del-bond-iface bond0 ens38
从 bond0 端口上移除 ens38 网络接口;如果此时 bond0 只包含一个接口,则将它转换为普通端口。
5. 接口命令
ovs-vsctl list-ifaces br1
罗列网桥 br1 上所有的网络接口。
ovs-vsctl iface-to-br ens34
查看接口 ens34 所在的网桥。
6. OpenFlow 控制器连接
ovs-vsctl set-controller br1 tcp:192.168.1.152:6653
为 br1 网桥指定 OpenfFlow 控制器;可以指定多个。
ovs-vsctl get-controller br1
查看网桥 br1 已配置的 OpenFlow 控制器。
ovs-vsctl del-controller br1
删除网桥 br1 已配置的 OpenFlow 控制器。
7. manager 连接
ovs-vsctl set-manager tcp:192.168.1.152:6640
设置 manager。更多方式见:连接方式
ovs-vsctl get-manager
查看所有已配置的 manager。
ovs-vsctl del-manager
删除所有已配置的 manager。
8. 数据库命令
查看表、记录:
ovs-vsctl [--if-exists] [--columns=column[,column]...] list table [record]...
查看 table 表;如果指定 record,则只查看指定的行;如果指定 columns,则只列出指定的列。
# 查看 port 表
ovs-vsctl list port # 查看 port 表中的 bond0 行
ovs-vsctl list port bond0 # 查看指定的列
ovs-vsctl --columns=qos,name list port
根据条件查找记录:
ovs-vsctl [--columns=column[,column]...] find table [column[:key]=value]...
如果不指定 key,则查找 table 表中,指定 column 的值等于 value 的记录;
如果指定 key(column 需是 map 类型),则查找 table 表中,指定 column:key 的值等于 value 的记录;
支持的比较运算符有:=、!=、<、<=、>、>=,以及集合比较 {=}、{!=}、{<}、{<=}、{>=}、{>}
ovs-vsctl find port name=ens34
ovs-vsctl find port other_config:min-rate=1000000
ovs-vsctl find port other_config:max-rate">"100000
ovs-vsctl find port cvlans"{<=}"1,2
打印指定行的指定列:
ovs-vsctl [--if-exists] [--id=@name] get table record [column[:key]]...
获取 table 表中 record 行的 column 列的值;
如果指定了 @name,则该行的 UUID 可以在随后的调用中被引用;
--id 和 column 需至少出现一个;
ovs-vsctl get port bond0 name interfaces
修改指定的记录:
ovs-vsctl [--if-exists] set table record column[:key]=value...
将 table 表中 record 行的 column 列的值设为 value;
ovs-vsctl set port bond0 tag=2
ovs-vsctl set port bond0 other_config:min-rate=1000000 other-config:max-rate=1000000
为某列添加值:
ovs-vsctl [--if-exists] add table record column [key=]value...
为 table 表中 record 行的 column 列添加值 value;对于 map 类型的 column 来说,如果指定的 key 已经存在,则 add 操作不会替换它;
删除某列的值:
ovs-vsctl [--if-exists] remove table record column value...
ovs-vsctl [--if-exists] remove table record column key...
ovs-vsctl [--if-exists] remove table record column key=value...
第一种形式针对于非 map 类型的 column:从 column 中移除指定的 value;
第二种、第三种针对于 map 类型的 column:删除指定的 key,或只有当 key 的值为 value 时才删除;
ovs-vsctl remove port bond0 tag 2
ovs-vsctl remove port bond0 other_config min-rate
ovs-vsctl remove port bond0 other_config max-rate=2000000
清空某列的值:
ovs-vsctl [--if-exists] clear table record column...
清空 table 表中 record 行的 column 列;
ovs-vsctl clear port bond0 other_config
创建新的行:
ovs-vsctl [--id=@name] create table column[:key]=value...
在 table 表中创建新的行,并将 column 设为指定的 value;
如果指定了 @name,则可以在其他地方引用它;
ovs-vsctl -- set port eth0 qos=@newqos \
-- --id=@newqos create qos type=linux-htb other-config:max-rate=1000000 queues:0=@newqueue \
-- --id=@newqueue create queue other-con‐fig:min-rate=1000000 other-config:max-rate=1000000
删除行、表:
ovs-vsctl [--if-exists] destroy table record...
ovs-vsctl --all destroy table
第一个删除 table 表中的 record 行;第二个删除 table 表;
只对 QoS、Queue 表有效!
等待指定的记录:
ovs-vsctl wait-until table record [column[:key]=value]...
等待 table 表中包含 record 记录,且它的 column 列的值为 value;
参考资料
https://www.openvswitch.org/support/dist-docs/ovs-vsctl.8.txt
https://github.com/openvswitch/ovs/blob/master/Documentation/ref/ovsdb.7.rst(ovsdb)
ovs-vsctl命令的更多相关文章
- OVS常用命令与使用总结
说明 在平时使用ovs中,经常用到的ovs命令,参数,与举例总结,持续更新中… 进程启动 1.先准备ovs的工作目录,数据库存储路径等 mkdir -p /etc/openvswitch mkdir ...
- OVS常用命令
添加brideg: sudo ovs-vsctl add-br br0 删除brideg: sudo ovs-vsctl del-br br0 显示bridge: sudo ovs-vsctl sho ...
- ovs flow 命令集
流表可以有多个执行动作,是从左向右以此执行,常用动作如下: output:port: 输出数据包到指定的端口.port 是指端口的 OpenFlow 端口编号 group:group_id 输出数据包 ...
- ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- OVS
基于 OpenvSwitch的OpenFlow实践 Open vSwitch 概述 OpenvSwitch(简称OVS)是由NiciraNetworks主导的,运行在虚拟化平台(例如 KVM,Xen) ...
- ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结
一.安装OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- Neutron之OVS
OVS即开放虚拟交换标准,不仅仅是为了支持OpenFlow协议,而是为了给虚拟化平台上运行的虚拟机实例提供一套纯软件实现的路由交换协议栈.具体点说,Open vSwitch是在开源的Apache2.0 ...
- OVS报错:s1.mgmt: version negotiation failed (we support version 0x01, peer supports version 0x04) ovs-ofctl: s1: failed to connect to socket (Broken pipe)
mininet搭建拓扑后,查看流表,发现ovs命令报错 查找原因发现系mininet创建拓扑的命令使用了OpenFlow 1.3版本 ovs dump-flows命令默认是1.0版本,因此需要在ovs ...
- Openvswitch手册(8): ovs-vsctl的DB的操作
ovs-vsctl的DB的操作 如果你在命令行里面找不到相应的命令创建和删除对象,则可以直接删除数据库 [−−if−exists] [−−columns=column[,column]...] lis ...
- OpenvSwitch/OpenFlow 架构解析与实践案例
目录 文章目录 目录 前言 软件定义网络(SDN) 虚拟交换机(vSwitch) 为什么说云计算时代的 SDN 非常重要 OpenFlow 简介 Open vSwitch Open vSwitch 的 ...
随机推荐
- Python 中更优雅的日志记录方案
在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样.在使用时我们需要配置一些 Handler.Formatter 来进行一些处理,比如把日志 ...
- spring boot编程思想(核心篇) pdf 下载 it教程
资料简介:本书是<Spring Boot 编程思想>的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplicat ...
- js--数组的reduce()方法的使用介绍
前言 阅读文章之前先来考虑一个问题,如何去实现迭代一个数组,并且把它累加到一个值中?首先能够想到的是设置一个初始值,然后通过循环遍历这个数组,将数组中的值一项一项累加起来,然后返回这个设置的值就是最终 ...
- 为什么游戏公司的server不愿意微服务化?
背景介绍 笔者最近去面试了家游戏公司(有上市).我问他,公司有没有做微服务架构的打算及考量?他很惊讶的,我没听说过微服务耶,你可以解释一下吗? 我大概说了,方便测试,方便维护,方便升级,服务之间松耦合 ...
- Redis基础篇(五)AOF与RDB比较和选择策略
RDB和AOF对比 关于RDB和AOF的优缺点,官网上面也给了比较详细的说明redis.io/topics/pers- RDB 优点: RDB快照是一个压缩过的非常紧凑的文件,保存着某个时间点的数据集 ...
- tcp上传学习二--文本文件上传
//暮雪超霸.加油!!!package tcp文本上传; import java.io.BufferedReader; import java.io.FileReader; import java.i ...
- 论JAVA实现MYSQL 行级锁(分布式锁实现方案一)
@Override @Transactional public String getCustomerId() { // return String.valueOf(getSequenceId(SEQ_ ...
- 如何在 Linux 系统查询机器最近重启时间
如何在 Linux 系统查询机器最近重启时间 在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到 ...
- Vue利用v-for渲染时表单信息出不来
今天在写项目时,Controller的值已经传入到html,但是利用vue进行渲染的时候就是出不来, 原因如下: 注意,in 之前的空格.
- Java Object to Class
User user = new User(username,password); //添加构成JWT的参数 JwtBuilder builder = Jwts.builder().setHeaderP ...