ONOS-1.10的直接部署

如果不需要修改ONOS代码,只是像启动后和OVS连接一下,可以直接采用官方编译好的版本部署,下面是操作步骤的记录。

前期准备

  • java放好
centec@ubuntu:/home$ ll
total 183872
drwxr-xr-x  4 root   root        4096 Aug 30 16:40 ./
drwxr-xr-x 24 root   root        4096 Aug 30 15:44 ../
drwxr-xr-x 19 centec centec      4096 Aug 30 17:01 centec/
drwxr-xr-x  8 root   root        4096 Jul 22 13:11 jdk1.8.0_144_oracle/
-rw-r--r--  1 root   root   188267912 Aug 30 16:40 jdk1.8.0_144_oracle.zip
centec@ubuntu:/home$ 
  • 下载ONOS已经打包好的package,我下载的是1.10.3版本
sudo wget -c http://downloads.onosproject.org/release/onos-$ONOS_VERSION.tar.gz
}}
 * 放到/opt/下面并解压缩
{{{
centec@ubuntu:/opt$ ll
total 151968
drwxr-xr-x  4 root root      4096 Aug 30 16:23 ./
drwxr-xr-x 24 root root      4096 Aug 30 15:44 ../
drwxrwxrwx  8 root root      4096 Aug 30 16:47 onos/
-rw-r--r--  1 root root 155597235 Aug 30 16:23 onos-1.10.3.tar.gz
dr-xr-xr-x  4 root root      4096 Aug 30 14:15 vmware-tools-installer/
centec@ubuntu:/opt$ 
centec@ubuntu:/opt$ sudo mv onos-1.10.3/ onos/
  • 修改karaf配置,重点是下面罗列的两行,其中java要和之前的目录保持一致
centec@ubuntu:/opt/onos/apache-karaf-3.0.8/bin$ sudo vi setenv

export JAVA_HOME=/home/jdk1.8.0_144_oracle/ # Location of Java installation
export KARAF_HOME=/opt/onos/apache-karaf-3.0.8 # Karaf home folder

使用并配置ONOS

启动onos

centec@ubuntu:/opt/onos/bin$ sudo /opt/onos/bin/onos-service start
Welcome to Open Network Operating System (ONOS)!
     ____  _  ______  ____     
    / __ \/ |/ / __ \/ __/   
   / /_/ /    / /_/ /\ \     
   \____/_/|_/\____/___/     
                               
Documentation: wiki.onosproject.org      
Tutorials:     tutorials.onosproject.org 
Mailing lists: lists.onosproject.org     

Come help out! Find out how at: contribute.onosproject.org 

Hit '' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '' or type 'system:shutdown' or 'logout' to shutdown ONOS.

onos> 
  • 结果发现openflow都没有装,CLI装回报错
onos> feature:install onos-providers-openflow-base 
Error executing command: Can't install feature onos-providers-openflow-base/0.0.0: 
Could not start bundle mvn:org.onosproject/onos-providers-openflow-device/1.10.3 in feature(s) onos-providers-openflow-base-1.10.3: Unresolved constraint in bundle org.onosproject.onos-providers-openflow-device [163]: Unable to resolve 163.0: missing requirement [163.0] osgi.wiring.package; (&(osgi.wiring.package=org.onosproject.net.optical.device)(version>=1.10.0)(!(version>=2.0.0)))
onos> 
  • 打开网页,登陆用户名和密码依然是karaf/karaf,在application将openflow相关app安装
ONOS-1.10的直接部署_第1张图片
ONOS_GUI
  • 确认已经安装
onos> feature:list | grep " x " | grep openflow
onos-providers-openflow-base          | 1.10.3           | x         | onos-providers-openflow-base-1.10.3          | OpenFlow Provider                                 
onos> 
  • 好了,可以连上了
DUT214# show openflow controller status 
tcp:10.10.11.71:6653      role: master  status: online     online-time:    0d 0h12m50s    mgmt-if: yes    bind_ip: none
DUT214# 
  • snoop一看,每个流表下发,都会加clear-action,而我们不支持,所以flow都没有下发成功
OFPT_FLOW_MOD (OF1.3) (xid=0x0): ADD priority=40000,arp cookie:0x10000aa429454 send_flow_rem actions=CONTROLLER:65535,clear_actions
OFPT_ERROR (OF1.3) (xid=0x0): OFPBIC_UNSUP_INST
OFPT_FLOW_MOD (OF1.3) (xid=0x0):
(***truncated to 64 bytes from 96***)
00000000  04 0e 00 60 00 00 00 00-00 01 00 00 aa 42 94 54 |...`.........B.T|
00000010  00 00 00 00 00 00 00 00-00 00 00 00 00 00 9c 40 |...............@|
00000020  ff ff ff ff ff ff ff ff-ff ff ff ff 00 01 00 00 |................|
00000030  00 01 00 0a 80 00 0a 02-08 06 00 00 00 00 00 00 |................|
OFPT_FLOW_MOD (OF1.3) (xid=0x0): ADD priority=40000,dl_type=0x88cc cookie:0x1000082a18617 send_flow_rem actions=CONTROLLER:65535,clear_actions
OFPT_ERROR (OF1.3) (xid=0x0): OFPBIC_UNSUP_INST
OFPT_FLOW_MOD (OF1.3) (xid=0x0):
(***truncated to 64 bytes from 96***)
00000000  04 0e 00 60 00 00 00 00-00 01 00 00 82 a1 86 17 |...`............|
00000010  00 00 00 00 00 00 00 00-00 00 00 00 00 00 9c 40 |...............@|
00000020  ff ff ff ff ff ff ff ff-ff ff ff ff 00 01 00 00 |................|
00000030  00 01 00 0a 80 00 0a 02-88 cc 00 00 00 00 00 00 |................|
OFPT_FLOW_MOD (OF1.3) (xid=0x0): ADD priority=40000,dl_type=0x8942 cookie:0x100005c2f0fce send_flow_rem actions=CONTROLLER:65535,clear_actions
OFPT_ERROR (OF1.3) (xid=0x0): OFPBIC_UNSUP_INST
OFPT_FLOW_MOD (OF1.3) (xid=0x0):
(***truncated to 64 bytes from 96***)
00000000  04 0e 00 60 00 00 00 00-00 01 00 00 5c 2f 0f ce |...`........\/..|
00000010  00 00 00 00 00 00 00 00-00 00 00 00 00 00 9c 40 |...............@|
00000020  ff ff ff ff ff ff ff ff-ff ff ff ff 00 01 00 00 |................|
00000030  00 01 00 0a 80 00 0a 02-89 42 00 00 00 00 00 00 |.........B......|
  • 查看ONOS的源代码
[centec@CentOS7-11 impl]$ pwd
/home/centec/Applications/onos-1.10/core/common/src/main/java/org/onosproject/codec/impl
[centec@CentOS7-11 impl]$ 
[centec@CentOS7-11 impl]$ cat TrafficTreatmentCodec.java
if (treatment.clearedDeferred()) {
            result.put(CLEAR_DEFERRED, true);
        }
这里的true,应该改成false,就是无论如何都不加clear_actions这个instruction
  • 上述修改可以编译成功,但是op的时候,报错
SHA cannot be verified
  • 哪位帮忙验证一下吧

你可能感兴趣的:(ONOS-1.10的直接部署)