sdn

SDN课程阅读作业(2)

穿精又带淫゛_ 提交于 2019-12-05 20:15:18
2.网络虚拟化与SDN的关系? SDN作为网络虚拟化的一种支持技术 云计算使网络虚拟化变得突出,因为云提供商需要一种方式,允许多个客户(或“租户”)共享同一网络基础设施。Nicira的网络虚拟化平台提供了这种抽象,而不需要底层网络硬件的任何支持。解决方案是使用覆盖网络为每个租户提供连接其所有虚拟机的单个交换机的抽象。然而,与先前在覆盖网络上的工作相比,每个覆盖节点实际上是物理网络的一个扩展——一个软件交换机(如Open vSwitch[57,63]),它封装了发送到其他服务器上运行的虚拟机的流量。逻辑集中式控制器在这些虚拟交换机中安装规则,以控制如何封装数据包,并在虚拟机移动到新位置时更新这些规则。 用于评估和测试SDN的网络虚拟化 将SDN控制应用程序与底层数据平面分离的能力使得在将SDN控制应用程序部署到操作网络之前,可以在虚拟环境中测试和评估SDN控制应用程序。Mininet[41,48]使用基于进程的虚拟化在同一物理(或虚拟)机上运行多个虚拟OpenFlow交换机、终端主机和SDN控制器,每个控制器都作为单个进程。使用基于进程的虚拟化允许Mininet模拟一个网络,在一台机器上有数百个主机和交换机。在这样的环境中,研究人员或网络运营商可以开发控制逻辑,并在生产数据平面的全面仿真上轻松地对其进行测试;一旦对控制平面进行了评估、测试和调试,就可以将其部署到实际的生产网络上。

【2019.11.27】SDN上机第5次作业

安稳与你 提交于 2019-12-05 20:14:01
描述官方教程实现了一个什么样的交换机功能? Ryu是一个基于组件的软件定义的网络框架。Ryu为软件组件提供了定义良好的API,使开发人员可以轻松创建新的网络管理和控制应用程序。Ryu支持各种用于管理网络设备的协议,如OpenFlow、Netconf、OF config等。 控制器设定交换机支持什么版本的OpenFlow? 关于OpenFlow,Ryu完全支持1.0、1.2、1.3、1.4、1.5和Nicira扩展。 控制器设定了交换机如何处理数据包? 根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 SelfLearning.py 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 from ryu.lib.mac import haddr_to_bin from ryu.lib.packet import packet from ryu.lib

2019 SDN上级第五次作业

烂漫一生 提交于 2019-12-05 20:13:26
1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 答:官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? 答:控制器设定交换机支持OpenFlow 1.0 控制器设定了交换机如何处理数据包? 答:'''@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)''' 答:当Ryu收到OpenFlow交换机送来的packet_in消息时调用新增方法packet_in_handler,set_ev_cls的第一个参数也声明了 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 如下是补充完整代码: 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

2019 SDN上机第5次作业

孤者浪人 提交于 2019-12-05 20:11:19
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? ​ 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? from ryu.ofproto import ofproto_v1_0 ​ OpenFlow 1.0 控制器设定了交换机如何处理数据包? ​ 接收包并广播包 @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) #当Ryu收到OpenFlow交换机送来的packet_in消息时调用,set_ev_cls的第一个参数也声明了。 #set_ev_cls的第二个参数MAIN_DISPATCHER意味着当Ryu和交换机握手过程(即hello, features request/reply, Set Config等)完毕,才会调用packet_in_handler。 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

2019 SDN上机第5次作业

青春壹個敷衍的年華 提交于 2019-12-05 20:09:14
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 3.在mininet创建一个最简拓扑,并连接RYU控制器 4.验证自学习交换机的功能,提交分析过程和验证结果 例如: 5.写下你的实验体会 来源: https://www.cnblogs.com/ruifeng1/p/11944532.html

2019 SDN上机第5次作业

给你一囗甜甜゛ 提交于 2019-12-05 20:05:09
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 来源: https://www.cnblogs.com/fzuzh/p/11944410.html

2019 SDN上机第5次作业

≡放荡痞女 提交于 2019-12-05 19:36:16
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 安装 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 3.在mininet创建一个最简拓扑,并连接RYU控制器 4.验证自学习交换机的功能,提交分析过程和验证结果 例如: 5.写下你的实验体会 来源: https://www.cnblogs.com/wawu/p/11941844.html

2019 SDN上机第5次作业

一笑奈何 提交于 2019-12-05 16:04:34
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解 1.描述官方教程实现了一个什么样的交换机功能? 让交换机在各个端口发送它接收到的数据包 2. 控制器设定交换机支持什么版本的OpenFlow? OpenFlow v1.0 3. 控制器设定了交换机如何处理数据包? 这里把官方给出的代码放上来(不然不知道在解释啥),备注中解释到处理函数定义为止的前半部分,后半部分较长就在下面用文字解释 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] /*这里设置想要向交换机协商的OpenFlow版本号*/ /*这玩意设置完后,控制器会自动交换Hello包,协商版本号,接着协商完成之后,它再自动执行交换Features包,进行握手*/ def __init__

SDN课程阅读作业(2)

若如初见. 提交于 2019-12-05 15:57:32
1. 过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 可分为三个阶段 1.主动网络(20世纪90年代中期到21世纪初) 贡献有三个: 1.网络可编程性降低了技术创新的障碍 2.提出网络虚拟化,以及基于包头对软件程序进行复用 3.创建中间件编排统一的架构 2.将控制面与数据面分离(2001年-2007年) 贡献有三个: 1.提出两项创新,分别为控制面和数据面之间的开放接口与在逻辑上对网络进行集中控制 2.将控制功能转移到了单独的服务器上,这样逻辑上集中的路由控制器降低了标准的实施障碍,服务器技术的进步意味着单一的商品服务器可以存储的所有的路由状态,并为一个大型网络计算所有的路由决策 3.提出了两个概念,分别为使用数据面的开放接口进行集中逻辑控制和分布式状态管理 3.OpenFlow API和网络操作系统(2007年-2010年) 贡献有五个: 1.OpenFlow为学生和科研人员实现新协议和新算法提供一个很好的试验平台 2.OpenFlow交换机在数据中心网络中的使用,使得网络和计算资源更加紧密的联系起来并实现有效的控制 3.基于OpenFlow技术实现的网络更加便于控制,在内部网络和外网的连接处应用OpenFlow交换机可以通过更改数据流的路径以及拒绝某些数据流来增强企业内网的安全性 4.基于OpenFlow实现SDN

2019 SDN阅读作业(2)

痴心易碎 提交于 2019-12-05 15:56:15
1.作业要求: 阅读文章《The Road to SDN: An Intellectual History of Programmable Networks》,并根据所阅读的文章,回答以下两个问题: 1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 2.网络虚拟化与SDN的关系? 作业博客链接: http://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10094 2.问题回答: (1)过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 答:在过去20年中可编程网络的发展可以分为以下三个阶段: 主动网络阶段(从20世纪90年代中期到21世纪初) 贡献:它在网络中引入了可编程功能,实现了更大的创新。 ​ 在20世纪90年代中期,由于网络协议标准化过程的缓慢,一些网络研究人员采用了一种开放网络控制的替代方法,大致是基于对独立PC重新编程相对容易的类比。具体地说,传统网络在任何意义上都不是“可编程”的,主动网络代表了一种激进的网络控制方法,通过设想一个编程接口(或网络API)来公开各个网络节点上的资源(例如,处理、存储和数据包队列),并支持构建应用于子集的定制功能,主动网络研究计划探索了传统互联网协议栈通过IP或异步传输模式(ATM)提供服务的根本替代方案。 控制和数据平面分离阶段