sdn控制器

SDN第4次上机作业

血红的双手。 提交于 2019-12-09 11:17:58
1.建立以下拓扑,并连接上ODL控制器。 题目要求拓扑 odl拓扑截图 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复。 连通性截图 3.借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发的流表。 下发流表截图 连通性截图 查看流表截图 来源: https://www.cnblogs.com/miyu5279/p/8074898.html

SDN课程阅读作业(2)

怎甘沉沦 提交于 2019-12-09 09:40:48
1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 分为的阶段 在过去20年中可编程网络的发展可以分为三个阶段,第一个阶段是主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大的创新;第二个阶段是控制和数据平面分离(从2001年到2007年左右),开发了控制和数据平面之间的开放接口;以及第三个阶段的OpenFlow API和网络操作系统(2007年至2010年左右),代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离可扩展且实用的方法。 主要贡献 - 主动网络阶段 对主动网络的研究开创了可编程网络的概念,降低l了网络创新的障碍 SDN的最初动机通常引用了生产网络难以创新和提高可编程性的观点,其早期愿景大多集中在控制平面可编程性上,而主动网络则更多地集中在数据平面可编程性上。 网络可虚拟化,以及基于数据包头对软件程序进行多路分解的能力 主动网络产生了一个架构框架,描述了这样一个平台的组件。这个平台的关键组件是一个管理共享资源的共享节点操作系统(NodeOS)和一组执行环境(EEs),每个环境定义一个用于数据包操作的虚拟机,以及一组在给定EE内工作以提供端到端服务的活动应用程序(AAs)。 为middlebox编排提供统一架构的构想 尽管这一设想可能没有直接影响到最近关于NFV的工作

2019 SDN上机第6次作业

对着背影说爱祢 提交于 2019-12-09 00:09:25
1.实验拓扑 实验拓扑 见2019 SDN上机第2次作业 要求 使用Python脚本完成拓扑搭建,并连接ryu控制器。 2.使用Ryu的REST API下发流表实现和第2次实验同样的VLAN 参考资料 REST API:可以在线学习中国大学MOOC 《软件定义网络》第六讲 北向接口 Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 要求 编写脚本,一键执行下发流表。 3.对比两种方法,写出你的实验体会 来源: https://www.cnblogs.com/yxyolo/p/12008738.html

2019 SDN上机第6次作业

感情迁移 提交于 2019-12-06 13:03:44
1.作业要求: 实验拓扑 1.实验拓扑见 2019 SDN上机第2次作业 ; 2.要求:使用Python脚本完成拓扑搭建,并连接ryu控制器; 使用Ryu的REST API下发流表实现和第2次实验同样的VLAN 1.参考资料:REST API:可以在线学习中国大学MOOC 《软件定义网络》第六讲 北向接口 Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 2.要求:完成自动化脚本编写,一键下发流表; 对比两种方法,写出你的实验体会 作业博客链接: https://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10134 2.具体操作步骤与截图说明: 实验环境:VMware Workstation Pro14.1、ubuntu-16.04 (1)实验拓扑: 给定的实验拓扑图如下所示: 编写Python脚本x.py,完成拓扑搭建,实验代码如下所示: from mininet.topo import Topo class Topo2( Topo ): def __init__( self ): # Initialize topology Topo.__init__( self ) # add switches s1 = self

2019 SDN上机第5次作业

删除回忆录丶 提交于 2019-12-06 10:55:27
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 可以将收到的数据包转发给所有端口 控制器设定交换机支持什么版本的OpenFlow? OpenFlow v1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def packet_in_handler(self, ev): msg = ev.msg dp = msg.datapath ofp = dp.ofproto ofp_parser = dp.ofproto_parser actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD)] out = ofp_parser.OFPPacketOut( datapath=dp, buffer_id=msg.buffer_id,in_port=msg.in_port, actions=actions) dp.send_msg(out) 如上方代码所示,新方法'packet_in_handler'已添加到L2Switch类。当Ryu收到OpenFlow packet_in消息时,将调用此方法。诀窍是“ set_ev_cls”装饰器

2019 SDN上机第5次作业

只愿长相守 提交于 2019-12-06 10:08:20
2019 SDN上机第5次作业 浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交对于教程代码的理解: 描述官方教程实现了一个什么样的交换机功能? 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? 控制器设定交换机支持OpenFlow 1.0 控制器设定了交换机如何处理数据包? 首先通过以下这个语句设置想要向交换机协商的OpenFlow版本号 OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] 给出官方的代码,这一部分是实现将接收到的数据包发送到所有端口的功能。 @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def packet_in_handler(self, ev): msg = ev.msg dp = msg.datapath ofp = dp.ofproto ofp_parser = dp.ofproto_parser actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD)] out = ofp_parser.OFPPacketOut( datapath=dp, buffer_id=msg.buffer_id, in_port=msg.in_port,

2019 SDN上机第5次作业

白昼怎懂夜的黑 提交于 2019-12-06 09:04:45
2019 SDN上机第5次作业 1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? OpenFlow 1.0 控制器设定了交换机如何处理数据包? 下面我们通过看代码和注释来说明 主要完成将接收到的数据包发送到所有端口的功能。 from ryu.base import app_manager from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER from ryu.controller.handler import set_ev_cls from ryu.ofproto import ofproto_v1_0 class L2Switch(app_manager.RyuApp): OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] def __init__(self, *args, **kwargs): super(L2Switch, self).__init__(*args, **kwargs) @set_ev_cls(ofp_event

2019 SDN上机第5次作业

好久不见. 提交于 2019-12-06 08:58:56
2019 SDN上机第5次作业 1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 该应用程序使用OFPP_FLOOD标志来指示应在所有端口上发送数据包。 控制器设定交换机支持什么版本的OpenFlow? OpenFlow 1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def packet_in_handler(self, ev): msg = ev.msg dp = msg.datapath ofp = dp.ofproto ofp_parser = dp.ofproto_parser actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD)] out = ofp_parser.OFPPacketOut( datapath=dp, buffer_id=msg.buffer_id,in_port=msg.in_port, actions=actions) dp.send_msg(out) 当Ryu收到OpenFlow packet_in消息时,将产生事件(调用"packet_in_hander"方法); ev

SDN课程阅读作业(2)

て烟熏妆下的殇ゞ 提交于 2019-12-06 08:42:29
1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 答:可编程网络的发展分为三个阶段。 (1)主动网络阶段 贡献: 1、对主动网络的研究开创了可编程网络的概念,降低了网络创新的障碍 2、网络可虚拟化,以及基于数据包头对软件程序进行多路分解的能力 3、为middlebox编排提供统一架构的构想 4、提供了平台的可移植性和一些代码安全 5、主动网络是第一批干净的网络架构方法 (2)控制和数据平面分离阶段 贡献: 1、提出控制面和数据面之间的开放接口 2、在逻辑上对网络进行集中控制 3、提出了两个概念:使用数据面的开放接口进行集中逻辑控制和分布式状态管理 4、为Openflow的创建奠定了基础,尤其是乙烷的简单开关设计成为最初OpenFlow API的基础 (3)OpenFlow API和网络操作系统阶段 贡献: 1、为学生和科研人员实现新协议和新算法提供一个很好的试验平台 2、代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离具有可扩展性和实用性的方法。 3、分布式状态管理技术。分离控制层和数据层带来了国家管理方面的新挑战。运行多个控制器对于可伸缩性、可 靠性和性能至关重要,但是这些副本应该像单个逻辑集中式控制器一样协同工作。 2.网络虚拟化与SDN的关系 答:网络虚拟化表示从底层物理设备分离的网络的抽象,网络虚拟化允许多个虚拟网络在共享基础设施上运行

2019 SDN上机第5次作业

走远了吗. 提交于 2019-12-06 08:41:20
本次作业将进行RYU控制器相关实践,了解RYU控制器开发方法。 实验内容 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.描述官方教程实现了一个什么样的交换机功能? 实现了添加一些功能使交换机能够将接收到的数据包转发到所有端口的交换机功能. 2.控制器设定交换机支持什么版本的OpenFlow? 控制器设定交换机支持OpenFlow 1.0 3.控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) //表明当Ryu收到OpenFlow packet_in消息时,将产生事件(调用“packet_in_handler”方法) def packet_in_handler(self, ev): msg = ev.msg//ev.msg是表示packet_in数据结构的对象。 dp = msg.datapath//msg.dp是代表数据路径(开关)的对象。 ofp = dp.ofproto ofp_parser = dp.ofproto_parser //dp.ofproto和dp.ofproto_parser是代表Ryu和交换机协商的OpenFlow协议的对象。 actions = [ofp_parser.OFPActionOutput