Open vSwitch操作手册
- 格式:docx
- 大小:1.37 MB
- 文档页数:19
目录
1、Open vSwitch各模块简要介绍如下: (1)
2、基于 Open vSwitch 的 OpenFlow 实践(ubuntu 14.04) (1)
2.1 OpenvSwitch安装 (1)
2.2 OpenFlow 命令 (3)
2.4修改数据包 (9)
2.5重定向数据包 (10)
2.6修改vlan tag (11)
3、Open vSwitch连接到OpenDaylight (14)
4、Open vSwitch常用操作 (17)
1、OVS各模块简要介绍如下:
ovs-vswitchd:主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;ovsdb-server:轻量级数据库服务器,提供ovs-vswitchd获取配置信息;
ovs-dpctl:用来配置switch内核模块;
一些Scripts and specs 辅助OVS安装在Citrix XenServer上,作为默认switch;
ovs-vsctl:查询和更新ovs-vswitchd的配置;
ovs-appctl:发送命令消息,运行相关daemon。
OVS提供了支持OpenFlow的特性实现,包括:
ovs-ofctl:查询和控制OpenFlow交换机和控制器;
ovs-pki:OpenFlow交换机创建和管理公钥框架;
ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息。
2、基于Open vSwitch 的OpenFlow 实践(ubuntu 14.04)
1.OpenFlow 命令如何创建交换机?
2.如何将一个端口添加到交换机上?
3.如何查看ovs结构?
2.1 OpenvSwitch安装
查看ubuntu版本:
Ubuntu 14.04的OVS版本,已经是2.02,所以默认安装就可以。不过不同的发行版,ovs 的名字会有点不同。
本次实验我们选择openvswitch-switch安装。
成功安装时在命令行可看到openvswich-switch start/running的字样。
执行
查看OVS运行情况
OVS中最重要的组件是ovs-vswitchd,它实现了OpenFlow交换机的核心功能,并且通过netlink协议直接和OVS的内核模块进行通信。交换机运行过程中,ovs-vswitchd还会将交换机的配置、数据流信息及其变化保存到数据库ovsdb中,因为这个数据库由ovsdb-server直接管理,所以ovs-vswitchd需要和ovsdb-server通过UNIX socket机制进行通信以获得或者保存配置信息。数据库ovsdb的存在,使得OVS交换机的配置能够被持久化存储,即便设备被重启后相关的OVS配置仍旧能够存在。
查看OVS版本,ubuntu默认的OVS版本是2.0.2。
查看OVS 支持的OpenFlow 协议的版本,其中0x1代表OpenFlow1.0,0x4代表OpenFlow1.3
2.2 OpenFlow 命令
创建一个OVS交换机
创建一个端口p0
,设置端口p0 的OpenFlow 端口编号为100。
设置网络接口设备类型为”internal”。
创建一个name space:ns0,把p0端口接入到ns0里,并且配置ip地址192.168.1.100/24
重复步骤创建p2
查看创建的交换机信息,获得dpid,端口openflow端口编号。
获取openflow端口编号
查看datapath 的信息互ping测试。
查看mac地址,然后运行。
有253个table;
查看交换机中的所有流表项。
执行时如果出现图示错误,将
openvswitch-switch重启一次。
输出如下信息:
表示此时actions=NORMAL表示ovs采用匹配MAC地址的形式转发包。
2.3流规则管理
每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。
基本字段包括:
•生效时间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 等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
2.4修改数据包
屏蔽所有进入OVS 的以太网广播数据包
屏蔽STP 协议的广播数据包
修改数据包,添加新的OpenFlow 条目,修改从端口p0 收到的数据包的源地址为9.181.137.1
从端口p0
(192.168.1.100)发送测试数据到端口p1(192.168.1.101),就是没啥响应。
新开一个终端,进入根目录,执行如下指令。
等几分钟,会出现如下结果。说明下发的OpenFlow流生效了,端口p0收到的数据包源地