基于ONOS2.4.0开发基本应用

本文详细指导如何在Ubuntu22.04环境下安装ONOS网络操作系统,并配合Mininet进行网络环境搭建,包括JDK、Python、Node.js等依赖项的安装,以及Bazel编译和WebGUI访问的步骤。
摘要由CSDN通过智能技术生成

ONOS是首款开源的SDN网络操作系统,主要面向服务提供商和企业骨干网。ONOS的设计宗旨是满足网络需求实现可靠性强、性能好、灵活度高。此外,ONOS的北向接口抽象层和API支持简单的应用开发,而通过南向接口抽象层和接口则可以管控OpenFlow或者传统设备。

一、前言

本文参考ONOS Wiki安装教程并结合自己实际操作中解决问题的过程进行编写。

二、前期准备

虚拟机安装,本文使用ubuntu-22.04-desktop-amd64(VMware17),内存选择8GB。

三、环境搭建

3.1 jdk安装

对于Unbuntu18.04及以后的新版本,官方推荐安装Java 11,这里我们选择OpenJDK-11进行安装。

# 安装OpenJDK-11
sudo apt-get install openjdk-11-jdk
# 配置环境变量
sudo vim /etc/profile
# 在profile文件末尾添加下面的内容
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 查看配置是否成功,若显示openjdk version,则配置成功
java -version

注:
①.如果vim 打不开先 安装vim编辑器:sudo apt-get install vim; 按:" i "进行编辑,保存退出即先按ESC,然后 ":wq"保存退出。
②.如果JAVA_HOME下没有jre文件夹,则在JAVA_HOME路径运行以下代码:

sudo ./bin/jlink --module-path jmods --add-modules java.desktop --output jre

3.2 Python2 和 Python3安装

sudo apt install python2
sudo apt install python3
sudo apt install python-pip python2-dev python-setuptools
sudo apt install python3-pip python3-dev python3-setuptools
 
pip3 install --upgrade pip
pip3 install selenium

注:若第三句执行报错,可执行一下“sudo apt-get update”命令,再试一次。

3.3 curl安装

sudo apt-get install curl

3.4 zip安装

sudo apt-get install zip

3.5 Git安装

Git 和 git-review 将用于从/向 ONOS 存储库拉取和推送代码,因此需要安装它们。

sudo apt-get install git
sudo apt-get install git-review

3.6 Bazelisk安装

Bazelisk是一个管理多个版本的Bazel的工具。不同版本的ONOS已经在不同版本的Bazel上进行了验证(如其.bazelversion文件中所定义)。使用 Bazel 将确保您针对适合您正在构建的版本构建的 Bazel 版本。

wget https://github.com/bazelbuild/bazelisk/releases/download/v1.4.0/bazelisk-linux-amd64
#给予bazelisk执行权限
chmod +x bazelisk-linux-amd64
sudo mv bazelisk-linux-amd64 /usr/local/bin/bazel

注:第一句容易失败,多试几次(vpn)。

3.7 node和npm安装

sudo apt install nodejs
sudo apt install npm

四、ONOS下载并运行

4.1 onos下载

此处下载版本为onos-2.4.0,直接从github进行clone。

cd /opt
sudo git clone --branch 2.4.0 https://github.com/opennetworkinglab/onos.git

注:速度过慢建议使用共享文件夹方式。

4.2使用bazel进行编译

cd onos
#下载合适的bazel版本
bazel version
#开始编译
 sudo bazel build onos
#如果失败,可以重启再多次尝试编译(vpn)

4.3 运行onos

cd onos
bazel run onos-local -- clean debug

注:
1.运行ONOS之前,ONOS需要监听的端口号6653和6633有可能被其他进程占用,因此可以先检查一下端口使用情况:

sudo netstat -atnp | grep 6653
sudo netstat -atnp | grep 6633

2.若除java进程外,有其他进程占用端口号6653或6633,例如:ovs-testcontrol,则杀死进程:

sudo kill -9 <进程号>

4.4 访问 Web GUI

从浏览器访问
输入:

http://XX.YY.WW.ZZ:8181/onos/ui/index.html

XX.YY.WW.ZZ 是目标计算机的IP地址(在验证正常工作后有个node IP地址)

访问后界面如下:(用户名和密码是:onos/rocks)
在这里插入图片描述

四、配置ONOS

1.进入界面后在左上角选择Applications,将以下应用启动
在这里插入图片描述

五、安装mininet

sudo apt-get install mininet

将mininet与onos联合使用,在桌面另起终端,输入以下命令:

sudo mn --topo=tree,2,3 --controller=remote,ip=127.0.0.1 --mac --switch=ovsk,protocols=OpenFlow13

注:topo 为网络拓扑结构,可以自己根据需要设置(tree,2,3:表示为构建树形拓扑结构,交换机为2层,每个交换机下面挂3个主机),ip为主机ip地址(构建一个简单的拓扑结构,要打开onos的openflow和fwd这两个,否则在onos的GUI界面不能看见)

在这里插入图片描述
继续,在mininet中输入pingall尝试能否ping通。
在这里插入图片描述
出现以上结果表示ping通了。

接下来可以查看GUI界面,如下图:

在这里插入图片描述

1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 基于ONOS控制器的SDN网络路由优化App源码+项目说明.zip ## 功能介绍 - deviceStatistics:记录SDN网络运行过程中的交换机、主机、链路、流量、出入包等数据并存入MySQL数据库,需要配置数据库地址、用户名和密码。 - predict: 采用lstm(长短期记忆网络)的方法预测实时SDN网络链路流量,需要预训练的lstm机器学习模型文件。 - ml-routing: 根据流量预测结果自适应调整SDN网络中流量转发路径,达到路由优化的效果。 ## 使用方法 - 嵌入ONOS代码库 - 修改$ONOS_ROOT/tools/build/bazel/modules.bzl文件 - 在app中添加记录"//apps/appname:onos-apps-appname-oar"(appname即为app文件夹名) - 通过bazel构建整个ONOS ## 声明 - 适配版本:ONOS 2.1.0-SNAPSHOT ONOS 2.2.0-SNAPSHOT ONOS 2.3.0-SNAPSHOT 测试通过 基于ONOS控制器的SDN网络路由优化App源码+项目说明.zip 基于ONOS控制器的SDN网络路由优化App源码+项目说明.zip 基于ONOS控制器的SDN网络路由优化App源码+项目说明.zip
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值