【IT168 资讯】随着云计算的重心从架构转移到终端用户,SDN(软件定义网络)架构便成为网络领域的最新趋势。SDN和ADN在表面的共同之处给我们带来了很大问题,这些问题已经不仅仅停留于这两个架构是互补还是互相竞争?二者在何处交叉和重叠?SDN是超越了ADN还是抛弃了ADN?
ONF的三个特性
这些问题都是很自然地从ONF(Open Networking Foundation)提出的SDN抽象定义中衍生开来,而ONF也为SDN赋予了以下三个特性:
1. 控制和数据面板的作用减弱
2. 智能与陈述有逻辑
3. 基础网络架构从应用抽取
这三个特征曾一度是ADN的关键要素。对于SDN及其架构承诺的惊喜是因为它关注的网络层级居于其他堆栈之上,而其他堆栈则是ADN曾一直关注的。最近几个月,我们看到了ADN得到了重新定义,从“应用传输”转变为了“应用定义”网络。
这样的改变是一种巧合,但也正好将二者的共同之处和互补特性组合在了一起。
SDN面临的主要挑战
SDN的核心特征旨在应对下面三个挑战:
1. 现有网络协议的限制
◆VLAN阻碍增长的局限性
◆现有路由协议无法应付IP网络的变化
2. 无法管理的架构
◆ 操作的不可持续性
◆ 无法快速在网络层设备中将更改传播出去
3. 不灵活的架构
◆缺乏可编程限制来快速适应业务和操作需求
◆ 有限的可视性
这些挑战通常都存在于某些级别,但是虚拟化和云计算在最近几年的发展已经加剧了这些挑战,将其提升为了阻碍大量企业前行的绊脚石。
SDN提出要从网络中的数据面板中提取控件,组建一个以中心标准为基础的控制器,让此控制器管理大规模网络,以此解决上述问题。它将逻辑网络的拓扑结构和物理结构分离开,加速了网络虚拟化。网络虚拟化可以网络组件在虚拟机上作为软件运行的方式,也可以创建一个适应新标准(如VXLAN,STT,NVGRE和QinQ)的虚拟覆盖网络。SDN缓解了大规模网络使用中央控制面板,策略引擎(作为一套网络服务部署)和实施点的复杂性。
从另一方面说,ADN解决了应用层(传统OSI堆栈的Layer 4-7)的类似问题:它减弱了控制和数据面板,使用一个基于中央标准的控制器,可以在最动态的网络环境中管理应用流量。ADN从逻辑上和物理上减少了终端用户,可以让各种进程和策略实施在网络的自然策略点发生:应用传输控制器。SDN利用中央控制器在网络中管理和传播策略,ADN使用相同的方式在应用架构中控制模式管理和部署策略。
程序化是用于SDN和ADN的价值主张。程序化改变数据包或应用级路由对于确保可用性和非常好的性能以及安全性尤为关键。程序化确保了适应策略所需的灵活性,这样才能快速对事件作出响应,如零日漏洞,硬件或软件故障以及网络过量订阅。
${PageNumber}
SDN和ADN在数据中心架构中的作用
在SDN网络中可以通过检查基础数据流了解为什么架构可以处在堆栈的较高层次。在使用OpenFlow等协议程式化更新交换光纤的SDN网络中,数据包要匹配转发表格。如果不匹配,交换机会询问控制器。控制器执行的运算法则会根据当前网络状况决定数据包应导向何处。控制器会更新交换机,数据包会继续流动。控制器还会对网络监控进行更新。如果有节点移动,出现故障或是反应慢,控制会更新受影响的交换机,这样数据包才可以流向正确路径以便缓解性能上的不足。
在ADN中,控制器的作用差不多,但是却是在应用层执行(Layer4-7)。当收到连接请求后,ADN控制器可以确定在用户和所需应用或服务之间是否存在对话。如果匹配,请求通过现有对话信息转发。如果不匹配,控制器会执行运算法则,再根据配置的逻辑和策略确定请求该转向何处。决策一旦做出,对话表格就会被更新并创立连接。
这两种数据流尽管发送在网络堆栈的不同层级,但显然是类似的。我们很容易就可以看到SDN数据流是如何应用到堆栈的更高层级。但是这里忽略了架构技术基础的现实问题。SDN的设计目的是实现无状态且以数据包为基础。其路由和交换的决定是在一个极不稳定的环境中对数据包进行一一匹配。为了解决变化过频的问题,其核心网络信息缓存要在短暂的间隔时间里刷新词条。这样SDN就可以快速对更改的情境做出调整以确保所选传输路径始终为非常好的。它还可以确保网络要素的透明度。在终端用户察觉不到的情况下,数据包会被改道。
在ADN中,某个应用和某项服务的决定通常是传输(TCP/UDP)或应用层(HTTP)数据。这种数据需要集合多个数据包,因此一个ADN控制器必须缓冲数据直到能确定其有效性——启用网络部署和应用层安全功能——以及它的最终目的地。收集数据包和保持对话状态表格的需求并不是设计SDN的时需要的考量。SDN所需执行较高网络层级功能的内存量和网络处理消除了商业化交换硬件中心到SDN架构的效益。
此外,SDN的性能非常依赖于在交换架构中匹配大量数据包且不用对SDN控制器作出询问的能力。较高的网络层级对话是不可避免的,它不仅基于网络层数据,而且还基于Layer 4和Layer 7数据,如,每个请求的源端口和终端口都不一样。将ADN方法应用到数据流量中会要求每个请求都询问控制器,而这些没有纳入架构设计。
对于网络型动态系统与应用型动态系统两种系统的需求存在根本差异,如果两个架构无法交替变换,那使用难度就会增加。两种系统都要解决不同网络层级的相同挑战,且不能影响处理流量的特殊要求。
SDN和ADN会合之处
应用层(Layers 4-7)的挑战——可用性,优化和安全——现在不能通过SDN方案来解决。ADN方案位于网络的策略点,在这里它们对应用通过网络技术传输到终端用户的方式进行控制和管理,如SDN,就关注网络流量如何传输给网络架构要素。数据包的策略执行存在局限性。应用流量由多个数据包组成,而且必须集合这些数据包为较高网络层级功能提供价值,如负载平衡,网络和应用安全以及访问控制。数据包在设备端的集合与SDN的设计理念有悖,后者是按照单个数据包操作而非单个应用流。
ADN方案与网络架构的互动就像是与终端用户的应用和服务互动。ADN控制器会转换终端用户的操作,连接指向型数据流通过交换架构到达节点指向型的对话,对SDN而言,这在高度虚拟化和云计算环境中已经比较成熟。这类环境的网络和应用拓扑结构中发生的改变量需要一种方案,而这是SDN欣然提供的。ADN必须从传统网络过渡到SDN。在两个架构的衔接处,应用层的请求要映射到高度动态网络域的要素,它最终会满足这个请求。
ADN会为连接终端用户和应用负责。两种技术肯定会出现融合——这种融合已经在一些会议的互操作性论调中有所提及。ADN和SDN的职责也很明确。前者侧重如何传输应用,后者负责数据包的移动方式。这两种技术一起使用可以减轻整个网络堆栈中网络管理和应用传输的复杂性。