sdn控制器

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

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)提供服务的根本替代方案。 控制和数据平面分离阶段

NFV和SDN关系、NFV关键能力以及如何演进

余生颓废 提交于 2019-11-26 00:26:12
本文继续探讨NFV,其他内容请阅读前一篇文档。 你能在这里找到我,思科群:529468183;华为群:645866695 1.NFV和SDN的关系 NFV是具体设备的虚拟化,将设备控制平面运行在服务器上,这样设备是开放的兼容的。 SDN是一种全新的网络架构,SDN的思想是取消设备控制平面,由控制器统一计算,下发流表,SDN是全新的网络架构。 NFV和SDN是高度互补关系,但并不互相依赖。网络功能可以在没有SDN的情况下进行虚拟化和部署,然而这两个理念和方案结合可以产生潜在的、更大的价值。 网络功能虚拟化(NFV)的目标是可以不用SDN机制,仅通过当前的数据中心技术去实现。但从方法上有赖于SDN提议的控制和数据转发平面的分离,可以增强性能、简化与已存在设备的兼容性、基础操作和维护流程。 NFV可以通过提供给SDN软件运行的基础设施的方式来支持SDN。而且,NFV和SDN在都利用用基础的服务器、交换机去达成目标,这一点上是很接近的。 SDN的本质是把网络软件化,提高网络可编程能力和易修改性。SDN没有改变网络的功能,而是重构了网络的架构 NFV没有改变设备的功能,而是改变了设备的形态。NFV的本质是把专用硬件设备变成一个通用软件设备,共享硬件基础设施 SDN和NFV的关系: NFV的软件设备(统称VNF)快速部署以及VNF之间网络快速建立,需要支持网络自动化和虚拟化能力

2019 SDN上机第4次作业

断了今生、忘了曾经 提交于 2019-11-25 23:29:10
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 配置java环境 安装OpenDayLight控制器 2. 启动并安装插件 cd distribution-karaf-0.4.4-Beryllium-SR4/bin/ ./karaf feature:install odl-restconf feature:install odl-l2switch-switch-ui feature:install odl-openflowplugin-all feature:install odl-mdsal-apidocs feature:install odl-dlux-core feature:install odl-dlux-node feature:install odl-dlux-yangui 3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器 python代码 from mininet.topo import Topo class Topo2( Topo ): def __init__( self ): # Initialize topology Topo.__init__( self ) # add switches and hosts sw1 = self.addSwitch('s1') sw2 = self

2019 SDN上机第4次作业

放肆的年华 提交于 2019-11-25 22:58:18
2019 SDN上机第4次作业 解压安装OpenDayLight控制器 配置Java环境 修改配置文件 sudo gedit ~/.bashrc 在底部添加以下语句 export JAVA_HOME=/usr/local/java/jdk1.8.0_211 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 启动并安装插件 安装ODL后运行./karaf (注意不能用sudo运行) , 安装feature 命令代码如下: opendaylight-user@root>feature:install odl-restconf opendaylight-user@root>feature:install odl-l2switch-switch-ui opendaylight-user@root>feature:install odl-openflowplugin-all opendaylight-user@root>feature:install odl-mdsal-apidocs opendaylight-user@root>feature:install odl-dlux-core

2019 SDN上机第4次作业

不打扰是莪最后的温柔 提交于 2019-11-25 22:49:40
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 从 openDayLight 官网下载 并安装java环境 distribution-karaf-0.4.4-Beryllium-SR4.tar.gz 2. 启动并安装插件 3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器 4. 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复 5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。 来源: https://www.cnblogs.com/cmsimple/p/11930746.html

2019 SDN上机第4次作业

社会主义新天地 提交于 2019-11-25 22:06:00
1.解压安装OpenDayLight控制器 下载完成后在终端输入 tar -zxvf distribution-karaf-0.4.4-Beryllium-SR4.tar.gz 完成解压 2.启动并安装插件 cd进入bin文件夹,输入./karaf 刚开始忘记配置java环境了,所以配置了重新运行./karaf就可以正常安装了 安装后进行配置 在浏览器输入http://127.0.0.1:8181/index.html进入ODL图形界面,用admin账户登录 3.用 Python脚本 搭建如下拓扑,连接OpenDayLight控制器 python代码如图 终端输入sudo mn --custom exp4.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13来构建拓扑 links查询链路连接情况 在ODL控制器端查看拓扑 4. 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复 因为要使20s内h2 ping 不通 h3,因此我们可以下发策略使port2进来的目的IP为h3的数据包都drop掉就能ping不通,然后设置hard_time为20s,则二十秒后策略失效。 配置流表 选择PUT方式下发流表