mininet安装_ONOS 从零入门教学 (应用程式新增,安装及测试)

2023-05-16

0x00 前言

话说最近需要开发一个 SDN 环境下的应用,打算趁这个机会学习 ONOS,在开始了良久之后,悟透了一个道理,就是 RYU 真的很方便,嗯。

0x01 要怎样开始?

第一步当然是要把 ONOS 的 Source Code 抓下来啰~

$ git clone https://gerrit.onosproject.org/onos

然后把 onos 中备有的 script 加入自己的 .bashrc.bash_profile

$ export ONOS_ROOT=~/onos
$ source $ONOS_ROOT/tools/dev/bash_profile

然后就可以使用更多 ONOS 预先帮你写好的 alias 啦。

接着就可以 build ONOS

$ buck build onos --show-output

及 单元测试一下

$ buck test

若 build 及 unit test 都没有问题,那么恭喜你,可以开始进行下一步了!

0x02 如何在本地开启 ONOS?

注:此文写于 2017 年 9 月,新版本的 onos 的构建工具从 buck 换成了 bazel

首先呢,我们在onos的 Directory 中执行

$ buck run onos-local -- clean debug

以开启 ONOS server,然后可以在另一个 Terminal 中开启 ONOS 的 console:

$ onos localhost

成功后会看到如下图所示:

ONOS 预设使用 8101 埠 作为其 console

再一次恭喜你,成功把 ONOS 开在本机上啦~

0x03 UI 介面

而当然 ONOS 也有提供 UI 介面,ONOS 的 UI 预设所使用的是 Port 8181,我们可以透过 http://localhost:8181/onos/ui 连接 ONOS 的 UI 介面。

预设的用户名称:onos
预设的用户密码:rocks

而进去后应该会看到以下介面

什么? No Devices Are Connected? 那我们就来 Create some devices 吧!

0x04 Mininet

我们利用 Mininet 来建立一个简单的 SDN Network:

$ sudo mn --topo tree,2,3 --mac --switch ovsk --controller=remote,ip=<controllor ip>

这样我们就能拥有一个有 4 个 Open vSwitch 以及 9 个 Host 的 Network 了!

这样可以建立一个 tree,2,3 的 network topology,详细可以看 Mininet 的官方说明文件。

让我们木再回到 ONOS 的 UI 介面看看

看到 Controller 认出来的 4 台 Open vSwitch 了,可是 Host 呢?为什么点 h 都没有反应的?

cccc点 h 可以显示/隐藏 Host

没错,Open vSwitch 们还未知道 Hosts 们的存在,我们必须要让他们先 Ping 一次 Controller 才会把 flow install 到 switch 里面!

我们直接执行

mininet> pingall

再回到 ONOS UI

没错,这样就对了!

0x05 如何新增属于自己的应用?

ONOS 中的应用是通过 maven 来进行建置的,所以理所当然地我们要用 maven 来建置我们的第一支应用!

我们首先利用 onos 提供给我们的工具

$ onos-buck-publish-local

把 maven 需要用到的 artifacts 都 push 到 ~/.m2中。

然后找一个 onos 外的路径,开始进行建置:

mvn archetype:generate -DarchetypeGroupId=org.onosproject -DarchetypeArtifactId=onos-bundle-archetype

或直接使用 onos 已经帮我们包好了的工具:

$ onos-create-app
注意:必须把 pom.xml 中的 onos.app.nameonos.app.origin uncommemnt 掉,不然不会产生 .oar 档!

以上都是一些建立 maven 时可加入的定义参数,若想了解更多,详见此处。

直到看到这个上面这个画面,就大功告成啦!

整个资料夹的架构:

your-app/
├── pom.xml
└── src
    ├── main
    │   └── java
    │   └── org
    │   └── lam
    │   └── AppComponent.java
    └── test
        └── java
            └── org
                └── lam
                    └── AppComponentTest.java

有了一个最简单的 maven 架构,以后就可以根据要求开始编写自己的 ONOS 应用了!

0x06 如何把自己写的应用安装到 ONOS 中?

当我们真的写好一个 ONOS 应用后,到底要如何把他安装到我们的 ONOS 中使用呢?

让我们拿 onos-app-samples 中的 oneping 作为例子,首先我们需要把 onos-app-samples 复制到本机中

$ git clone git@github.com:opennetworkinglab/onos-app-samples.git
onos-app-samples 是 ONOS 属下的一连串 sample app 的一个专案,建议新加入 ONOS 的可以先由 onos-app-samples 中的应用开始学起。

我们先在 onos-app-samples/oneping/ 中执行

$ mvn compile

然后建立 .OAR 档以作待安装

$ mvn install

然后, 我们可以看到onos-app-oneping-1.9.0-SNAPSHOT 已经被建立在oneping/target/ 中,下一步,我们终于可以把该.OAR 档安装到ONOS 里去了!

$ onos-app localhost install target/onos-app-oneping-1.9.0-SNAPSHOT.oar

完成上面的步骤后,进入 ONOS console 执行

onos> apps -s

可以看到 oneping 已经被我们加到 ONOS 里面了!可是这样还未正式可以被使用,我们还必须要将其 activate

onos> app activate org.onosproject.oneping

同理,若想将其 deactivate

onos> app deactivate org.onosproject.oneping

完成!

ONOS 应用的安装档是使用 OAR 作为其格式

本文首發於 laochanlam 个人博客,转载请注明出处。

个人主页 - laochanlam​blog.laochanlam.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mininet安装_ONOS 从零入门教学 (应用程式新增,安装及测试) 的相关文章

随机推荐