实验4:开源控制器实践——OpenDaylight

一、实验目的

  1. 能够独立完成OpenDaylight控制器的安装配置;
  2. 能够使用Postman工具调用OpenDaylight API接口下发流表。

二、实验环境

  1. 下载虚拟机软件Oracle VisualBox或VMware;
  2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;

三、实验要求

(一)基本要求

  1. 配置JAVA环境,下载并解压安装OpenDaylight,版本选择Carbon 或 Beryllium;
  2. 下载并解压安装Postman;
  3. 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;

  • 创建拓扑

  • 打开ODL

  • pingall并观察拓扑

  1. 通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。
  • 相关配置

  • 先h1 ping h3,后send。观察结果

四、个人总结

  • 实验难度

    本次实验对于我来说算是比较难的,因为我对于这些工具的掌握不是很熟练,导致在使用工具过程中产生了一系列问题。从而大大延长了我做实验的时间。
  • 遇到的困难以及解决方法
  1. 拓扑建立并pingall之后在ODL上显示的拓扑为空白?

    这主要是因为我在之前建立了很多拓扑,所以只需要使用命令 sudo mn -c 清空拓扑,再次建立拓扑之后就会显示出来了。

  2. 使用postman下发流表,但没有作用?

    可以通过观察下面返回的状态码来判断是什么错误,我的是401,所以猜测为用户名或密码写错了。于是将密码中的adimin改为admin之后就成功了。

    下列为常用状态码:

    • 100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果。
    • 200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果。
    • 202:表示服务器已经接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定。
    • 204:服务器成功处理了请求,但没有返回任何实体内容 ,可能会返回新的头部元信息。
    • 301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化,客户端保存新的链接,并向新的链接发出请求,已返回请求结果。
    • 404:请求失败,客户端请求的资源没有找到或者是不存在。
    • 500:服务器遇到未知的错误,导致无法完成客户端当前的请求。
    • 503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求。
  3. 安装时报各种错误。

    这些错误大多是因为复制命令的时候多复制了空格或者少复制了一个 - 导致的,因此复制完最好先检查一遍。

  • 心得体会

    在本次实验中,我还是学到了很多东西,毕竟做一步错一步(bushi)。不仅了解到了ODL和postman的使用方法,同时也对拓扑结构的了解更为深入。但是,这些还只是了解到了一点皮毛,通过不断的学习我了解到自己所学的不过是冰山一角,期待自己可以在接下来的课程中运用的更加熟练。

实验4:开源控制器实践——OpenDaylight的更多相关文章

  1. 实验5:开源控制器实践——POX

    一.实验目的 1.能够理解 POX 控制器的工作原理: 2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法: 3.能够运 ...

  2. 实验6:开源控制器实践——RYU

    实验目的 能够独立部署RYU控制器 能够理解RYU控制器实现软件定义的集线器原理 能够理解RYU控制器实现软件定义的交换机原理 二.实验环境 下载虚拟机软件Oracle VisualBox或VMwar ...

  3. 【DevOps敏捷开发动手实验】开源文档 v2015.2 stable 版发布

    Team Foundation Server 2015 Update 2版本终于在2周前的//Build 2016大会上正式发布了,借这个东风,小编也完成了[DevOps敏捷开发动手实验]开源文档的第 ...

  4. 20155317王新玮《网络对抗技术》实验8 WEB基础实践

    20155317王新玮<网络对抗技术>实验8 WEB基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...

  5. 20145314郑凯杰《网络对抗技术》实验8 WEB基础实践

    20145314郑凯杰<网络对抗技术>实验8 WEB基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...

  6. 8月自动化测试课程 - Selenium开源自动化测试实践

    8月自动化测试课程 - Selenium开源自动化测试实践 http://gdtesting.cn/news.php?id=35

  7. 从 Spark 到 Kubernetes — MaxCompute 的云原生开源生态实践之路

    2019年5月14日,喜提浙江省科学技术进步一等奖的 MaxCompute 是阿里巴巴自研的 EB 级大数据计算平台.该平台依托阿里云飞天基础架构,是阿里巴巴在10年前做飞天系统的三大件之分布式计算部 ...

  8. 实验6:开源控制器实———RYU

    一.实验目的 1.能够独立部署RYU控制器: 2.能够理解RYU控制器实现软件定义的集线器原理: 3.能够理解RYU控制器实现软件定义的交换机原理. 二.实验环境 Ubuntu 20.04 Deskt ...

  9. 拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布

    今天上海的天气真是不错,风和日丽.再次来到微软上海紫竹研发中心,心情很是愉快,喜欢这里的大草坪,喜欢这里的工程气氛,更喜欢今天来陪我的小伙伴们. 这次动手实验培训与以往最大的不同就是采用了开源文档的方 ...

随机推荐

  1. git 的指定参考教程

    https://www.runoob.com/git/git-create-repository.html

  2. sizeof()和 strlen()的区别 --- 个人笔记

    在学习C语言和linux的时候,遇到了一些常见问题.题目,有些很简单,有些容易出错,本人水平有限,未免会出错,今天有时间,就将以前做的笔记,一一拿出来,写写blog. sizeof()和 strlen ...

  3. 快速排序的Partition函数

    1 //数组中两个数的交换 2 static void swap(int[] nums, int pos1, int pos2){ 3 int temp = nums[pos1]; 4 nums[po ...

  4. ES6扩展——函数扩展之默认参数

    1.函数的默认参数 //函数的默认参数 function add(a, b = 999){ console.log(a,b); //1 999 } add(1); 2. 函数的形参可以设置默认值,默认 ...

  5. MySQL-SQL基础-查询1

    #子查询-某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询.用于子查询的关键字主要包括: in.not in.=.!=.exists.not exist ...

  6. Lucene入门及实际项目应用场景

    导入maven依赖 <dependency> <groupId>org.apache.lucene</groupId> <artifactId>luce ...

  7. Mysql常用sql语句(6)- limit 限制查询结果的条数

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,我们的数据表数据肯定都是万级别的,如 ...

  8. Jenkins持续集成接口压测

    步骤 自动化压测- jmeter + shell Jenkins与jmeter压测,环境要求 自动压测运行逻辑 Jmeter输出压力测试报告 压测报告与Jenkins集成 Jenkins任务:源码同步 ...

  9. Element NavMenu动态生成导航菜单

    为了演示方便,不从数据库获取了 {     "data":[         {             "id":125,             " ...

  10. Identity角色管理一(准备工作)

    因角色管理需要有用户才能进行(需要将用户从角色中添加,删除)故角色管理代码依托用户管理 只需在Startup服务中添加角色管理即可完成 public void ConfigureServices(IS ...