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. .NET生态系统掠影

    如果你是一名开发人员,想要进入到.NET的世界,你需要知道都有哪些可能.由于.NET Framework是..NET生态系统中最流行的技术,你可以用它来构建各种各样的应用程序,但是最近,出现了一些新的 ...

  2. mysql多个TimeStamp设置

    mysql多个TimeStamp设置 2012-11-02 12:58  轩脉刃  阅读(39590)  评论(3)  编辑  收藏 timestamp设置默认值是Default CURRENT_TI ...

  3. [LeetCode]80. Remove Duplicates from Sorted Array II删除数组中的重复值

    和第一题不同的地方是,容忍两次重复 虽然题目上说只需要长度,但是否检测的时候如果数组不跟着改变也是不行的 没说清楚题意 自己是用双指针做的,看了大神的答案更简单 public int removeDu ...

  4. Windows10搭建本地ftp服务器

    首先要有一个win10专业版的操作系统,连接上互联网... 一.首先打开控制面板选择程序,再选择"启用或关闭windows功能" 二.在"Windows功能"中 ...

  5. MQ关于实现最终一致性分布式事务原理解析

    本文讲述阿里云官方文档中关于通过MQ实现分布式事务最终一致性原理 概念介绍 事务消息:消息队列 MQ 提供类似 X/Open XA 的分布式事务功能,通过消息队列 MQ 事务消息能达到分布式事务的最终 ...

  6. java容器-Iterator

    1介绍 java中的容器主要是Collection<E>的子类型,即都实现了Iterable<E>接口,即使是Map类型,也有entrySet方法可以获得该Map的所有元素组成 ...

  7. 多年经验总结,写出最惊艳的 Markdown 高级用法

    点赞再看,养成习惯,微信搜索[高级前端进阶]关注我. 本文 GitHub https://github.com/yygmind 已收录,有一线大厂面试完整考点和系列文章,欢迎 Star. 最近在学习的 ...

  8. Command2

    Ctrl^c 强制终止当前命令执行 chmod {ugoa(user/group/other/all)}{+-=(wrx权限增删改)} 文件或目录 权限 对文件 对目录 r 可查看文件内容 可以列出目 ...

  9. WPF TreeView Indent 减少节点的缩进

    www.swack.cn - 原文链接:WPF TreeView Indent 减少节点的缩进 问题 最近一个需求,需要在界面中实现Windows资源管理器TreeView的界面.但是我发现,我做出的 ...

  10. Maven 中 install,package,deploy命令区别

    mvn clean package依次执行了clean.resources.compile.testResources.testCompile.test.jar(打包)等7个命令. mvn clean ...