为什么需要SDN?

1.网络业务发展趋势
2.传统网络碰到的问题
3.SDN如何来解决问题
4.SDN使用的网络
5.SDN案例

网络业务发展趋势
每一种新技术的出现都是因为现有业务需求发生了变化,所以学习一门新的技术,首先去了解业务发生了怎样的变化,同理,SDN的出现,也不外如此。
全球化竞争的压力迫使各个企业和组织要不断利用技术创建来提高自己的竞争力,这些技术包括但不限于服务器虚拟化,存储虚拟化,云计算以及配套的一些自动化工具和业务流程化工具,通过对这些工具的使用来加速产品推出时间和提高服务质量,从而扩大自己的竞争优势,这个过程中,IT技术不断演进,转变,来适应这种需求。
IT技术的这种演进和转发无论是从云服务提供商,电信运营商还是企业网来看都在显著地发生着。比如数据中心里面的多租户环境的创建,从应用的角度来看很好,很强大,但是不可否认的是,给早已不堪负重的传统网络架构带来了沉重的压力,传统的网络架构其实很难适应这种新的需求,分析影响数据中心/企业网的一些显著的变化趋势:
1、数据中心的合并。越来越多的企业将自己的网络都移到了公有云提供商处,可以认为越来越多的中小数据中心被合并为一个很大的数据中心,对于大数据中心而已,就意味着更多的设备,更复杂的布线和更多的网络流量。
2、服务器虚拟化;为了降低成本,充分利用资源,减少宕机事件,越来越多的数据中心里面部署了服务器虚拟化,大量的虚拟服务器和用于访问它们的虚拟网络被广泛地集成到了物理框架基础中。
在这里插入图片描述3、新的应用框架,很多组织大量部署基于服务和基于web的应用,这些应用促使数据中心要创建大量服务器到服务器之间的通信连接,而且要求不同应用之间要相互隔离,数据中心从传统的基于数据转发的模式转换到基于服务的递交模式,使得数据中心变得更加趋向于动态,复杂,传统的网络架构不再合适。
4、云计算的应用,要求企业能够用更加敏捷有效的技术来快速响应云计算业务需求,也对网络架构提出新的要求
5、BYOD,bring your own device,给现有企业无线网络的流量,安全,管理带来了压力。
总结:
网络业务的发展要求管理员能够管理越来越复杂的网络和设备,部署各种各样的复杂应用,以及应对越来越大的数据流量,那么如何能够方便地部署和管理这些应用,设备,网络,减少操作失误和操作时间,减少网络故障概率和恢复时间,就变得尤为重要。以上的变化趋势主要发生在数据中心,大型企业网内部,运营商,特别是数据中心。所以说是***数据中心激发了SDN兴起。***

传统网络碰到的问题
传统网络都是一个一个设备去管理的,而且管理员对网络中发生的很多事情都不可见,这是因为不同厂家的设备,很难有一个统一的管理平台。如果有了新的业务需求,要求对网络中的部分设备改动,可是设备对于管理员来说就是黑盒子,不仅设备本身是,就网络而言,转发路径都是通过动态协议计算的,很难清楚知道那个业务的报文走了哪条路径,以至于不知道哪里发生了拥塞,又是否有更优的路由存在,而且如果有,也很难把这个业务切换到更优的路径上,因为路径不是管理员指定的,而是协议计算的。这样一来,基于网络拓扑的自动化部署就更加无从谈起。
以下是管理员常见的问题:
在这里插入图片描述
这些问题带来的直接结果就是,网络中要部署一新业务的时候,通常历时很久,所以企业为了部署新业务,不得不经常做的一个事情就是升级网络。总而言之,传统网络架构在新的形势下,已经达到了能力的极限。

SDN如何解决问题
SDN解决问题的核心:
改变传统网络对数据流进行控制的方式,在传统网络中,报头从源转发到目的的过程中,报文转发行为是逐跳独立完成的,独立的进行配置,有自己特定的处理能力和配置方式,这种控制完全是分布式的。
在这里插入图片描述
而SDN是把每天设备的控制面从设备里面剥离出来,放到一个统一的外部服务器,由这个服务器通过统一的指令来集中管理转发路径上的所有设备,这个集中控制器知道所有必需的信息,而且这个控制器可以提供开放的API被上层应用程序通过编程控制,这样就可以消除大量手动配置的过程,添加管理员对全网的整体视图,提高业务部署的效率。
比如在网络虚拟化中,当要添加一个新的租户或者为一个组合增加一个新的虚拟机时,通过元计算管理平台,比如OpenStack或者cloudstack,只要管理员把该租户或者虚拟机的属性填写好,云计算管理平台会自动计算所有需要的资源和配置,对涉及到的网络资源部分,可以在内部通过调用controller的API,自动配置到需要配置的交换节点上,而没有SDN,那么云计算管理平台需要发现每台设备的能力和配置方式,针对不同类型的设备都要提供不同类型的编程接口,这种要求特殊设备特殊对待的方式,对一个统一平台来说是致命的且不可扩展的。
SDN的引入,还可以防止厂商锁定,这样因为业务需求对设备进行改造,就不用管设备属于哪个厂商,只要它支持SDN,可以编程,那就可以直接通过开放的南向接口来改变设备里面的转发行为。这也是很多公司比如Google,Facebook想引入SDN的动力之一。厂商锁定问题普遍存在于数据中心/运营商网络,不仅带来成本问题,更主要的是网络改造和创新能力受限,甚至有时候必须找厂商的技术人员来帮忙。有了SDN之后,管理员需要学习的知识可以大大减少,因为异构设备,动态协议和私有协议都可以大大减少。

SDN适用的网络
SDN起源于校园网络,发扬光大于数据中心/企业网,所以肯定适应于这些网络,特别是运用了虚拟化的网络。
同样在运营商网络中也同样适用,因为同样的问题存在于运营商网络中,国内运营商一直采取统一网管平台,也是为了降低操作维护成本。不用设备厂商各有各的网管,这就导致运营商在管理他们的网络的时候,需要在不同的网管平台之间切换,还有一个弊端就是,如果要在网络里面增加一个新的设备供应商,势必要引入一套新的管理平台,所以现在运营商对厂商锁定问题很严重,这也是运营商成立NFV组织所要去解决的问题之一。
无线网络,无论是企业自己的无线网络还是运营商构建的城市无线网络,本身就是一个中心控制的架构,多个AP受集中的AC控制,非常适用SDN。
安全区域,因为安全设备的转发行为都是基于策略的,通常需要静态控制,且全网统一协调,安全网络最讨厌动态的东西,动态不可控,所以安全领域非常适合SDN应用。
总结:
越是复杂的难以操作的网络,使用SDN来变革网络架构的需求应该越强烈。但是,复杂的网络,进行网络改革的难度和影响面大。而在现实世界里,最先进行SDN部署的,要么是新建的网络,要么是现有网络的问题实在是到了无法容忍的底部,比如虚拟化的数据中心。

SDN的案例
案例一:使用传统交换机的案例
如图图片,网络要连接客户的多个结点,从一个结点到另外一个结点要经过别的运营商的网络,经过运营商之前,需要在报文二层头加一个所经过的运营商分配给它们的一个svlan,所以这个动作要在源交换机上完成。对源交换机来说,必须根据报文的MAC地址打上不同的svlan。
在这里插入图片描述所有从SW1经过网络1发送SW2的报文,要打上svlan1,所有从SW1经过网络2给SW3的报文,要打上slvan2,而且加slvan的时候不能是基于出端口,因为从同一个端口出来的报文可能到不同站点,这就意味着SW1上,必须根据MAC地址(这个网络是大二层网络)来加svlan,我们知道传统的二三层交换机,一般是根据源端口或者根据源MAC地址,源IP来加vlan,根据这些来加vlan是由根据的,IEEE的vlan classification里面定义,所以很多交换机都支持,但是根据目的MAC地址来加vlan的,很多交换机都不支持。
案例使用的交换机也不例外,即便是芯片支持这样做,为用户去开发这个功能,是耗时耗力的,而且如果用的是大厂商的交换机,是不可能允许修改的。而如果采用后来的OpenFlow交换机来做,就很容易了。
比如OpenFlow V330,没有考虑任何IEEE定义的vlan classification的功能,可以说没有考虑任何特定的网络功能,但是就是支持,因为根据OpenFlow的定义,交换机可以根据目的Mac或者源Mac或者别的任何字段来进行匹配,一旦匹配到就可以做打vlan的动作。
这是一个典型的可以用来证明传统交换机灵活性不够,而SDN交换机可以通过软件编程来灵活满足不同客户需求的案例。

案例二:使用OpenFlow交换机的案例
客户是一个数据中心服务提供商,他们有多个数据中心通过内部线路互联在一起,有一个总的Internet入口,使用OpenFlow交换机辅助现有的网络来进行防止DDOS分布式拒绝服务攻击,在整个数据中心的入口路由器以及每个子数据中心入口的路由器上都挂了一个OpenFlow交换机作为旁路设备,当入侵分析检测服务器(数据中心入口路由器通过netflow将部分报文发送到检测服务器进行检测)检测到某些流是DDOS攻击力流之后,就会通过controller去配置路由器的BGP协议,让它把所有发往受害者设备的报文都转发到OpenFlow交换机上,同时去配置OpenFlow交换机,在OpenFlow交换机上将所有发过来的报文,根据源IP+目的IP甚至还有四层端口号来匹配,将攻击报文丢掉,非攻击报文的目的IP地址改掉,再送回路由器(改掉IP是为了防止路由器再把这个报文发送回来,形成环路),当路由器要把这个报文转发到目的网路的边界路由器的时候,边界路由器根据这个特意修改过的目的IP把报文送到OpenFlow交换机,OpenFlow交换机将报文的目的IP重新还原后再送回到其直连的边界路由器,边界路由器再把报文送到最终目的地。
在这里插入图片描述没有引入SDN之前,你们的防DDOS攻击方案是怎么样的?
解:传统的数据中心防止DDOS攻击方案是这样的:在数据中心入口设备上,通过netflow将数据流的一些统计数据和特征数据送到一个远程的服务器进行分析,服务器通过分析检测到某些报文属于DDOS攻击报文,然后将报文的特征告诉数据中心入口设备,该设备通过BGP协议将所有发往受害者设备的报文都映射到一条黑洞路由,导致这些报文都被丢掉,通过这种方式缓解攻击造成的影响。存在问题,被攻击的这段时间内,所有发往被攻击设备的报文都会被丢掉,不管是合法还是不合法的,导致一段时间内该设备不可达,这是一种纯粹基于目的IP的方案。而现在的做法不是直接把所有报文丢掉,而是送到一个数据清洗设备(OpenFlow交换机),这个设备将数据流清洗后,丢掉非法报文,把合法报文送回去,这种方案是基于目的ip+源ip的方案。

不能找一台普通的交换机ACL来达到目的吗?为什么必须用OpenFlow交换机?
解:使用ACL不仅效率低下而且是人工操作,会导致错误。而在大型网络中,存在多家厂商的设备,它们的命令行都是不同的,还有一个问题,使用ACL的话,把数据清洗掉再送回BGP router的时候,因为目的IP没有改,BGP router还会把它送回到清洗设备,行为环路bgp router——cleaner——bgp router……当然使用IP tunnel/GREtunnel/MPLS tunnel来避免这个环路问题,但是无论哪种方式都有它的问题。
所有这些方式都不如使用OpenFlow的方式简单明了,当然这里面的关键问题是OpenFlow交换机必须能够改写目的IP地址,传统交换机都没有这个能力。

已经有了成熟的方案防止DDOS攻击,为什么还要用SDN方式?
解:现有的方式有它们的问题,有一些商业的应用,比如arbor network’s peakflow,但是非常昂贵,使用SDN的这个方案最大亮点是在于有通用的编程接口,入侵检测应用程序检测到攻击后,只需要通知controller通过接口去配置OpenFlow交换机,下发静态就可以了,非常容易编程和控制,全自动化,并且不需要对现有的网络设备作任何改动,这一点非常重要,因为我们的网络中各个router能力差异比较大。

这是一个典型的案例,从中可以看到SDN的几个好处:
1、集中控制,入侵检测服务器检查到攻击之后,通过controller统一控制所有路由器和数据清洗设备(OpenFlow交换机)
2、灵活定义硬件转发行为,根据源+目的来过滤而不是仅仅目的,可以根据需要改写目的IP
3、通用性,不需要改变现有网络架构就可以部署新业务,并且可以防止厂商锁定(只要大家都支持OpenFlow的规定的功能)
4、自动化,完全可以通过应用层软件来自动化该业务的部署和进行
5、低成本,由于不需要特殊设备,不依赖特定厂家,可以使用通用设备,成本很低。

以上内容均摘自张卫峰《深度解析SDN》,自我感觉,这本书很适合想了解SDN的从事网络者以及学习网络的学生,不需要多深入的理论支撑,本书通俗易懂,很容易让更多人了解SDN。

发布了231 篇原创文章 · 获赞 222 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qinshangwy/article/details/105162286