openvswitch操作手册

上传人:第*** 文档编号:61714659 上传时间:2018-12-10 格式:DOCX 页数:19 大小:1.34MB
返回 下载 相关 举报
openvswitch操作手册_第1页
第1页 / 共19页
openvswitch操作手册_第2页
第2页 / 共19页
openvswitch操作手册_第3页
第3页 / 共19页
openvswitch操作手册_第4页
第4页 / 共19页
openvswitch操作手册_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《openvswitch操作手册》由会员分享,可在线阅读,更多相关《openvswitch操作手册(19页珍藏版)》请在金锄头文库上搜索。

1、目录1、Open vSwitch各模块简要介绍如下:12、基于 Open vSwitch 的 OpenFlow 实践(ubuntu 14.04)12.1 OpenvSwitch安装12.2 OpenFlow 命令32.4修改数据包92.5重定向数据包102.6修改vlan tag113、Open vSwitch连接到OpenDaylight144、Open vSwitch常用操作171、OVS各模块简要介绍如下:ovs-vswitchd:主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;ovsdb-server:轻量级数据库服务器,提供ovs-vswitchd获

2、取配置信息;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

3、 实践(ubuntu 14.04)1. OpenFlow 命令如何创建交换机?2.如何将一个端口添加到交换机上?3.如何查看ovs结构?2.1 OpenvSwitch安装查看ubuntu版本:lsb_release -aUbuntu 14.04的OVS版本,已经是2.02,所以默认安装就可以。不过不同的发行版,ovs的名字会有点不同。apt-cache search openvswitch本次实验我们选择openvswitch-switch安装。apt-get install openvswitch-switch成功安装时在命令行可看到openvswich-switch start/runni

4、ng的字样。执行ps -ea | grep ovs查看OVS运行情况OVS中最重要的组件是ovs-vswitchd,它实现了OpenFlow交换机的核心功能,并且通过netlink协议直接和OVS的内核模块进行通信。交换机运行过程中,ovs-vswitchd还会将交换机的配置、数据流信息及其变化保存到数据库ovsdb中,因为这个数据库由ovsdb-server直接管理,所以ovs-vswitchd需要和ovsdb-server通过UNIX socket机制进行通信以获得或者保存配置信息。数据库ovsdb的存在,使得OVS交换机的配置能够被持久化存储,即便设备被重启后相关的OVS配置仍旧能够存在

5、。查看OVS版本,ubuntu默认的OVS版本是2.0.2。ovs-appctl -version查看 OVS 支持的 OpenFlow 协议的版本,其中0x1代表OpenFlow1.0,0x4代表OpenFlow1.3ovs-ofctl -version2.2 OpenFlow 命令创建一个OVS交换机ovs-vsctl add-br ovs-switch创建一个端口 p0,设置端口 p0 的 OpenFlow 端口编号为 100。ovs-vsctl add-port ovs-switch p0 - set Interface p0 ofport_request=100设置网络接口设备类型为

6、”internal”。ovs-vsctl set Interface p0 type=internal查看设置后的结果。ethtool -i p0创建一个name space:ns0,把p0端口接入到ns0里,并且配置ip地址 192.168.1.100/24ip netns add ns0ip link set p0 netns ns0ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0ip netns exec ns0 ifconfig p0 promisc upovs-vsctl show重复步骤,创建p1ovs-vsctl add-

7、port ovs-switch p1 - set Interface p1 ofport_request=101ovs-vsctl set Interface p1 type=internalip netns add ns1ip link set p1 netns ns1ip netns exec ns1 ip addr add 192.168.1.101/24 dev p1ip netns exec ns1 ifconfig p1 promisc up重复步骤创建p2ovs-vsctl add-port ovs-switch p2 - set Interface p2 ofport_requ

8、est=102ovs-vsctl set Interface p2 type=internalip netns add ns2ip link set p2 netns ns2ip netns exec ns2 ip addr add 192.168.1.102/24 dev p2ip netns exec ns2 ifconfig p2 promisc upovs-vsctl show查看创建的交换机信息,获得dpid,端口openflow端口编号。ovs-ofctl show ovs-switch获取openflow端口编号ovs-vsctl get Interface p0 ofporto

9、vs-vsctl get Interface p1 ofportovs-vsctl get Interface p2 ofport查看 datapath 的信息ovs-dpctl show互ping测试。ip netns exec ns0 ping 192.168.1.101ip netns exec ns0 ping 192.168.1.102查看mac地址,然后运行。ovs-appctl fdb/show ovs-switch查看交换机所有tableovs-ofctl dump-tables ovs-switch有253个table;查看交换机中的所有流表项。ovsofctl dumpfl

10、ows ovs-switch执行时如果出现图示错误,将openvswitch-switch重启一次。service openvswitch-switch restart输出如下信息:表示此时actions=NORMAL表示ovs采用匹配MAC地址的形式转发包。ovs-ofctl del-flows ovs-switch “in_port=100”删除编号为 100 的端口上的所有流表项2.3流规则管理每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。基本字段包括: 生效时间 duration_sec 所属表项 table_id 优先级 priority、 处理的数据包数 n_

11、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这些字段可以任意组合,但在网络分层结构中底层的字段未给出确定值时上层的字段不允许给确定值,即

12、一 条流规则中允许底层协议字段指定为确定值,高层协议字段指定为通配符(不指定即为匹配任何值),而不允许高层协议字段指定为确定值, 而底层协议字段却为通配符(不指定即为匹配任何值),否则,ovs-vswitchd 中的流规则将全部丢失,网络无法连接。动作字段包括正常转发 normal、定向到某交换机端口 output:port、丢弃 drop、更改源目 的 mac 地址 mod_dl_src/mod_dl_dst 等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。2.4修改数据包屏蔽所有进入 OVS 的以太网广播数据包ovs-ofctl add-flow ovs-switch “ta

13、ble=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修改数据包,添加新的 OpenFlow 条目,修改从端口 p0 收到的数据包的源地址为 9.181.137.1ovs-ofctl add-flow ovs-switch priority=1 idle_timeout=0,in_port=100,acti

14、ons=mod_nw_src:9.181.137.1,normal从端口 p0(192.168.1.100)发送测试数据到端口 p1(192.168.1.101),就是没啥响应。ip netns exec ns0 ping 192.168.1.101新开一个终端,进入根目录,执行如下指令。ip netns exec ns1 tcpdump -i p1 icmp等几分钟,会出现如下结果。说明下发的OpenFlow流生效了,端口p0收到的数据包源地址被修改了。2.5重定向数据包添加新的 OpenFlow 条目,重定向所有的 ICMP 数据包到端口 p2ovs-ofctl add-flow ovs-switch idle_timeout=0,dl_type=0x0800,nw_proto=1,actions=output:102从端口 p0 (192.168.1.100)发送数据到端口 p1(192.168.1.101)ip netns exec ns0 ping 192.168.1.101ip netns exec ns2 tcpdump -i p2 icmp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号