软件定义网络  Software Defined Network

  • 本文将从以下3个问题对SDN进行阐述


1、为什么要有SDN?

伴随云计算、移动互联网和物联网的蓬勃兴起,应用与业务日益多元,而且快速且多变。网络系统的亚健康问题逐渐明显起来。传统网络工程的弊端日益增加,不能满足生产者的需求。传统网络系统的症状是什么?那就是多元、多变的网络上层应用与业务和相对稳定的网络架构设计以及系统运维之间的矛盾。

一方面、上层应用需要网络在规模扩展和服务能力上具有很大的灵活性,能够体现以客户为中心,提供应用服务与业务体验所需要的自适应性和动态性。以云计算为例,它有三种典型的服务模式,分别是IaaS、PaaS、SaaS。它们都需要按需进行资源分配与调度的能力,需要借助资源池化,网络功能虚拟化,虚拟主机自动恢复和动态可迁移,不同用户或应用之间的安全隔离等机制来确保系统的自动化部署和资源的动态适配。再以运营商的广域网为例,如何才能快速动态响应移动端,类似抖音、微信这样“杀手”级应用的井喷式爆发,对于核心网络带来的巨大压力而不至于应接不暇或捉襟见肘?

另一方面,传统的网络规划和设计是以应用需求相对明确和稳定为前提的。包括网络架构、物理拓扑、IP连通性和安全与QoS策略都是根据明确的应用需求预设定义好的,也就是说它是相对静态的。所以尽管在网络的规划和设计阶段强调了冗余设计,从而可以在运维过程中根据上层应用变化做出一定的调整和应对。但是空间是相对有限的。而且传统网络的部署和运维是以人工为主,自动化为辅,再加上在分布式网络架构中网络类型以及厂商来源的多样性,调整的难度和复杂度是非常大。

要克服和解决上述矛盾,必须分析并找到问题的根源。归结起来有两种原因。

一是传统网络及其设备只可配置、不可编程。例如路由器、交换机和防火墙等,这些基础网络设备只能根据其上的系统版本进行配置,不能对其进行编程,增加、修改或者删除它们的某一个功能。

其次是网络的分布式控制与管理架构带来的制约。网络的部署、配置与管理需要落到每台设备上去手工完成。每个设备都紧耦合了三个平面,分别是管理平面、控制平面和数据平面。管理平面为配置和管理网络设备提供用户访问界面或接口。如命Linux系统的令行界面(终端)和图形化界面。在控制平面中预设了不同网络协议和功能的支持。在管理平面输入配置和管理指令,会在控制平面生成相应的控制表。如数据链路层的MAC交换表,网络层的路由表,MPLS的标签表,ACL访问控制表等。控制平面的相应的控制表则是数据平面转发的依据。即数据平面会根据控制平面相关控制表给出的信息,进行具体的报文处理或转发。

网络设备的三个功能平面

关于分布式网络管理和架构的问题。在传统分布式网络架构下,如果网络中新增加了一个应用,那么该应用的数据包所流经的所有网络设备都有可能要在规划和配置上作出相应的改变。显然管理的工作量非常大。特别是当网络中的应用非常多元与多变的时候,网络管理的效率就会变得非常低,从而对上层应用与业务弹性响应也随之变差。

2、SDN是怎么产生的?

从上面的根源分析发现,矛盾的根源不在于网络系统的生命周期,而在于网络系统的设计思想、网络架构以及管理模式。因此,针对上述问题根源。软件定义网络技术引入了两项重要的改变和创新。

  • 第一项

首先在分布式网络设备连接之上引入一个集中统一的控制与管理层来实现对网络的全局控制与管理和对上层应用与业务的动态响应。为此需要对网络设备的三大平面进行解耦。在基础网络设备中仅保留原有的数据平面,将控制平面和管理平面划分到新的层面即上述的集中统一的控制与管理层。于是一种基于软件定义的全新网络架构就应运而生

         →        

SDN软件定义网路包含三层架构。最上层的是应用层,包含了网路所承载的多元业务与应用。最下层称为网络基础设施层,拥有庞大数量的网络设备。但这些设备并不是传统的网络设备,它们的控制平面和管理平面都已经被拉出来,放在另一个层面——集中控制层。所以基础设施层的设备功能非常简单:只负责包的转发。被拉出来的控制和管理平面都被放到了集中控制层(即SDN集中控制器)。集中控制层在应用层和基础设施层中间起到了承上启下的全局管控作用。

SDN 三层网路架构

其次是能够弹性响应上层应用变化的网络可编程从而能够及时响应上层应用与业务的变化,对网络规划与配置作出自适应的动态调整。在控制器和应用层中间提供了不同的API接口,也称为北向接口。通过这些接口实现控制器和上层应用的交互。在控制器和基础设施层间提供了控制数据平面接口,也称为南向接口。在所有SDN控制器里通过软件定义生成各种流表,都通过南向接口灌输到基础设施层的设备中,引导这些设备的包转发行为。

通过这种“控制”、“管理”、“转发”的分离,网络的控制和管理效率会更高,弹性的响应也会更好。

3、什么是SDN?

SDN是具有集中化管理、控制和转发分离且可编程的新一代网络架构。

SDN作为新一代网络架构,同时引导网络进入全新架构。归纳起来有四个方面:

底层网络设备,通过解耦实现了简单化;

网络的管理,通过集中控制器实现了全局化;

网络的运维,通过SDN南向接口与协议实现了自动化;

网络的应用,通过SDN北向接口与协议实现了人性化。

参考文献:中国大学MOOC(慕课)软件定义网络技术

软件定义网络 Software Defined Network (一)概述相关推荐

  1. 软件定义网络(Software Defined Network, SDN)

    软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二.2012年7月,SDN代表厂商Nicira ...

  2. 软件定义网络(Software Defined Network,SDN)简介

    SDN的三大关键要素 第一关键要素是转发与控制分离,这使得网络交换机的数据转发变得更加简单.快速:同时,控制变成了网络操作系统中一个相对集中的逻辑功能. 第二个关键要素是OpenFlow协议,它向交换 ...

  3. SDN(Software Defined Network) 软件定义网络学习

    SDN(Software Defined Network) 软件定义网络学习 SDN是啥? 简单来说就是软件定义网络!其旨在对现有的网络架构进行重构,使得我们能够像安装软件一样对网络进行修改,加快部署 ...

  4. 软件定义网络(Software Defined Network,SDN)

    1.传统网络存在的问题 只可配置,不可编程 数据平面和控制平面的紧耦合 网络设备的三个功能平面: 控制平面:根据不同的协议计算生成各种表项,如指导数据链路层报文转发的MAC表.指导网络层报文转发的路由 ...

  5. SDN(Software Defined Network):软件定义网络

    SDN(Software Defined Network):软件定义网络传统的网络转发行为:1)逐设备单独控制,纯分布式控制.2)控制面和转发面在同一个设备中,耦合紧密.管理员无法直接操控转发行为:管 ...

  6. 软件定义网络(Software Defined Network )

    一.SDN与传统网络的区别 SDN网络中数据转发平面进行分离,网络设备只负责单纯的数据转发:而传统网络中,网络设备硬件都带有操作系统同时负责逻辑控制和数据转发 SDN网络采用集中式控制,所有控制层面上 ...

  7. SDN软件定义网络之北向接口概述和REST API设计规范

    文章目录 北向接口概述 分类:功能型.基于意图 北向接口的实现 REST API 相关概念 资源 资源标识符 表述 元数据 REST约束条件 REST API设计规范 HTTP动作(六个) 资源的类型 ...

  8. 《SDN软件定义网络从入门到精通》理论课

    前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想.只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这 ...

  9. openflow 和 sdn (软件定义网络) 原理和教程

    OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...

最新文章

  1. QIIME 2用户文档. 6沙漠土壤分析Atacama soil(2018.11)
  2. ode matlab传递变量,一个时变ode求解例子——以及如何向myode传递附加参数
  3. idea 升级到2020后 无法启动_【维修案例】2020年一汽奥迪Q5L发动机无法启动
  4. 解决归档出错,ORA-00257: archiver error. Connect internal only, until freed.
  5. HTML--猫眼电影---浮动练习
  6. iOS 关于集成融云IM的一些常用方法
  7. 序列元素IT面试题——判断合法出栈序列
  8. 为什么要要使用MyBatis
  9. 【图说word】 宏
  10. Unity3D笔记 愤怒的小鸟四 实现Selelction界面
  11. 递推关系中的数列通项
  12. android 服务自动运行怎么办,Android服务开机自动运行
  13. java xml生成word文档_java生成word文档
  14. html语言%3cspan%3e,比较好的网站HTML语言.doc
  15. 国网智能车载终端TBOX国标GB/T 32960、新能源汽车GB32960国家标准4GTBOX、国家电网统一车辆管理平台车载终端、电动汽车远程管理系统车载终端TBOX、新能源车联网终端T-BOX国标
  16. 「实用工具—LICEcap」写博必备|动图制作|一键生成gif(GIF)
  17. HE4484E芯片资料
  18. 为虚拟机配置静态ip地址
  19. 微信文章抓取:微信公众号文章抓取常识之临时链接、永久链接
  20. 工厂模式 五种写法总结

热门文章

  1. 微信小程序实现登录获取头像昵称
  2. win10 注销 睡眠 休眠 cmd 命令
  3. python open encoding=utf-8_Python 文件操作中的读写模式:open(path, '-模式-',encoding='UTF-8')...
  4. WIN10 JDK下载及安装说明
  5. 山东春考计算机专业课知识点,山东省春季高考计算机专业学习方法
  6. 如何利用XGen制作头发,发片-笔记
  7. kubernetes原生ci/cd工具tekton版本升级至v0.18.1
  8. 2020长三角区块链应用创新大赛复赛第三场于能链科技成功举办!
  9. R语言---安装依赖包
  10. java 程序是如何运行的?