open vSwitch学习资料整理
来源:互联网 发布:索爱java论坛 编辑:程序博客网 时间:2024/05/13 17:43
(整理下最近学习的open vSwitch资料,部分还没理解待以后深入)
(参考文章http://sdnhub.cn/index.php/openv-switch-full-guide/ and http://blog.csdn.net/yahohi/article/details/6631934)
1.模块
ovs-vsctl:查询和更新ovs-vswitchd的配置;
ovs-ofctl:查询和控制OpenFlow交换机和控制器;
ovsdb-server:轻量级数据库服务器,提供ovs-vswitchd获取配置信息;
ovs-openflowd:一个简单的OpenFlow交换机;
ovs-controller:一个简单的OpenFlow控制器;
ovs-vswitchd 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;
ovs-dpctl 用来配置switch内核模块;
ovs-appctl 发送命令消息,运行相关daemon;
ovsdbmonitor GUI工具,可以远程获取OVS数据库和OpenFlow的流表;
(其他暂未用到,待补充)
2.基础命令
ovs-vsctl list-br /显示所有的桥ovs-vsctl list bridge /显示所有桥的详细信息ovs-vsctl show /显示所有的桥和对应接口ovs-vsctl add-br br100 /添加桥br100ovs-vsctl del-br br100 /删除桥br100ovs-vsctl list-ports br100 /显示桥br100上的端口ovs-vsctl add-port br100 eth1 /添加接口eth1到桥br100ovs-vsctl del-port br100 eth1 /删除桥br100上的接口eth1ovs-vsctl port-to-br eth1 /显示接口eth1所在的所有桥ovs-ofctl dump-flows br100 /显示桥br100上所有流表ovs-ofctl dump-ports br100 /显示桥br100上各接口的状态(受到的数据包数、字节数、丢包数、错误包数等)ovs-ofctl show br100 /显示桥br100上所有接口详细信息ovs-ofctl add-flow br100 <em>flow</em> /在桥br100上添加流表规则“flow”ovs-ofctl del-flows br100 /删除桥br100上所有流表ovs-vsctl set-controller br100 tcp:192.168.1.2:6633 /把桥br100连接到控制器(控制器ip和端口号)ovs-vsctl del-controller br100 /移除桥br100上的控制器ovs-vsctl set-fail-mode br100 secure|standalone /配置桥br100的fail模式(2选1)ovs-vsctl get-fail-mode br100 /查询桥br100的fail模式ovs-vsctl del-fail-mode br100 /移除桥br100的fail模式配置
ovs-vsctl set interface eth0 ofport_request=100 /更改ofport为100ovs-vsctl set interface eth0 type=internal /设置port为internalovs-vsctl set bridge br100 stp_enable=ture /在桥br100上开启STPovs-vsctl set bridge br100 stp_enable=false /在桥br100上关闭STPovs-vsctl get bridge br100 stp_enable /查询桥br100上STP状态ovs-vsctl set bridge br100 other_config:stp-priority=0x7800 /设置优先级ovs-vsctl set port eth0 other_config:stp-path-cost=10 /设置costovs-vsctl clear bridge br100 other_config /移除STP设置
ovs-vsctl add-port br100 vlan3 tag=3 -- set interface vlan3 type=internal /设置VLAN tagovs-vsctl del-port br100 vlan3 /移除VLANovs-vsctl show /可查询到VLAN信息 ovs-vsctl set port eth0 tag=2 /设置已存在的接口到VLAN
ovsdb-tool show-log /查询指令历史记录
3.网桥管理
数据库操作一般格式:
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,
record为数据表中name字段的值,column为数据表任一个字段的字段名,value字段值;
ovs-vsctl get bridge br100 _uuid /显示桥br100的_uuid字段值ovs-vsctl get bridge br100 datapath_type /显示桥br100的datapath_type字段值ovs-vsctl set bridge br100 datapath_type="system" /设置桥br100的数据表datapath_type字段的值ovs-vsctl clear bridge br100 flood_vlans /清除桥br100数据表flood_vlans字段的值
实例:
qos,设置接口eth1的带宽为1000 ±100kbps
ovs-vsctl set interface eth1 ingress_policing_rate=1000 /ingress_policing_rate 设置最大发送速率 kbpsovs-vsctl set interface eth1 ingress_policing_burst=100 /ingress_policing_burst 超过rate参数的最大浮动值
ovs-vsctl --set bridge br100 mirrors=@m -- --id=@m create mirror name=mymirror select-dst-port=eth0的_uuid值 select-src-port=eth1的_uuid值 output-port=eth2的_uuid值 //端口映射:将发往eth0端口和从eth1端口发出的数据包全部定向到eth2端口
4.流表
规则组成:由一系列字段组成,基本字段、条件字段、动作字段;
基本字段:duration_sec 生效时间
table_id 所属表项
priority 优先级
n_packets 处理的数据包数
idle_timeout 空闲超时时间; 以秒为单位,超时后该流被自动删除,时间为0表示永不过期;
等
条件字段:in_port 输入端口号
dl_src/dl_dst 源目的mac地址
nw_src/nw_dst 源目的ip地址
dl_type 数据包类型
nw_proto 网络层协议类型
等
动作字段:normal 正常转发
output:port 定向到某交换机端口
drop 丢弃
mod_dl_src/mod_dl_dst 更改源目的mac地址
等
(一条流可以有多个动作,按先后顺序依次执行)
(在网络分层结构中底层的字段未给出确定值时上层的字段不允许给确定值,即一条流规则中允许底层协议字段指定为确定值,高层协议字段指定为通配符(不指定即为匹配任何值),而不允许高层协议字段指定为确定值,而底层协议字段却为通配符(不指定即为匹配任何值),否则,ovs-vswitchd 中的流规则将全部丢失,网络无法连接)
实例:
流表规则中可含通配符和简写形式,目前支持的协议简写有ip, arp, icmp, tcp, udp;
dl_type=0x0800 <=> ip
dl_type=0x0806
dl_type=0x0800,nw_proto=1
dl_type=0x0800,nw_proto=6
dl_type=0x0800,nw_proto=17
ovs-ofctl add-flow br100 idle_timeout=120,in_port=2,actions=drop //丢弃从端口2发来的所有数据包ovs-ofctl del-flow br100 in_port=2 //删除条件字段中包含in_port=2的所有流规则ovs-ofctl add-flow br100 dl_type=*,nw_src=ANY,actions=drop //丢弃所有收到的数据包ovs-ofctl add-flow br100 idle_timeout=0,dl_type=0x0800,nw_src=192.168.1.3,actions=drop //屏蔽所有主机对主机1.3的ip数据包访问(无法访问主机1.3上所有基于IP协议的服务,www,ftp等)ovs-ofctl add-flow br100 idle_time=0,dl_type=0x0800,nw_proto=1,actions=output:4 //将所有icmp协议的包全部转发到4号端口,包括4号端口自己发出的包ovs-ofctl add-flow br100 idle_timeout=0,in_port=3,actions=strip_vlan,normal //去除从3号端口发来的所有VLAN数据包中的tag,然后转发ovs-ofctl add-flow br100 idle_timeout=0,in_port=3,actions=mod_nw_src:192.168.1.4,normal //将从3号端口进来的所有数据包源IP字段更改为1.4,然后转发
- open vSwitch学习资料整理
- Open vSwitch学习(一)
- Open vSwitch
- Open vSwitch
- open vswitch
- Open vSwitch
- open vswitch
- ovs学习笔记--Open VSwitch简介
- openstack学习笔记 ---OVS(Open VSwitch) 虚拟交换机
- Open vSwitch 安装
- Open vSwitch 使用
- Open vSwitch Q&A
- open vswitch研究:datapath
- open vswitch研究:flow
- open vswitch研究: action
- Open vSwitch 安装
- open vswitch研究:vswitchd
- open vswitch研究:utility
- linux swap详解
- Struts2+Spring+Hibernate搭建全解!
- REXT: 路由器攻击工具集
- .net 高频面试题
- iOS的手势
- open vSwitch学习资料整理
- 小小邮票蕴藏大财富
- vs2010 mfc添加一个管理员登录界面,登录成功显示主界面
- 第六节 MAKEFILE的常用命令
- 【实用】Excel表格技巧合集,让你工作效率翻一倍!
- wifi中的ap、sta、ap+sta模式的含义
- ubuntu双网卡配置
- oracle alter table
- BaiduMap---百度地图官方Demo之基本地图功能(创建一张百度地图并管理地图的生命周期)