首页 > 其他分享 >实验3:OpenFlow协议分析实践 实验4:开源控制器实践——OpenDaylight

实验3:OpenFlow协议分析实践 实验4:开源控制器实践——OpenDaylight

时间:2023-10-07 19:24:30浏览次数:25  
标签:控制器 OpenFlow 端口 实践 交换机 实验 OpenDaylight

实验3:OpenFlow协议分析实践

一、实验目的

  1. 能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;
  2. 能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。

二、实验环境

Ubuntu 21.10

三、实验内容

搭建拓扑,完成相关 IP 配置,并连接OpenDaylight控制器,实现主机与主机之间的 IP 通信

用抓包软件获取控制器与交换机之间的通信数据。

Hello

控制器6633端口(最高能支持OpenFlow 1.0) ---> 交换机46306端口

交换机46306端口(最高能支持OpenFlow 1.3) ---> 控制器6633端口

于是双方建立连接,并使用OpenFlow 1.0。

Features Request

控制器6633端口(需要特征信息) ---> 交换机46306端口

Set Conig

控制器6633端口(按照给的flag和max bytes of packet进行配置) ---> 交换机46306端口

Port_Status

当交换机端口发生变化时,告知控制器相应的端口状态。

Features Reply

交换机46306端口(这是特征信息,请查收) ---> 控制器6633端口

Packet_in

交换机46306端口(有数据包进来,请指示)--- 控制器6633端口

Packet_out

控制器6633端口(按照给的action进行处理) ---> 交换机46306端口

Flow_mod

分析抓取的flow_mod数据包,控制器通过6633端口向交换机46306端口、交换机46308端口下发流表项,指导数据的转发处理

对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义,并根据抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。

回答问题

1.交换机与控制器建立通信时是使用TCP协议还是UDP协议?

TCP协议。

2.产生Packet_IN消息的原因有哪些?

(1)交换机查找流表,发现没有匹配条目;
(2)有匹配条目但是对应的action是OUTPUT=CONTROLLER。

四、实验总结

抓包时在openflow_v1里没有找到Hello数据包,发现ppt中注意事项“先开启抓包再构建拓扑”,原来我先构建拓扑再开启抓包,于是我重新照做,就出现了Hello数据包。在寻找FLOW_MOD数据包时,一直没有寻找到,执行pingall后再找就到FLOW_MOD数据包了。

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

一、实验目的

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

二、实验环境

Ubuntu 21.10

三、实验内容

1.利用Mininet平台搭建网络拓扑,并连接OpenDaylight控制器

命令行连接控制器


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

四、总结

在OpenDayLight的安装配置中,虚拟机下载便花费了大量时间,由于ios系统电脑设备版本限制,试了很多遍,最终还是无法完成安装,只好借用同学电脑一起完成实验。在实验时OpenDayLight的UI界面打不开,经过研究发现应该是防火墙拦截了端口号,把防火墙关闭即可。总体实验还算顺利,难度适中。

标签:控制器,OpenFlow,端口,实践,交换机,实验,OpenDaylight
From: https://www.cnblogs.com/102101310hxy/p/17746532.html

相关文章

  • DTS实验
    DTS实验qemu的dumpdtb参数可以解析出qemuvirt设备平台使用的默认dtb配置。qemu-system-riscv64-Mvirt,dumpdtb=qemu.dtb成功解析出目标dtb文件,但此文件无法直接进行修改,必须将其修改为dts文件。dtc-Idtb-Odtsqemu.dtb-oqemu.dts(dtc为设备树的编译工具,可以做dts文......
  • ip实验:ospf和isis共存下的问题解决
    一,实验目的:内网正常访问ar4的两个外部静态路由地址二,实验配置思路:引入外部静态后,在ar2上引入带isis里面,会发现ar1是个故障节点(只要是访问外部路由经过该节点时就会发生环路),在ar1上拒绝对应的isis路由的加表(不是双点双向啊,因为ar1上有isis进程,isis的路由表会和ospf路由表抢着加入......
  • 实验1 C语言输入输出和简单程序编写
    实验1C语言输入输出和简单程序编写一、实验目的1.会使用C语言程序开发环境(vs2010/devc++等),能熟练、正确使用它们编写、编译、运行、调试C程序2.知道C程序结构和编码规范,能正确使用3.能正确、熟练使用C语言输入输出函数:scanf(),printf(),getchar(),putchar()4.能灵活......
  • 实验一
    运行程序  ......
  • 实验1
    //计算10亿秒约等于多少年,并打印输出#include<stdio.h>intmain(){intyear;year=1e9/(60*60*24*365+0.5 );printf("10亿秒约等于%d年\n",year);return0;}#include<stdio.h>intmain(){doublec;doublef;w......
  • 实验一
    test1.1#include<stdio.h>intmain(){printf("o\n");printf("<H>\n");printf("II\n");printf("o\n");printf("<H>\n");printf("II\n");ret......
  • 奇墨科技成功入选中国信通院稳定性保障实验室理事单位
    日前,奇墨科技正式入选中国信通院稳定性保障实验室理事单位,携手中国信通院共同推动我国系统稳定性保障能力建设,为千行百业企业的系统稳定性护航。成功入选[稳定性保障实验室理事单位]!参编多项行业标准近年来,随着各个领域数字化转型推进,数据系统应用范围不断扩大,承载业务愈发关键,用户......
  • 实验一
    #include<stdio.h>intmain(){printf("0\n");printf("<H>\n");printf("II\n");printf("0\n");printf("<H>\n");printf("II\n");return......
  • LLM实践-在Colab上使用免费T4 GPU进行Chinese-Llama-2-7b-4bit推理
    一、配置环境1、打开colab,创建一个空白notebook,在[修改运行时环境]中选择15GB显存的T4GPU.2、pip安装依赖python包!pipinstall--upgradeaccelerate!pipinstallbitsandbytestransformers_stream_generator!pipinstalltransformers!pipinstallsentencepiece!pip......
  • 实验1
    1//打印一个字符小人23#include<stdio.h>4intmain()5{6printf("o\n");7printf("<H>\n");8printf("II\n");9printf("o\n");10printf("<H>\n");11......