ODL之SDN入门篇
- 格式:docx
- 大小:328.71 KB
- 文档页数:11
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,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入门学习通信沈飞文章从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),那无非就是软件和硬件的学习即编程语言和网络知识学习。
网络知识:了解基本的网络层次设备,网络协议,网络拓扑,比如设备的原理,产品的优缺点,局限性。
S D N控制器基础知识-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANSDN控制器基础知识前言SDN落地,测试先行。
足以说明测试在SDN技术发展中起着举足轻重的作用。
那么如何测试SDN,测好SDN,这就要求我们对SDN有一个很深的认识,对SDN的功能有一个全面的了解。
本文将从SDN发展背景及其核心架构开始,逐步分篇给大家介绍一下SDN?控制器相关技术,以及如何测试与评估SDN控制器。
1?SDN产生的背景互联网作为人类历史上最重要的发明之一,自发明以来已经深入到了人类生活的各个方面,包括工作、学习和生活方式。
到目前为止互联网已经成为世界上规模最大、覆盖范围最广的基础设施。
但是,由于互联网的设计初衷并不是为了只是如此大规模的应用,其体系架构在可扩展性、安全性、移动性、服务质量保障等方面问题随着网络规模的增长逐渐凸显。
针对当前的网络架构的种种问题,无论是采用渐进式或者颠覆式进行网络架构/协议创新,其最大的问题在于无法进行现网大规模的验证。
软件定义网络(SDN)概念为网络创建带来了新的契机,它最初是由美国斯坦福大学CLeanslate研究组提出的一种新型的网络架构,设计初衷是为了解决无法利用现有网络中的大规模真实流量和丰富应用进行试验,以便研究如何提高网络的速度、可靠性、能效和安全性等问题。
其基本思想是把当前IP网络互连节点中决定报文如何转发的复杂控制逻辑从交换机/路由器分离出来,以便通过软件编程实现硬件对数据转发规则的控制,最终达到对流量进行自由操控的目的。
2?SDN的基本架构SDN是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。
SDN网络的架构定义如下:图?1.?SDN网络体系架构图其中,应用层包括各种不同的业务和应用;控制层主要负责处理数据平面自有的编排,维护网络拓扑,状态信息等;基础设施层(数据转发层)负责基于流表的数据处理、转发和状态收集。
网络工程师的软件定义网络(SDN)基础随着互联网的迅速发展,网络工程师的角色也变得越来越重要。
在当今这个数字化时代,软件定义网络(Software Defined Networking,简称SDN)技术正逐渐成为网络工程师的关键技能之一。
本文将介绍网络工程师在软件定义网络领域的基础知识和技能要求。
第一部分:SDN概述及其优势SDN是一种网络架构,它将控制平面(Control Plane)和数据平面(Data Plane)分离。
控制平面由集中式的控制器管理,而数据平面则由网络设备执行。
SDN通过将网络控制逻辑集中管理,提供了一系列优势,比如灵活性、可编程性和自动化等。
网络工程师需要熟悉SDN 的概念和原理,并了解其优势。
第二部分:SDN基础组件SDN的基础组件包括控制器、开放流和网络设备。
网络工程师需要熟悉不同类型的控制器,比如OpenDaylight、Floodlight和ONOS等。
此外,他们还需要了解开放流协议(OpenFlow)及其作用,以及在网络设备上配置和管理开放流规则的方法。
第三部分:SDN网络架构网络工程师需要了解SDN的网络架构。
SDN网络通常由多个逻辑层次组成,包括应用层、控制层和数据层。
应用层提供管理和监控功能,控制层负责决策和策略制定,数据层负责实际的数据传输。
网络工程师需要了解这些层次的功能和相互之间的关系,并能够设计和配置适合特定需求的SDN网络架构。
第四部分:SDN中的网络虚拟化网络虚拟化是SDN的关键特性之一,它可以将物理网络资源划分为多个逻辑网络。
网络工程师需要了解虚拟网络的概念、原理和实现方式,以及如何配置和管理虚拟网络。
他们还需要熟悉虚拟交换机和虚拟路由器等虚拟化技术,并能够在SDN环境中使用这些技术来提供高效的网络服务。
第五部分:SDN中的安全性网络安全对于任何网络工程师来说都是至关重要的。
在SDN环境中,网络工程师需要考虑如何保护网络的安全性。
他们需要了解SDN 安全的基本原理和方法,比如访问控制、流量监测和威胁检测等。
1 SDN1.1 什么是SDN软件定义网络(Software Defined Network, SDN),是由美国斯坦福大学clean slate 研究组提出的一种新型网络创新架构,SDN 技术就相当于把每人家里路由器的的管理设置系统和路由器剥离开。
以前我们每台路由器都有自己的管理系统,而有了SDN之后,一个管理系统可用在所有品牌的路由器上。
如果说现在的网络系统是功能机,系统和硬件出厂时就被捆绑在一起,那么SDN 就是Android系统,可以在很多智能手机上安装、升级、使用,同时还能安装更多更强大的手机App(SDN 应用层部署)。
SDN的设计理念是将网络的控制面与数据转发面进行分离,并实现可编程化控制。
SDN的典型架构共分三层,最上层为应用层,包括各种不同的业务和应用;中间的控制层主要负责处理数据平面资源的编排,维护网络拓扑、状态信息等;最底层的基础设施层负责基于流表的数据处理、转发和状态收集。
图3SDN网络结构从传统的网络设备(路由器,交换机)的设计上看,它由软件控制和硬件数据通道组成。
软件控制包括管理(CLI,SNMP)以及路由协议(OSPF,ISIS,BGP)等。
数据通道包括针对每个包的查询、交换和缓存。
此时如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统(Network OS)的概念,这个网络操作系统一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。
这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
SDN的好处: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地址规格较小,如果采用高端设备,那么投入的将会更大。
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+。
本文作为码农学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信息下发到交换机。
通常情况下,往往预先下发部分流表信息。