博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ovs-vsctl 命令详解
阅读量:4920 次
发布时间:2019-06-11

本文共 3313 字,大约阅读时间需要 11 分钟。

Open vSwitch中有多个命令,分别有不同的作用,大致如下:

  • ovs-vsctl用于控制ovs db
  • ovs-ofctl用于管理OpenFlow switch 的 flow
  • ovs-dpctl用于管理ovs的datapath
  • ovs-appctl用于查询和管理ovs daemon

本文主要介绍ovs-vsctl。以下命令查询主机上已有的 OVS bridge,以及其中的 port。

ovs-vsctl show

例子

$ ovs-vsctl showfc562da8-fb36-4d62-8b47-5502e72069dc Bridge br-vxlan Port "vxlan0" Interface "vxlan0" type: vxlan options: {remote_ip="10.10.10.1"} Port br-vxlan Interface br-vxlan type: internal Port "veth2" Interface "veth2" ovs_version: "2.5.0"

Bridge 相关命令

创建 bridge

创建bridge(或switch,以下统称为bridge) br0

使用选项--may-exist后,若欲创建的bridge已存在,该命令什么也不做,也不报错。

ovs-vsctl [--may-exist] add-br br0

删除bridge

删除 bridge br0

使用选项--if-exists后,若欲删除的bridge不存在,该命令什么也不做,也不报错。

ovs-vsctl [--if-exists] del-br br0

查询已有的 bridge

ovs-vsctl list-br

端口相关命令

添加端口

添加端口(物理端口或vNIC)eth1到bridge eth1中

ovs-vsctl [--may-exist] add-port br0 eth1

创建 bond

在br0上创建一个bond了eth0,eth1和eth2的bond端口bond0

# ovs-vsctl add-bond 
ovs-vsctl add-bond br0 bond0 eth0 eth1 eth2

移除端口

从br0上移除端口eth1

ovs-vsctl [--if-exists] del-port br0 eth1

列出端口

列出br0上的端口(不包括internal port)

ovs-vsctl list-ports br0

查看端口详细数据

列出OVS中端口eth1的详细数据

$ ovs-vsctl list interface eth1

OpenFlow 控制器相关

添加控制器

# ovs-vsctl set-controller 
ovs-vsctl set-controller br0 tcp:1.2.3.4:6633 # 设置多个controller ovs-vsctl set-controller br0 tcp:1.2.3.4:6633 tcp:4.3.2.1:6633 # 添加使用unix socket通信的controller ovs-vsctl set-controller br0 unix:/var/run/xx/xx.sock

移除控制器

ovs-vsctl del-controller br0

查询 brige 上已配置的控制器

ovs-vsctl get-controller br0

VLAN 相关

配置端口为Access口

设置br0中的端口eth0为VLAN 10的access口

ovs-vsctl set port eth0 tag=10

添加eth1到指定bridge br0中,同时将其配置成指定VLAN 10的access端口

ovs-svctl add-port br0 eth1 tag=10

配置端口为Trunk口

在br0上添加port eth1为VLAN 9,10,11的trunk

ovs-vsctl add-port br0 eth1 trunk=9,10,11

VXLAN 相关

在bridge ovs0中添加远端IP为10.10.10.1的VXLAN endpoint端口vxlan0

# key=100表示设置vni为100,不设置默认为0ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 options:key=100 # 不设key值,vni默认为0 ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 # key=flow的话,表示该port的vni可以通过openflow的actions来进行设置 # 如: actions=set_field:100->tun_id # 或: actions=set_tunnel:100 ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 options:key=flow

其他

Atomic operation

一条命令创建bridge br0的,并添加eth0到br0中

ovs-vsctl add-br br0 -- add-port br0 eth0

创建 internal port

OVS internal port 可以配置IP地址,普通 port 上配置的IP地址是不起作用的。在 br0 上创建一个internal port in0:

ovs-vsctl add-br br0 in0 -- set interface in0 type=internal ip addr add 10.10.10.10/24 dev in0 # 创建internal port的同时将其设置为VLAN 10的access port ovs-vsctl add-br br0 in1 tag=10 -- set interface in1 type=internal ip addr add 20.20.20.20/24 dev in1

设置 OpenFlow port id

# 将已在ovs中的端口veth1的OpenFlow端口设置成100ovs-vsctl set interface veth1 ofport_request=100 # 将端口veth1添加到bridge br0中,并将veth1的OpenFlow端口设置成200 ovs-vsctl add-port br0 veth1 -- set interface veth1 ofport_request=200

{% admonition note Note %} OpenFlow的端口 id 在设置 flow 的匹配字段 in_port 以及 actions 字段的 output 中都会用到。 

可以通过命令ovs-ofctl show br0来查看 br0 中各端口的 OpenFlow 端口 id,该 id 并不求是按顺序的。 {% endadmonition %}

设置OpenFlow版本

ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow12,OpenFlow13

 

 

转载于:https://www.cnblogs.com/wangjq19920210/p/8999887.html

你可能感兴趣的文章
missing python bz2 module
查看>>
CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第十节
查看>>
单个单选框radio 点击选中点击取消选中
查看>>
团队冲刺随笔合集—Beta阶段
查看>>
Android ANR的产生与分析
查看>>
大型网站架构
查看>>
Appium+python自动化29-appium对博客园APP进行自动化测试
查看>>
cocos2d实例-移动精灵
查看>>
SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程)
查看>>
Python控制键盘鼠标:pynput,mouse,keyboard
查看>>
这里的*号实际表示就是RAC中所有实例都使用
查看>>
在python中编写socket服务端模块(二):使用poll或epoll
查看>>
解决Synergy的鼠标无法从服务器(server)机屏幕移动到客户机(client)屏幕的问题
查看>>
第三代搜索推出网民评价系统,seo末日还会远吗?
查看>>
希尔排序
查看>>
Silverlight 1.1架构图
查看>>
企业架构 - ADM方法概要介绍
查看>>
需求:如何做好深度访谈
查看>>
领域实体框架Rafy2 发布了
查看>>
CreateRemoteThread的调试问题
查看>>