安装OpenDaylight及Openflow插件
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插件的更多相关文章
- 安装Visual Studio的插件AnkhSvn
安装Visual Studio的插件AnkhSvn 安装AnkhSvn(VS插件).下载地址:http://download.csdn.net/detail/luqingfei/4538807 Ank ...
- 安装Sublime Text 3插件的方法
直接安装 安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages). 使用Package Contr ...
- 安装VS2010水晶报表插件
Visual Studio 2010默认不带水晶报表,需要安装一个水晶报表插件,首先下载此插件: http://downloads.businessobjects.com/akdlm/cr4vs201 ...
- 【原】安装mongo的php插件
http://pecl.php.net/package/mongo https://github.com/mongodb/mongo-php-driver/tarball/master 1. 安装mo ...
- 安装GO语言环境之安装Visual Studio Code插件
在安装Visual Studio Code插件的时候,由于谷歌的限制,在下载下列插件的时候会报错: go get -u -v github.com/nsf/gocode go get -u -v gi ...
- Eclipse如何安装JD-Eclipse反编译插件
一.Eclipse在线安装JD-Eclipse反编译插件 1.在eclipse的help—>Install New Software...中添加新软件开发,添加它的源: name:jd-ecli ...
- 安装Sublime Text 2插件的方法
1.直接安装 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages). 2.使用Package C ...
- myeclipse和eclipse安装Java反编译插件
为myeclipse和eclipse安装Java反编译插件 插件所需包 1.解压jad1.5.8g.zip.将jad.exe放到jre的bin目录下,下载地址: http://ishare.ia ...
- [原]Eclipse 安装SVN、Maven插件(补充)
参考雨之殇的文章:Eclipse 安装SVN.Maven插件 1.SVN可以按文章介绍的正常安装 2.Maven的Eclipse插件地址有变化 文章中的安装链接已经失效:m2e - http://m2 ...
随机推荐
- 一文搞懂 CountDownLatch 用法和源码!
CountDownLatch 是多线程控制的一种工具,它被称为 门阀. 计数器或者 闭锁.这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用).下面我们就来一起 ...
- javascript笔记day01
JavaScript基础语法 HTML :标记语言 JavaScript :编程语言 序言 JavaScript发展历史(JS) 1. 1994年,网景公司(Netscape)发布了Navigator ...
- Docker实例开机启动
部署项目服务器时,为了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动. 在使用docker run启动容器时,使用--restart参数来设置: docker run ...
- EXCEL2010分成多个窗口的,解决单个窗口显示多个文档的弊病
本操作需要修改注册表,请在修改之前导出要修改的项目以备份. 1.定位到[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open],导出保存.展开Open,将ddeexe ...
- 【基础】CentOS6如何将命令行模式下安装图形界面
系统版本:这里我使用的系统是CentOS6.9 安装方式:安装方式为yum源安装 1.配置yum源仓库 # 在配置之前最好把我们自己的yum仓库文件备份一下: cp /etc/yum.repos.d/ ...
- 个人MySQL的事务特性原理学习笔记总结
目录 个人MySQL的事务特性原理笔记总结 一.基础概念 2. 事务控制语句 3. 事务特性 二.原子性 1. 原子性定义 2. 实现 三.持久性 1. 定义 2. 实现 3. redo log存在的 ...
- JPDA 远程调试方法记录
一.JPDA概念 JPDA(Java platform debugger architecture)是java平台调试架构的简称,由java虚拟机后端和调试平台前端组成. 1.java虚拟机提供了ja ...
- Could not open ServletContext resource [/WEB-INF/applicationContext.xml] 解决办法
Spring官方文档中规定,如果在上下文中没有指定contextConfigLoction配置文件的位置,则会默认去WEB-INF中去寻找对应的配置文件. 理论上classpath的默认路径是WEB- ...
- 在 ASP.NET Core和Worker Service中使用Quartz.Net
现在有了一个官方包Quartz.Extensions.Hosting实现使用Quartz.Net运行后台任务,所以把Quartz.Net添加到ASP.NET Core或Worker Service要简 ...
- python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总
都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不 ...