作业博客链接:http://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10017

1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本)

  • OpenDayLight是java实现的,因此需要先[配置java环境]
  • 然后下载JDK安装包解压
  • 配置相应的环境变量
  • 在终端输入java -version 检查java环境是否配置成功

2. 启动并安装插件

进入文件地址 /distribution-karaf-0.4.4-Beryllium-SR4/bin

打开终端执行命令 ./karaf

安装插件Features执行命令

opendaylight-user@root>feature:install odl-restconf
opendaylight-user@root>feature:install odl-l2switch-switch-ui
opendaylight-user@root>feature:install odl-openflowplugin-all
opendaylight-user@root>feature:install odl-mdsal-apidocs
opendaylight-user@root>feature:install odl-dlux-core
opendaylight-user@root>feature:install odl-dlux-node
opendaylight-user@root>feature:install odl-dlux-yangui

3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器

  • Python脚本如下
from mininet.topo import Topo

class Mytopo(Topo):
def __init__(self):
Topo.__init__(self)
sw=self.addSwitch('s1')
count=1
for i in range(3):
host = self.addHost('h{}'.format(count))
self.addLink(host,sw,1,count)
count = count + 1 topos = {'mytopo': (lambda:Mytopo())}
  • 运行脚本,并检查拓扑连接状况

    执行命令sudo mn --custom /home/joker/桌面/mytopo.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13

    然后pingall

  • 在ODl打开的情况下登陆网站http://localhost:8181/index.html

    账号 admin

    密码 admin

  • Reload检查拓扑连接状况

4. 在ODL控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,然后ping通

在控制器的Web中的Yang UI>Opendaylight-inventory>config>nodes>table>flow

  • node/ openflow:1 //交换机编号
  • table/ 0 //流表编号
  • flow/不超过1024,不冲突即可 流表项编号
  • GET为查询流表,下发流表要修改为PUT

配置match

  • id=:流表项id,任意值,不冲突即可
  • in-port:流表项匹配的进入端口,这里需填h1对应的port号
  • ethernet-type:以太网类型0x0800表示以太网帧是ip协议
  • layer-3-match:ipv4-match 三层匹配为ipv4匹配
  • ipv4-source:数据包源ip匹配项(这里由于port2进入的数据包只可能是h2发送的所以可以不填)
  • ipv4-destination:数据包目的ip匹配项

配置instructions

  • instruction list这是流表项匹配到数据报后要执行的指令
  • order=:0 指令id0
  • instruction=:apply-actions-case 执行动作
  • 新增action list=:
  • action drop-action-case 丢包动作

配置flow信息

  • flow-name 流表项名字,可不填
  • priority 流表项优先级,要大于odl下发的默认流表,这里设置成最大65535
  • hard-timeout 硬超时,流表项下发后生效时长
  • cookie 可不填,为方便在ovs中查找下发成功的流表项可以设置成容易找的到值如0x02(要填16进制)
  • table_id 流表id 默认为0

在mininet终端执行h2 ping h3然后在Web UI 上点击send下发流表

  • 在h2 ping h3之后下发流表,包序号会有个调变 图中从4->25

5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。

  • 通过preview查看刚刚下发的流表项的json格式,可以调用北向接口传送json数据来对ODL下发指令(如果刚刚下发的流表项内容找不到了可以通过node id, table id, flow id, GET回来,然后把GET按钮切换成PUT按钮查看preview)

  • 下载解压Postman压缩包

  • 执行命令cd Postman/

  • 执行命令 ./Postman

  • 打开postman,将preview里的url复制到地址栏,消息方式选PUT,IP为控制器所在的PC的IP,type选择Basic Auth 用户名和密码是ODL的登录账号和密码都是admin

  • Body中将消息格式设置成json,上传方式设置为raw

  • 将preview中的消息粘贴在文本框内,可以看到参数都是在ODL里面设置的为了避免和之前ODL下发过的重合,在这把流表项id改为2或者删除之前发的流表项

    修改消息内id的同时url后的flow id也要改为2,否则会收到error,点击send后下发成功

  • 发送成功后改为GET并send查看刚刚下发的流表项

  • 在h2 ping h3后点击send

    如图在7->28,中间h2和h320ping不通

6.实验总结

​在本次实验中,熟悉了ODL控制器的简单使用。在搭建拓扑之后,连接到ODL控制器,在WEB UI中下发流表实现使h2 20s内ping不通h3,20s后恢复。实验中还借助了Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表,熟悉Postman的基本使用方法。通过本次实验,对控制平面和控制器有了更进一步的了解。

2019 SDN第四次上机作业的更多相关文章

  1. 2019 SDN第五次上机作业

    2019 SDN第五次上机作业 作业链接 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交对于教程代 码的理解,包括但不限于: 安装RYU控制器并测试 安装教程 安装过程及遇到各种问 ...

  2. 2019 SDN第6次上机作业

    1.作业要求: 作业链接 参考资料: Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 2.具体操 ...

  3. 2019 SDN第三次上机作业

    作业要求: 利用Mininet仿真平台构建给定的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性: 利用Wireshark工具,捕 ...

  4. 2019 SDN第3次上机作业

    0.报文类型与含义 1.Controller-to-Switch 报文 ​ Cortoller-to-Switch是由控制器初始化并下发给交换机的报文类型,其可能会要求交换机回复对应的报文,此类型报文 ...

  5. SDN第四次上机作业

    1.建立以下拓扑,并连接上ODL控制器. 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复. 3.借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发 ...

  6. SDN 第四次上机作业

    1.建立以下拓扑,并连接上ODL控制器. 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复. 3.借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发 ...

  7. SDN第5次上机作业

    SDN第5次上机作业 实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 1.建立以下拓扑,并连接上ODL控制器. 提交要求:ODL拓扑界面 ...

  8. SDN 第三次上机作业

    SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证

  9. 17秋 SDN课程 第四次上机作业

    1.建立以下拓扑,并连接上ODL控制器. 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复. 3.借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发 ...

随机推荐

  1. 英伟达 cuda 开发套件下载

    下载地址 https://developer.nvidia.com/cuda-toolkit 安装比较简单,就不多说了.

  2. 仿EXCEL插件,智表ZCELL产品V1.7 版本发布,增加自定义右键菜单功能

    详细请移步 智表(ZCELL)官网www.zcell.net 更新说明  这次更新主要应用户要求,主要解决了自定义右键菜单事件的支持,并新增了公式中自定义函数传参.快捷键剪切等功能,欢迎大家体验使用. ...

  3. Html-元素类型笔记

    注意点: 元素类型分为 块级元素 和 行内元素 块级元素: 在网页中以块的形式显示,默认情况都会占据一行,两个相邻的块级元素不会出现并列显示的元素,按照顺序自上而下排列. 块级元素可以定义自己的宽度和 ...

  4. Java 之 Servlet的urlPartten

    Servlet 的 urlpartten urlpartten:Servlet 访问路径 1.一个 Servlet 可以定义多个访问路径,在使用@WebServlet注解时,可以发现里面的 urlpa ...

  5. Mybatis自动生成代码,MyBatis Generator

    这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...

  6. Linq 等式运算符:SequenceEqual(转载)

    https://www.bbsmax.com/A/nAJvbKywJr/ 引用类型比较的是引用,需要自己实现IEqualityComparer 比较器. IList<string> str ...

  7. day 14作业

    作业 现有文件info.txt, 其内容如下: alpha male 18 1000 bravo male 28 2000 charlie female 38 3000 delta female 48 ...

  8. php后端模式,php-fpm以及php-cgi, fast-cgi,以及与nginx的关系

    关于cgi是什么,fast-cgi是什么,php-cgi是什么,fast-cgi是什么,下面这篇讲的很清楚: https://segmentfault.com/q/1010000000256516 另 ...

  9. HTTPS安全通信过程

         前言:本文是的第三篇文章.第一篇文章<常见加密算法特点及适用场景>,介绍了常见加密算法及其适用的场景,对加密算法做一个总体的概述.第二篇文章<非对称加密算法-RSA算法&g ...

  10. ThinkPHP的路由规则和URL生成,结合django的URL理解

    这个知识点,我觉得蛮重要的. 不作任何路由定义的TP,URL格式和controller之间,相当于强绑定. 路由配置,让URL和controller的关系可以自定义. URL生成,让controlle ...