openflow

2019 SDN上机第5次作业

寵の児 提交于 2019-11-27 10:10:48
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的第一个参数也声明了 set_ev_cls的第二个参数MAIN_DISPATCHER意味着当Ryu和交换机握手过程(即hello, features request/reply, Set Config等)完毕,才会调用packet_in_handler 之后定义packet_in数据结构对象,数据路径对象datapath,OpenFlow协议和解析过程;定义交换机的动作,如何发送数据包;定义Ryu向交换机发送的packet_out内容,最后发送消息 分析教程中具体的数据操作: ev.msg:是表示packet_in数据结构的对象。每一个事件类ev中都有msg成员,是携带触发事件的数据包 msg

OpenFlow协议标准演进过程

家住魔仙堡 提交于 2019-11-27 03:29:53
OpenFlow 是一种新型网络协议,起源于斯坦福大学的 Clean Slate 项目组。 OpenFlow 提出的出发点是由于研究人员无法改变现有网络设备进行创新网络架构和协议的研究和实验,而这些新的网络创新思想恰恰需要在实际的网络上才能更好地验证。斯坦福大学因此提出了控制转发分离架构,将控制逻辑从网络设备中分离出来,交给中央控制器集中统一控制,实现网络业务的灵活部署,并且他们设计了 OpenFlow 协议作为控制器与交换机通讯的标准接口。近年 OpenFlow 已经引起了网络设备商和网络管理员的广泛关注,使用 OpenFlow 协议实现软件定义网络,可以把网络作为一个整体而不是许多独立分散的设备来集中进行管理,大大提升了网络可用性和网络管理效率。 OpenFlow 的思路很简单,网络设备维护一个或者若干个流表,并且数据流只按照这些流表进行转发。流表本身的生成、维护完全由外置的控制器来管理。流表项并非仅指普通的 IP 五元组,而是由一些关键字和执行动作组成的灵活规则,并且每个关键字字段都是可以通配的。在实际应用中,网络管理人员可以通过配置流表项中具体的匹配关键字来决定使用何种粒度的流转发规则。例如,如果只需要根据目的 IP 进行路由,那么下发流表项时,关键字只匹配目的 IP 字段,其它关键字全通配,而动作中只需要一个出端口即可实现常规的 IP 路由转发。 自 2009

流表

孤人 提交于 2019-11-26 16:39:16
3.1 流与流表 流: 同一时间,经过同一网络中具有某些共同特性(属性)的数据,抽象成一个流。可以将访问同一目的地址的数据视为流; 流一般由网络管理员定义,根据不同的流执行不同的策略 OpenFlow体系中,数据以‘流’为单位进行处理 流表: 针对特定流的 策略表项 的集合,负责数据的查找与转发 一张流表包含了一系列的流表项 3.2 OpenFlow 流表项 流表项包含三个域: 包头域(head fields):涵盖了链路层、网络层、传输层大部分标识 计数器(counters):用于统计数据流量相关信息,可以针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护; 动作表(actions):指示与该流表项匹配的数据包应该执行的下一步操作 流表及其组成: 安全通道 -----------------------------OpenFlow协议---------控制器 流表 包头域: 输入端口-MAC地址-MAC目的地址-以太网类型-VLAN ID-VLAN优先级-IP源地址-IP目的地址-IP协议-IP服务类型-IP源端口-IP目的端口 包头域分为四层: 1.入端口(Ingress Port),消息在哪个端口进入交换机 2.源MAC地址+Ether dst+Ether Type+VLAN id+VLAN prioroty 3.IP src+IPdst+IP Proto

Is SDN really Dead ?!

故事扮演 提交于 2019-11-26 16:19:17
SDN真的死了吗?有人会说SDN已经死了,有些人则认为SDN仍然存在。真正的答案取决于如何定义SDN以及SDN的真正含义。 十年前,在SDN技术还处于起步阶段时,人们相信它将给网络架构带来突破性的变化。SDN架构在网络中引入了三个不同的层:包含所有网络元素的数据平面层、带有SDN控制器的控制平面层和使网络可编程的应用层。许多人认为SDN控制器和SDN应用程序将取代网络中的几十种路由协议。SDN在推出时有三个不同的目标: 控制平面与数据平面分离; 将软硬件解耦(即,避免厂商锁定); 通过API使网络功能可编程。 开放网络基金会(ONF)支持SDN计划,并引入了OpenFlow协议。但是,OpenFlow协议只更新到1.5.1版本。笔者将SDN的失败归咎于ONF在实现SDN愿景时所采取的方式问题。他们的大多数项目都集中在OpenFlow上,他们让每个人都相信OpenFlow将为当今网络中的所有问题提供一站式解决方案。他们试图过多地重载OpenFlow - 例如,尝试使用OpenFlow扩展来执行MPLS标签分发。最终,OpenFlow并没有实现超出数据中心以外的需求。网络设备厂商也因自身利益问题并不期待SDN。因此,OpenFlow的动力很快就消失了。 SDN社区对网络行业做出了两项重要贡献: 1.第一个贡献是Open Daylight SDN Controller。在SDN 诞生之初

2019 SDN上机第5次作业

别等时光非礼了梦想. 提交于 2019-11-26 03:24:47
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__(self,

SDN课程阅读作业(2)

耗尽温柔 提交于 2019-11-26 02:31:48
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-11-26 02:18:18
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)提供服务的根本替代方案。 控制和数据平面分离阶段