1. 安装 Java 和 Maven

CentOS7:

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64  maven -y

环境变量:

# /etc/profile
...
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

Ubuntu16.04:

sudo apt update
sudo apt install openjdk-8-jdk-headless maven
echo JAVA_HOME=export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 >> ~/.bashrc
source ~/.bashrc mvn -v

2. 安装 OpenDaylight

~$ wget https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.6.4-Carbon/distribution-karaf-0.6.4-Carbon.zip
~$ unzip distribution-karaf-0.6.4-Carbon.zip
~$ cd distribution-karaf-0.6.4-Carbon

修改配置:

# etc/org.apache.karaf.management.cfg
rmiRegistryHost = 127.0.0.1
rmiServerHost = 127.0.0.1

附:修改 Openflow controller 连接端口(因为SDN控制器默认的连接端口指定为6653和6633,如果在一个系统中需要使用多种SDN控制器的情况下,那么就会出现端口占用无法连接控制器的情况。)

如无冲突,则不需修改。

# etc/opendaylight/datastore/initial/config/default-openflow-connection-config.xml
# etc/opendaylight/datastore/initial/config/legacy-openflow-connection-config.xml
<switch-connection-config xmlns="urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config">
<instance-name>openflow-switch-connection-provider-default-impl</instance-name>
<port>6653</port>
...

启动、安装插件:

~/distribution-karaf-0.6.4-Carbon$ cd bin
~/distribution-karaf-0.6.4-Carbon/bin$ export TERM=xterm-color #(ubuntu18需要,ubuntu16不需要)
~/distribution-karaf-0.6.4-Carbon/bin$ ./karaf
opendaylight-user@root>feature:install odl-openflowplugin-flow-services-rest odl-openflowplugin-app-table-miss-enforcer odl-openflowplugin-nxm-extensions odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-services-ui odl-mdsal-apidocs odl-dluxapps-applications odl-faas-all

3. 安装Openflowplugin — 开发者使用

用于搭建 Openflowplugin 开发环境。(如无需求,可不安装)

~$ git clone https://github.com/opendaylight/openflowplugin.git
~$ cd openflowplugin/
~/openflowplugin$ git tag
~/openflowplugin$ git checkout release/carbon
~/openflowplugin$ git branch
~/openflowplugin$ mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true
~/openflowplugin$ cd distribution/karaf/target/assembly/bin
~/openflowplugin/distribution/karaf/target/assembly/bin$ ./karaf
opendaylight-user@root>feature:install odl-restconf odl-dlux-core

4. 安装 mininet

~$ sudo apt install net-tools -y
~$ git clone git://github.com/mininet/mininet
~$ cd mininet/
~/mininet$ git tag
~/mininet$ git checkout 2.3.0d6
~/mininet$ cd util
~/mininet/util$ sudo ./install.sh

启动:

~$ sudo mn

5. 使用例子

5.1 mininet 自定义拓扑

# ~/mn-test/topo1.py
from mininet.topo import Topo class MyTopo(Topo):
def __init__(self):
Topo.__init__(self) host1 = self.addHost('h1')
host2 = self.addHost('h2')
switch1 = self.addSwitch('s1')
switch2 = self.addSwitch('s2') self.addLink(host1, switch1)
self.addLink(host2, switch2)
self.addLink(switch1, switch2) topos = {
'mytopo': lambda: MyTopo()
}

5.2 连接 ODL controller

~$ sudo mn --custom mn-test/topo1.py --topo mytopo --controller=remote,ip=192.168.1.7,port=6633 --switch ovsk,protocols=OpenFlow13

登录 ODL web 界面,查看 topology,此时只能够看到 switchs。

mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)

再次查看,此时能够看到 hosts。

5.3 例子

ps:使用 Postman 测试(关闭防火墙或开放8181端口)。

basic auth: admin:admin

查看节点(GET):http://192.168.1.7:8181/restconf/operational/opendaylight-inventory:nodes/

查看拓扑(GET):http://192.168.1.7:8181/restconf/operational/network-topology:network-topology/

查看端口(GET):/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/node-connector/openflow:1:2

查看流表(GET):/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/table/0/

参考资料

https://docs.opendaylight.org/en/latest/getting-started-guide/installing_opendaylight.html

https://blog.csdn.net/weixin_40610952/article/details/80378784

安装OpenDaylight及Openflow插件的更多相关文章

  1. 安装Visual Studio的插件AnkhSvn

    安装Visual Studio的插件AnkhSvn 安装AnkhSvn(VS插件).下载地址:http://download.csdn.net/detail/luqingfei/4538807 Ank ...

  2. 安装Sublime Text 3插件的方法

    直接安装 安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages). 使用Package Contr ...

  3. 安装VS2010水晶报表插件

    Visual Studio 2010默认不带水晶报表,需要安装一个水晶报表插件,首先下载此插件: http://downloads.businessobjects.com/akdlm/cr4vs201 ...

  4. 【原】安装mongo的php插件

    http://pecl.php.net/package/mongo https://github.com/mongodb/mongo-php-driver/tarball/master 1. 安装mo ...

  5. 安装GO语言环境之安装Visual Studio Code插件

    在安装Visual Studio Code插件的时候,由于谷歌的限制,在下载下列插件的时候会报错: go get -u -v github.com/nsf/gocode go get -u -v gi ...

  6. Eclipse如何安装JD-Eclipse反编译插件

    一.Eclipse在线安装JD-Eclipse反编译插件 1.在eclipse的help—>Install New Software...中添加新软件开发,添加它的源: name:jd-ecli ...

  7. 安装Sublime Text 2插件的方法

    1.直接安装 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages). 2.使用Package C ...

  8. myeclipse和eclipse安装Java反编译插件

    为myeclipse和eclipse安装Java反编译插件    插件所需包 1.解压jad1.5.8g.zip.将jad.exe放到jre的bin目录下,下载地址: http://ishare.ia ...

  9. [原]Eclipse 安装SVN、Maven插件(补充)

    参考雨之殇的文章:Eclipse 安装SVN.Maven插件 1.SVN可以按文章介绍的正常安装 2.Maven的Eclipse插件地址有变化 文章中的安装链接已经失效:m2e - http://m2 ...

随机推荐

  1. swift笔记简录

    一,变量和常量 /***************************基本数据类型*************************/ /****************************** ...

  2. 篇章一:SVN服务搭建【基于Windows server 2008R2 + Windows7】

    1.软件下载 1.1 软件介绍 Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站 ...

  3. idea提交svn不显示新建文件

    在idea中,使用svn提交时可能会出现 预期文件没出现在提交目录里. 是因为没有把新建文件添加到版本控制里. 解决办法:右键选择文件→subversion→add to  vcs. 自动把新文件添加 ...

  4. javaweb基本知识(eclipse环境)

    javascrip有两种方式: ①外链式 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 < ...

  5. FSMC全称“静态存储器控制器”。

    FSMC全称"静态存储器控制器". 使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线. (1)当 ...

  6. app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)

    一.原理 安卓开发调用md5加密时候都会调用到系统类java.security.MessageDigest 加密时候会会调用里面2个关键方法update以及digest 根据这个原理我们开始写代码吧 ...

  7. git revert 回退已经push的内容

    如题,在日常的开发过程中,可能有组员不小心一下子吧文件修改,需要进行回退 回退主要涉及到2种命令,一种是git reset 一种是 git revert git reset 会修改git log提交历 ...

  8. 【ORA】ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

    ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode 这个问题是rman备份的时候,发现有问题 原因: 数据库没有开启归档 ...

  9. 【Oracle】10g rac如何开启归档和关闭归档

    开启归档: 1.设置想设置的归档的位置,我们这里归档的位置为ASM磁盘组,磁盘组的名称为DATA alter system set log_archive_dest_1='location=+DATA ...

  10. 【EXP】比较大的dmp文件导入的时候可以将界面关掉

    有一个需求,将一个dmp文件导入到数据库中,但是这个crt的回话有timeout,3分钟,所以一到三分钟就掉线,导入就失败了,这让人很头疼,关闭界面,imp也就终止了 最后想到了几招,分享一下: 1. ...