Open vSwitch 使用
2013-07-16 10:17
190 查看
1 网桥管理
添加名为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数据库的根本就未使用多少数据库技术,如SQL语言查询、存储过程等等。ovsdb 数据库通过模式文件“openvswitch-1.1.0pre2/vswitchd/vswitch.ovsschema”,如要定制ovsdb数据库,可通过更改 vswitch.ovsschema 文件实现,不过以下姑且仍以数据库称之。
数据库操作的一般格式为:
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字段的值,column为数据表任一个字段的字段名,value字段值。
基本操作:
查看bridge数据表中的所有记录
获得bridge数据表_uuid字段的值
设置bridge数据表datapath_type字段的值
清除bridge数据表flood_vlans字段的值
ovs-vsctl remove bridge xenbr0 flood_vlans 23
或者
ovs-vsctl clear bridge xenbr0 flood_vlans
删除uuid为69ee0c09-9e52-4236-8af6-037a98ca704d的qos记录
ovs-vsctl destroy qos 69ee0c09-9e52-4236-8af6-037a98ca704d
2 应用场景设置
QoS设置针对网络接口的设置:设置网络接口vif0.0的带宽为1000±100kbps
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=100000000 queues=0=@q0,1=@q1
-- --id=@q0 create queue other-config:min-rate=100000000 other-config:max-rate=100000000
-- --id=@q1 create queue other-config:min-rate=500000000
将带宽限制加于某特征数据包流上
(假设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-4236-8af6-037a98ca704d
69ee0c09-9e52-4236-8af6-037a98ca704e
69ee0c09-9e52-4236-8af6-037a98ca704f
端口的uuid可以通过ovs-vsctl list port命令查看)
ovs-vsctl -- set bridge xenbr0 mirrors=@m
-- --id=@m create mirror name=mymirror
select-dst-port=69ee0c09-9e52-4236-8af6-037a98ca704d
select-src-port=69ee0c09-9e52-4236-8af6-037a98ca704e
output-port=69ee0c09-9e52-4236-8af6-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等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
相关文章推荐
- Docker实践 -- 使用Open vSwitch实现跨主机通信
- Open vSwitch的使用
- Open vSwitch使用笔记
- Open vSwitch 使用
- Open vSwitch使用案例扩展实验
- 使用open vswitch构建虚拟网络
- Open vSwitch 使用
- Open vSwitch使用笔记
- Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Netruon Open vSwitch + VLAN Virutal Network]
- Open vSwitch使用命令
- OVS初级教程:使用open vswitch构建虚拟网络(转载)
- Open vSwitch使用笔记
- Open vSwitch 使用
- 使用open vswitch构建虚拟网络
- Linux系统下Open vSwitch的基本使用方法
- 玩转OpenStack网络Neutron(2)--使用Open vSwitch实现VLAN类型租户网络
- 玩转OpenStack网络Neutron(2)--使用Open vSwitch实现VLAN类型租户网络
- Open vSwitch使用