SDN-软件定义网络研究(基础发展、同NFV的区别,优势及挑战)

1、SDN出现的背景

传统网络体系(分布式网络体系)

分布式控制指在传统IP网络中,用于协议计算的控制平面和报文转发的数据平面位于同一台设备中;
路由计算和拓扑变化后,每台设备都要重新进行路由计算过程,并称为分布式控制过程;
在传统IP网络中,每台设备都是独立收集网络信息,独立计算,并且都只关心自己的选路。
这种模型的弊端就是所有设备在计算路径时缺乏统一性。
在这里插入图片描述
引用图片
传统网络分为管理平面、控制平面和数据平面:

  • 管理平面:主要包括设备管理系统(SNMP)和业务管理系统,设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。
  • 控制平面:负责网络控制,主要功能为协议处理与计算。比如路由协议(IGP、BGP)用于路由信息的计算、路由表的生成。
  • 数据平面:是指设备根据控制平面生成的指令完成用户业务的转发和处理。例如路由器根据路由协议生成的路由表对接收的数据包从相应的出接口转发出去。

传统网络的局限性

扁平化的网络架构在互联网上蓬勃发展了几十年,但 是,这种架构仍然面临着许多的挑战,它的组建周期比较长,跟不上市场的节奏。同时,它的建设成本较高、资源 的利用率较低,这种架构限制了互联网的增量变化,难以适应当今市场的需要。

  • 传统网络通常部署网管系统作为管理平面,而控制平面和数据平面分布在每个设备上运行。
  • 流量路径的调整需要通过在网元上配置流量策略来实现,但对于大型网络的流量进行调整,不仅繁琐而且还很容易出现故障;当然也可以通过部署TE隧道来实现流量调整,但由于TE隧道的复杂性,对于维护人员的技能要求很高。流量路径的灵活调整能力不足。(TE隧道是一种基于MPLS的流量工程技术,可以通过建立基于一定约束条件的LSP隧道,并将流量引入这些隧道中进行转发,使网络流量按照指定的路径进行传输:https://blog.csdn.net/qq_43710889/article/details/114988606)
  • 传统网络协议较复杂,有IGP、BGP、MPLS、组播协议等,而且还在不断增加。设备厂家除标准协议外都有一些私有协议扩展,不仅设备操作命令繁多,而且不同厂家设备操作界面差异较大,运维复杂。网络协议实现复杂,运维难度较大
  • 传统网络中由于设备的控制面是封闭式的,且不同厂家设备实现机制也可能有所不同,所以一种新功能的部署可能会造成周期较长;且如果需要对设备软件进行升级,还需要在每台设备上进行操作,大大降低了工作效率。网络新业务升级速度较慢

为了克服目前互联网的僵化,提出了网络虚拟化技术 。

网络虚拟化技术

原因:
近年来,随着社会的快速发展,网络虚拟化技术已经 普遍应用于各个行业中,网络虚拟化技术能提高工作效率, 也为企业的发展提供了更加高效的运行方式。市场对网络 虚拟化技术的发展也起到了一定的推进作用,传统网络组建周期长,往往需要数月的时间,根本跟不上市场的变化, 许多时候网络还没建好,需求可能已经发生变化。同时传 统网络的运维成本高、难以适应当今市场的要求,迫切需要网络虚拟化来解决这些问题。
在这里插入图片描述

网络虚拟化技术是指在同一个物理网络的基础架构上 创建多个虚拟网络,这些虚拟网络能共存并彼此独立。虚 拟网络是由一组虚拟节点和虚拟链路组成,它是一个逻辑 网络,其中,虚拟节点可以执行如路由、转发等功能,它 一般是将网络设备进行抽象而得到的,一般来说,在单个 的物理节点上可以部署多个虚拟节点,而虚拟链路是建立 在一个或多个物理链路上的网络链路的抽象,利用它进行 数据的传输,会消耗一定的物理资源,比如物理带宽等。
随着虚拟化在计算领域的成功,虚拟化已逐渐成为网 络的重要研究方向。最初,网络虚拟化技术被认为是:
物理网络基础设施能进行“切片”,将它切为多个虚拟 网络 。从定义可以看出,想实现网络虚拟化技术,首 先需要将底层的物理网络进行抽象,并创建单独的虚拟 网络,即为“切片”。
在网络中,网络“切片”可通过几种技术进行创建, 其中,MPLS是在交换机中创建切片,虚拟局域网(VLAN) 则是在链路层进行切片的创建,而网络虚拟化是希望创建 整个网络的切片,即能在所有的网络协议层上形成虚拟网 络(切片),而这些虚拟网络拥有自己所需的资源,包括 特定的网络视图、交换机的 CPU 资源和交换机的转发表。
网络虚拟化技术为建立新的网络范式提供了思路,并 能突破当前互联网协议和结构的限制,通过良好的资源分 配,在基础网络上运行虚拟网络能够提高网络硬件资源的 利用率,另外,网络虚拟化还可以使得网络服务商提供更 加灵活的创新服务。
考虑到传统 L2 网络扩展的问题,在近几年,比 较流行的是利用 overlay 技术来实现网络虚拟化,比如 VXLAN、NVGRE 和 STT(无状态的隧道传输)。 overlay 网络虚拟化是使用 L2 流量封装 VTEP 中的虚拟化 端点,它的实现是基于 L2 over L3,因此不需要大型 L2 孤岛间网络,它可以使用组播或网状隧道连接多个孤岛。

2、SDN技术

网络虚拟化技术也可以实现网络资源的共享。一张物理网络上可能运行有成百上千独立的虚拟网络,这对网络 的组建起到了很大的帮助,但如果不采用 SDN,管理这么庞大的网络将是一项不可能完成的工作。SDN 区别于普通网管系统的最大特性就在于它可以持续监控网络的运 行情况,实时调整网络的资源配置以满足用户的实际需求, 大幅提高网络的使用效率。

SDN的发展

SDN 一词最早由斯坦福大学提出,它是一种新兴的范式,为了改变当前网络的局限性而被提出,是推动网络创新的重要技术。在近几年,SDN 发展迅速,得到了学术研究和工业界的一致好评。比如,谷歌已经能使用 SDN 来进行数据中心的部署,该部署能帮公司提高运行效率并降低成本;VMware 的网络虚拟化平台 NSX 也是比较成功的例子,它的实现基于 SDN 原则,还有一些比 较大的 IT 公司最近加入了 SDN 联盟,如 OpenDalight, 表明了 SDN 对工业的重要性。
在传统的网络中,控制平面和数据平面是集中在网络设备内部的,这降低了网络的灵活性并对网络的基础结构有阻碍作用。从 IPV4 到 IPV6 的过渡经过了十多年,并且在很大程度此次过渡也并不是很完整,因为 IPV6 仅仅代表着协议的更新。考虑到网络发展的局限性,在当前的 IP 网络中,新的路由协议可能需要五到十年才能完全设计和部署,同样,想要彻底改变互联网架构,寻找新的方法, 这也是短期内不太可能实现的。
在这里插入图片描述
**SDN 打破了传统网络的分布式控制模式,它将传统网 络的数据平面和控制平面进行分离,同时,将整个网络的控制集中到单个 SDN 控制器中 **。SDN 交换机主要在数据平面中运行,可用于数据的转发,SDN 控制器能够将底层的网络和上层的网络应用进行连接,SDN 控制器和 交换机之间的通信是通过流量表来实现的,SDN 控制器 和交换机之间的开放标准接口可被定义为南向接口,而利 用控制器的北向接口,能更加方便地管理网络应用,SDN 能使网络管理更加简化,SDN 的架构如图 1 所示:
在这里插入图片描述

基于SDN的虚拟化

虚拟网络是一种基于逻辑进行连接而不是物理连接而 形成的网络,网络虚拟化技术的实质则是允许多个虚拟子网共享一个底层的物理网络,从而使得网络资源更加充分 地利用。
SDN 的核心是将网络架构中的控制平面和数据平面分离,它是利用可编程的特点来创建控制平面并共享数据平面,此网络架构可以优化网络设备的配置,并对网络设备 的统一管理有很大的帮助,使得互联网更加的灵活,正是由于 SDN 的这个特点,所以 SDN 技术很适合研究网络虚拟化技术。
网络虚拟化用传统的方式来实现则需要在底层物理网络上划分出不同组虚拟链路和虚拟节点,每一个则代表一个虚拟子网,而利用软件定义网络(Software Defining Network,SDN)所实现的网络虚拟化,则是将整个底层的物理网络虚拟成一个路由器,它可以从另一个维度构建虚拟网络的基础架构,通过将 SDN 技术应用在网络虚拟化中,能减少网络的复杂程度,促进网络虚拟化的进程。

SDN控制器实现网络虚拟化

在构建虚拟化平台时,需要 SDN 控制器来管理整个 网络,其中,抽象和虚拟化的资源是在物理网络上运行的, 虚拟平台能根据用户对网络的需求,抽象出虚拟网络的控 制功能,接着将底层物理网络进行划分,划分为 2 个虚拟网络。其中,每个虚拟网络都有一个虚拟的 SDN 控制器, 每个 SDN 控制器能为虚拟网络运行一个相应的流表。
因为 SDN 控制器可以让控制平面和数据平面进行分离,而控制平面能让正在运行的 SDN 控制器不受其他控制器的影响,在数据平面上,CPU、流表等都可通过数据平面隔离。
每个 SDN 控制器都可以与它对应的虚拟网络进行交互,SDN 控制器可以接收东向和西向接口的路由协议数据包,而 SDN 交换机可以根据 SDN 控制器的命令决定添 加、删除或者更新流量表,故此路由表可以实现 SDN 网络与 IP 网络的通信。

SDN和NFV的区别和关系

SDN和NFV的区别

SDN(软件定义网络)和NFV(网络功能虚拟化)是两种不同但相关的技术,都是为了提高网络的灵活性、可编程性和效率而诞生的。它们的区别主要有以下几个方面:
在这里插入图片描述
SDN和NFV的差异主要在应用场景和能力上,SDN主要是2-3层的应用,NFV是4-7的能力。
在这里插入图片描述

  • 定义:SDN是一种网络架构思想,它将网络设备的数据转发和路由控制两个功能模块相分离,通过集中式的控制器以标准化的接口对各种网络设备进行管理和配置。NFV是一种计算技术,它将通信设备网元云化,通过利用标准的IT虚拟化技术将许多网络设备类型整合到行业标准的大容量服务器,交换机和存储中。
  • 原理:SDN是基于控制平面和转发平面解耦的原理,通过OpenFlow协议实现控制器和转发器之间的消息交互,使得控制器可以对转发器进行集中管理和配置。NFV是基于软硬件解耦的原理,通过虚拟化平台实现计算资源、存储资源、网络资源等资源的统一管理和按需分配,使得通信设备网元可以运行在虚拟机上。
  • 应用场景:SDN主要应用于承载网,即数据通信网络,通过改善网络的路由转发策略,提高网络性能和可扩展性。NFV主要应用于核心网和接入网,即移动通信网络,通过实现软件和硬件的彻底解耦,降低硬件成本和运维复杂度。

NFV与SDN有什么不同:
SDN抽象物理网络资源(交换机、路由器等),并将决策转移到虚拟网络控制平面。控制平面决定将流量发送到哪里,而硬件继续引导和处理流量,无需依赖标准的硬件设备。NFV的目标是将所有物理网络资源进行虚拟化,允许网络在不添加更多设备的情况下增长,这依赖于标准的硬件设备。

在这里插入图片描述

SDN和NFV的关系

NFV也是一种网络架构,它将传统物理设备的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。SDN和NFV的相似之处主要体现在如下方面:

  • 都以实现网络虚拟化为目标,实现物理设备的资源池化。
  • 都提升了网络管理和业务编排效率。
  • 都希望通过界面操作或者编程语言来进行网络编排。

SDN和NFV虽然有很大的区别,但也有一定的关系。它们之间的关系主要有以下几个方面:

  • 互补关系:SDN和NFV都是为了提高网络灵活性而设计的技术,它们可以相互补充,实现更好的效果。例如,在NFV数据中心中采用SDN技术,可以有效改善NFV网络的性能;在SDN网络中采用NFV技术,可以实现更多的网络功能。
  • 合作关系:SDN和NFV都是为了服务于5G而发展的技术,它们在5G中有着密切的合作关系。5G采用SA组网架构,承载网采用SDN技术,核心网采用NFV技术,这是5G成为“真·5G”的先决条件。SDN和NFV共同支持5G的核心能力和关键特征——网络切片。
  • 独立关系:SDN和NFV虽然有互补关系和合作关系,但也有独立关系。两者之间没有归属关系和依赖关系,可以单独使用或者结合使用。SDN可以不需要NFV来实现控制平面和转发平面解耦;NFV可以不需要SDN来实现软硬件解耦。

3、SDN的关键技术说明

SDN的三个主要特征

**转控分离:**网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
**集中控制:**设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
**开放接口:**第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
在这里插入图片描述

  • 协同应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS、Openstack等。传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。
  • 控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
  • 转发层:转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
    在这里插入图片描述

SDN控制器说明

**网管没有实现转控分离:**网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。
**规划工具的目的和控制器不同:**规划工具是为了下发一些规划表项,这些表项并非用于路由器转发,是一些为网元控制平面服务的参数,比如IP地址,VLAN等。控制器下发的表项是流表,用于转发器转发数据包。
SDN控制器是个集中式的管控中心:区别于分布式的管控。
在这里插入图片描述
在这里插入图片描述

SDN的基本工作原理

在这里插入图片描述

  • 通常控制器作为服务端,转发器主动向控制器发起控制协议建立,通过认证后,控制协议即建立连接。
  • 注册信息中的设备信息包括资源信息(接口、标签、VLAN资源等)、设备厂家信息(设备类型信息和设备版本号以及设备ID信息)。控制器采集这些信息是为了根据这些信息来进行本地搜索和加载相应驱动程序。
  • 网络拓扑是描述网络中节点和链路以及节点之间连接关系的信息。
  • 控制器收集拓扑信息的目的是为了根据网络资源,计算合理的路径信息,通过流表方式下发给转发器。

SDN的部署方式

  • Underlay的网络
    所有的转发行为都由控制器通过OpenFlow协议或定制的BGP协议将转发表下发给转发器,转发器仅仅执行动作,没有单独控制面

  • Overlay的网络
    这种网络的转发器一般都是传动设备,不支持OpenFlow,或者私有定制协议不能部署时,就要用隧道技术,基础网络还是传统网络形式,通过路由协议打同各个节点,但是在服务器接入点,才用隧道技术将数据报文进行封装或者解封装。对传统网络来说见到的就是普通数据报文,转发即可。隧道技术实际上就是报文的马甲,迷惑网络设备,让设备以为时自己人,但实际上报文的心是虚拟化的心。现一般才用Vxlan,GRE,NVGRE等隧道技术,而这些新增的协议,也需要升级现有网络设备才能支持(不支持上述协议的网络设备)。穿马甲索然能够在不进行大改造的情况下增加新的功能,但无疑会降低网络性能。

Openflow

近几年,基于 SDN 的网络虚拟化技术得到了学术界 和工业界的广泛重视,也有广泛的研究成果,目前的虚拟 化方案主要包括:斯坦福大学的 FlowVisor、爱立信研究所的 IOVF 以及网络虚拟化平台 Vertigo,具体如下:
(1)FlowVisor
FlowVisor 的设计是在 OpenFlow 控制器和网络设备间引入中间代理层来实现网络虚拟化。它可以利 用 OpenFlow 对底层硬件的功能进行抽象,并且通过 OpenFlow 协议可以对控制器和交换机之间的信息进行处 理。FlowVisor 通常可抽象出多个控制器,其中,每个控 制器可管理一个“网络切片”(虚拟网络),而控制器和交换机并不知道 FlowVisor 的存在,能更好地隐藏网络虚 拟化的细节。
(2)IoVF
IoVF 是一种网络虚拟化架构,它允许多个虚拟的 OpenFlow 控制器和交换机在同一台物理机中运行,此架 构的特色是同一类型的控制器只能控制与它对应的交换 机,这样,同一类型的交换机和管理它们的控制器就组成 了一个虚拟子网,而这些不同的虚拟子网共享底层的物理 资源。
(3)Vertigo
Vertigo 是一个专门为了网络虚拟化而设计的软件 定义网络平台,它基于 FlowVisor 来实现,它能够实现 FlowVisor 的扩展,使其能够根据用户的特定需求而将不 同控制器管理的网络呈现给用户,在底层的物理网络出现 故障或者堵塞的情况下,可为用户提供更加灵活的网络虚 拟化服务。
通过上述的方案可以看出 SDN 在网络虚拟化中起到 了很大的作用,一张物理网络上可能运行很多个虚拟网络, 而如果不用 SDN,网络管理将很难完成。

4、SDN的优势

在这里插入图片描述
SDN的网络架构简化了网络,消除了很多IETF的协议。协议的去除,意味着学习成本的下降,运行维护成本下降,业务部署速度提升。这个价值主要得益于SDN网络架构下的网络集中控制和转控分离。
在这里插入图片描述
因为SDN网络架构下的网络集中控制,所以被SDN控制器所控制的网络内部很多协议基本就不需要了,比如RSVP协议、LDP协议、MBGP协议、PIM组播协议等等。原因是网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发给转发器就可以了,并不需要协议。未来大量传统的东西向协议会消失,而南北向控制协议比如Openflow协议则会不断的演进来满足SDN网络架构需求。

在当前主流的SDN架构中,保留了传统硬件设备上的操作系统和基础的协议功能,通过控制器收集整个网络中的设备信息,具有如下优点:

  • 网络可编程
    网络设备提供应用编程接口(API),使得开发和管理人员能够通过编程语言向网络设备发送指令。网络工程师可以使用脚本自动化创建和分配任务,收集网络统计信息。将基于CLI与SNMP的封装脚本变为实实在在的可编程对象,提供了更丰富的功能。
    在这里插入图片描述

  • 网络抽象化
    控制器作为中间层,通过南北向API接口与网络设备和应用程序进行交互,将底层的硬件设备抽象为虚拟化的资源池,应用和服务不再与硬件紧密耦合。
    在这里插入图片描述

  • 降低成本
    保留了原有的网络设备,硬件设备仍然具备管理、控制、转发的全部功能,方便进行整网的改造,无需进行大规模的搬迁。控制器的引入将人工配置转变为机器配置,提升运维效率,降低运维成本。

  • 业务灵活调度
    传统的硬件设备在网络中无法进行灵活的负载分担,最优路由上往往承担着最重的转发任务,即使QoS、流控等功能缓解了这一问题,但流量的调度仍然强依赖于管理员对单台设备的配置,因此我们可以将传统的硬件设备看作是一种孤岛式的、分布式的管理模式。SDN在没有改变硬件设备整体逻辑的基础上,通过增加开放的南北向接口,实现了将计算机语言到配置命令行的翻译,使界面式的管理、集中管理变成了可能,解决了传统网络业务调度不灵活的问题。

  • 集中管理
    传统网络设备的管理是分布式的,单台网络设备不感知整个网络的状态。网络管理员使用控制器来管理底层硬件设备,编排网络业务,分配网络资源和调整流量优先级。管理员可以直接感知整个网络的状态,及时调整带宽和优化策略,便于进行整网的管理。

  • 开放性
    SDN架构支持供应商开发自己的生态系统,开放的API支持云编排、OSS/BSS、SaaS等多种应用程序,同时也可以通过Openflow控制多个供应商的硬件。
    在这里插入图片描述

SDN对运营商、互联网公司、企业客户等用户有很多价值,主要体现在以下几个方面:

  • 业务方面,SDN可以快速引入新业务并创收、实现业务自动化和自动业务发放,满足云计算、大数据等新型业务的需求。
  • 运维方面,SDN可以实现网络自动部署、端到端业务管理/控制、端到端网络管理/控制,简化网络运维和管理,降低人力成本和错误率。
  • 网络优化方面,SDN可以实现实时网络流量优化、IP+光跨层协同、提高网络资源利用率和性能,降低网络建设和维护成本。
  • 创新方面,SDN可以通过软硬件分离、网络虚拟化、IT化及软件化,加速网络创新和演进,提供更多的可编程能力和灵活性。
  • 升级方面,SDN可以通过消除应用和特定网络细节之间的关联,使得无需花费时间和金钱重新编写应用和人工配置网络设备即可升级网络的物理平面。

5、SDN的演进发展:

在SDN的发展过程中,由于底层协议的复杂性、软件开发投入等多方面原因,厂商逐渐转向了以自动化运维为主要目标,弱化控制面剥离的SDN技术路线。厂商们主张将操作系统以及大部分的软件仍放在硬件设备上进行,保留原有的网络设备形态,通过控制器实现与硬件设备、与网络配置管理工具的对接,由控制器在管理面的维度完成对硬件设备的统一管理和业务编排。下图为两种SDN技术路线的对比,经典的SDN技术路线又可以称为软件SDN,而弱化控制面剥离的SDN技术路线可以称为硬件SDN。
在这里插入图片描述

挑战

在数据中心领域,大多数大规模数据中心已经采用扁平化架构,这给网络设备的管理带来了极大的挑战。SDN带来的自动化运维、集中管理在数据中心的自动化调配以及扩容中有极大的应用空间。

在视频领域,由于SDN支持数据流的实时调配,使得网络能够承载更多的流量。

在机器学习和人工智能领域,SDN也会受到运营需求和软件创新的影响,提供更丰富、更新潮的网络体验。

在未来的网络自动驾驶(ADN)中,SDN架构也能够发挥重要作用。

SDN并非没有缺点,与其他IT产品一样,SDN存在安全、扩展以及缺乏广泛合作、缺乏生态的问题。

  • 集中管理的安全风险
    虽然集中管理十分方便,但这也是一种安全风险。集中管理的单节点被攻击,整个网络可能都会受到影响。

  • SDN控制器的瓶颈
    对于软件完全从硬件上分离的SDN思路来说,控制器的软件开发难度、控制器的计算压力都是巨大的挑战。

  • 北向API缺乏统一标准
    缺乏标准的北向API导致供应商提供的接口不统一,应用程序开发困难上升,同一组开发人员必须同时开发与不同控制器的相互操作。

猜你喜欢

转载自blog.csdn.net/wtt2020/article/details/131901236