iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

Cloud/SDN/SFC...菜鳥的學習筆記系列 第 12

Day12 菜鳥的ONOS紀錄-ONOS使用以及ONOS project介紹

今天就是簡單的SDN code的使用,以及一些ONOS的操作。ps:code的部分為java,因此需要一點java的概念。

建立project

首先先clone onos的專案

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

創建project

第一個foo-app為檔案目錄 第二個1.0-SNAPSHOT 指的是在onos內Applications的版本(可以隨便定 在project內的pom.xml也可以改)
第三個 org.foo.app為appID

./tools/dev/bin/onos-create-app app org.foo foo-app 1.0-SNAPSHOT org.foo.app

創建好會在onos底下發現剛剛創建的project

project介紹

pom.xml:這部分為設定project的檔案。

  • 其中內的為依賴的lib
  • 為一些ONOS設定部分,會在底下看見onos.為開頭的,這些之後會再onos上看見,這裡先了解這為設定。
<properties>
        <onos.app.name>org.foo.app</onos.app.name>
        <onos.app.title>Foo App</onos.app.title>
        <onos.app.origin>Foo, Inc.</onos.app.origin>
        <onos.app.category>default</onos.app.category>
        <onos.app.url>http://onosproject.org</onos.app.url>
        <onos.app.readme>ONOS OSGi bundle archetype.</onos.app.readme>
    </properties>

的部分則為bulid時候會用的。

AppComponent.java

這個為主程式的部分,相當於一般看到的main的檔案。

  • activate()為程式進入點。
@Activate
    protected void activate() {
        cfgService.registerProperties(getClass());
        log.info("Started");
    }

deactivate()為刪除應用程式的部分,當刪除時會執行該區域

@Deactivate
    protected void deactivate() {
        cfgService.unregisterProperties(getClass(), false);
        log.info("Stopped");
    }

project創建在這之後會比較會用到的部分在這裡先了解一下,之後會有實作的紀錄,會更有感覺。

build專案並推到onos上

前置

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

編輯project

mvn clean install

執行後會發現project內新增了一個target的資料夾。

推上onos

#10.0.0.84為我開的onos server
#test-app-1.0-SNAPSHOT 這為一開始建立時說的Applications的版本,這是可以改的,因此如果直接複製會出錯是正常的,要看自己target內有檔名為什麼。
onos-app 10.0.0.84 reinstall target/test-1.0-SNAPSHOT.oar

ONOS功能解說


ONOS的功能列表

Applications:這為Controllers部分會使用應用程式和規則設定的地方,這裡就是SDN程式的部分。


如果剛剛有推成功,可以在搜尋找到自己的project。而在pom.xml寫的一些資訊也會在這邊看到(onos.app開頭的部分)。

執行的部分,activate()會馬上有動作,而停止部分則會執行deactivate()。

Topology:能看到拓譜情況。(如果想看到host可以先pinall)

Devices:可以看的到當前執行的SDN情況,當前規則、傳輸情況各種資訊都能看到。

之後的範例基本上會使用到這幾個部分,如果還對其他功能有興趣的可以自行去了解。

將onos執行在mininet上

sudo mn --controller=remote,ip=10.0.0.84 --mac --topo=single,3 --switch ovsk,protocols=OpenFlow13

ps:這是一個沒有建立任何規則的SDN project,因此pingall會ping不通是很正常的,因為根本沒有對switch做任何規則設定。


上一篇
Day11 菜鳥的ONOS紀錄-ONOS安裝以及介紹
下一篇
Day13 菜鳥的SFC-簡易SFC範例與介紹
系列文
Cloud/SDN/SFC...菜鳥的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言