原文链接:https://blog.csdn.net/maijian/article/details/41744535

SDN的概念从提出到现在已经过了4年多了,但是关于SDN最基本的问题,“什么是SDN”的争论和探讨从来都没停止过,就像一些哲学家经常思考的“我是谁”,“我从哪里来”,“我要去哪里”一样。有人跟我说,越讨论越迷糊,有时候觉得清楚了,再跟不同的人讨论,又迷糊了。因为工作的关系,在过去一年的时间内,我到处去跟各个运营商,互联网公司,电商,设备商,普通企业,高校,研究所的不同人进行交流,曾经跟一个朋友自嘲说除了ONF的执行总裁Dan Pitt,可能我是世界上跟别人讲SDN讲得最多的了。在这个过程中我不断反思,不断归纳总结,现在我当然不敢说我的想法就一定是对的,但是我认为我有必要把我的看法分享出来,供大家参考,是否认同不要紧,但是希望能对大家所有启发。

我对SDN的认识可以分为四个阶段,最后一个阶段是在第三个阶段基础上的顿悟。

第一阶段。跟很多其他人一样,我最初接触SDN是从OpenFlow开始的,那个时候甚至都没去思考什么是SDN的问题,本能的就认为OpenFlow就是SDN,SDN就是Openflow,其实潜意识中,就是把SDN看作是一个具体的技术和协议,在将近有半年的时间里,都处于这种认识,因为那个时候还没有接触实际案例,也没有广泛去网上了解关于SDN的技术文章,这是最原始的第一阶段。实际上,就算是现在很多人嘴里面说SDN不等于Openflow,但是潜意识里面还会自觉不自觉地将SDN往Openflow靠拢。为什么呢?因为Openflow是大多数人唯一看得到的具体化的SDN的实现形式(实际上当然还有别的实现形式,但是很多人并没有看到或者看到了也没意识到)

第二阶段。后来随着对各种SDN产品了解和网上诸多技术文章的阅读,逐渐意识到,SDN只是一种架构,一种思想,具体的实现多种多样,OpenFlow只是其中一种。我自己总结出SDN的三个本质属性,认为只要符合控制跟转发分离、有开放的编程接口、集中式的控制就可以认为是SDN。基于这样一种理念,某个产品或者方案,哪怕没有使用Openflow,只要它符合这三个原则,也可以认为是SDN。比如Juniper的Open Contrail,不支持Openflow,但是也是SDN。在很长一段时间内,我都坚定不移地认为这是最符合SDN思想的定义。包括我开始写《深度解析SDN》那本书的期间,也是这样认为。

第三阶段。后来突然看到阿里巴巴推出了自己的SDN方案,在2013 GITC会议期间,我详细听了阿里巴巴专家的介绍,发现他们这种SDN跟我理解中的控制跟转发分离并不相同,他们自己也说他们的SDN不是大家一般所理解中的SDN,他们的SDN是通过软件控制脚本,让这些脚本向远程的交换机发送命令(不清楚是NetConf还是直接的命令行)来控制交换机,交换机上仍然运行了传统的二三层协议,控制跟转发并没有分离,分离的是管理和控制。刚看到这个方案的时候,我马上就问自己,这算不算SDN?我反复思考了这个问题,他们为什么要这么做,而不是使用更彻底的控制跟转发分离?我个人理解是他们网络中已经有了大量传统的交换机,他们不可能把这些交换机都替换掉,但是又想通过软件自动化来代替手动操作,所以就采取了这样一种折衷的做法。这种做法有没有价值?肯定是有,否则他们不会这么干。那算不算SDN?我一时陷入了迷茫。几经思考之后,我认为,其实SDN并没有确切的定义,只要能实现网络自动化,能够满足特定场景的需求,哪怕这种做法对别的用户没有意义,它也应该算SDN。只是从通用的角度来看,这种SDN灵活性比不上控制与转发分离的那种架构,但是不可否认的是,它能解决特定客户特定场景的需求。认识到这一点之后,我在对外宣讲的PPT中,将SDN定义归为三类,第一类是狭义SDN(等同于Openflow),第二类是广义SDN(控制与转发分离),第三类是超广义SDN(管理与控制分离)。而且我认为,第二类定义中的SDN,是最通用,最有价值的一种。

第四阶段。在跟中国电信研究院的专家们一次交流中,我讲了我对SDN的看法之后,研究院的王老师向我提出了一个问题:从SDN的字面意思来看,根本看不出控制与转发分离的意思,你怎么看这个问题?虽然我当时噼里啪啦讲了一堆,回答了这个问题。但是回来之后,我又深入的思考了一下王老师的这个问题,很惭愧,这么一个明显的问题,我之前居然都没去思考过。思考的过程中,我突然有种醍醐灌顶的感觉,就像佛语经常说的那样:看山是山->看山不是山->看山还是山。无论是控制与转发分离,还是管理与控制分离其实都不是SDN的本质定义,SDN的本质定义就是软件定义网络,也就是说希望应用软件可以参与对网络的控制管理,满足上层业务需求,通过自动化业务部署简化网络运维,这是SDN的核心诉求,控制与转发分离不是。但为了满足这种核心诉求,不分离控制与转发,比较难以做到,至少是不灵活。换句话说,控制与转发分离只是为了满足SDN的核心诉求的一种手段,如果某些场景中有别的手段可以满足,那也可以,比如管理与控制分离。

SDN的深入思考(1):SDN的核心本质到底是什么?的更多相关文章

  1. SDN/NFV趋势思考点滴

    一.为什么控制器.网管OSS融合? 1.云化是趋势:传统网络架构管理规模达到瓶颈:微服务架构通过扩充多实例解决管理规模问题.2.NFV是趋势:设备运营商传统网元在云化,以软件形式提供VNF:3.运维体 ...

  2. 腾讯游戏DBA团队的发展自白

    BA这个岗位跟仓管员很像,就是每天给别人发点货,别人在你这儿放点货,DBA工作就是把货尽快给送出去或者让人家尽快放进来.当然,还有一份重要的工作,就是让仓库里摆放的货物尽可能整齐,这也是仓管员的本职工 ...

  3. 如何成为优秀的技术Leader

    技术主管,又叫技术经理,英文一般是 Tech Leader ,简称 TL.随着工作经验的不断积累,能力的不断提升,每个人都有机会成为 Team Leader. 然而在机会到来前,我们必须提前做好准备, ...

  4. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)

    深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编   ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...

  5. SDN概述:简介、工具、环境部署

    一.前言: 本文初步接触 SDN 的相关概念.需要依次完成下面几项任务: SDN 简介 SDN 工具 SDN 环境部署 推荐阅读 推荐阅读下述内容: Ethane 项目,openflow 的基础 op ...

  6. 《软件定义网络:SDN与OpenFlow解析》

    <软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...

  7. The Road to SDN: An Intellectual History of Programmable Networks

    文章名称:The Road to SDN: An Intellectual History of Programmable Networks 文章来源:Feamster N , Rexford J , ...

  8. 【论文】The Road to SDN: An Intellectual History of Programmable Networks

    目录 ABSTRACT: 1 Introduction: 2 The Road to SDN: 2.1 Active Networking Technology push and use pull I ...

  9. 解读SDN的东西、南北向接口

    北向接口(Northbound Interface)是为厂家或运营商进行接入和管理网络的接口,即向上提供的接口. 南向接口(Southbound Interface)是提供对其他厂家网元的管理功能,支 ...

随机推荐

  1. postman之签名接口校验

    有些接口在传参时,需要先对接口的参数进行数据签名加密,如pinter项目的中的签名接口 ,该接口参数如下: {"phoneNum":"123434"," ...

  2. JVM解毒——JVM与Java体系结构

    你是否也遇到过这些问题? 运行线上系统突然卡死,系统无法访问,甚至直接OOM 想解决线上JVM GC问题,但却无从下手 新项目上线,对各种JVM参数设置一脸懵逼,直接默认,然后就JJ了 每次面试都要重 ...

  3. 突破CRUD | 万能树工具类封装

    0.学完本文你或许可以收获 感受一个树工具从初始逐步优化完善的过程 树工具封装的设计思考与实现思路 最后收获一款拿来即用的树工具源代码 对于前端树组件有一定了解和使用过的同学可直接跳跃到第3章节开始. ...

  4. 详解SkipList跳跃链表【含代码】

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天继续介绍分布式系统当中常用的数据结构,今天要介绍的数据结构非常了不起,和之前介绍的布隆过滤器一样,是一个功能强大原理简单的数据结构.并且 ...

  5. 分区格式化大于2 TiB磁盘

    如果您要分区格式化一块大于2 TiB的作数据盘用的云盘(本文统一称为 大容量数据盘,小于2 TiB的数据盘统称为 小容量数据盘),您必须采用GPT分区形式.本文档描述了如何在不同的操作系统里分区格式化 ...

  6. apache主配置文件httpd.conf详解

    [root@lamp conf]# vi httpd.conf.bak 1 # 2 # This is the main Apache HTTP server configuration file. ...

  7. 【学习笔记】:JavaScript中的BOM对象

    JavaScript中的BOM对象 BOM(Browser Object Model):浏览器对象模型. BOM可用于对浏览器窗口进行访问,但BOM没有相关的标准,所以根据浏览器的不同,其中定义的对象 ...

  8. redis 5.0.7 源码阅读——压缩列表ziplist

    redis中压缩列表ziplist相关的文件为:ziplist.h与ziplist.c 压缩列表是redis专门开发出来为了节约内存的内存编码数据结构.源码中关于压缩列表介绍的注释也写得比较详细. 一 ...

  9. update mysql row (You can't specify target table 'x' for update in FROM clause)

    sql语句(update/delete都会出现此问题) update x set available_material_id = null where id not in (select id fro ...

  10. 一行代码解决MacBook Pro安装VSCode没有应用图标问题

    笔者今天升级了VSCode,安装完后发现Dock(程序坞)没有VSCode的图标了,导致切换应用非常不方便. 具体情况就像下面这张图,VSCode明明开着,但是在Dock找不到VSCode了. 解决办 ...