ubuntu22.04安装onos+mininet并运行
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界面,如下图: