opendaylight

SDN学习之Opendaylight浅析(一)

我的梦境 提交于 2020-02-02 02:55:27
一、写整个博客的理由 武汉最近疫情肆虐,闲居家中,行动受限,思考前段时间学习的odl,决定整理一下自己的学习进展,回忆整个odl的学习过程,发现并不容易,odl作为一个开源的SDN控制器,其资料并不完全,我找到的资料大多集中在14,15年,版本以氢、氦居多,而基本理论的部分还好说,至于安装和函数调用乃至使用的变动还是很大,我在看教程的过程中往往连第一步安装都过不了,所以我希望我能够总结一份能够给较新版本使用的学习经验,我的目标是以氟和钠版本为主,保证具有一定的前沿性和实用性。 二、ODL开端 首先,opendaylight是一个开源项目,其中包含很多子项目,一般都是重点关注Controller项目,ODL是一个java语言写的开源SDN控制器,学习ODL应具备一些基本的知识储备,如java基础,maven,OSGi架构,除此之外最好具备网络知识,了解交换机和路由器相关知识,如图ODL控制器架构(from:OpenDayLight应用指南) ODL的官网下载链接为: 官网下载链接 安装链接为: ODL安装 这个步骤比较简单,所以不讲安装过程了,简单分析下ODL安装文件,如下图是文件结构, 首先看整体文档结构,这是一个karaf容器结构,karaf是一种OSGi框架的实现,bin目录是容器的启动目录,configuration是tomcat的配置文件,data目录是暂且不太了解

error installling feature Opendaylight Oxygen release?

北城以北 提交于 2020-01-16 10:12:40
问题 I downloaded the pre-build ".tar" version of Open-daylight Oxygen release. When I try to install the dlux feature using feature:install command, I get the following error. dluxapps-topology error: Error executing command: Exception in org.opendaylight.controller.config.manager.impl.osgi.ConfigManagerActivator.stop() of bundle org.opendaylight.controller.config-manager. dluxapps-application error: 19:32:19.530 [Refresh Thread: Equinox Container: d3f0af16-e328-4ecd-927f-ddb53597d0d5] ERROR org

error installling feature Opendaylight Oxygen release?

回眸只為那壹抹淺笑 提交于 2020-01-16 10:12:13
问题 I downloaded the pre-build ".tar" version of Open-daylight Oxygen release. When I try to install the dlux feature using feature:install command, I get the following error. dluxapps-topology error: Error executing command: Exception in org.opendaylight.controller.config.manager.impl.osgi.ConfigManagerActivator.stop() of bundle org.opendaylight.controller.config-manager. dluxapps-application error: 19:32:19.530 [Refresh Thread: Equinox Container: d3f0af16-e328-4ecd-927f-ddb53597d0d5] ERROR org

OpenDaylight Oxygen Deploy app built from opendaylight-startup-archetype

落爺英雄遲暮 提交于 2020-01-10 04:28:06
问题 OpenDaylight Oxygen Maven 3.3.9 Ubuntu 16.04 karaf 4 ~/.m2/settings.xml - cp -n ~/.m2/settings.xml{,.orig} ; wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml Process used to create skeleton mvn archetype:generate -DgroupId=org.opendaylight.controller -DartifactId=testing -Dcopyright="None" -DclassPrefix="\${artifactId.substring(0,1).toUpperCase()}\${artifactId.substring(1)}" -DarchetypeGroupId=org.opendaylight.archetypes

2019 SDN大作业

ぐ巨炮叔叔 提交于 2020-01-07 07:54:57
视频链接 建议把清晰度调到最高 队名 不想取名 本组成员 学号 姓名 031702422 朱宏(组长) 031702419 姚彬锟 031702420 张庆焰 031702425 吴永铭 041602630 张周伟 负载均衡代码如下 # -*- coding: utf-8 -*- import httplib2 import time import json class OdlUtil: url = '' def __init__(self, host, port): self.url = 'http://' + host + ':' + str(port) def install_flow(self, container_name='default',username="admin", password="admin"): http = httplib2.Http() http.add_credentials(username, password) headers = {'Accept': 'application/json'} flow_name = 'flow_' + str(int(time.time()*1000)) #s3流表 #在检测h4发包的时候s3的1口流量空闲时发的流表 h4_to_s3_1 ='{"flow": [{"id": "0","match": {

2019 SDN大作业

☆樱花仙子☆ 提交于 2020-01-07 06:18:04
视频链接 建议把清晰度调到最高 队名 不想取名 本组成员 学号 姓名 031702422 朱宏(组长) 031702419 姚彬锟 031702420 张庆焰 031702425 吴永铭 041602630 张周伟 负载均衡代码如下 # -*- coding: utf-8 -*- import httplib2 import time import json class OdlUtil: url = '' def __init__(self, host, port): self.url = 'http://' + host + ':' + str(port) def install_flow(self, container_name='default',username="admin", password="admin"): http = httplib2.Http() http.add_credentials(username, password) headers = {'Accept': 'application/json'} flow_name = 'flow_' + str(int(time.time()*1000)) #s3流表 #在检测h4发包的时候s3的1口流量空闲时发的流表 h4_to_s3_1 ='{"flow": [{"id": "0","match": {

opendaylight: multiple goto instructions in a single flow rule

a 夏天 提交于 2020-01-07 04:34:29
问题 I am using opendaylight (Carbon) and open VSwitch. I am building an application in java for which I would like to send the packet to multiple GoTo target tables. The following code fragment shows how I am building the instructions: private static InstructionsBuilder createGoToNextTableInstruction(short idstable, short l2switchTable) { // Create an instruction allowing the interaction. List<Instruction> instructions = new ArrayList<Instruction>(); Instruction gotoIdsTableInstruction = new

2019 SDN大作业

拟墨画扇 提交于 2020-01-07 03:59:03
视频链接 建议把清晰度调到最高 队名 不想取名 本组成员 学号 姓名 031702422 朱宏(组长) 031702419 姚彬锟 031702420 张庆焰 031702425 吴永铭 041602630 张周伟 负载均衡代码如下 # -*- coding: utf-8 -*- import httplib2 import time import json class OdlUtil: url = '' def __init__(self, host, port): self.url = 'http://' + host + ':' + str(port) def install_flow(self, container_name='default',username="admin", password="admin"): http = httplib2.Http() http.add_credentials(username, password) headers = {'Accept': 'application/json'} flow_name = 'flow_' + str(int(time.time()*1000)) #s3流表 #在检测h4发包的时候s3的1口流量空闲时发的流表 h4_to_s3_1 ='{"flow": [{"id": "0","match": {

2019 SDN大作业

不想你离开。 提交于 2020-01-06 19:51:43
2019 SDN大作业:负载均衡 1.小组成员 031702526 周华 031702514 严喜 031702533 吕瑞峰 031702542 林小棠 2.拓扑搭建 拓扑图 拓扑脚本: from mininet.topo import Topo class MyTopo( Topo ): "Simple topology example." def __init__( self ): "Create custom topo." # Initialize topology Topo.__init__( self ) # add hosts and switches host1 = self.addHost( 'h1' ) host2 = self.addHost( 'h2' ) host3 = self.addHost( 'h3' ) switch1 = self.addSwitch( 's1' ) switch2 = self.addSwitch( 's2' ) switch3 = self.addSwitch( 's3' ) # add links self.addLink(host1,switch1) self.addLink(switch1,switch2) self.addLink(switch1,switch3) self.addLink(switch2,host2)

Add a Flow in OpenDaylight using Java API

回眸只為那壹抹淺笑 提交于 2020-01-06 18:14:19
问题 I'm a newbie in opendaylight developing using the java api. I'm trying to add a simple flow but I can't do it, maybe I can't understand well the documentation. Can anybody help me? 回答1: The simplest way is to add a flow would be: Start the controller and point your switch or Open vSwitch / mininet instance at the controller on 6633. On the same host as the controller, open a browser to http:// localhost :8080 Click on the "flows" tab. Add your static flowmod. Alternatively you can use the API