5

实验一:SDN 环境搭建

  1. Mininet+OVS 安装
  2. Ryu 安装
  3. Floodlight 安装
  4. Eclipse 安装,导入Floodlight

Mininet + OVS 安装

1. 安装依赖

git
sudo apt-get update 
sudo apt-get install git

2. 下载源码

~ 目录下操作
git clone git://github.com/mininet/mininet 

3. 进入 mininet 的 util 文件夹

cd mininet/util

4. 查询安装选项

./install.sh –h

5. 安装Mininet + OVS 2.3.0 

./install.sh -n3V 2.3.0

6. 测试Mininet 

sudo mn --test pingall
结果如下:安装成功

7. 查看 Mininet 版本

mn --version
安装完Mininet,可边安装Ryu,边开启一个终端进行实验二的实验

Ryu 安装

1. 安装依赖

如遇[Y/n],输入 Y 回车
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip 
sudo apt-get install python-eventlet python-routes python-webob python-paramiko

2. 下载源码

返回到~目录:
cd \~
git clone git://github.com/osrg/ryu.git

3. 进入 ryu 文件夹

cd ryu

4. 安装 ryu 需要的工具

sudo pip install -r tools/pip-requires
如果出现问题:ImportError:No module named _internal
sudo rm -f /usr/local/bin/pip
返回ryu文件夹:cd ~/ryu
重新执行命令

5. 安装 ryu 

sudo python setup.py install

6. 测试 ryu 

在 ryu 文件夹下
ryu-manager

成功安装结果如下:

7. Ryu GUI 使用
① 启动 GUI 应用

启动应用时添加 --observe-links 启动拓扑发现
ryu-manager --observe-links ryu/app/gui_topology/gui_topology.py

② 创建 mininet 拓扑,可以用最简单的拓扑(sudo mn 生成1台OVS交换机2台主机单控制器)

sudo mn --controller=remote

③ 打开浏览器,输入 http://127.0.0.1:8080

Ryu 的GUI做得不完善,只能显示交换机

Ryu 安装过程如遇一下问题:

问题一:SSLError: The read operation timed out
解决方法:网络原因,重试几次即可
问题二:six 版本问题
解决方法一:sudo pip install --upgrade six
解决方法二:步骤①:sudo pip uninstall six 步骤②:sudo pip install six
问题三:webob>=1.2
解决方法:sudo easy_install webob==1.2.3
问题四:oslo.config>=1.2.0
解决方法:sudo easy_install oslo.config==3.0.0
问题五:lxml未安装
解决方法:apt-get install libxm12-dev libxslt1-dev python-dev python-lxml
问题六:The ‘routes’ distribution was not found an is required by ryu
解决方法:sudo easy_install routes
问题七:The ‘ovs’ distribution was not found an is required by ryu
解决方法:sudo pip install -r tools/pip-requires
问题八:stevedore未安装或者版本不足
解决方法:sudo pip install stevedore
问题九:debtcollector未安装或者版本不足
解决方法:sudo pip install debtcollector

Floodlight 安装

1. 安装依赖
1) JDK 安装

JDK 下载地址:http://www.oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html
相关软件里有8u144版本的压缩文件(jdk-8u144-linux-x64.tar.gz),可直接拷贝到Home目录解压
① 解压:
tar zxvf jdk-8u144-linux-x64.tar.gz

② 解压后的文件夹转移到/usr/local目录

sudo mv jdk1.8.0_144/ /usr/local

③ 配置profile文件,添加环境变量

实验课给的终端是ZSH,修改zprofile
sudo vim /etc/zsh/zprofile
如果是bash的终端,修改/etc/profile
sudo vim /etc/profile

④ 添加内容:

export JAVA_HOME=/usr/local/jdk1.8.0_144 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$JAVA_HOME/bin:$PATH

⑤ 保存并退出:

按ESC 输入:wq 

如果是zsh,如下图:

如果是bash,如下图:

⑥ 生效配置文件

ZSH 生效
source /etc/zsh/zprofile
BASH 生效
source /etc/profile

⑦ 验证JDK安装是否成功

java -version


2) 安装其余依赖

sudo apt-get install build-essential ant python-dev

2. 下载 Floodlight 

git clone git://github.com/floodlight/floodlight.git
git 的速度如果太慢,从实验课的文件夹内把floodlight文件夹直接拷贝到home目录

3. 编译 Floodlight 

进入 Floodlight 文件夹
cd floodlight
编译 Floodlight
ant

编译成功:

4. 启动 Floodlight 

java -jar target/floodlight.jar

启动结果:

5. Floodlight Web GUI 
① 创建 mininet 拓扑,可以用最简单的拓扑(sudo mn 生成1台OVS交换机2台主机单控制器)

sudo mn --controller=remote

② 打开浏览器,输入 http://127.0.0.1:8080/ui/pages/index.html

③ 查看拓扑图

Eclipse 安装,导入Floodlight

在分配 1G 内存情况下,运行 Eclipse 会非常的卡。建议在自己的电脑分配更高内存,尝试使用
实验室的相关安装包里有:eclipse-inst-linux64.tar.gz,拷贝到Home目录下

Eclipse 安装

1. 解压 Eclipse 

tar zxvf eclipse-inst-linux64.tar.gz

2. 安装 Eclipse 

进入解压后的文件夹「eclipse-installer」,运行eclipse-inst进行安装
cd eclipse-installer
./eclipse-inst

3. 根据引导完成安装 
① 选择Eclipse IDE for JAVA EE Developers
② 安装

③ 弹出窗,选择接受

④ 等待下载安装完成
启动后,选择工作空间

Eclipse 导入 Floodlight

1. 编译  

开启新终端,进入到 Floodlight 目录,执行
ant eclipse
若出现错误:BUILD FAILED: setup_eclipse.sh error=13,Permission defined
chmod +x set_eclipse.sh, 再重新运行
成功显示:
BUILD SUCCESSFUL
2. 启动 Eclipse  
进入文件夹:~/eclipse/jee-oxygen/eclipse
./eclipse

3. Eclipse 中导入 Floodlight 工程  

菜单选择导入

选择General-Existing Projects into Workspace

选择 Floodlight

4. 配置 Floodlight 的运行配置  

下拉运行键 - 选择Run Configurations

>

选择Floodlight—Default


选择 Run 运行

运行:

5. 运行 Floodlight  
以后下拉运行键选择 Floodlight-Default-Conf运行即可


Neal
38 声望13 粉丝

Neal love Amoy.