当前所在位置: 首页 > 实习报告 > 正文

关于生产实习报告模板汇编(第34页)

本文共计70438个字,预计阅读时长235分钟。【 字体:

论文指导服务

毕业论文网专业团队提供毕业设计、论文写作指导及相关咨询服务

论文指导 毕业设计 答辩咨询
微信号已复制到剪贴板

  运行controller:

  下载opendaylight helium版本的源码,进入opendaylight文件夹,修改run.sh权限:chmod 777 ./run.sh

  执行./run.sh

  直到出现initialized successfully才算运行成功,结果应该出现osgi命令:

  每次开机都要执行./run.sh启动控制器。

  打开浏览器,输入: ip:8080,进入opendaylight 的登陆页面,用户名和密码都是 admin。

  (2)mininet

  环境要求:ubuntu14.04虚拟机

  具体步骤:

  下载源码:git clone git:///mininet/mininet

  进入mininet文件夹,安装mininet:./util/install.sh [options] 这里典型的[options]主要有下面几种:

   “-a”:完整安装包括Mininet VM,还包括如Open vSwitch的

  依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。

   “-nfv”:安装Mininet、基于OpenFlow的交换机和Open

  “-s mydir” :在其他选项使用前使用此选项可将源代码建立vSwitch。 

  在一个指定的目录中,而不是在你的home目录。

  这里选择完全安装:./util/install.sh -a

  安装完成后进行简单的测试:sudo mn

  成功的结果应该是这样的界面:

  (3)Eclipse配置

  ODL不能使用默认jre(eclipse/jre),应该手动添加JDK-7:

  主菜单 Window——Preferences: Java——Installed JREs——Search Standard VM——JRE name: JavaSE-1.7 (搜索到后手动双击修改名称,以便适配)。JRE home必须要在jdk子目录下,如 E:\Tools\jdk7u25\jre,最后添加这个jre.

  还要导入opendaylight源码中主要的模块:file——imporrt——existing maven projects,需要导入的主要模块有:forwarding,hosttracker,switchmanager,topologymanager等,根据你编写的程序功能而定。

  3. SDN控制器OpenDaylight的开发学习

  总体来说,OpenDaylight的二次开发可以分为以下三个层面:

  基于OpenDaylight REST APIs的上层网络应用开发 基于SAL内核相关服务的控制器组件与上层网络应用开发 基于SAL内核相关服务的南向协议插件开发与上层服务接口开发

  当然,如果进行更具体的划分,每个层面还可以划分出更多的开发方向,但是就大的开发方向来说,主要使用以上三种开发模式。

  我主要学习了第2种方式,基于SAL内核相关服务的控制器组件与上层网络应用开发方式一般的应用场景是上层网络应用程序需要借助已有的SAL相关服务及南向插件/协议实现某些特定的功能,而该功能并未由OpenDaylight控制器给出REST API。这种方式相对来说更可以称的上是OpenDaylight的二次开发。在介绍具体内容之前,首先需要了解以下储备知识:

  OSGi与OSGi组件:OpenDaylight平台的后台。为整个工程项目提供了模块化管理的方式,即OSGi组件。每个组件可以实现某些特定的功能,并加载到工程的运行环境中。

  Maven工具:Maven工具是用来实现对于OpenDaylight整个工程项目进行管理控制的工具。可以用Maven生成不同的项目,不同的组件。每一个Maven项目包含一个项目控制文件pom.xml,一个src文件夹,一个test文件夹。通常pom.xml文件使用结构化的文档来对整个项目的属性配置、外部依赖、编译进程与外部输出等进行设置,实现了工程的自动化管理。在src文件夹内包含项目或组件相关的源程序,test文件夹中包含相关测试程序。Maven是该小节所述的开发方式的基础,读者可以参考官方网站的文档进行学习。

  Apache Karaf:Karaf工具是基于OSGi的OpenDaylight特性容器,用于实现OpenDaylight各功能组件的热插拔。

  基于SAL内核相关服务的控制器组件与上层网络应用开发需要借助于OpenDaylight开发平台已经实现的模块与组件,调用其Java APIs以帮助实现我们所需要的功能。

  4. 基于OpenDaylight进行模块开发

  这部分我做了很多分析和实验,例如使用odl horizon运行云主机,mininet创建自定义拓扑、wireshark抓包实验分析openflow协议中控制器与交换机的通信过程等等,对网络架构、数据结构、开发方法流程有较为全面的掌握之后,我和小组其他成员合作,编写了一个控制器组件(bundle),主要是完成SDN中IP地址跳变和路径跳变的功能。

  传统网络中设备的IP地址都是固定的,路由选择策略也大多是静态的,例如OSPF等路由协议的算法都是基于最短路径优先的,如果攻击者通过截获数据包和嗅探等技术知道了源主机、目的主机的IP地址以及转发的路径,就很容易实施DDoS、端口扫描等攻击。如果能够将实际IP映射到一系列虚拟IP,并随机变化,对于多条转发路径在满足带宽、时延的条件下也能够随机选择,那么攻击者就很难破解数据包了。这就是基于软件定义网络的动态防御技术。

阅读全文