欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mininet连接ONOS的一些问题

程序员文章站 2022-05-17 18:43:40
...

一、启动ONOS

   我的ONOS是通过源码编译安装的,安装目录是/opt,启动ONOS可以通过以下命令:

$ cd /opt/onos
#利用环境变量来**安装应用
$ export ONOS_APPS="drivers,openflow,proxyarp,lldpprovider,fwd"
$ bazel run onos-local [-- [clean] [debug]]  #方括号里面的是可选操作

   等它启动好了我们就可以打开以下网址进入可视化界面

http://localhost:8181/onos/ui/index.html
账号和密码:onos/rocks

   ONOS的源码编译安装可以参考以下链接: ONOS源码编译安装

二、简单小问题

1.Mininet创建最简拓扑后连接不上远程控制器

   比如我下面的这一条命令:

$ sudo mn --controller=remote,ip=127.0.0.1:6653

是创建一个最简单的拓扑,一个交换机上连了两台主机,交换机连接远程ONOS控制器。
有时候我们会发现报错说“Unable to contact the remote controller at 127.0.0.1:6653”,错误如下:
Mininet连接ONOS的一些问题
   这是因为没有打开openflow应用,可以通过以下方法开启:
a.直接另外开启一个终端,输入以下内容:

$ cd /opt/onos/tools/test/bin/  #进入安装目录的bin文件夹
$ ./onos localhost  #登陆cli

Mininet连接ONOS的一些问题
   登陆成功后安装和**特性

> feature:install onos-providers-openflow-app 
> app activate org.onosproject.openflow

Mininet连接ONOS的一些问题
b.可以通过可视化界面找到这些应用然后**
Mininet连接ONOS的一些问题
   然后一个个**下面的应用
Mininet连接ONOS的一些问题
   这样就能连接ONOS控制器了!
Mininet连接ONOS的一些问题

2.Mininet创建最简拓扑后主机之间ping不通

   如下图:
Mininet连接ONOS的一些问题

   这个原因可能是没有安装fwd这个应用,有多种方法可以解决:
a.可以通过可视化界面找到这个应用然后**
Mininet连接ONOS的一些问题
Mininet连接ONOS的一些问题

b.直接另外开启一个终端,输入以下内容

$ cd /opt/onos/tools/test/bin/  #进入安装目录的bin文件夹
$ ./onos localhost  #登陆cli

Mininet连接ONOS的一些问题
   登陆成功后安装和**特性

> feature:install onos-apps-fwd
> app activate org.onosproject.fwd

Mininet连接ONOS的一些问题

3.不启动fwd应用自己通过REST API下发流表发现两台主机间ping不通

   进入REST API界面的网址:

http://localhost:8181/onos/v1/docs/

   h1 ping h2,在h1上使用wireshark抓了一下经过h1-eth0的报文,结果如下:
Mininet连接ONOS的一些问题
   发现交换机没有转发ARP报文,可以直接在ONOS Web界面搜索一下arp的应用,然后选择下面这个应用**就行了,看源码这个应用是“Application that handles ARP and NDP resolution on a single L2 broadcast domain.”
Mininet连接ONOS的一些问题
   **之后就可以ping通了(前提是下发的流表是正确的)。
Mininet连接ONOS的一些问题

三.总结

   最简单的方法就是利用环境变量:

$ cd /opt/onos
#利用环境变量来**安装应用
$ export ONOS_APPS="drivers,openflow,proxyarp,lldpprovider,fwd"
$ bazel run onos-local [-- [clean] [debug]]  #方括号里面的是可选操作