[原创]Floodlight+ovs的基本使用

一.配置好openflow交换机

  配置好交换机的管理地址,可先用串口登,使管理口地址与controller地址在同一个网络中.

  在交换机上配置controller地址:

  如:

  先用命令新建一个bridge,并加入其接口.

  [[email protected] ]# ovs-vsctl set-controller br0 tcp:192.168.1.1:6633 --->此地址为controller IP地址

二.将若干PC机与交换机接口相连,并在controller上查看floodlight的信息,可以发现有OpenFlow Switch与之相连,并能查看连接上的PC机与拓扑。进入 http://localhost:8080/ui/index.html

  8080为floodlightdefault.properties文件中所指定的端口号.可以登录floodligt的web界面.

三.通过controller控制openflow交换机

  当floodlightdefault.properties配置文件中加载了转发模块(net.floodlightcontroller.forwarding.Forwarding).则连接在交换机上的PC机是可以互相ping通 的.floodlight中没有加载此模块时,须要用使添加流表来控制流向.下面介绍一下从控制器端对openflow交换机添加与删除流表.

  添加流表:

  [[email protected] ]# curl -d ‘{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-1", "cookie":"0", "priority":"2232", "ingress- port":"1","active":"true", "actions":"output=2"}‘ http://:8080/wm/staticflowentrypusher/json

  [[email protected] ]# curl -d ‘{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-2", "cookie":"0", "priority":"2232", "ingress- port":"2","active":"true", "actions":"output=1"}‘ http://:8080/wm/staticflowentrypusher/json

  这两条流表为1号端口的流向2号接口,2号端口的流向1号接口.

  连接在这两个接口上的PC机可以互相通信.

  可变参数解析:

  "00:00:00:00:00:00:00:01"为openflow交换机与controller交互所产生的DPID.

  "flow-mod-1"为该流表的名字(索引),后可用此名字(索引)来删除该流表.

  "ingress-port":后面的参数为入接口

  "actions":后面的参数为出接口

  填入controller的IP

  读取流表:

  [[email protected] ]# curl http://192.168.1.100:8080/wm/core/switch/1/flow/json

  [[email protected] ]# curl http://192.168.1.100:8080/wm/staticflowentrypusher/list/all/json

  删除流表:

  1.删除所有流表

  [[email protected] ]# curl http://192.168.1.208:8080/wm/staticflowentrypusher/clear//json

  2.删除单条流表

  [[email protected] ]# curl -X DELETE -d ‘{"name":"flow-mod-1"}‘ http://:8080/wm/staticflowentrypusher/json

时间: 2024-10-10 14:39:02

[原创]Floodlight+ovs的基本使用的相关文章

[原创]Floodlight安装

Floodlight安装:一.安装环境: ubuntu-12.04-64bit二.安装Floodlight: #apt-get update #apt-get install build-essential default-jdk ant python-dev #apt-get install git #git clone git://github.com/floodlight/floodlight.git #cd floodlight #git checkout fl-last-passed-

Floodlight 在 ChannelPipeline 图

我们知道,在Netty架构,一个ServerBootstrap用于生成server端的Channel的时候都须要提供一个ChannelPipelineFactory类型的參数,用于服务于建立连接的Channel,流水线处理来自某个client的请求.所以这里的 OpenflowPipelineFactory 就是Floodlight 为建立连接的openflow交换机创建ChannelPipeline. 1. IdleStateHandler 当Channel上没有运行对应的读写操作一定时间的时

OVS 派OFPT_PORT_STATUS 流程

依据openflow合约[OFP1.0-38],当从物理端口ovs datapath 添加,改动或者删除的时候.都会先运行详细动作.然后通过ofp_port_status异步消息告知Controller,比方当我们运行 ovs-vsctl add-port br0 eth0 之类的命令后,就会更新ovsdb数据库.某一个轮询时全局变量 reconfiguring 变为true,从而会又一次配置这个ovs. if (reconfiguring) { // cfg 条目能够追踪到ovsdb中某个配置

安装OpenvSwitch (ovs)

简介 搭建SDN环境少不了SDN交换机,SDN交换机跟普通交换机最大的区别就是将普通交换机的数据平面和控制平面相分离,SDN交换机只负责数据的转发,而控制指令则由更上一级的控制器下发. Open vSwitch(下面简称OVS)是一个高质量的.多层虚拟交换机.OVS遵循开源Apache2.0许可,通过可编程扩展,OVS可以实现大规模网络的自动化(配置.管理.维护),同时支持现有标准管理接口和协议(比如NetFlow.sFlow.SPAN.RSPAN.CLI.LACP.802.1ag等).此外OV

[原创]首次SDN比赛的记录-部分

SDN大赛环境搭建和第一大题实现 由于物理设备不足的原因,故用虚拟机实现Floodlight控制器,openvswitch(以下简称:OVS)和mininet各种要用到的SDN环境的搭建.下面将给出它们的搭建步骤和截图,然后再用mininet模拟给出大赛题目的实现的要求. 环境:ubuntu-12.04-64bit(能接入Intenet上网) <1>安装Floodlight控制器 1)在root家目录下执行如下命令:  #apt-get update #apt-get install buil

在floodlight控制器中统计进入packed-in数量的代码(sdn)

<p class="NewStyle15"><span style="font-family: 'Times New Roman'; letter-spacing: 0pt; font-size: 10.5pt;"><o:p></o:p></span></p><p class="NewStyle15" style="text-indent:24.0000pt;

OVS 响应 OFPT_SET_CONFIG 过程分析

ovs 对于 OFPT_SET_CONFIG消息的处理过程非常简单,其实就是通过TCP协议(或其它)交换了几个整型值,而且交换机不需要对此消息进行回复:只需要解析出消息体(struct ofp_switch_config)然后设置max miss  len 即可.通过分析Floodlight发送它的过程 和 OVS 处理它的过程,我们可以对openflow协议有更好的理解.下面是代码流程: 对于这个消息的具体处理: static enum ofperr handle_set_config(str

安装配置openstack 中的 Open vSwitch (OVS) service

?          # yum install openstack-neutronopenstack-neutron-ml2 openstack-neutron- openvswitch Edit the/etc/neutron/plugins/ml2/ml2_conf.ini file and complete the fol-lowing actions: a. In the [ml2] section,enable the flat and generic routingencapsul

OVS处理upcall流程分析

处理upcall总体框架: 1.由函数handle_upcalls()批量处理(in batches)的是由内核传上来的dpif_upcalls,会解析出upcall的类型.这里主要看在内核中匹配流表失败的MISS_UPCALL. 处理完毕后会得到多个flow_miss. 结构体dpif_upcall代表的是由内核传到用户空间的一个包,包含上传原因,packet data.以及以netlink attr形式存在的键值. struct dpif_upcall { /* All types. */