【SDN】最新!手把手零基础在Ubuntu 20.04搭建SDN环境(全网最详细)/Floodlight/Mininet/sFlow

想在Linux下搭建SDN环境,几乎把中文互联网所有相关教程都看了,用了一周时间才弄好,写下这篇文章帮助大家排坑。包括搭建FloodlightMininetsFlow。

1.安装ubuntu 20.04

网上教程很多,就不展开了。

2.安装JDK8

参考了

Unbuntu下Java环境搭建-CSDN博客 Linux之Ubuntu20.04安装Java JDK8的两种方式-CSDN博客

一 更新软件包列表

sudo apt-get update

 二 安装 OpenJDK 8

sudo apt-get install openjdk-8-jdk

三  检查 Java 版本

java -version
如果发现不对,必须要手动到官网下载

Java Downloads | Oracle

一 创建jvm目录

sudo mkdir /usr/lib/jvm

二 解压 JDK 压缩文件到 jvm 目录(注意文件名)

sudo tar -zxvf jdk-8u391-linux-x64.tar.gz -C /usr/lib/jvm

三 (无法解压需要切换到 root 用户)

sudo passwd root
su root

四 创建 Java 目录并移动压缩文件

cd /opt
sudo mkdir java
mv jdk-8u391-linux-x64.tar.gz /opt/java
tar -zxvf jdk-8u391-linux-x64.tar.gz
rm jdk-8u391-linux-x64.tar.gz

五 配置环境变量

        安装文本编辑器,Vim

sudo apt update
sudo apt install vim

        或 Nano

sudo apt-get install nano

编辑 ~/.bashrc 文件,在文件末尾加入以下内容( 替换为你的 JDK 目录)

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

应用更改

source ~/.bashrc

 设置 Java 选择项

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_391/bin/java 300

六 验证 Java 版本

java -version

3.安装ant1.10.7

参考了Linux之ant安装部署_linux ant-CSDN博客

一 安装 Maven

sudo apt-get install maven

二 解压 Apache Ant 压缩文件

tar -zxvf apache-ant-1.10.7.tar.gz

三 赋予权限

chmod 777 apache-ant-1.10.7

四 配置环境变量

编辑 /etc/profile 文件

sudo vi /etc/profile

在文件末尾加入(用你的路径)

export ANT_HOME=/path/to/apache-ant-1.10.7
export PATH=$PATH:$ANT_HOME/bin

应用

source /etc/profile

五 验证

ant -version

4.安装Eclipse IDE

一 下载 Eclipse

wget -P /opt https://archive.eclipse.org/technology/epp/downloads/release/luna/SR2/eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz

二  解压

cd /opt
tar -zxvf eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz

三 启动

cd /opt/eclipse
./eclipse

5.安装floodlight

参考了

floodlight安装教程-CSDN博客

安装floodlight时候ant编译报错。Compile failed; see the compiler error output for……-CSDN博客

【精选】Linux下的floodlight安装指南(排坑版)-CSDN博客

一 安装依赖

sudo apt-get install build-essential
sudo apt-get install git

二 下载网盘文件(不要用直接在github上下载的源码,在这里感谢@不再彷徨 的分享。

链接:https://pan.baidu.com/s/1ZIAhPwestOeG-ThPLBBppg?pwd=safd 
提取码:safd 
--来自百度网盘超级会员V6的分享

三 到相应文件夹

cd floodlight

四 获取子模块

git pull origin master
git submodule init
git submodule update

这一步可能会不成功

五 构建

ant

如果报错就需要

下载0.14.1的libthrift.jar,以及netty-all-4.1.50.Final.jar。且将两个jar包放在floodlight/lib下。且在floodlight文件夹中的build.xml中修改相对于版本。两个jar包放在下面链接中。参考@西工大-大黄

我把相应的文件也放在网盘里了。

链接:https://pan.baidu.com/s/1ZIAhPwestOeG-ThPLBBppg?pwd=safd 
提取码:safd 
--来自百度网盘超级会员V6的分享

六 之后再构建,运行

java -jar target/floodlight.jar

在浏览器中打开

http://localhost:8080/ui/index.html

显示

6.安装 Mininet

参考【SDN】最快速安装mininet仿真器+ryu控制器(Ubuntu18.04 or 20.04)_Jerry_丶的博客-CSDN博客

一 安装 Python 3 和 Pip

sudo apt install python3-pip
echo alias python=python3 >> ~/.bashrc
echo alias pip=pip3 >> ~/.bashrc
source ~/.bashrc

二 配置 Pip 使用国内镜像源

pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/

三 安装 Git

sudo apt install git

四 克隆 Mininet 仓库

git clone https://github.com/mininet/mininet.git/

五 修改安装脚本

打开 mininet/util/install.sh 文件

sudo nano -c ~/mininet/util/install.sh

 找到第 106 行,并将 PYTHON=${PYTHON:-python} 修改为

PYTHON=${PYTHON:-python3}

六 运行安装脚本

sudo chmod 777 mininet/util/install.sh
sudo mininet/util/install.sh -n3V 2.5.0

 验证安装

mn

显示

*** No default OpenFlow controller found for default switch!
*** Falling back to OVS Bridge
*** Mininet must run as root.

表明安装成功

7.安装sFlow

一 安装 Open vSwitch

sudo apt-get install openvswitch-switch

二 下载 sFlow-RT

wget http://www.inmon.com/products/sFlow-RT/sflow-rt.tar.gz
tar -xvzf sflow-rt.tar.gz

三 安装 sFlow

./sflow-rt/get-app.sh sflow-rt flow-trend
./sflow-rt/get-app.sh sflow-rt browse-metrics
cd sflow-rt
./start.sh

四 创建应用目录并运行

mkdir app
docker run -v $PWD/app:/sflow-rt/app --entrypoint /sflow-rt/get-app.sh sflow/sflow-rt sflow-rt flow-trend
docker run -v $PWD/app:/sflow-rt/app --entrypoint /sflow-rt/get-app.sh sflow/sflow-rt sflow-rt browse-metrics
docker run -v $PWD/app:/sflow-rt/app -p 6343:6343/udp -p 8008:8008 sflow/sflow-rt

五 一些额外的 安装 Curl

sudo apt update
sudo apt install curl

六 启动

cd sflow-rt
./start.sh

配置 sFlow Agent

sudo ovs-vsctl -- --id=@sflow create sflow agent=eth0 target="127.0.0.1:6343" sampling=10 polling=20 -- set bridge s1 sflow=@sflow

打开

 http://127.0.0.1:8008

至此结束