SDN及ODL概括性总结
- 格式:doc
- 大小:389.00 KB
- 文档页数:5
SDN核心技术概述SDN (Software-Defined Networking) 是一种网络架构和管理方法,通过将控制平面与数据平面分离,可以实现灵活、可编程和可自动化的网络配置。
在传统的网络中,网络控制和数据转发是紧密耦合的,这限制了网络的可扩展性和灵活性。
而SDN通过集中的控制器以及抽象的网络视图来管理整个网络,使得网络的管理和配置变得更加简单,并且可以根据应用的需求进行灵活的网络调整。
1.控制平面和数据平面的分离:传统网络中,路由器和交换机既承担控制平面的任务,也承担数据平面的任务。
而在SDN中,网络设备的数据平面只负责简单的数据转发任务,而控制平面则由集中的控制器来负责,控制器通过和网络设备进行通信,来下发控制指令和策略。
这种分离使网络管理变得更加灵活和可编程。
2. OpenFlow协议:OpenFlow是SDN中的一个重要协议,它定义了控制器和网络设备之间的通信接口。
通过OpenFlow协议,控制器可以向网络设备下发流表中的流转发规则,并实时获取网络设备的状态和统计信息。
OpenFlow协议的出现,使得不同厂商的网络设备可以与同一个控制器进行交互,这大大简化了网络的管理和配置。
3.软件定义网络架构:SDN采用了分层的架构,从下到上分别是:物理基础设施层、网络设备控制层、网络应用层。
物理基础设施层负责物理网络设备的管理,网络设备控制层负责网络设备的控制和管理,网络应用层则是基于网络控制层提供的功能开发各种网络应用,如负载均衡、流量监测等。
这种分层架构使得网络的管理和配置更加模块化和可扩展。
4.网络编程接口和虚拟化技术:SDN提供了丰富的网络编程接口,使得开发人员可以通过编程的方式对网络进行灵活配置和管理。
同时,SDN还利用虚拟化技术,将物理网络资源划分为多个虚拟网络,使得不同租户之间的网络可以互相隔离。
这种虚拟化技术可以提高网络资源的利用率,并且使网络更加灵活和可定制。
5.网络智能和自动化:SDN可以通过集中的控制器来收集和分析网络设备的状态和统计信息,从而实现网络的智能化和自动化。
《深度解析SDN》总结这本书从SDN利益、战略、技术和实践⽅向全⾯剖析,内容简单易懂,⼀本⽐较推荐的书籍。
总结:⼀、SDN的特征属性: 1、控制⾯与转发⾯分离 2、开发的课编程接⼝(南北向接⼝) 3、集中化的⽹络控制(Controller) 4、⽹络业务的⾃动化应⽤程序控制其中前两点是SDN的核⼼属性,只要符合这两点,⽆论它具体⽤了什么样的实现技术,都可以宽泛的认为是SDN架构,因此VMware推出的NSX肯定算是SDN。
⼆、SDN不是什么 1、SDN不等于Openflow 2、SDN不等于⽹络虚拟化(NV) 3、SDN不等于⽹络功能虚拟化(NFV) 4、SDN也不是⼀个协议,它仅仅是⼀种⽹络架构的理念,它规划了⽹络的各个组成部分(软件和硬件,转发⾯和控制⾯)及相互之间的互动关系。
三、SDN架构 1、Data Plane:它可以是虚拟机交换机(如OVS),也可以是硬件交换机(⽀持Openflow),所有的flowtable都存放在Date Plane,⽤户的数据报⽂在这⾥被Edit Action。
2、Data-controller plane interface(通常被称为南向接⼝):⽬前最有影响⼒的南向接⼝标准为Openflow。
Controller通过南向接⼝向Data Plane发送指令来配置位于Data Plane内的flowtable。
Data Plane也通过南向接⼝主动上报⼀些事件给Controller。
因此可以说南向接⼝就是 Controller和DataPlane之间相互通信的接⼝。
3、Controller:是SDN⽹络中的核⼼元素,是各⼤公司都想要抢占的制⾼点,因为它向上提供应⽤程序的编程接⼝,向下控制Date Plane。
4、Application-controller plane interface (通常被称为北向接⼝):只是Controller跟Application之间的接⼝,向上层提供⽹络抽象,使得⽹络具备软件编程的能⼒。
简述SDN的概念SDN(软件定义网络)是一种新兴的网络架构,旨在通过将网络控制平面和数据平面分离,以提供更高级别的网络控制和灵活性。
传统的计算机网络架构中,网络交换机内部的控制逻辑是紧密耦合在一起的,因此在网络管理和配置方面缺乏灵活性和可扩展性。
SDN则通过将控制逻辑集中到一个或多个控制器中,并通过网络控制协议将网络的控制指令从控制器发送到交换机,实现对网络的动态管理和配置。
SDN的核心思想是将网络交换机分为两个部分:数据平面和控制平面。
数据平面是指网络交换机上负责数据包转发和数据处理的硬件和软件,控制平面则是指网络控制器,负责决策和控制网络中的数据流。
通过将控制平面集中管理,SDN 可以实现对整个网络的全局视图和集中控制,进而提供更高级别的网络管理、配置和调优。
在传统网络架构中,网络交换机在数据包转发方面具有固定的策略和行为,而且网络管理员需要逐一配置每个交换机的规则和策略,非常繁琐和复杂。
而SDN 通过将网络的控制逻辑从交换机中抽离出来,使得网络管理员只需要通过控制器进行配置和管理,而无需逐一配置每个交换机。
这种集中化的控制方式使得网络管理更加直观、灵活和可扩展。
SDN还提供了一种可以编程的方式来定义和控制网络的行为,即SDN控制器通过暴露一组API或编程接口,使得应用程序可以通过这些接口来控制网络的行为。
这样,网络管理员和应用程序开发人员可以通过编程来实现对网络的灵活控制和定制化,为应用程序提供更高级别的网络服务和优化。
SDN的另一个重要特点是网络虚拟化。
传统的网络架构中,每个应用程序通常需要独立的物理网络设备,这样会造成资源浪费和配置复杂。
而SDN可以通过虚拟化技术将物理网络划分为多个虚拟网络,每个虚拟网络可以独立配置和管理。
这样可以实现资源共享和隔离,降低网络成本和管理复杂度。
总之,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学习总结一、SDN概述SDN(软件定义网络)是一种新型的网络架构。
相比于传统网络主要有以下两个特点:(1)数据控制分离传统网络中的数据平面和控制平面是被放在同一个机箱里的,数据和控制平面都是分布式的;而SDN采用了集中式的控制平面和分布式的转发平面,这两个平面相互分离,控制平面通过南向接口对转发平面上的网络设备进行集中式控制。
数据控制分离的优点是能对网络进行全局集中控制和优化,并令网络具有高性能的网络转发能力。
(2)软件可编程SDN可以通过编写软件的方式来灵活定义网络设备的转发功能。
这种可编程方式主要体现在两个方面:第一,应用平面使用可编程方式把需要请求的网络行为通过北向接口交给控制器。
第二,SDN控制器通过编程方式制定转发策略并下发流表到OVS交换机控制交换机的转发功能。
二、SDN系统架构1. SDN架构主要由三个平面组成:数据平面、控制平面和应用平面,各平面之间使用不同的接口协议进行交互,其系统架构简图如图2.1所示:应用平面北向接口控制平面南向接口数据平面图2.1 SDN系统架构简图(1)数据平面:单纯用来转发和处理数据,研究中所用到的OVS交换机处于这一平面。
(2)控制平面:即SDN控制器(SDN Controller),SDN控制器是一个逻辑上集中的实体,它主要负责两个任务:一是SDN 控制器可通过AP和OVS交换机采集网络参数,从而感知整个网络的架构,通过北向接口向SDN应用平面提供底层网络的模型;二是SDN控制器可根据上层应用平面的请求和网络结构来制定转发策略并下发流表到OVS交换机控制数据流向。
(3)应用平面:应用平面主要通过北向接口与SDN控制器进行交互,这些应用通过可编程方式把需要请求的网络行为提交给控制器。
2.在SDN网络中目前我们主要研究的是控制平面与数据平面的交互,即通过南向接口进行交互,南向接口使用OpenFlow协议。
这里简要介绍OpenFlow v1.0协议,OpenFlow v1.0协议架构原理示意图如图2.2所示:安全通道流表控制器OpenFlow协议OpenFlow交换机图2.2 OpenFlow v1.0协议架构原理示意图OVS交换机通过安全通道与控制器相连,安全通道上传输的就是OpenFlow 协议消息,负责控制器与交换机间的交互。
一个SDN网络有三个架构层:物理网络、SDN控制器、SDN应用程序。
物理网络:最底层包含网络中构成所有IT基础设施的基础的物理设备。
我们使用“交换机”这个概念,因为OpenFlow改变了以太网交换机工作的方式。
在本文中,你还可以考虑物理基础设施中的虚拟交换机部分。
SDN控制器:SDN控制器是中间件,由服务器作为整个架构的轴心。
控制器必须和网络中所有物理以及虚拟设备整合。
控制器将物理网络设备从与这些设备协同工作的SDN软件中抽象化出来。
控制器和网络设备之间有高度的整合。
在OpenFlow环境中,控制器将使用OpenFlow协议和NETCONF协议来与交换机对话。
(OpenFlow是发送流数据到交换机的API,而NETCONF是网络设置API。
)SDN应用程序:SDN设计中最具有可视性的层是提供服务(比如交换/网络虚拟化、防火墙和流量均衡器)的应用程序。
(注意,基于OpenFlow的负载均衡器被称为流量均衡器。
它们并不是传统负载均衡器,因为它们不能读取数据包内容)这些应用程序与那些软件运行在专门硬件上的情境中的应用程序基本类似或相同。
网络技术中大部分即将到来的创新将发生在SDN应用程序上。
(1)为什么要搞SDN?因特网存在和发展了几十年。
随着服务类型和规模的急剧增加出现了一些问题。
长期以来通过命令行接口的手动配置阻碍了网络虚拟化的前进,操作费用高,网络刷新慢,容易引入差错。
取消把应用联系到特定网络详情,譬如断开和地址,使物理具体事项的改变无需重写应用和手动配置网络设备的时延和费用,也许是一种思路。
路由是一个大问题。
路由器里面的路由表越来越复杂,分散到各地去路由,既做不到最优的路由,又产生许多重复的计算。
从你的PC到一个网站浏览器,可能要经过20-100路由器或交换机。
如果一个包到来,只知道目的地,但不知道怎么走,那只有交给下一跳。
下一跳要是也不知道呢?这么盲目跳下去,怎么就相信会到达目的地呢?那只能靠相邻路由器经常交换信息。
SDN概述及架构SDN(Software-Defined Networking)是一种新兴的网络架构,它通过将网络控制平面(Control Plane)与数据转发平面(Data Plane)分离,使网络可以更加灵活、可编程和可管理。
SDN的核心思想是将网络控制逻辑集中管理,提供可编程接口,从而实现网络的统一管理和自动化。
SDN的架构包括三个主要组件:控制器(Controller)、网络设备和应用程序。
控制器是SDN架构的核心组件,它负责集中管理网络设备和应用程序。
控制器可以通过与网络设备交互,实现网络的控制和管理功能。
它可以根据网络管理员或应用程序的指令,动态地配置、管理和监控网络设备,实现网络的自动化管理。
控制器还提供了一系列API,使得应用程序可以直接与网络交互,实现特定的网络功能。
网络设备是SDN架构中的数据转发平面,包括交换机、路由器和防火墙等。
这些设备通过与控制器交互,接收并执行控制器的指令,实现数据流的转发和处理功能。
网络设备在SDN架构中变得更加简单,只需要实现基本的数据转发功能,而网络控制逻辑则由控制器来管理。
这种分离使得网络设备可以更加专注于数据转发,提高网络的性能和可靠性。
应用程序是SDN架构中的上层应用,它可以直接与控制器交互,实现特定的网络功能。
应用程序可以基于用户需求开发,如网络安全、负载均衡和流量工程等。
应用程序可以通过控制器的API获取网络的状态信息,并通过控制器的指令实现网络的动态配置和管理功能。
应用程序的开发和部署可以通过控制器的统一接口实现,使得网络的管理更加灵活和可扩展。
SDN架构的优势主要体现在以下几个方面:首先,SDN架构实现了网络的统一管理和自动化。
通过将网络控制逻辑集中管理,控制器可以根据网络管理员或应用程序的指令动态配置、管理和监控网络设备。
这种集中管理的方式使得网络的管理更加灵活和可扩展,同时也提高了网络的可靠性和安全性。
其次,SDN架构提供了可编程的网络接口。
sdn实训总结sdn 实训总结报告, SDN 架构应用实践——总体分析和思考从开始学习 SDN 开始就一直在想一个问题:我为什么要做 sdn 呢?这两年多的时间里, SDN 可谓“出尽风头”。
一方面,各种大厂、科研机构都在关注着 SDN。
另外,国家政策也给予了高度重视。
可以说,一切因素都预示着 SDN 会有很好的未来。
那么作为本科生或者研究生的我们又该如何来看待 SDN 呢?我认为主要有三点:一是要明确什么是 SDN;二是要理解什么是自动化;三是要知道 SDN 与SDN/ NFV 的区别。
只有搞清楚了这些问题才能够更加深入地了解它。
SDN 的核心是自动化,而自动化其实也包括几个方面:一是信息处理的自动化,即信息传输过程中的控制及处理;二是存储的自动化,主要是指数据中心的整合。
比如数据备份、存储、恢复等。
三是应用的自动化,即根据客户需求提供相应服务的系统和流程,实现服务快速响应。
在很长一段时期内,人类社会所使用的信息基本上都依赖于有线网络(俗称“铜线”)进行传递。
而随着互联网技术的兴起和广泛运用,传统意义上的有线网络已经不能满足新形势下人们对信息传送和共享的迫切需求,越来越多的企业和组织逐渐将其转向互联网。
这便引发了有线网络领域内容的扩充和业务模式的升级换代。
但同样令人担忧的是,当今互联网带宽瓶颈却成为阻碍各行业之间信息交流和业务协同的最大障碍。
自动化带来了信息技术革命的大发展。
在这个意义上,自动化技术早已超越了互联网本身,甚至改变了人们获取信息和工作的方式,更像是信息技术革命背后的推手,让人们的信息获取方式、业务沟通模式乃至商业竞争环境发生了翻天覆地的变化。
但自动化也具有双刃剑效应,虽然推动了人类社会前进,但同时也极易被控制和破坏。
尤其是随着云计算和大数据概念的日益普及,物联网、边缘计算、 SDN 等新概念正逐步走进人们的视野。
一场信息技术革命正悄无声息地到来,一个崭新的网络世界将呈现在我们眼前!当然了,不论未来 SDN 的演进会怎样,也许它的存在并非为了促进经济增长,而是帮助企业减少运营费用和支持各项业务功能的自动化。
SDN简明总结1SDN简明总结1SDN(Software Defined Networking)是一种新型的网络架构和技术,它通过将网络设备的控制平面(Virtualized Control Plane)和数据平面(Virtualized Data Plane)进行分离,实现网络的集中控制和可编程性。
SDN技术的核心概念是将网络功能与硬件设备进行解耦,将控制逻辑集中在一个或多个控制器(Centralized Controller)上,通过控制器和网络设备之间的逻辑接口通信,实现对整个网络的统一管理和控制。
总体而言,SDN的工作原理可以分为以下几个步骤:1.数据平面的虚拟化:在SDN网络中,网络设备的数据平面被虚拟化,即将网络设备中的数据处理功能抽象为一种通用的计算机资源。
这个虚拟化的过程可以通过在网络设备上安装特定的软件或芯片来实现。
2.控制平面的集中化:SDN网络中的控制逻辑被集中在一个或多个控制器上,控制器负责管理和控制整个网络。
控制器通过与网络设备之间的逻辑接口通信,发出控制命令并收集网络设备的状态信息。
通过集中控制平面的方式,SDN可以实现对网络的统一管理和控制。
3. 控制器与网络设备之间的通信:控制器与网络设备之间的通信可以通过标准的控制协议来实现,最常用的是OpenFlow协议。
OpenFlow定义了控制器与网络设备之间的通信方式和协议格式,包括控制消息的格式、通信的规则和流表的处理方式等。
4.控制器的程序逻辑:控制器的程序逻辑由SDN网络的管理员编写,可以根据网络的需求和策略进行自定义。
控制器可以根据网络的拓扑结构、流量状况和安全策略等信息,计算出适当的转发路径和处理规则,并将这些信息通过控制协议发送给网络设备。
5.网络流量的控制和管理:通过集中控制平面的方式,SDN可以实现对网络流量的灵活控制和管理。
管理员可以根据实际需要,调整网络的拓扑结构、转发路径和处理规则,以满足不同应用对网络性能和安全性的需求。
SDN资料整理软件定义网络(Software-Defined Networking,简称SDN)是一种网络架构方式,通过将网络控制平面(Control Plane)与数据转发平面(Data Plane)分离,实现网络的集中化管理和灵活性。
SDN的发展为网络的快速创新提供了新的可能性,同时也带来了许多新的挑战。
本文将对SDN的相关资料进行整理,介绍SDN的概念、架构以及应用领域。
一、SDN概述SDN是一种通过集中控制的方式来管理和配置网络的新型网络架构。
传统的网络架构中,网络交换设备(Switch)负责数据的转发和处理,同时也要承担网络的控制功能,这导致网络难以管理和灵活配置。
而SDN通过将网络的控制逻辑集中在一个或多个控制器中,并将数据转发操作交给交换设备,实现了网络控制平面与数据转发平面的分离,方便了网络管理和配置。
二、SDN架构SDN架构主要包括三个关键组件:控制器(Controller)、网络设备(Switch)以及应用程序(Application)。
控制器是SDN的核心组件,负责管理和控制网络设备,提供对网络流量的监测与控制。
网络设备则负责实际的数据转发和处理任务,包括交换机和路由器。
应用程序则基于SDN架构,通过控制器来管理网络设备,实现各种网络功能和服务。
三、SDN的优势1. 简化网络管理:SDN的集中控制方式使得网络管理更加集中化,管理员可以通过控制器对网络进行集中管理和配置,提高了管理效率。
2. 灵活的网络配置:SDN架构可以根据应用需求进行灵活的网络配置,通过控制器下发相应策略和规则,实现对网络流量的调整和管理。
3. 快速创新和部署:SDN的架构可以实现网络功能的快速创新和部署,通过控制器的编程接口,开发人员可以快速开发和部署网络应用程序。
4. 高性能和可伸缩性:SDN架构中,数据转发的任务交给了网络设备,大大提高了网络的性能和可伸缩性。
四、SDN的应用领域1. 数据中心网络:SDN可以优化数据中心网络的流量管理和控制,提高数据中心网络的性能和可靠性。
sdn技术培训学习心得SDN技术培训学习心得一、SDN实现的目的:简单的来说SDN通过实现网络资源的统一调度,为云平台业务提供简单的高效的配置和管理。
即实现数据中心云化为最终目的。
二、SDN基本特征:1.转发和控制分离:SDN网络将在物理网络上抽象出逻辑网络,逻辑网络在受物理网络的结构、区域等的限制,从而提高网络访问的灵活性。
将控制平面从分散部署的网络设备中抽取出来,并以集中化的控制器的方式对全网进行控制。
控制器能够从全局上检测SDN网络的资源容量和网络需求,网络的配置信息、连接方式甚至分配社么样的功能和容量都能够被动态控制。
三、SDN基本架构:SDN基本架构包括应用层(云平台)、北向接口、控制层、南向接口、基础网络设备层。
1.应用层:应用层是指实现通过调度SDN的北向接口实现网络相关的一切业务。
应用层实际就是云平台中网络相关的应用。
例如:流量可视化、服务链等。
2.北向接口:SDN北t向接口是通过控制器向上层业务应用开放的接口,其目标是使得业务应用能够便利地调用底层的网络资源和能力。
北向接口是直接为业务应用服务的北向接口提供给应用层。
3.控制层:控制层是SDN的核心,集中管理控制网络资源,对云平台提供北向接口供云平台调度,通过南向接口调度基础网络设备资源。
4.南向接口:南向接口是SDN控制层通过南向接口对物理层设备的统一调度。
例如:SNMP NETCONFSSH等。
5.基础网络设备层:基础网络设备层即是底层的各个网络设备。
例如:路由器、交换机、防火墙、负载均衡等。
四、SDN关键技术:VXLAN技术、BGP-EVPNMPLSVPN MPLS-TE PBR QOS 等。
心得体会篇:一、SDN在未来网络发展的必然:传统网络阻碍了业务的发展以及传统网络建设周期过长导致业务上线延迟、缓慢;主要体现在下面4点:1.虚拟机规模限制:在大二层网络环境下,数据流需要通过MAC 地址进行寻址,因此网络设备的MAC地址表项大小决定了虚拟机数量的大小,数据中心接入层设备一般MAC地址规格较小,如果采用高端设备,那么投入的将会更大。
基于OpenFlow的SDN技术1. SDN与OpenFlow技术简介SDN指的是软件定义网络。
你可以这样去理解SDN:如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统(Network OS)的概念—这个网络操作系统一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。
这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
云计算的发展,是以虚拟化技术为基础的。
云计算服务商以按需分配为原则,为客户提供具有高可用性、高扩展性的计算、存储和网络等IT资源。
虚拟化技术将各种物理资源抽象为逻辑上的资源,隐藏了各种物理上的限制,为在更细粒度上对其进行管理和应用提供了可能性。
近些年,计算的虚拟化技术(主要指x86平台的虚拟化)取得了长足的发展;相比较而言,尽管存储和网络的虚拟化也得到了诸多发展,但是还有很多问题亟需解决,在云计算环境中尤其如此。
OpenFlow和SDN尽管不是专门为网络虚拟化而生,但是它们带来的标准化和灵活性却给网络虚拟化的发展带来无限可能。
SDN的最重要特征:将传统网络设备的数据转发(data plane)和路由控制(control plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。
OpenFlow是实现SDN最常用的的一种协议,OpenFlow的原理和基本架构如下图。
其实,这张图还很好地表明了OpenFlow Switch规范所定义的范围—从图上可以看出,OpenFlow Switch规范主要定义了Switch的功能模块以及其与Controller之间的通信信道等方面。
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的三大初衷解读SDN开放程度开放一词总被频繁用于SDN市场,但是近距离了解SDN的三大初衷就发现,开放的含义其实取决于你的视角。
在SDN的竞争角度看,厂商常用“开放”一词。
厂商要么称自己的产品为“开放”,要么称竞争对手的不具备开放特性。
这就产生了一个问题:开放到底意味着什么?在网络技术中存在这么多问题,而这个问题的答案却因人而异。
解答这个问题的最好方法是了解各个厂商或项目在提到“开放”一词时的具体含义。
这样一来,我们会发现“开放”的意思就变化多端了。
思科ACI思科Application Centric Infrastructure是思科的整体SDN计划,包含一个名为APIC的控制器,可兼容硬件和新推出的OpFlex协议。
在思科的ACI登录页面,ACI被描述为“一个为开放网络提供支持的开放型生态系统”,它具有以下特性:“为DevOps团队和生态系统合作伙伴的融合提供开放软件灵活性。
”该产品对开放一词的使用很频繁——在你阅读思科ACI的描述时,开放一直是一个主题。
而这意味着什么呢?你可以自由下载并使用APIC吗?不能。
你可以找到源代码,然后按照你自己的想法进行修改,然后把自己修改后的APIC代码放到GitHub上吗?不行。
它真正的含义是你可以把自己的产品或进场与使用各种思科API的APIC控制器融合起来。
这样说来,它具有一定程度的开放性。
可以通过可编程界面,把思科的基础设施和其他厂商的基础设施和客户操作整合起来。
这就是说,它并非网络技术人员期望的那种开放。
虽然思科会对那些想整合其基础设施的人敞开大门——思科并不会把知识产权随便给别人。
思科ACI,OpFlex和相关的API都会有某种程度的开放,思科授予用户使用的钥匙。
但不会什么都给用户,还允许用户自由修改。
OpenFlowOpen Networking Foundation 是OpenFlow协议之后的组织。
看它名称中有开放,是不是就一定是开放呢?答案既是,又不是。
SDN概述SDN的典型架构可分为三层,最上层为应用层,包括各种不同的业务和应用;中间的控制层主要负责处理数据平面资源的编排、维护网络拓扑和状态信息等;最下层的基础设施层负责数据处理、转发和状态收集。
除上述三个层次外,控制层与基础层之间的接口和应用层与控制层之间的接口也是SDN架构中的两个重要组成部分。
按照接口与控制层的位置关系,前者通常被称为南向接口,后者则被称为北向接口。
其中ONF在南向接口上定义了开放的OpenFlow标准4,而在北向接口上还没有统一要求。
因此,ONF SDN架构更多的是从网络资源用户的角度出发,希望通过对网络的抽象推动跟快速的业务创新。
OpenFlow标准OpenFlow标准描述了OpenFlow交换机的需求,涵盖了OpenFlow交换机的所有组件和基本功能,并且对远程控制器管理OpenFlow交换机采用的OpenFlow协议进行描述,即OpenFlow协议用来描述控制器和交换机之间交互所用的信息的标准,以及控制器和交换机的接口标准。
OpenFlow交换机包括用于查找和转发数据部分组成的一个或多个流表,以及与外部控制器进行通信的OpenFlow信道,交换机与控制器进行通信以及控制器管理交换机均采用OpenFlow协议。
OpenFlow交换机的主要组件:2012年6月发布了OpenFlow1.3,主要针对SDN的基础设施层的转发面抽象模型进行了定义,将网络中的转发面设备抽象为一个由多级流表驱动的转发模型。
OpenFlow多级流表转发模型如下图:OpenDaylightOpenDaylight开源联盟隶属于Linux基金会,旨在提供一个支持SDN的网络编程平台,并且为NFV及更多的不同大小共和规模的网络创建一个可靠的基础平台。
OpenDaylight最新平台总体架构:SDN 的三个特征。
1.网络开放可编程:SDN 建立了新的网络抽象模型,为用户提供了一套完整的通用API,使用户可以在控制器上编程实现对网络的配置、控制和管理,从而加快网络业务部署的进程。
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+。
ODL控制器采用OSGi框架,OSGi框架是面向Java的动态模型系统,它实现了一个优雅、完整和动态的组件模型,应用程序(Bundle)无需重新引导可以被远程安装、启动、升级和卸载,通过OSGi捆绑可以灵活地加载代码与功能,实现功能隔离,解决了功能模块可扩展问题,同时方便功能模块的加载与协同工作。
自Helium版本开始使用Karaf架构,作为轻量级的OSGi架构,相较于早前版本的OSGi提升了交互体验和效率,当然其特性远不仅仅于此。
ODL控制平台引入了SAL(服务抽象层),SAL北向连接功能模块,以插件的形式为之提供底层设备服务,南向连接多种协议,屏蔽不同协议的差异性,为上层功能模块提供一致性服务,使得上层模块与下层模块之间的调用相互隔离。
SAL可自动适配底层不同设备,使开发者专注于业务应用的开发。
此外,ODL从Helium开始也逐渐完成了从AD-SAL(Application Driven Service Abstraction Layer)向MD-SAL(Model Driven Service Abstraction Layer)的演进工作,早前的AD-SAL,ODL控制平台采用了Infinispan技术,Infinispan是一个高扩展性、高可靠性、键值存储的分布式数据网格平台,选用Infinispan来实现数据的存储、查找及监听,用开源网格平台实现controller的集群。
MD-SAL架构中采用Akka实现分布式messageing。
6、ODL的总体框架
ODL控制器主要包括开放的北向API,控制器平面,以及南向接口和协议插件。
北向API 有OSGI和REST两类,同一地址空间应用使用OSGI类,而不同地址空间的应用则使用REST 类。
OSGI是有状态的连接,有注册机制,而rest是无状态链接。
上层应用程序利用这些北
向API获得网络智能信息、运行算法进行分析并且设计部署新的网络策略
控制器平台包括一系列功能模块,可动态组合提供不同服务。
其中主要包括拓扑管理、转发管理、主机监测、交换机管理等模块。
服务抽象层SAL是控制器模块化的核心,自动适配底层不同的设备,使开发者专注于业务应用的开发。
SAL北向连接功能模块,以插件的形式为之提供底层设备服务。
南向连接多种协议插件,屏蔽不同协议的差异性,为北向功能模块提供一致性服务,SAL起到中间调度作用。
7、ODL的版本信息
ODL的版本目前已发布了四个版本,按元素周期表元素进行命名。
四个版本分别是Hydrogen(氢)版本、Helium(氦)版本、Lithium(锂)、Beryllium(铍)。
Hydrogen(氢)版本分为三个版本:Base、Virtualization、Service Provider。
Helium(氦)版本有下列版本:Helium、Helium-SR1、Helium-SR1.1、Helium-SR2、Helium-SR3、Helium-SR4
Lithium(锂)版本Lithium-SR1、Lithium-SR2、Lithium-SR3、Lithium-SR4
Beryllium(铍)版本Beryllium,Beryllium-SR1
备注:SR:修正版或更新版,修正了正式版推出后发现的Bug。
8、ODL在设计的时候遵循了六个基本的架构原则
1)、运行时模块化和扩展化(Runtime Modularity and Extensibility):支持在控制器运行时进行服务的安装、删除和更新。
2)、多协议的南向支持(Multiprotocol Southbound):南向支持多种协议。
3)、服务抽象层(Service Abstraction Layer):南向多种协议对上提供统一的北向服务接口。
Hydrogen中全线采用AD-SAL,Helium版本AD-SAL和MD-SAL共存,Lithium和Beryllium中已基本使用MD-SAL架构。
4)、开放的可扩展北向API(Open Extensible Northbound API):提供可扩展的应用API,通过REST或者函数调用方式。
两者提供的功能要一致。
5)、支持多租户、切片(Support for Multitenancy/Slicing):允许网络在逻辑上(或物理上)划分成不同的切片或租户。
控制器的部分功能和模块可以管理指定切片。
控制器根据所管理的分片来呈现不同的控制观测面。
6)、一致性聚合(Consistent Clustering):提供细粒度复制的聚合和确保网络一致性的横向扩展(scale-out)。
9、什么是SAL?
1)SAL的全称为Service Abstraction Layer(服务抽象层),分为MD(Model-Driven)与AD(Application-Driven)两种。
SAL为整个OpenDaylight项目框架提供基础设施服务,包括了各种OpenDaylight开发需要用到的基础功能,类似于Linux内核。
AD-SAL与MD-SAL 并没有本质上的区别,只是API消费者与供应者之间的查询路由方式有所区别。
在AD-SAL 中,并没有使用Y ANG对相关请求与通知功能进行建模,而是直接静态地使用了Java APIs 进行路由与适配。
在MD-SAL方式中,首先需要使用YANG对南向插件需要实现的功能建行功能建模,再使用YangTools与Maven生成相关Java APIs,通过对模型的查询来动态地进行路由与适配
2)Ad-sal的工作机制
←北向Plugin可以通过调用AD-SAL的北向API来实现对南向Plugin的调用,操作其所管理的设备和服务。
AD-SAL中,抽象服务由南向和北向API实现,南北向API是一对一映射关系。
← 开发者在使用AD-SAL开发时需要考虑到下层协议Plugin对抽象层所提供的功能的支持程度
3)MD-SAL的工作机制(未看完)
学习中的难点:maven模块,yang tool工具,osgi模型。