本帖最后由 yeslab官方 于 2016-4-6 16:14 编辑
最美的季节遇见你 | 技术界网红:SDN 作者:鲁大师@YESLAB 新媒体界的网红-怕屁酱 读书界的网红-罗胖 王思聪女友雪梨是网红, 林更新女友王柳雯是网红, 罗志祥女友周扬青是网红, 而如此平凡的我却也接触了技术界的网红-SDN 你问我是否愿意把这个网红SDN 分享给大家 我的回答是:我愿意 SDN 全称:Software Defined Network。三个单词含义简单,组合在一起内涵十分丰富。 SDN的许多概念还需要进一步明确,因不同行业的人对它的概念都有不同的理解,造成了现在SDN众说纷纭的现状。 首先,Software是什么?是一个集中部署的网络控制器,还是OSI模型里提到的应用层? 再者,Defined Network就是指定义网络?对于搞网络的伙伴来说,交换机 、路由器、 防火墙组成的网络是那么的真实,难道还不够明确吗?这里大概可以理解为重新定义,也可以理解成是网络的配置和管理的方式。 带着疑惑,我们先来简单说下传统网络的方式。
传统的网络的功能就是二层的交换和三层路由,一个典型的网络构架: 1.Control Plane:控制层面,主要就是包含各种网络协议,二层的STP,三层的OSPF/EIGRP/BGP等等。 2.Data Plane:数据层面,主要就是设备用来转发的表项,二层的CAM表,三层的路由表等。
再来看下实际中会遇到的情况 无论是售前还是售后的工程师,在做方案设计或者方案实施部署的时候,都需要跟客户沟通"他的网络需求是什么?"。通俗的话说就是"你到底想让这些设备干啥?" 举个栗子 客户说:我们要新增一台物理服务器,做文件服务器,需要被XXX访问到。另外公司有规定:文件服务器不能存放电影等文件,需要控制每个用户占用的磁盘大小等等。 客户提出来这些需求,哪要怎么把这些一条一条具体的要求转换成网络对应的VLAN,ACL,服务器的各种权限和配额设置等等的呢? 把用户的业务需求转换成实际设备的具体配置,就是管理层面的工作。 在传统网络中,管理层面的工作就是先让工程师跟客户沟通具体的内容,然后再由工程师直接在设备上操作部署。 说好传统网络,我们回到SDN。
网络上常见的SDN解释是这样的,"斯坦福大学的研究组提出一种新型的网络构架,核心技术是OpenFlow通过将网络设备控制层面和数据层面里开来,从而实现了网络流量的灵活控制”。 参考Internet上的一些说法,发明SDN主要是为解决这个问题:网络里有多个厂家的网络设备,每家设备的配置管理都不一样,使用起来很不方便。(哭,这个工程师都能理解,但是咱们的想法是多学习各个厂家设备的配置方法,牛人的想法是搞SDN!!!)
由于有多个厂家的设备,每个厂家的设备都有自己设备的控制层面,为了统一的配置管理而设计了一个新的控制层面,然后这个新的控制层面需要一个标准来跟不同的设备来通信。这大概就是最初的SDN控制和数据层面分离以及OpenFlow协议的由来。
我们来看Openflow交换机的工作方式: 1.跟控制层面建立一个安全通信连接通道, 2.基于OpenFlow协议,接受控制层面推送的Flow Table,基于OpenFlow协议,向控制层面汇报工作。 3.按照Flow Table转发数据。
传统网络是由智能交换机组成,在各种路由交换协议的协调下,大家一起各干各的组成一张网络。 (想下前面的栗子,在工程师与客户之间的沟通,网络管理员和服务器管理员之间的沟通,因角色、专业领域不同,都会存在一些盲区,缺乏有效的沟通。) SDN由于有一个新的统一的控制层面,负责产生、维护、下发Flow Table给OpenFlow交换机,OpenFlow交换机就只是按领导的指示进行数据转发而已。整个网络是一个大的逻辑的设备,看起来是如此的有序,就像一个生物体一样,有一个大脑,然后身体的各个部分按大脑的指示工作。
介绍几种业界主流的SDN的认识 基于OpenFlow协议,控制层面跟数据层面分离就是SDN。 SDN是那种一个大脑+无数手脚的集中管理构架, 为了兼容传统网络,或者可以理解为SDN网络进化的一种变形,网络设备也可以保留传统的控制层面,统一的控制层面也可以用传统的路由交换协议对网络设备进行集中控制。
用可编程的管理层面实现业务的自动化部署, 随着服务器虚拟化的广泛应用和云计算的逐渐兴起,虚拟机成为企业网络和数据中心网络的主要使用者,虚拟机管理的很多高可用特性对网络提出了新的要求(比如VMware的HA vMotion DRS等特性),虚拟机随时可能产生、迁移、死亡,使用前面提到的传统管理层面来实现业务的部署,显然太“土”太“Low”了,完全不能满足业务的需求。 虚拟机使用的虚拟网络,比传统网络更加复杂,如何将业务的需求分别翻译成网络设备的语言和虚拟机服务器的语言呢? 答案是使用SDN,通过管理层面跟控制层面的分离,通过可编程的自动化部署代替手动配置部署,实现自动化的管理。
先叨逼叨这里,下回再来
|