[SCRUM]SDN概述:介绍、工具、环境部署

>>[SCRUM]SDN概述:介绍、工具、环境部署

[SCRUM]SDN概述:介绍、工具、环境部署

第一,前言:

本文初步接触 SDN 的相关概念。需要依次完成下面几项任务:

  • SDN简介
  • SDN工具
  • SDN环境部署

SDN概述:简介、工具、环境部署

推荐阅读

推荐阅读下述内容:

翼发云敏捷项目管理系统是一个在线的研发项目管理软件,支持多人协同开发,提供移动研发项目管理app,旨在帮助软件研发企业进行更好的研发项目管理、软件开发流程管理,该研发项目管理软件内置了敏捷开发流程和软件开发流程,结合SCRUM思想,满足各种规模的软件开发企业的研发项目管理流程的需要。

  • 乙烯项目,OpenFlow的基础
  • OpenFlow的建议
  • SDN的道路
  • OpenFlow的白皮书
  • 对SDN的发展史

二、对SDN的简要介绍

在刚刚接触 SDN 时,我们内心最希望明白这样的三个问题,这也是我们初步学习的目标: 软件项目管理就用翼发云敏捷项目管理系统。

  • SDN是什么;
  • SDN可以做什么;
  • SDN的优势是什么;

解决了这样三个问题,我们便知道我们为什么要学习 SDN,也拥有了我们学习的方向。接下来我们将来简单的回答这样三个问题。

什么是2.1 SDN

SDN 是一种让网络灵活、简单的体系结构。 翼发云研发管理系统完整实现SCRUM敏捷开发流程

这样的结论是源于:SDN(Software Defined Networks,翻译为软件定义网络)这种方式设计的初衷就是为了我们能够通过软件更加便捷、更加灵活的控制我们的网络。

这样的网络体系结构,设计理念是时代发展的催化。 SCRUM研发项目管理就选翼发云。

  • 网络的时代,所以我们不能去了解世界,
  • 移动信息时代的到来使我们的生活更方便,让我们生活的各个方面都依赖于互联网,这使得我们的网络业务迅速扩大。
  • 业务需求是像潮水一样,有潮潮。为了更加合理地利用资源,这是天生的支付需求,和灵活的服务,云服务。

云服务以灵活吸引用户,而不同的用户有不同的业务需求,也就避免不了的拥有不同的网络需求,使得网络变得更加的灵活,而这样的灵活仅仅在应用层次上改变是不够的,最终的数据的传输需要通过路由,交换机等网元设备,若是这样的设备也能够灵活控制,这样的效率将是我们所期许的。灵活控制的变革也会使得网络前进一大步。

传统的网元设备从厂商引进,只能按照规则来配置、使用该设备,就像一个电视机,给了我们遥控器,我们只需要知道如何使用即可,但是当拥有大量设备时我们只能够一台台的去配置,并且若是有漏洞,或者有定制化的需求出现时,使用者将是无可奈何的。

SDN 这样的体系结构使用自定义的软件来主导这一切,自然而然的解决了问题。

SDN概述:简介、工具、环境部署

2.2 SDN能做什么?

在 SDN 的体系架构中定义这样的三个平面:

  • 商业飞机:这个级别可划分为两个层面:管理平面:负责一些组件的初始化和配置。应用层:负责将用户的请求以特定的方式来控制飞机的下一个阶段。
  • 控制平面:它负责转换到实际操作应用平面的要求,从而控制基本网元设备的行为,并起到承上启下的作用。它可以说是SDN架构的核心,它就像一个公司的领导者。
  • 数据层:负责数据的转发,飞机就像在一个公司的搬运工。

这样的体系结构实现了控制平面与数据平面的完全分离(逻辑上的分离与物理上的分离),而这样的分离就像是科幻电影中将所有思考的能力都交给了人工智能的大脑,而其他执行命令的机器人并没有思考的能力,只能够接受大脑的支配,大脑的全权掌控能力使得即使出现了什么问题亦或者是由新功能的增加我们也能够及时升级系统来补救或者升级,而不用每个机器人都召回升级,并且这样的集中掌控能力使得我们定制化也将更加的方便。

不再像传统的网元,所有的逻辑控制都有厂商定制好,无法自由变动,统统在黑盒子里。

当然学习过网络基础(类似 CCNA 课程)的同学会说其实在传统的设备中控制平面与数据平面也是相互分离的,由控制器(CPU)来完成一些灵活的功能,由线卡来负责数据在端口间的转发。

SDN概述:简介、工具、环境部署

(此图来自于Cisco)

传统的设备其实在物理结构上是紧密耦合的,这样做虽然能够使得转发效率更高,对会有其他的一些弊端,例如分布式的控制需要逐一配置、可能部分的设备数据流采样会导致 CPU 的升高等问题。

这样的对比并不是为了说 SDN 的体系结构是完美无缺的,SDN 在发展时期也有会有一定的弊端,或者不如意的地方,但是在整体结构上是比传统的结构更加的灵活,更适合于当前的大环境的使用,当然 SDN 发展至今也有十个年头,逐渐的被大部分的厂家所认可,甚至实施了部署,例如 SDN 最为成功的案例 Google 利用 SDN 搭建的数据中心网络 B4,还有 Vmware、Juniper、Cisco、Dell 等等大巨头纷纷投入 SDN 的怀抱,足以看出 SDN 的吸引力。

2.3 SDN相关术语

从上文我们得知 SDN 的网络体系中主要分为 业务平面、控制平面、数据平面。

通常工作于业务平面的是一些 SDN 应用,也就是一群 Application,针对用户的一些需求;工作于控制平面是控制器(Controller),也就是控制数据实际走向的核心;工作于数据层的是各个网元设备,也就是一些交换器等,真正转发数据的工具。

将这三个平面串起来的是 openflow 协议与 API,通过 API与 openflow 协议来相互通信,这其中控制平面与业务平面相互通信的接口通常称为北面接口(Northbound Interfaces,与之对应的控制平面与数据平面相互通信的接口通常称为南面接口(Southbound Interfaces)。

SDN概述:简介、工具、环境部署

(此图来自于wikipedia SDN Architecture Overview (PDF), Version 1.0, December 12, 2013., CC BY-SA 3.0,)

openflow 协议可以看出是 SDN 的关键,SDN 发展初期、概念不明确时,openflow 一度是 SDN 的代名词。

当然 openflow 也存在一些问题,所以不断的推出新版本,为此创始人 Nick McKeown 教授等人提出了 P4(Programming Protocol-Independent Packet Processors),华为公司也提出了相应的解决方案 POF(Protocol Oblivious Forwarding)。由此可以明白 openflow 不等于 SDN,他只是一个最典型的、被当前所广泛认可的一个南向协议而已。

通过上文所述或许你对 SDN 的印象还是朦胧的,但是至少我们知道了:

  • SDN是一种新的体系结构;
  • SDN诞生于解决复杂、管理封闭、僵化的管理。
  • SDN的核心理念:从数据平面,控制平面的分离;

由控制平面核心控制器集中式控制,并可编程化;

三,SDN工具

为了更深入的了解 SDN,我们需要更多的动手实验,而实验需要实验的环境,环境主要在于交换机的模拟与控制器上。

3.1开关

交换机的实验方式主要有这样的几种方式:

  • OpenFlow支持直接使用;
  • Open vSwitch;
  • 分钟;

第一种方式便是直接使用支持 openflow 的真实 switch:

  • 优点:这种方法可以直接看到效果,还可以看到真实的东西,研究的兴趣很高,可以避免一些由模拟器引起的外部因素(如时间,在使用GNS3使用模拟器原型图像,但不支持,因为有些功能是多功能的硬件,使用,甚至会引起正确的配置将是错误的)。
  • 缺点:这种实验成本很高。

第二种便是使用 open vswitch:

  • 的优点是,只安装软件和特定的配置就可以将一个物理系统到一个开关,和虚拟化技术使多个交换机是建立在设备上,并没有更多的物理设备将需要多个开关,因为需要。
  • 缺点:在施工和使用一定的阈值。

SDN概述:简介、工具、环境部署

(此图来自于wikipedia By Goran tek-en – Own workDerived from:virtual networking)

第三种便是使用 mininet 模拟器:

  • 优点:使用简单;
  • 缺点:它只是一个模拟网络拓扑结构,而不是一个真实的网络。

SDN概述:简介、工具、环境部署

其实还可以利用支持 openwrt 的路由器,通过 openwrt 给路由器刷 openflow,但这样的方式较为麻烦,有兴趣的同学可以尝试一番。

在接下来的实验中我们将使用 mininet 模拟器来完成我们后续的学习。而 mininet 是什么?

  • 最小网络是由Python的轻量级的仿真工具;
  • 的最小网络虚拟节点的创建是由Linux网络命名空间实现。

3.2控制器

选择好了交换机的模拟工具,接下来我们需要选择一款合适的控制器框架。

当前有很多的控制器框架,被广泛使用的主要有这样几种:

  • 照明灯:开源控制器开发的java,大开关网络设计;
  • OpenDaylight:用java开发,一个开源项目由Linux基金会发起的,是用java开发。其成员有思科(导致很多项目)、Juniper、HP、IBM、博科、微软、华为等知名供应商,功能强大,但也非常大。
  • 开放的轨迹:用java开发的,与Juniper领先的设计和开发的一个开放源码的控制器
  • Onos:在java开发,使用。实验室(最早来自斯坦福和伯克利创作发明了SDN大学联合运营商和制造商推出的开源社区)的SDN网络操作系统实现的第一个开放源码的发布,主要服务提供商,企业骨干网络
  • 痘:Python开发支持的协议不多。
  • Ryu:由Python开源控制器由NTT,支持比痘更新更OpenFlow协议,支持更多的协议。

SDN概述:简介、工具、环境部署

(此图来自于linkedin)

为了更容易上手我们选择了 Ryu 控制器,在接下来的实验中我们都使用 Ryu 。

四,SDN环境部署

4.1工具安装

我们可以通过 apt、pip 这样的安装包管理工具来装我们所需的 mininet 与 Ryu 工具。

通过这样的方式我们可以十分便捷的安装 mininet:

sudo apt-get update # #更新源mininetsudo apt-get install Y最小网络安装

稍等片刻便安装完成,我们可以通过这样的方式来检测我们是否安装成功:

sudo锰

若是看到这样的输出则表示成功安装:

SDN概述:简介、工具、环境部署

正常启动不会有 error 信息,上面的 error 信息是环境所导致的,出现这样的情况一般有两种

  • 如果部署在Ubuntu,它可能是你的内核版本是从3.13.0-96到3.13.0-100 &nbsp,因为不能使用之间的这个版本,sudo sysctl – W网。IPv4。嘶叫。默认。gc_thresh1 = 4096 &nbsp,并命令修改ARP高速缓存大小。
  • 如果部署在泊坞窗,可能是因为没有权限的权限)。

没有参数,直接运行sudo锰默认会创建一个简单的拓扑,由一个控制器、一个交换机与两个节点构成,并进入 mininet 的命令行界面。

输入exit我们便能推出 mininet 的命令行界面。

在成功安装 mininet 之后我们只需要一行简单的命令即可安装 ryu:

sudo pip安装Ryu

稍等片刻久安装成功了,我们直接输入这样的命令查看是否能够正常使用:

刘经理

若是看到这样的命令输入,说明安装成功能够正常使用:

SDN概述:简介、工具、环境部署

4.2镜子安装

mininet 是一个开源的模拟工具,我们可以直接访问github 中的该项目可以看到其源码与相关的文档,在 wiki 中我们看到官方还为我们提供了镜像,使我们安装更便捷。

通过该链接我们可以下载到 VMware 与 VituralBox 的镜像,直接导入镜像我们即可食用。

4.3源代码安装

最后一种方式便是通过源码安装,这样的方式可以获得最新版本的 mininet。

首先通过 git 命令下载最新的源码:

git clone git://github.com/mininet/mininet

下载成功之后进入项目目录中:

CD的最小网络

因为是直接下载的源码,我们可以选择我们想要安装的版本,可以通过git tag看到:

SDN概述:简介、工具、环境部署

我们通过这样的命令切换到相关版本的源码下:

git checkout -b 2.2.2

然后通过这样的命令来安装:

util / install.sh -

-参数会帮我们装所有我们需要的相关工具如 openflow、wireshark、dissector、pox。我们也可以使用- NFV参数来精简安装。

SDN概述:简介、工具、环境部署

看到享受分钟!这样的标题说明我们安装成功,同样我们可以用上述方式来检验 mininet 是否成功安装(在最新的 mininet 源码中提供了 ryu 的安装,只是其脚本有问题所以会安装失败,有兴趣的同学可以修改一下 install.sh 脚本,在 462 行左右)。

同样我们通过源码来安装 ryu。

若是为了使得 python 的运行环境不被干扰我们可以使用 virtualenv:

安装virtualenv sudo pip安装virtualenv # # mkdir SDN创建文件夹#进入文件夹CD SDN virtualenv env # #创建使用源环境/斌/隔离的环境,激活#隔离环境下载柳源git clone git://github.com/osrg/ryu.git CD刘某# #进入安装目录/ setup.py安装#安装Ryu Python。刘某因pip安装- R的工具/点的要求

我们可以使用上述相同的办法测试我们是否成功的安装了 ryu。

五。最后

以上SDN概述:简介、工具、环境部署 的全部内容摘选自实验楼课程【SDN软件定义网络动手实验】,感兴趣的小伙伴可以点击【SDN软件定义网络动手实验】,学习更多SDN。

【SDN软件定义网络动手实验】主要使用 mininet 模拟器与 Ryu 控制器,从简单的安装到查看代码的理解原理,从部署简单的拓扑到自定义网络拓扑,逐步引领你进入不一样的网络世界。

文章从互联网整理而来,旨在传播SCRUM、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解SCRUM的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:

【网址】www.effapp.com

2018-04-22T23:24:33+08:002018-04-22 23:24:33|Categories: scrum项目管理|