文章目录
一、ODL初体验实验
实验目的
- 了解并掌握ODL的启动方式,JVM的参数配置
- 了解并掌握bundle,feature,log等基本的命令使用
- 了解并掌握
- karaf的基本配置
实验环境
说进入OpenDaylight开发基础篇实验环境,没找到,自行搭建
<ODL下载,运行>
下载:http://docs.opendaylight.org/en/latest/downloads.html
运行:启动配置参数:修改Java虚拟机运行内存,karaf启动方式,启动参数(clean,debug…)
启动:一些基本操作
解压后查看目录
ls
ll
cd bin
debug(调试)
退出:CTRL+D或者
louout
deamon
list
./karaf clean(清缓存)
bundle:list
feature
list
feature:install odl-mdsal-all (安装)
敲一部分按tab键会提示
bundle:(tab键)
(列出命令)
bundle:info 208
bundle:headers 208
feature:info odl-mdsal-all(查看信息)
如果出问题的话
log:tail(最近的日志)
log:display(所有的日志)
log:set DEBUG org.opendaylight.openflowplugin(设置某个包)
log:list(查看)
如果改Java启动参数怎么改
这里没说具体改啥,不想听了跳过。。。
讲了各种配置找什么文件,具体需要可回头复习视频【约22:17-结尾】
日志的配置文件:
二、OSGi及Karaf
背景知识之OSGi
重点:设计层面的,是一个规范,是一个框架
OSGi框架
- 安全层
- 模块层
- 生命周期层:为bundle提供了生命周期管理API
- 服务层:为bundle开发者提供了一个动态、简明并且统一的编程模型
Bundle概念
- Bundle 是OSGi中最基本的单位,通俗的讲,如果说OSGi是基于Java平台的“模块化开发体系”,那么Bundle便是其中的“模块”。
- 一个符合OSGi规范的Bundle首先必须是一个符合JAR文件格式规范的JAR包,JAR文件格式规范定义的/META-INF/MANIFEST.MF文件用于描述JAR包的元数据信息,如JAR包的版本、数字签名信息等,Bundle在MANIFEST.MF文件中添加了大量扩展定义,如描述该Bundle可以提供哪些资源、依赖哪些其他Bundle、启动或卸载时要执行哪些动作等。
Bundle生命周期
Bundle间的依赖
引用或者暴露一些包,只有两边同时设置了才可以相互访问。
背景知识之Karaf
是一个基于OSGi的运行环境,提供了一个轻量级的OSGi容器,可以用于部署各种组件和应用程序。
可认为是OSGi的一个封装好的发行版本。
Karaf容器的特点
重点是配置和feature
Feature概念
一组bundle,其具备特定的功能,比如odl-mdsal-all就算是一个feature,其由若干个bundle,配置文件或其他feature组成。
一个feature的配置包括:
通过feature的配置,帮助我们屏蔽了bundle层面的配置繁琐性,极大的简化了部署和配置
安装感兴趣的ODL的feature
三、OFPlugin&Mininet
印象SDN(认识SDN)
网络可编程
本节使用ODL北向RESTCONF接口下发OpenFlow流表,打通最简单的网络。
OpenFlowPlugin相关feature介绍及安装
- odl-openflowplugin-flow-services-rest
- feature:info odl-openflowplugin-flow-services-rest
实验平台
启动:
./kaaraf(+回车)
安装:
feature:install odl-openflowplugin-flow-services-rest(+回车)
安装好后查看feature
feature:info odl-openflowplugin-flow-services-rest(+回车)
包含一些协议和bundle
ODL的web界面dlux
实验平台
看提示:
feature:install odl-dlux
安装:
feature:install odl-dluxapps-yangman
有了这个组件之后就可以通过浏览器来访问控制器了
用户名和密码默认都是:admin
左侧选中模型,右侧发送
若安装拓扑XXX:
feature:install odl-dluxapps-topology
点击这个按钮,可以查看拓扑
官方提供的一个apidocs访问的界面
feature:install odl-mdsal-apidocs
点击想进行操作的模块:(图中鼠标所指:集群管理)
Mininet介绍及使用
ifconfig(查看本机地址)
可看到本机的IP地址是30.0.1.3(即控制器的地址)
启动mininet:
命令:
nodes(看有哪些节点)
net(拓扑)
ports(端口信息)
dpctl dump-flows s1(查看流表)
可从浏览器界面看拓扑是否上线。
实验
四、RESTCONF介绍
RESTCONF协议
标准规范:
标准RFC 8040 https://trac.tools.ietf.org/html/rfc8040
这就是。/。。的实现
还有。18。。的实现
看到18.。。
注意post和put的区别,都可以创建
put如果原来有就会replace掉
post如果原来有就会报错
还有patch会修改现在的内容,如果老的没有就会报错