ovs怎么删除某个ovs的端口有哪些类型的qos配置

openvswitch&常用命令
添加名为br0的网桥
ovs-vsctl add-br br0
删除名为br0的网桥
ovs-vsctl del-br br0
列出所有网桥
ovs-vsctl list-br
判断网桥br0是否存在
ovs-vsctl br-exists br0
列出挂接到网桥br0上的所有网络接口
ovs-vsctl list-ports br0
将网络接口eth0挂接到网桥br0上
ovs-vsctl add-port br0 eth0
删除网桥br0上挂接的eth0网络接口
ovs-vsctl del-port br0 eth0
列出已挂接eth0网络接口的网桥
ovs-vsctl port-to-br eth0
网桥管理(ovsdb数据库操作)
ovsdb是一个非常轻量级的数据库,与其说它是一个数据库,不如说它是一个提供增删查改等功能的临时配置缓存,之所以这么说,是因为ovsdb数据库的根本就未使用多少数据库技术,如SQL语言查询、存储过程等等。ovsdb
数据库通过模式文件“openvswitch-1.1.0pre2/vswitchd/vswitch.ovsschema”,如要定制ovsdb数据库,可通过更改
vswitch.ovsschema 文件实现,不过以下姑且仍以数据库称之。
数据库操作的一般格式为:
ovs-vsctl list/set/get/add/remove/clear/destroy table record column
默认情况下ovsdb中有以下数据表:
controller,interface,mirror,netflow,open_vswitch,port,qos,queue,ssl,sflow
即table可为上面的任一个。record为数据表中name字段的值,column为数据表任一个字段的字段名,value字段值。
基本操作:
查看bridge数据表中的所有记录
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_zNFh.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
获得bridge数据表_uuid字段的值
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_jNB.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
设置bridge数据表datapath_type字段的值
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_TcJ3.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
清除bridge数据表flood_vlans字段的值
ovs-vsctl remove bridge xenbr0 flood_vlans 23
ovs-vsctl clear bridge xenbr0 flood_vlans
删除uuid为69ee0c09-9e52--037a98ca704d的qos记录
ovs-vsctl destroy qos 69ee0c09-9e52--037a98ca704d
应用场景设置:
针对网络接口的设置:设置网络接口vif0.0的带宽为kbps
ovs-vsctl set interface vif0.0 ingress_policing_rate=1000
ovs-vsctl set interface vif0.0 ingress_policing_burst=100
(ingress_policing_rate:最大发送速率(单位均为kbps)
ingress_policing_burst:超过ingress_policing_rate的最大浮动值)
针对交换机端口的设置:创建在vif0.0端口上的linux-htb QoS,linux-htb
QoS可以针对具有指定特征的数据包流设置最大最小带宽,且在最大带宽范围内,某一特征的数据包流可以借用其他特征数据包流未用完的带宽。
ovs-vsctl -- set port vif0.0 qos=@newqos
-- --id=@newqos create qos type=linux-htb other-config:
max-rate= queues=0=@q0,1=@q1
-- --id=@q0 create queue other-config:min-rate=
other-config:max-rate=
-- --id=@q1 create queue other-config:min-rate=
将带宽限制加于某特征数据包流上
(假设vif0.0的接在交换机1号端口上,ovs-ofctl命令的使用见2.2.3)
ovs-ofctl add-flow xenbr0
"in_port=2,idle_timeout=0,actions=enqueue:1:0"
将发往eth0端口和从eth1端口发出的数据包全部定向到eth2端口
(假设eth0、eth1、eth2端口的uuid分别为:
69ee0c09-9e52--037a98ca704d
69ee0c09-9e52--037a98ca704e
69ee0c09-9e52--037a98ca704f
端口的uuid可以通过ovs-vsctl list port命令查看)
ovs-vsctl -- set bridge xenbr0 mirrors=@m
-- --id=@m create mirror name=mymirror
select-dst-port=69ee0c09-9e52--037a98ca704d
select-src-port=69ee0c09-9e52--037a98ca704e
output-port=69ee0c09-9e52--037a98ca704f
流规则管理
流规则组成
每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分:
基本字段包括生效时间duration_sec、所属表项table_id、优先级priority、处理的数据包数n_packets,空闲超时时间idle_timeout等,空闲超时时间idle_timeout以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为0表示该流规则永不过期,idle_timeout将不包含于ovs-ofctl
dump-flows brname的输出中。
条件字段包括输入端口号in_port、源目的mac地址dl_src/dl_dst、源目的ip地址nw_src/nw_dst、数据包类型dl_type、网络层协议类型nw_proto等,可以为这些字段的任意组合,但在网络分层结构中底层的字段未给出确定值时上层的字段不允许给确定值,即一条流规则中允许底层协议字段指定为确定值,高层协议字段指定为通配符(不指定即为匹配任何值),而不允许高层协议字段指定为确定值,而底层协议字段却为通配符(不指定即为匹配任何值),否则,ovs-vswitchd
中的流规则将全部丢失,网络无法连接。
动作字段包括正常转发normal、定向到某交换机端口output:port、丢弃drop、更改源目的mac地址mod_dl_src/mod_dl_dst等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
查看虚拟交换机xenbr0的信息
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_ebnr.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
显示的xenbr0信息中网络接口名称前的数字为该网络接口挂接到Open
vSwitch上的端口号,如1(vif0.0):&中的1为网络接口vif0.0对应的端口号,在添加包含in_port字段的流规则时可通过该命令查看网络接口对应的端口号。
查看xenbr0上各交换机端口的状态
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_U0PA.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
输出的结果中包含了各网络接口上收到的数据包数,字节数,丢包数,错误数据包数等信息
查看xenbr0上的所有流规则
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_kKY.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
输出结果中共有两条流规则,第一条为默认的流规则,即对所有数据包进行正常转发,为普通二层交换机完成的功能,优先级为0,最低,永不超时。
第二条为手动添加的流规则,基本字段中不包含idle_timeout字段,表示永不超时,优先级为32768,Open
vSwitch将先根据该条流规则处理收到的数据包,如从数据包中提取出的特征与条件字段不符,则该用第一条流规则处理收到的所有数据包。
添加一条流规则:丢弃从2号端口发来的所有数据包
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_Nhbi.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
删除一条流规则:删除条件字段中包含in_port=2的所有流规则
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_Vr8.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
流规则中可包含通配符和简写形式,任何字段都可等于*或ANY,如:
丢弃所有收到的数据包
ovs-ofctl add-flow xenbr0 dl_type=*,nw_src=ANY,actions=drop
简写形式为将字段组简写为协议名,目前支持的简写有ip,arp,icmp,tcp,udp,与流规则条件字段的对应关系如下:
dl_type=0x0800&&=&ip
dl_type=0x0806&&=&arp
dl_type=0x0800,nw_proto=1&&=&&icmp
dl_type=0x0800,nw_proto=6&&=&&tcp
dl_type=0x0800,nw_proto=17&&=&&udp
(1.1.0 即以后版本支持)
dl_type=0x86dd.&&=&&ipv6
dl_type=0x86dd,nw_proto=6.&&=&&tcp6
dl_type=0x86dd,nw_proto=17.&&=&&udp6
dl_type=0x86dd,nw_proto=58.&&=&&icmp6
应用场景设置
屏蔽由Open
vSwitch管理的任何主机对主机119.75.213.50的访问,但只屏蔽ip数据包(由dl_type=0x0800指定),即所有主机将无法访问该主机上所有基于IP协议的服务,如万维网服务、FTP访问等
ovs-ofctl add-flow xenbr0
idle_timeout=0,dl_type=0x0800,nw_src=119.75.213.50,actions=drop
数据包重定向
将交换机中所有的icmp协议包(有dl_type=0x0800,nw_proto=1指定)全部转发到4号端口,包括4号端口自己发出的icmp包,该流规则将导致由Open
vSwitch管理的主机间以及与外部网络间都将访问ping通,但可以使用万维网、FTP等服务。
ovs-ofctl add-flow xenbr0
idle_timeout=0,dl_type=0x0800,nw_proto=1,actions=output:4
去除VLAN tag
去除从3号端口发来的所有VLAN数据包中的tag,然后转发
ovs-ofctl add-flow xenbr0
idle_timeout=0,in_port=3,actions=strip_vlan,normal
更改数据包源IP地址后转发
将从3号端口收到的所有IP包的源IP字段更改为211.68.52.32
ovs-ofctl add-flow xenbr0
idle_timeout=0,in_port=3,actions=mod_nw_src:211.68.52.32,normal
内核模块中flow操作
查看内核模块flow
ovs-dpctl dump-flows xenbr0
后台模块控制,如日志系统、后台模块退出
查看后台模块支持的appctl命令
查看ovsdb-server支持的appctl命令,ovs-appctl必须在后台模块运行后才能针对后台模块使用,默认情况下,所有运行的后台模块都会在/usr/local/var/run/openvswitch/目录下创建一个与ovs-appctl通信的socket文件
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_y7e7.gif" STYLE="border-style: max-width: 100%;"
TITLE="openvswitch&常用命令" />
更改Open vSwitch各后台的模块的日志级别
更改ovs-vswitchd模块的日志级别info,“ANY:ANY:info”中的前一个“ANY”代表ovs-vswitchd中的任何模块组件,“ovs-appctl
--target=/usr/local/var/run/openvswitch/
ovs-vswitchd.29384.ctl
vlog/list”命令输出的第一列将为ovs-vswitchd包含的所有模块组件。“ANY:ANY:info”中的后一个“ANY”代表日志的任何方式的输出,日志的输出方式有三种,分别为:console,syslog,file,分别代表将日志输出到控制台、写入到系统日志系统和写入到ovs-vswitchd启动时由—log-file参数指定的文件。“ANY:ANY:info”中的“info”表示日志级别,共有emer、err、warn、info、dbg五个日志级别,dbg为最低级别,指定为dbg时,所有的日志信息都将输出,但此时可能导致日志系统迅速膨胀,而占用越来越多的硬盘存储空间。
ovs-appctl
--target=/usr/local/var/run/openvswitch/ovs-vswitchd.29384.ctl
ANY:ANY:info
退出后台模块
让ovs-vswitchd停止运行
ovs-appctl
--target=/usr/local/var/run/openvswitch/ovs-vswitchd.29384.ctl
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用户名:xiaoli110
文章数:149
评论数:219
访问量:384976
注册日期:
阅读量:1297
阅读量:3317
阅读量:585093
阅读量:470654
51CTO推荐博文
&Openvswitch 配置qos
测试环境如下
网络设备&cisco 2960s
服务器&dell r610
操作系统&fedora 15+update
服务器上添加一块intel 82571双端口的网卡,分别接交换机的1口,2口
配置端口tap0 最大速度不超过100M
ovs-vsctl -- set port tap0& qos=@newqos \
-- --id=@newqos create qos type=linux-htb other-config:max-rate= queues=0=@q0,1=@q1 \
-- --id=@q0 create queue other-config:min-rate= other-config:max-rate= \
-- --id=@q1 create queue other-config:min-rate= \
清除tap0上的qos策略
ovs-vsctl -- destroy QoS tap0 -- clear Port tap0 qos
查看交换机br0端口信息
ovs-ofctl show br0
ovs-dpctl show本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)ovs教程 - CSDN博客
添加名为br0的网桥
ovs-vsctl add-br br0
删除名为br0的网桥
ovs-vsctl del-br br0
列出所有网桥
ovs-vsctl list-br
判断网桥br0是否存在
ovs-vsctl br-exists br0
列出挂接到网桥br0上的所有网络接口
ovs-vsctl list-ports br0
将网络接口eth0挂接到网桥br0上
ovs-vsctl add-port br0 eth0
删除网桥br0上挂接的eth0网络接口
ovs-vsctl del-port br0 eth0
列出已挂接eth0网络接口的网桥
ovs-vsctl port-to-br eth0
网桥管理(ovsdb数据库操作)
ovsdb是一个非常轻量级的数据库,与其说它是一个数据库,不如说它是一个提供增删查改等功能的临时配置缓存,之所以这么说,是因为ovsdb数据库的根本就未使用多少数据库技术,如SQL语言查询、存储过程等等。ovsdb 数据库通过模式文件“openvswitch-1.1.0pre2/vswitchd/vswitch.ovsschema”,如要定制ovsdb数据库,可通过更改 vswitch.ovsschema 文件实现,不过以下姑且仍以数据库称之。
数据库操作的一般&#26684;式为:
ovs-vsctl list/set/get/add/remove/clear/destroy table record column [value]
默认情况下ovsdb中有以下数据表:
bridge, controller,interface,mirror,netflow,open_vswitch,port,qos,queue,ssl,sflow
即table可为上面的任一个。record为数据表中name字段的&#20540;,column为数据表任一个字段的字段名,value字段&#20540;。
基本操作:
查看bridge数据表中的所有记录
获得bridge数据表_uuid字段的&#20540;
设置bridge数据表datapath_type字段的&#20540;
清除bridge数据表flood_vlans字段的&#20540;
ovs-vsctl remove bridge xenbr0 flood_vlans 23
ovs-vsctl clear bridge xenbr0 flood_vlans
删除uuid为69ee0c09-9e52--037a98ca704d的qos记录
ovs-vsctl destroy qos 69ee0c09-9e52--037a98ca704d
应用场景设置:
针对网络接口的设置:设置网络接口vif0.0的带宽为kbps
ovs-vsctl set interface vif0.0 ingress_policing_rate=1000
ovs-vsctl set interface vif0.0 ingress_policing_burst=100
(ingress_policing_rate:最大发送速率(单位均为kbps)
ingress_policing_burst:超过ingress_policing_rate的最大浮动&#20540;)
针对交换机端口的设置:创建在vif0.0端口上的linux-htb QoS,linux-htb QoS可以针对具有指定特征的数据包流设置最大最小带宽,且在最大带宽范围内,某一特征的数据包流可以借用其他特征数据包流未用完的带宽。
ovs-vsctl -- set port vif0.0 qos=@newqos
-- --id=@newqos create qos type=linux-htb other-config:
max-rate= queues=0=@q0,1=@q1
-- --id=@q0 create queue other-config:min-rate= other-config:max-rate=
-- --id=@q1 create queue other-config:min-rate=
将带宽限制加于某特征数据包流上
(假设vif0.0的接在交换机1号端口上,ovs-ofctl命令的使用见2.2.3)
ovs-ofctl add-flow xenbr0 &in_port=2,idle_timeout=0,actions=enqueue:1:0&
将发往eth0端口和从eth1端口发出的数据包全部定向到eth2端口
(假设eth0、eth1、eth2端口的uuid分别为:
69ee0c09-9e52--037a98ca704d
69ee0c09-9e52--037a98ca704e
69ee0c09-9e52--037a98ca704f
端口的uuid可以通过ovs-vsctl list port命令查看)
ovs-vsctl -- set bridge xenbr0 mirrors=@m
-- --id=@m create mirror name=mymirror
select-dst-port=69ee0c09-9e52--037a98ca704d
select-src-port=69ee0c09-9e52--037a98ca704e
output-port=69ee0c09-9e52--037a98ca704f
流规则管理
流规则组成
每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分:
基本字段包括生效时间duration_sec、所属表项table_id、优先级priority、处理的数据包数n_packets,空闲超时时间idle_timeout等,空闲超时时间idle_timeout以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为0表示该流规则永不过期,idle_timeout将不包含于ovs-ofctl dump-flows brname的输出中。
条件字段包括输入端口号in_port、源目的mac地址dl_src/dl_dst、源目的ip地址nw_src/nw_dst、数据包类型dl_type、网络层协议类型nw_proto等,可以为这些字段的任意组合,但在网络分层结构中底层的字段未给出确定&#20540;时上层的字段不允许给确定&#20540;,即一条流规则中允许底层协议字段指定为确定&#20540;,高层协议字段指定为通配符(不指定即为匹配任何&#20540;),而不允许高层协议字段指定为确定&#20540;,而底层协议字段却为通配符(不指定即为匹配任何&#20540;),否则,ovs-vswitchd 中的流规则将全部丢失,网络无法连接。
动作字段包括正常转发normal、定向到某交换机端口output:port、丢弃drop、更改源目的mac地址mod_dl_src/mod_dl_dst等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
查看虚拟交换机xenbr0的信息
显示的xenbr0信息中网络接口名称前的数字为该网络接口挂接到Open vSwitch上的端口号,如1(vif0.0):&中的1为网络接口vif0.0对应的端口号,在添加包含in_port字段的流规则时可通过该命令查看网络接口对应的端口号。
查看xenbr0上各交换机端口的状态
输出的结果中包含了各网络接口上收到的数据包数,字节数,丢包数,错误数据包数等信息
查看xenbr0上的所有流规则
输出结果中共有两条流规则,第一条为默认的流规则,即对所有数据包进行正常转发,为普通二层交换机完成的功能,优先级为0,最低,永不超时。
第二条为手动添加的流规则,基本字段中不包含idle_timeout字段,表示永不超时,优先级为32768,Open vSwitch将先根据该条流规则处理收到的数据包,如从数据包中提取出的特征与条件字段不符,则该用第一条流规则处理收到的所有数据包。
添加一条流规则:丢弃从2号端口发来的所有数据包
删除一条流规则:删除条件字段中包含in_port=2的所有流规则
流规则中可包含通配符和简写形式,任何字段都可等于*或ANY,如:
丢弃所有收到的数据包
ovs-ofctl add-flow xenbr0 dl_type=*,nw_src=ANY,actions=drop
简写形式为将字段组简写为协议名,目前支持的简写有ip,arp,icmp,tcp,udp,与流规则条件字段的对应关系如下:
dl_type=0x0800&&=&ip
dl_type=0x0806&&=&arp
dl_type=0x0800,nw_proto=1&&=&&icmp
dl_type=0x0800,nw_proto=6&&=&&tcp
dl_type=0x0800,nw_proto=17&&=&&udp
(1.1.0 即以后版本支持)
dl_type=0x86dd.&&=&&ipv6
dl_type=0x86dd,nw_proto=6.&&=&&tcp6
dl_type=0x86dd,nw_proto=17.&&=&&udp6
dl_type=0x86dd,nw_proto=58.&&=&&icmp6
应用场景设置
屏蔽由Open vSwitch管理的任何主机对主机119.75.213.50的访问,但只屏蔽ip数据包(由dl_type=0x0800指定),即所有主机将无法访问该主机上所有基于IP协议的服务,如万维网服务、FTP访问等
ovs-ofctl add-flow xenbr0 idle_timeout=0,dl_type=0x0800,nw_src=119.75.213.50,actions=drop
数据包重定向
将交换机中所有的icmp协议包(有dl_type=0x0800,nw_proto=1指定)全部转发到4号端口,包括4号端口自己发出的icmp包,该流规则将导致由Open vSwitch管理的主机间以及与外部网络间都将访问ping通,但可以使用万维网、FTP等服务。
ovs-ofctl add-flow xenbr0 idle_timeout=0,dl_type=0x0800,nw_proto=1,actions=output:4
去除VLAN tag
去除从3号端口发来的所有VLAN数据包中的tag,然后转发
ovs-ofctl add-flow xenbr0 idle_timeout=0,in_port=3,actions=strip_vlan,normal
更改数据包源IP地址后转发
将从3号端口收到的所有IP包的源IP字段更改为211.68.52.32
ovs-ofctl add-flow xenbr0 idle_timeout=0,in_port=3,actions=mod_nw_src:211.68.52.32,normal
内核模块中flow操作
查看内核模块flow
ovs-dpctl dump-flows xenbr0
后台模块控制,如日志系统、后台模块退出
查看后台模块支持的appctl命令
查看ovsdb-server支持的appctl命令,ovs-appctl必须在后台模块运行后才能针对后台模块使用,默认情况下,所有运行的后台模块都会在/usr/local/var/run/openvswitch/目录下创建一个与ovs-appctl通信的socket文件
更改Open vSwitch各后台的模块的日志级别
更改ovs-vswitchd模块的日志级别info,“ANY:ANY:info”中的前一个“ANY”代表ovs-vswitchd中的任何模块组件,“ovs-appctl --target=/usr/local/var/run/openvswitch/
ovs-vswitchd.29384.ctl vlog/list”命令输出的第一列将为ovs-vswitchd包含的所有模块组件。“ANY:ANY:info”中的后一个“ANY”代表日志的任何方式的输出,日志的输出方式有三种,分别为:console,syslog,file,分别代表将日志输出到控制台、写入到系统日志系统和写入到ovs-vswitchd启动时由—log-file参数指定的文件。“ANY:ANY:info”中的“info”表示日志级别,共有emer、err、warn、info、dbg五个日志级别,dbg为最低级别,指定为dbg时,所有的日志信息都将输出,但此时可能导致日志系统迅速膨胀,而占用越来越多的硬盘存储空间。
ovs-appctl --target=/usr/local/var/run/openvswitch/ovs-vswitchd.29384.ctl vlog/set
ANY:ANY:info
退出后台模块
让ovs-vswitchd停止运行
ovs-appctl --target=/usr/local/var/run/openvswitch/ovs-vswitchd.29384.ctl exit
本文已收录于以下专栏:
相关文章推荐
http://blog.chinaunix.net/uid--id-4333314.html
一、open vswitch简介
Open vSwitch是一个高质量的、...
使用ovs-vsctl,通过命令行创建ovs网桥和端口
1、ovs-vsctl add-br br-int #创建一个名为br-int的网桥
ovs-vsctl add-br br-tu...
ovs-vsctl add-br br0
//添加一个名为br0的网桥
ovs-vsctl add-br br1
//添加一个名为br1的网桥
1&#160;虚拟交换机
利用软件的方式形成交换部件,所以也叫软件交换机,跟传统的物理交换机相比,虚拟交换机有很多优点:1.配置灵活,因为是软件实现的,一台物理服务器上可以配置数十台或者数百台虚拟交换机...
一、open vswitch简介
Open vSwitch是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由Nicira Networks开发,主要实现代码为可移植的...
作者:张华&#160; 发表于:版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99 )
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)OVS操作总结 - CSDN博客
OVS操作总结
Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流量监控等等。
OVS 遵循 Apache 2.0 许可证, 能同时支持多种标准的管理接口和协议。OVS 也提供了对 OpenFlow 协议的支持,用户可以使用任何支持 OpenFlow 协议的控制器对 OVS 进行远程管理控制。
在 OVS 中, 有几个非常重要的概念:
Bridge: Bridge 代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个Bridge 设备。
Port: 端口与物理交换机的端口概念类&#20284;,每个 Port 都隶属于一个 Bridge。
Interface: 连接到 Port 的网络接口设备。在通常情况下,Port 和 Interface 是一对一的关系, 只有在配置 Port 为 bond 模式后,Port 和 Interface 是一对多的关系
Controller: OpenFlow 控制器。OVS 可以同时接受一个或者多个 OpenFlow 控制器的管理。
datapath: 在 OVS 中,datapath 负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。
Flow table: 每个 datapath 都和一个“flow table”关联,当 datapath 接收到数据之后, OVS 会在 flow table 中查找可以匹配的 flow,执行对应的操作, 例如转发数据到另外的端口。
非ovsdb数据库操作:
ovs-vsctl add-br br-int
ovs-vsctl list-br
#给网桥添加端口
ovs-vsctl add-port br-int tap-xxx
#列出挂载某网络接口的所有网桥
ovs-vsctl port-to-br tap-xxx
#查看全部信息
ovs-vsctl show
ovsdb数据库操作:
#通用&#26684;式为
ovs-vsctl list/set/get/add/remove/clear/destroy table record column [value]
#默认情况下ovsdb中包含的数据表
bridge, controller,interface,mirror,netflow,open_vswitch,port,qos,queue,ssl,sflow
#举例 查看所有网桥
ovs-vsctl list bridge
#举例 删除一条qos记录
ovs-vsctl destroy qos &qos-id&
#修改端口 p1 的 VLAN tag 为 101,使端口 p1 成为一个隶属于 VLAN 101 的端口
ovs-vsctl set Port p1 tag=101
流规则管理
每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。
基本字段包括:
生效时间 duration_sec
所属表项 table_id
优先级 priority、
处理的数据包数 n_packets
空闲超时时间 idle_timeout 等空闲超时时间 idle_timeout 以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为 0 表示该流规则永不过期,idle_timeout 将不包含于 ovs-ofctl dump-flows brname 的输出中。
条件字段包括:
输入端口号 in_port
源目的 mac 地址 dl_src/dl_dst
源目的 ip 地址 nw_src/nw_dst
数据包类型 dl_type
网络层协议类型 nw_proto
这些字段可以任意组合,但在网络分层结构中底层的字段未给出确定&#20540;时上层的字段不允许给确定&#20540;,即一 条流规则中允许底层协议字段指定为确定&#20540;,高层协议字段指定为通配符(不指定即为匹配任何&#20540;),而不允许高层协议字段指定为确定&#20540;, 而底层协议字段却为通配符(不指定即为匹配任何&#20540;),否则,ovs-vswitchd
中的流规则将全部丢失,网络无法连接。
动作字段包括正常转发 normal、定向到某交换机端口 output:port、丢弃 drop、更改源目 的 mac 地址 mod_dl_src/mod_dl_dst 等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
#查看某网桥信息
ovs-ofctl show br-tun
#查看某网桥上所有端口的状态
ovs-ofctl dump-ports br-tun
#添加一条流表规则 丢弃从port2上发来的所有数据表
ovs-ofctl add-flow br-tun idle_timeout=120,in_port=2,actions=drop
#查看某网桥上面的流表规则
ovs-ofctl dump-flows br-tun
#屏蔽所有进入 OVS 的以太网广播数据包
ovs-ofctl add-flow ovs-switch &table=0, dl_src=01:00:00:00:00:00/01:00:00:00:00:00, actions=drop&
#屏蔽 STP 协议的广播数据包
ovs-ofctl add-flow ovs-switch &table=0, dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, actions=drop&
Qos可以针对网络接口,也可以针对端口设置:
#针对网络接口&&kbps
ovs-vsctl set interface tap-xxx ingress_policing_rate=1000
ovs-vsctl set interface tap-xxx ingress_policing_burst=100
将发往 p0 端口和从 p1 端口发出的数据包全部定向到 p2 端口,用 ovs-vsctl list port 命令查看 p0、p1、p2 端口的 uuid 分别为id1、id2、id3:
ovs-vsctl --set bridge br0 mirrors=@m-- --id=@m create mirror name=mymirror&&\
select-dst-port=id_1 \
select-src-port=id_2 \
output-port=id_3
屏蔽对目的主机访问:
ovs-ofctl add-flow br0 idle_timeout=0,dl_type=0x0800,nw_src=xx.xx.xx.xx,actions=drop
本文已收录于以下专栏:
相关文章推荐
1. 显示bridge的信息,连接到bridge上的interface,tap和端口号(port)
ovs-ofctl show ovs-switch&#160;(ovs-switch代表bridge的名字,也...
在平时使用ovs中,经常用到的ovs命令,参数,与举例总结。
配置OVS虚拟OpenFlow交换机:
进行OVS设置时很容易造成虚拟交换机与物理交换机构成二层环路(比如虚拟交换机包含两块网卡,而这两块网卡都连接到物理交换机上,就是一个环路),一旦有广播报文,比如...
(本文为参考诸多资料后作者的总结与理解)
1 虚拟交换机
利用软件的方式形成交换部件,所以也叫软件交换机,跟传统的物理交换机相比,虚拟交换机有很多优点:1.配置灵活,因为是软件实现的,一台物...
1&#160;虚拟交换机
利用软件的方式形成交换部件,所以也叫软件交换机,跟传统的物理交换机相比,虚拟交换机有很多优点:1.配置灵活,因为是软件实现的,一台物理服务器上可以配置数十台或者数百台虚拟交换机...
SDN 兴起传统网络管理方式发展缓慢,往往通过命令行接口,进行手工配置,运营成本高,网络升级时间长,缺乏灵活性,对需求变化响应速度慢,而且容易发生错误。
2012年7月,SDN代表厂商Nicir...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 ovs 端口 的文章

 

随机推荐