原文网址:OpenDaylight OpenFlow Plugin::Test Environment

​1.获取支持openflow1.3的Mininet

下载Mininet虚拟机文件(Mininet-of-1.3.zip,VirtualBox直接打开),也可以按照指导自己设置带有OF1.3的mininet。本文采用第一种方法,系统为Ubuntu13.04。

1.1VirtualBox下的安装

配置一个host-only的网络,按照如下设置:
  • 在Virtualox的菜单中:管理-全局设定-网络-添加host-only网络如下图

  • 虚拟机设置界面:设置-网络-网卡2-选择连接方式Host-Only
  • 编辑 /etc/network/interfaces文件来正确配置网卡,如下:
auto eth1
iface eth1 inet dhcp
  • 重启虚拟机
   此时,应当有两个interfaces,一个用来做网络地址转换,一个用来处理物理mac和虚拟机的通信。

1.2最简单的选择:使用Vagrant

下载 Virtualboxvagrantup并安装(另附转载 使用 Vagrant 打造跨平台开发环境
cd openflowplugin/vagrant/mininet-2.1.0-of-1.3/
vagrant up
vagrant ssh

2.设置CPqD Openflow 1.3软交换机

最新版本的Openvswitch(v2.0.0)没有完全支持openflow1.3的特性,比如  group multipart的统计数据请求。备选方案就是CPqD openflow 1.3软交换机,它支持大部分1.3的特性
  • 快捷途径:带有CPqD的mininet
  1. cd $HOME/
  2. git clone git://github.com/mininet/mininet
  3. mininet/util/install.sh -n3f
  • 或者你也可以安装下面的方式,根据下面这个连接逐条指令设置交换机
https://github.com/CPqD/ofsoftswitch13
  • 根据下面的命令来启动交换机
开启datapath
$ sudo udatapath/ofdatapath --datapath-id=<dpid> --interfaces=<if-list> ptcp:<port>
 e.g $ sudo udatapath/ofdatapath --datapath-id=000000000001 --interfaces=ethX ptcp:6680
ethX不应该与IP地址关联并且IPv6应当禁用。如果您正在安装的交换机在本地计算机上,可以使用下面的命令(for Ubuntu)来创建虚拟接口。
ip link add link ethX address 00:19:d1:29:d2:58 macvlan0 type macvlan
或许你是再用mininet虚拟机安装这个交换机,你可以简单的在虚拟机上添加一个或多个网卡
启动openflow协议代理:
$secchan/ofprotocol tcp:<switch-host>:<switch-port> tcp:<ctrl-host>:<ctrl-port>
 e.g $secchan/ofprotocol tcp:127.0.0.1:6680 tcp:127.0.0.1:6653

2.1向交换机的各种表中添加表项的命令

  • Add meter
$utilities/dpctl tcp:<switch-host>:<switch-port> meter-mod cmd=add,meter=1 drop:rate=50 

  • Add Groups
$utilities/dpctl tcp:127.0.0.1:6680 group-mod cmd=add,type=all,group=1

$utilities/dpctl tcp:127.0.0.1:6680 group-mod cmd=add,type=sel,group=2 weight=10 output:1


  • Creat queue
$utilities/dpctl tcp:<ip>:<switch port> queue-mod <port-number> <queue-number> <minimum-bandwidth>
  e.g - $utilities/dpctl tcp:127.0.0.1:6680 queue-mod 1 1 23

2.2使用内置的Wireshark

Mininet带有预安装Wireshark的,但由于某种原因,它不包括的OpenFlow协议解码。您可能想要得到并安装在<HOME>/.wireshark/ plugins /目录。
首先,登录你的mininet虚拟机
ssh mininet@<your mininet vm ip> -X 
shh 中的-X选项将会启用X-session,使得Wireshark窗口可以在主机显示屏上显示,出现提示时输入密码(mininet)
在mininet虚拟机的shell中设置wireshark捕获权限( http://wiki.wireshark.org/CaptureSetup/CapturePrivileges
sudo chgrp mininet /usr/bin/dumpcap
sudo chmod 754 /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

最后,启动wireshark:
wireshark

wireshark的窗口应该能展现出来。
为了查看Openflow包,应在FIlter窗口做如下设置
tcp.port == 6653 and tcp.flags.push == 1 
开始捕获任何端口上的包

3.运行支持OF1.3的Mininet

在Mininet虚拟机内部,运行:
sudo mn --topo single,3  --controller 'remote,ip=<your controller ip>,port=6653' --switch ovsk,protocols=OpenFlow13












Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐