ODL之SDN入门篇
SDN及ODL概括性总结

1、SDN是什么?SDN(Software Defined Network)即软件定义网络,是一种网络设计理念。
网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络是一个SDN网络。
SDN 不是一种具体的技术,不是一个具体的协议,而是一个思想,一个框架,只要符合控制和转发分离的思路就可以认为是SDN.2、传统网络面临的问题?1)传统网络部署和管理非常麻烦,网络厂商杂,设备类型多,设备数量多,命令行不一致2)流量全局可视化难3)分布式架构中,当网络发生震荡时,网络收敛过程中,有可能出现冗余的路径通告信息4)网络流量的剧增,导致底层网络的体积膨胀、压力增大;网络体积越大的话,需要收敛的时间就越长5)想自定义设备的转发策略,而不是网络设备里面的固定好的转发策略-------->sdn网络可以解决的问题3、SDN的框架是什么SDN框架主要由,应用层,控制层,转发层组成。
其中应用层提供应用和服务(网管、安全、流控等服务),控制层提供统一的控制和管理(协议计算、策略下发、链路信息收集),转发层提供硬件设备(交换机、路由器、防火墙等)进行数据转发、4、控制器1)控制器概述在整个SDN实现中,控制器在整个技术框架中最核心的地方控制层,作用是上接应用,下接设备。
在SDN的商业战争中,谁掌握了控制器,或者制定了控制器的标准,谁在产业链条中就最有发言权2)控制器功能南向功能支撑:通过openflow等南向接口技术,对网络设备进行管控,拓扑发现,表项下发,策略指定等北向功能:目前SDN技术中只有南向技术有标准文案和规范,而北向支持没有标准。
即便如此,控制器也需要对北向接口功能进行支持,REST API,SOAP,OSGI,这样才能够被上层的应用调用东西向功能支持:分布式的控制器架构,多控制器之间如何进行选举、协同、主备切换等3)控制器的种类目前市场上主要的控制器类型是:opendaylight (开发语言Java),Ryu(开发语言python), FloodLihgt(开发语言Java)等等5、opendaylight(ODL)控制器介绍ODL拥有一套模块化、可插拔灵活地控制平台作为核心,这个控制平台基于Java开发,理论上可以运行在任何支持Java的平台上,从Helium版本开始其官方文档推荐的最佳运行环境是最新的Linux(Ubuntu 12.04+)及JVM1.7+。
SDN基础培训课件(PPT 104页)

其他的一些组织
❖ NFV (Network Function Virtualization) ❖ ONRC (Open Networking Research Center开放网络研
究中心) ❖ IETF ( Internet Engineering Task Force互联网工程任务
组)
主要任务是负责互联网相关技术规范的研发和制定,当前绝大多数国际互联网技术标 准出自IETF.提出SDN 为Software Driven Network 官网:/
❖ 推动“南向接口”的标准化
❖ ONF希望彻底摆脱厂商锁定 ,所以希望所有接口标注化
❖ 南向接口可以百花齐放, 为sdn最核心的就是控制 转发分析,南向不需要标 化。
❖ 一方面希望推动sdn发 ,另一方面又希望保留厂 的定制的权利,特别是不 定转发面的硬件的标准化
中科信软高级技术培训中心-
Ethane项目 一个关于网络安全与管理的科 研项目。这个项目试图通过一 个 集中的网络控制器,让网络管 理员可以方便的定义基于网络 流 的安全控制策略,并且应用到 网络设备中。 受此项目启发,如果将传统网 络设备的数据转发(data plane)和路由 控制(control plane)两个功 能模块分离提供,通过集中式 的控制器以标准 化的接口对各种网络设备进行 管理和配置,那么将为网络资 源的设计、 管理和使用提供更多可能性。
南向接口是传统网络的术语,被借用过来。南向接口指的是控制平面跟数据转发平面之 间的接口。
❖ 北向接口 (例如Rest api)
传统网络里,北向接口是指交换机控制平面和网管软件之间的接口,比如snmp. 在SDN里,指控制平面controller跟应用程序之间的接口,目前该接口尚无标准。
SDN技术介绍ppt课件

数据中心资源需要随业务跨地域整合,并使数据中心间广域流量增大,而现状是数据中心资源分散,广 域成本高且利用率低
SDN在网络运维中的优势
统一便捷的管理 解决网络中设备越来越多样化问题
无缝的版本升级 解决设备版本升级对业务的影响
IDC:SDN市场规模2016年预计将达37亿美元
什么是SDN
SDN是Software Defined Network的缩写,软件定义网络,SDN并不是一个具体的技术,它 是一种网络设计理念,规划了网络的各个组成部分(软件、硬件、转发面和控制面)及相互之间 的互动关系,其特征属性包括下面几点:
REST API简介 REST 是英文 Representational State Transfer(表述性状态转移) 的缩写,
是近年来迅速兴起的,一种基于 HTTP,URI,以及 JSON 这些现有协议与标准 的,针对网络应用的设计和开发方式。
在 REST 中,开发人员显式地使用 HTTP 方法,对系统资源进行创建、读取、 更新和删除的操作: 使用 POST 方法在服务器上创建资源 使用 GET 方法从服务器检索某个资源或者资源集合 使用 PUT 方法对服务器的现有资源进行更新 使用 DELETE 方法删除服务器的某个资源
OpenFlow
一个简单的类比
应用/市场
系统
硬件
……
Openflow协议介绍
OpenFlow简介和架构
OpenFlow 1.0
OpenFlow 1.1
OpenFlow是SDN架构中定义的一个控制器与转发层之间的通信接口标准,OpenFlow允 许直接访问和操作网络设备的转发平面
SDN初学者的学习之路与心得

我与SDN的缘分一名初学者的学习之路与心得去年十一月,我在大三的计算机网络课程上与SDN初识。
今年三月中旬,我有幸得到老乡学长北邮–李呈的指引,真正地与SDN结缘,悄然走上学习之路。
SDN,Software Defined Network,是对传统网络架构的一次革新。
经过短短三四个月的学习和实践,我本着授人以渔的理念,辅以我的一些理解,将我的学习历程和心得叙写出来,送给各位想要入门的或跟我一样刚刚入门的朋友们。
文中有理解不到位的地方,还望各位朋友不吝赐教,非常感谢!SDN,软件定义网络,我们关键就是弄清楚三件事:网络、软件、软件与网络怎么结合。
一、走进网络既然我们要用SDN来改造网络,当然得先了解一下网络是何物,磨刀不误砍柴工。
我对网络的了解,是从高中开始的。
从OSI七层模型,到五层模型;从家庭组网,再到Socket 编程实践,我对网络的兴趣不断增长。
直到大二学了《计算机通信与网络》这门课,才算是对过往三四年积累的零星知识的一次大梳理,让我对网络有了一个系统性的了解。
(1)传统网络传统网络,我的老师用它代指我们一直以来都在使用的网络,用以跟SDN网络区别。
我是跟随着谢希仁前辈的《计算机网络》这本书学习的,也推荐给各位朋友。
跟随着大二的课程,我把五层模型的低四层学了个遍,主要是从物理层的拓扑、集线器,到数据链路层的网桥、MAC、CSMA/CD、CSMA/CA,再到网络层的路由器、最长前缀匹配、IP、ARP、OSPF、RIP、BGP,最后到传输层的UDP、TCP,掌握了这些,对我们网络的理解大有裨益。
根据我的SDN实践经验,深入理解一下最长前缀匹配,TCP的反馈重传、滑动窗口、三次握手、四次挥手,是非常有好处的。
(2)SDN网络在这里,我们需要弄清楚三个问题:①SDN是什么?②我们为什么需要SDN?③SDN可以用在何处?学习SDN伊始,我阅读了一些介绍SDN的文献资料,还有一些控制器的白皮书。
比较推荐大家从Open Network Fundation(ONF)组织的SDN白皮书入手,再辅以其他的介绍资料,了解SDN的架构是什么样,数据、控制、管理面,南向、北向、东西向,以及传统网络存在哪些不能适应新需求的问题、SDN针对这些问题有什么样的特性去应对。
SDN技术原理介绍课件

被抽象出的网络
物理网络/Fabric Underlay网络
SDN实现方式
SDN的核心技术:OpenFlow
• Flow Table:Flow Table 里面的每个 条目都会与一个动作相关联,来告 诉网络交换设备来如何处理与这个 条目相关联的 data Flow;
• Secure Channel:用于连接网络交换 设备和远程网络控制器,在控制器 和网络交换设备之间互相发送命令 和数据包;
• OpenFlow Protocol:提供一个开放 标准统一的接口,使得控制器和网 络交换设备之间可以相互通信
OpenFlow的标准化组织
Dec, 2009
Feb, 2011
Dec, 2011
April, 2012
Sep, 2012
OF 1.0
功能:
单表 IPv4
OF 1.1
多表 MPLS、VLAN group ECMP
192.168.3.4 192.138.5.4 80
*
TCP SPort * *
Port3 898
Action Drop Port3
Coun t 250
300
*
*
*
*
*
*
Controller 9
Openflow消息
• Openflow消息总共分为三大类:
Controller‐to‐Switch
• Features 用来获取交换机特性 • Configuration 用来配置Openflow交换机 • Modify‐State 用来修改交换机状态(修改流表) • Read‐Stats 用来读取交换机状态 • Send‐Packet 用来发送数据包
计算机网络技术第11章SDN与NFV技术课件

配置策略 监控性能
配
置
管
理
➢ 应用平面 ➢ 配置管理平面
网元
数
据
SDN数据路径
层
CDPI代理
转发引擎/处理功能
模块
网元
SDN数据路径 CDPI代理
转发引擎/处理功能 模块
网元设置
SDN架构的构成
11.1 SDN概述
➢ 结论
– SDN的本质就是软件定义网络,希望应用软件可以参与 对网络的控制管理,满足上层业务需求,通过自动化 业务部署简化网络运维就是SDN的核心诉求。
– SDN并不是一个具体的技术,而是一种网络设 计的理念,SDN的本质就是让用户应用可以通 过软件编程充分控制网络的行为,让网络软件 化,进而敏捷化。
– 一般认为SDN应该具备如下特征:
➢控制面与转发面分离;(核心属性) ➢具备开放的可编程接口;(核心属性) ➢集中化的网络控制; ➢网络业务的自动化应用程序控制。
北向服务接口。Hydrogen版本中全线采用AD-SAL,Helium版本中AD-SAL和MDSAL共存,Lithium版和Beryllium版中已基本使用MD-SAL架构。 ➢ 开放的可扩展北向API(Open Extensible Northbound API):提供可扩展的 应用API,通过REST或者函数调用方式。两者提供的功能要一致。 ➢ 支持多租户、切片(Support for Multitenancy/Slicing):允许网络在逻 辑上(或物理上)划分成不同的切片或租户。控制器的部分功能和模块可以 管理指定切片。控制器根据所管理的分片来呈现不同的控制观测面。 ➢ 一致性聚合(Consistent Clustering):提供细粒度复制的聚合和确保网络 一致性的横向扩展(scale-out)。
网工视角的SDN入门学习

网工视角的SDN入门学习通信沈飞文章从2个角度简单介绍SDN第一为什么需要这玩意,这玩意什么用?第二我们怎么学习它?一.为什么需要这玩意,这玩意什么用?首先说说传统网络遇到了什么问题?1.厂商复杂,没有统一的管理平台(思科、华为、H3C、juniper、Radware等)2.设备层次繁多(2,3,4层的交换机、3层的路由器、4,7层的防火墙,负载均衡),3.,协议不统一,厂商的私有协议(思科的CDP、EIGRP、华为的HGMP等)4.人为的知识水平参差不齐(手动操作复杂、需要和其他IT集成协作、不同厂家的类型设备,需要掌握不同知识)导致的影响:部署新业务,历时很长,经常需要升级网络,所以SDN(Software Defined Network)网络架构理念诞生了。
误区:1.SDN不是网络协议,不是网管工具,仅仅是一种网络架构理念。
2.SDN不是适用于所有网络,也不会替代所有传统设备3.OpenFlow只是支持SDN架构理念的一种网络协议,并不代表一定要使用它,也不等于OpenFlow就是SDN。
4.同理NFV(网络功能虚拟化)也不等于SDN,只是数据中心NFV的部署适用SDN的架构理念。
那么重点来了,什么样的特性叫做SDN呢?只要控制面与转发面的分离,并且具有开放的可编程接口,我们就可以称为SDN。
当然理想化主义会说自动化部署网络业务,进行程序控制,甚至做到智能化、集中化的网络控制,这只是理想化吧。
ONF-SDN的网络架构模型基础设施层:数据处理,转发,状态收集。
(可编程的南向接口的OVS OPS交换机)控制层:负责处理数据平面资源的编排,维护拓扑信息,控制操作信息。
(开源的网络控制器ODL、ONOS、RYU)应用层:不同业务和应用(根据业务需求封装)二.如何学习SDN既然是SDN(Software Defined Network),那无非就是软件和硬件的学习即编程语言和网络知识学习。
网络知识:了解基本的网络层次设备,网络协议,网络拓扑,比如设备的原理,产品的优缺点,局限性。
SDN环境部署与OpenDaylight开发入门

5 OpenDaylight综述
5.3 OpenDaylight的子项目简介
5.3.22 子项目Group Based Policy(GBP)/Project Facts(GBP项目)简介 5.3.23 子项目L2 Switch(L2层交换机项目)简介 5.3.24 子项目LACP(链接聚合控制协议项目)简介 5.3.25 子项目OF-CONFIG(OF-CONFIG项目)简介 5.3.26 子项目OpenDaylight DLUX(ODL的DLUX项 目)简介 5.3.27 子项目Service Function Chaining(服务功能 链项目)简介 5.3.28 子项目VTN(VTN项目)简介
4.8 POX控制器
4.11 博科的 Brocade SDN控制 器
4.9 Beacon控 制器
4.12 Maestro 控制器
4 现有SDN控制器简述
4.13 IRIS控 制器
4.14 Extreme公司 的OneController
控制器
4.15 本章总 结
4 现有SDN控制器简述
4.5 思科的APIห้องสมุดไป่ตู้控制器和Open SDN控制器
5 OpenDaylight综述
5.3 OpenDaylight的子项目简介
5.3.15 子项目FaaS(网络构造即服务项目)简介 5.3.16 子项目NeutronNorthbound(Neutron北向 项目)简介 5.3.17 子项目ALTO(应用层流量优化项目)简介 5.3.18 子项目CAPWAP(无线接入点的控制和提供)简 介 5.3.19 子项目Controller Core Functionality Tutorials(控制器核心功能向导项目)简介 5.3.20 子项目Controller Shield(控制器盾项目)简 介 5.3.21 子项目DIDM(设备认证和驱动管理项目)简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文作为码农学ODL系列的SDN基础入门篇,分为两部分。
第一部分,主要讲述SDN是什么,改变了什么,架构是什么样的,第二部分,简要介绍如何去学习SDN。
1.什么是SDNSDN(Software Define Network) ,即为软件定义网络,可以看成网络界的操作系统。
从SDN的提出至今,其内涵和外延也不断地发生变化,越来越多的人认为“可以集中控制、开放可编程和转控分离的网络”就是SDN网络,并且还延伸出软件定义计算、软件定义存储以及软件定义安全等。
SDN加快了新业务引入的速度,提升了网络自动化运维能力,同时,也降低了运营成本。
SDN的基础知识如下图所示,下面各小节内容将根据该图内容进行展开论述:1.1.SDN基础1.1.1.SDN本质及核心我们知道,传统网络中的路由器也存在控制平面和转发平面,在高端的路由器或交换机还采用物理分离,主控板上的CPU不负责报文转发,专注于系统的控制;而业务板则专注于数据报文转发。
所以路由器或交换机内的控制平面与转发平面相对独立又协同工作,如图所示:但这种分离是封闭在被称为“盒子”的交换机或路由器上,不可编程;另一方面,从IP网络的维度来考虑,采用的是分布式控制的方式:在控制面,每台路由器彼此学习路由信息,建立各自的路由转发表;在数据面,每台路由器收到一个IP 包后,根据自己的路由转发表做IP转发;IP网络的这种工作方式带来了运维成本高、业务上线慢等问题,并越来越难以满足新业务的需求,传统上通过添加新协议、新设备等手段来缓解问题的方式,收益越来越少。
穷则思变,许多人产生了革命的想法,现有的网络架构既然无法继续演进发展,为何不推倒重来,重新定义网络呢?真可谓“时势造英雄”,2006年斯坦福大学Nick McKeown教授为首的研究团队提出了OpenFlow的概念用于校园网络的试验创新,后续基于OpenFlow给网络带来可编程的特性,SDN (Software Defined Network)的概念应运而生。
SDN将原来封闭在“盒子”的控制平面抽取出来形成一个网络部件,称之为SDN 控制器,这个控制器完全由软件来实现,控制网络中的所有设备,如同网络的大脑,而原来的“盒子”只需要听从SDN控制器的命令进行转发就可以了。
在SDN 的理念下,所有我们常见的路由器、交换机等设备都变成了统一的转发器,而所有的转发器都直接接受SDN控制器的指挥,控制器和转发设备间的接口就是OpenFlow协议。
其简单模型如图所示:因此,我们说它是一种网络设计理念,即利用IT技术来软化网络,给网络领域带来变革,而非某种具体的技术,其核心为:转控分离、集中控制、开放可编程。
所以SDN的提出,并不说传统方法满足不了什么业务需求,而只是通过SDN可以快速部署、缩短业务上线时间,能够做得更快更好而已。
其本质是网络软件化,提高网络的可编程能力,是一次网络架构的重构,而不是一种新特性、新功能。
1.1.2.分类随着SDN在产业界设备制造商和运营商的实践不断展开,SDN的概念不断模糊,任何允许软件对网络可以进行编程或者配置的网络架构,并且具体实现的技术和接口协议是各种各样的。
SDN也逐渐形成不同的发展路线:首先,采用OpenFlow标准,转控分离、集中控制,主张硬件标准化,控制上移到由软件实现的控制器上,打破原有网络的封闭状态,受到初创公司和学院科研单位的欢迎,可以看作为革命型或狭义SDN。
其次,设备提供商感受到压力,希望在市场继续保持优势,另一方面,运营商即想拥抱新理念,也想保护现有的投资,这样希望针对现有网络进行平滑的过渡,所以采取大多不动设备上的控制智能,控制器(只能说是一种伪控制器)与转发设备间的接口采用NETCONF/SNMP协议,提出更为广泛的SDN架构,可以看作演进型或广义SDN。
最后,还有一种发展路线,它以现有IP网络为基础设施,在其上建立叠加的逻辑网络,实现网络资源的虚拟化,本质上属于软件定义的虚拟网络。
这一思路被称为Overlay方案。
总的说来,这3种发展路线都能实现集中控制、可编程和开放接口,但在灵活性、使用难度以及用户业务场景等方面存在不同之处。
其优缺点如下表所示:1.2.SDN架构1.2.1.ONF定义的SDN架构ONF定义的SDN架构主要分为应用层、控制器层和基础设施层,其中,应用层聚焦网络业务逻辑开发,负责资源编排;控制器层进行全局网络的管理;基础设施层为各种网络设备,负责数据的转发。
如图所示:从控制器层的角度来说,与应用层的接口被为北向接口(NBI, Northbound Interface),与基础设施之间的接口被定义为南向接口(SBI, Southbound Interface)。
通过对北向接口的封装,应用层以软件编程的形式调用各种网络资源和把控整个网络的资源状态,并对资源进行统一调度。
理想情况下,应用层封装所有的“How”操作,向用户隐藏了网络相关的技术信息。
上层应用在调用应用层的服务时,只需描述想要“What”就可以了。
但当前北向接口方面还缺少业界公认的标准。
其主要原因是北向接口直接为业务应用服务,其设计需密切联系业务应用需求,具有多样化的特征,很难统一。
ONF定义的SDN架构中南向接口协议是OpenFlow,用于控制器和交换机之间的通信,控制器可以通过OpenFlow下发流表控制交换机,交换机也可以反馈信息给控制器,同时,OpenFlow也规定了交换机对报文的转发方式。
总的来说,SDN架构不仅简化了网络设计与操作,而且也极大简化了网络设备本身,因为这些设备不再需要解析和处理数以千计的协议标准,只需接受来自控制器的指令。
更为重要的是,网络管理员可以通过编程的方式来集中控制数以千计的设备,而不用针对每台设备进行手工配置,有效地缩短了业务上线的时间。
1.2.2.SDN平台实现框架理想是丰满的,但现实往往呈现出很骨感,学术界提出的正统SDN,在产业界和运营商的不断实践下,南向接口不仅仅局限在OpenFlow,也包含了NETCONF、SNMP等协议。
SDN不同的发展路线决定了SDN开发技术架构如图所示:SDN体系架构分为4层,分别为应用层、业务编排层、控制层和转发层。
其中,应用层专注于描述用户业务需求,而业务编排层专注于业务需求的“How”操作封装。
需要说明的是,在运营商网络的SDN改造部署过程,基本上采用平滑演进的策略进行,用到的协议就不再单纯使用OpenFlow了。
2.如何学SDN了解了SDN的基本概念、架构以及应用场景后,如何去学习SDN呢,我们先来分析下码农与SDN的结合点,从上面的分析可知,SDN的核心在于“转控分离、集中控制和开放可编程”,提到“集中控制和开放可编程”,码农的脑海中可能迅速呈现出类似下图所示的内容:但是当提到“转控分离”,可能是一脸的迷茫,我连网卡是如何工作都不是很清楚,何况交换机、路由器呢? 下面针对码农的“强于编程,弱在网络”的特点,大致上给出了初步的学习路线,并列出了学习中容易产生困惑的问题。
2.1.学习路线学习路线主要分基础网络知识、技术准备、SDN基础和SDN实战等4个阶段。
如下图所示:1.基础网络知识:又分网络设备、网络协议和网络拓扑等3个方面。
首先,网络设备这部分内容要清楚每种设备的问题空间、基本原理以及优缺点;其次,网络协议的研究可以根据网络的发展史,要清楚IP网络的基本原理、客户请求到服务器路径选择等;最后,了解公司所在网络的基本信息,数据中心网络的物理部署情况等。
2.技术准备:分为工具、框架和技术等3个方面。
这里主要列出SDN学习需要具备的基础技术能力,不同人员可能具有不同的技术背景,已全部掌握的人员可直接跳到SDN基础的学习,没有掌握的人员再补充了解相关技术即可。
3.SDN基础:分为OpenFlow、控制器和工具等3个方面。
首先,了解OpenFlow 标准、控制器和交换机之间的工作流程等;其次,当前已经有很多的开源控制器,如OpenDaylight、ONOS等,需要了解其基本概念、基础架构等信息,如MD-SAL、Yang等;最后,SDN的学习,还需要了解像Mininet之类的工具,以进行相关的实验。
4.SDN实战:分为实例学习、特性开发和云结合等3个方面。
首先,通过控制器的Sample来了解其工作原理和特性,了解整个开发、测试、部署过程;其次,挑选可行的特性进行实际操练,掌握控制器开发的全流程;最后,与OpenStack 之类的云平台进行融合。
2.2.易混淆的几个问题后续码农学习ODL的系列文章直接从SDN实战开始,所以在SDN基础部分的学习过程中可能会遇到一些问题,这里将我们遇到的易混淆的问题罗列出来,与大家共享:1. northbound \southbound or consumer \producer南向和北向是传统网络中的术语,可以从网络工程师的角度来理解,而如果从软件工程师的角度来说,称为生产者、消费者。
2. RESTCONF、NETCONF是南向协议还是北向协议?首先就RESTCONF和NETCONF本身作为协议来讲,是不区分北向协议还是南向协议的;其次,在实际的应用过程中,通常情况下RESTCONF用在北向,NETCONF用在南向,但同时也注意到有些厂家控制器提供的北向接口使用的是NETCONF。
3.Internal or external system基于ODL的二次开发时,如果提供API的接口能够满足当前需求,那么只需基于REST API开发external System(外置式应用),如果提供的API接口不能满足当前需求,则需要进行Internal system(内置式)的开发,可以理解为插件。
4.主动模式or 被动模式SDN控制有两种工作模式:主动和被动。
主动模式下,控制器将flow table信息一次性下发到交换机;被动模式下,在数据平面收到新的数据包时,控制器才将相关flow table信息下发到交换机。
通常情况下,往往预先下发部分流表信息。