前言

为毕设做的一个小调研,大部分还是整理的其他博文的内容,有错误还望指出!

定义

软件定义网络(Software-Defined Networking,SDN)的官方定义可以追溯到2011年由ONF(Open Networking Foundation)发布的文档。其中,SDN被定义为一种网络架构,通过对网络控制面和数据面进行解耦,实现了网络控制的集中和程序化。

出现背景

传统IP网络的分布式架构虽然具有强大的生存能力,但是不允许集中控制。不允许集中控制意味着当需要对一个网络中的某些配置进行修改,或需要为网络增加某种新的服务时,可能需要考虑调整网络中每个设备的配置项和逻辑控制。举个例子:

假设一个公司有一个传统的企业网络,由多个路由器和交换机组成。现在公司需要增加一个新的服务,要求特定类型的流量通过一条特定的路径,而不是根据传统的路由协议选择最佳路径。在传统网络中,管理员需要手动配置每个设备,以确保特定类型的流量按照要求的路径进行转发。这样的配置过程复杂繁琐,容易出错,并且难以保证一致性。而在SDN中,管理员可以通过集中的控制器来动态配置网络,只需在控制器上进行一次配置即可实现整个网络的流量控制,大大简化了管理和维护工作。

SDN网络架构

SDN架构的主要特点是集中控制,该架构将网络分为三层:应用层、控制层和转发层。

传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。

SDN三层架构.drawio

  1. 应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。
  2. 控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
  3. 转发层:转发层是主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
  4. 北向接口:应用层和控制层通信的接口,应用层通过控制开放的API,控制设备转发功能
  5. 南向接口:控制层和数据层通信的接口,控制器通过OpenFlow或其他协议下发流表。

OpenFlow与SDN

OpenFlow是SDN中的一种关键技术,可以说它是SDN实现的一种方式。它通过将数据面和控制面分离,实现了SDN架构的核心理念。

具体来说,OpenFlow是一种通信协议,用于在SDN架构中实现控制器与网络设备(如交换机和路由器)之间的通信。这种通信允许控制器向网络设备下发指令,控制网络流量的路径、速率以及其他行为。

在一个SDN网络中,OpenFlow协议通常被用于以下几个方面:

  1. 流表控制:OpenFlow允许控制器向网络设备发送流表规则,用于控制数据包的转发行为。这些规则包括匹配条件和对应的操作,可以实现流量的转发、过滤、重定向等功能。
  2. 网络监控与管理:通过OpenFlow协议,控制器可以收集网络设备的状态信息,并根据需要进行网络拓扑发现、链路监测、负载均衡等管理操作。
  3. 灵活性和编程性:OpenFlow协议的灵活性使得网络管理员可以通过编写控制器应用程序来实现特定的网络策略和功能,从而满足不同场景下的需求。

虽然OpenFlow是SDN中最为知名的协议之一,但并不是SDN的唯一实现方式。SDN还可以采用其他技术和协议来实现,如NETCONF、RESTCONF等,这些协议同样可以实现控制面和数据面的分离,以及网络的可编程性和灵活性。因此,OpenFlow与SDN的关系可以理解为OpenFlow是SDN的一种具体实现方式之一,而SDN则是一种更为广义的网络架构理念。

SDN的价值

网络业务快速创新

SDN的可编程性和开放性,使得我们可以快速开发新的网络业务和加速业务创新。如果希望在网络上部署新业务,可以通过针对SDN软件的修改实现网络快速编程,业务快速上线。

SDN网络关键的地方是在网络架构中增加了一个SDN控制器,把原来的分布式控制平面集中到一个SDN控制器上,由这个集中的控制器来实现网络集中控制。SDN网络架构具备3个基本特征:转控分离、集中控制、开放接口。

SDN控制器,可以简化网络和快速进行业务创新。但是其本质的技术原理是通过SDN控制器的网络软件化过程来提升网络可编程能力。通信平面仍包含管理平面、控制平面和数据平面,SDN网络架构只是把系统的三个平面的功能进行了重新分配,传统网络控制平面是分布式的,分布在每个转发设备上,而SDN网络架构则是把分布式控制平面集中到一个SDN控制器内,实现集中控制,而管理平面和数据平面并没有太多什么变化。

SDN网络具备快速网络创新能力,如果这个新业务有价值则保留,没有价值可以快速下线。不像传统网络那样,一个新业务上线需要经过需求提出、讨论和定义开发商开发标准协议,然后在网络上升级所有的网络设备,经过数年才能完成一个新业务。SDN使得新业务的上线速度从几年提升到几个月或者更快。

简化网络

SDN的网络架构简化了网络,消除了很多IETF协议。协议的去除,意味着学习成本的下降,运行维护成本下降,业务部署快速提升。这个价值主要得益于SDN网络架构下的网络集中控制和转控分离。

IETF是Internet工程任务组(Internet Engineering Task Force)的缩写。它是一个国际性的、开放的、自愿性的组织,致力于制定和推动互联网相关的标准和协议的发展。

因为SDN网络架构下的网络集中控制,所以被SDN控制器所控制的网络内部很多协议基本就不需要了,比如RSVP协议、LDP协议、MBGP协议、PIM组播协议等等。原因是网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发给转发器就可以了,并不需要协议。未来大量传统的东西向协议会消失,而南北向控制协议比如Openflow协议则会不断的演进来满足SDN网络架构需求。

网络设备白牌化

网络设备白牌化是指网络设备制造商(通常是大型厂商)将自己的产品(如交换机、路由器等)的设计和制造过程开放给其他公司或厂商,让它们可以基于这些设计和技术进行定制、生产和销售。这些厂商通常是所谓的“白牌厂商”或“代工厂商”。

基于SDN架构,如果标准化了控制器和转发器之间的接口,比如OpenFlow协议逐渐成熟,那么网络设备的白牌化将成为可能,比如专门的OpenFlow转发芯片供应商,控制器厂商等,这也正是所谓的系统从垂直集成开发走向水平集成。

垂直集成是一个厂家供应从软件到硬件到服务。水平集成则是把系统水平分工,每个厂家都完成产品的一个部件,有的集成商把他们集成起来销售。水平分工有利于系统各个部分的独立演进和更新,快速进化,促进竞争,促进各个部件的采购价格的下降。

业务自动化

SDN网络架构下,由于整个网络归属控制器控制,那么网络业务网自动化就是理所当然的,不需要另外的系统进行配置分解。在SDN网络架构下,SDN控制器可以自己完成网络业务部署,提供各种网络服务,比如L2VPN、L3VPN等,屏蔽网络内部细节,提供网络业务自动化能力。

网络路径流量优化

通常传统网络的路径选择依据是通过路由协议计算出的“最优”路径,但结果可能会导致“最优”路径上流量拥塞,其他非“最优”路径空闲。当采用SDN网络架构时,SDN控制器可以根据网络流量状态智能调整网络流量路径,提升网络利用率。

总结

确实是个很有用的东西,但是好像并不能用在我的毕设里💦💦

参考链接