首页 > 其他分享 >实验5:开源控制器实践——POX

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

时间:2022-10-18 17:25:39浏览次数:36  
标签:控制器 POX 端口 开源 ofp msg port

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

一、实验目的

  1. 能够理解 POX 控制器的工作原理;
  2. 通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;
  3. 能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。

二、实验环境

Ubuntu 20.04 Desktop amd64

三、实验要求

(一)基本要求

  1. 搭建下图所示SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)
  2. 阅读Hub模块代码,使用 tcpdump 验证Hub模块;

 

 

 

 

         3.阅读L2_learning模块代码,画出程序流程图,使用 tcpdump 验证Switch模块。

 

 

 

 

 

 

(二)进阶要求

1.重新搭建(一)的拓扑,此时交换机内无流表规则,拓扑内主机互不相通;编写Python程序自定义一个POX模块SendFlowInSingle3,并且将拓扑连接至SendFlowInSingle3(默认端口6633),实现向s1发送流表规则使得所有主机两两互通。

 

 

 

 from pox.core import core

import pox.openflow.libopenflow_01 as of   class SendFlowInSingle3(object):     def __init__(self):         core.openflow.addListeners(self)     def _handle_ConnectionUp(self, event):         msg = of.ofp_flow_mod()  # 使用ofp_flow_mod()方法向交换机下发流表         msg.priority = 1         msg.match.in_port = 1  # 使数据包进入端口1         msg.actions.append(of.ofp_action_output(port=2))  # 从端口2转发出去         msg.actions.append(of.ofp_action_output(port=3))  # 从端口3转发出去         event.connection.send(msg)           msg = of.ofp_flow_mod()  # 使用ofp_flow_mod()方法向交换机下发流表         msg.priority = 1         msg.match.in_port = 2  # 使数据包进入端口2         msg.actions.append(of.ofp_action_output(port=1))  # 从端口1转发出去         msg.actions.append(of.ofp_action_output(port=3))  # 从端口3转发出去         event.connection.send(msg)           msg = of.ofp_flow_mod()  # 使用ofp_flow_mod()方法向交换机下发流表         msg.priority = 1         msg.match.in_port = 3  # 使数据包进入端口3         msg.actions.append(of.ofp_action_output(port=1))  # 从端口1转发出去         msg.actions.append(of.ofp_action_output(port=2))  # 从端口2转发出去         event.connection.send(msg)   def launch():     core.registerNew(SendFlowInSingle3)

2.基于进阶1的代码,完成ODL实验的硬超时功能。

 

 

 

 

(三)个人总结

这次的实验内容是能够理解 POX 控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够运用 POX控制器编写自定义网络应用程序,进一步熟悉POX控制器流表下发的方法。这次的实验难度比较大对于流表的编写有一些难度,需要对Hub模块和Switch模块有一定的了解。

标签:控制器,POX,端口,开源,ofp,msg,port
From: https://www.cnblogs.com/zwf6698/p/16803295.html

相关文章

  • 实验6:开源控制器实践——RYU
    一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Desktopam......
  • 目标检测开源数据集汇总(二)
    编辑丨极市平台导  读 本文汇总了一些开源目标检测类的数据集,附下载链接。多显著性对象数据集数据集链接:​​http://m6z.cn/5AsmXB​​本数据集共有1224张图像来自四......
  • Jmeterif控制器、操作数据库、正则
    一、Jmeter逻辑控制器可以控制取样器(Sampler)的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成。只对其子节点的Sampler有效。分为两种类型:1、......
  • 实验6:开源控制器实践——RYU
    一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Desktopamd6......
  • 实验6: 开源控制器实践——RYU
    开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环境U......
  • 一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?
    一、什么是工作流?在阐述什么是工作流之前,先说一下工作流和普通任务的区别,在于依赖视图。普通任务本身他只会有自己的dag图,依赖视图是无边界的,不可控的,而工作流则是把整个......
  • Kubernetes 控制器管理器的工作原理
    在KubernetesMaster节点中,有三个重要的组件:ApiServer、ControllerManager和Scheduler,它们共同负责整个集群的管理。在本文中,我们尝试梳理一下ControllerManager的工作......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU(一)基本要求搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑阅读Ryu文档的TheFirstApplica......
  • 实验5:开源控制器实践——POX
    实验5:开源控制器实践——POX一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;够运......
  • 实验5:开源控制器实践——POX
    一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够运用POX控制器编写自定义网络......