瞻博网络的Bob Muglia最近发表了一篇名为《解码SDN》的帖子,其中他提出了“四层网络架构”的说法。总的来说,这是对SDN概念的一种概括。但似乎还缺了点什么 ——它没有解释SDN如何为用户带来敏捷性以及在哪些方面可以提供敏捷性。下面让我们先谈谈敏捷性的一些基本定义。
敏捷性
1.快速发展的力量;灵敏:操作需要敏捷性
瞻博网络Bob Mugliad对于四层网络技术的描述,简单而言就是满足敏捷性的需求。毕竟,把控件和结合了标准化管理层的数据层隔离开来可以增强网络的敏捷性。
但是敏捷性不仅仅是快速更改转发列表而已,它还要对操作情况与商业情况作出响应,要能够部署新功能。有必要的话,要在网络中实现创新型商业理念,也就是要把商业理念传达给客户,员工或合作伙伴。
而Bob的阐述中没有涉及网络的可编程性质,也就是说,不仅用编程的方式修改配置,还要用编程的方式更改网络的行为。
网络技术的四个层面
在每个网络和安全设备内部——每个交换机,路由和防火墙——你都可以把软件分离成四个层级。随着我们向SDN的逐步过渡,我们需要清楚了解这几个层级并将其整齐分离。这对于创建下一代扩展性较强的网络而言非常重要。
转发:最底部的转发层要承担着发送网络数据包的任务。
控制:如果转发层是网络的手臂,那么控制就是网络的大脑。控制层了解网络的拓扑结构,可以决定网络流量的走向。
服务:有时候网络流量需要更多加工,而这就是服务层要做的事情。并非所有的网络服务都具备服务层——在简单的交换机中就找不到这一层。但是,对许多路由器和防火墙而言,服务层需要做深度思考,并对网络数据完成复杂操作,而这些操作是转发硬件无法完成的。服务层级是防火墙阻止网络犯罪分子的地方,也是强制部署主控制的地方。
管理:和所有电脑一样,网络设备需要进行配置和管理。管理层级为网络设备与网络其余部件的协调提供了基本指导。
对于Bob的网络层级表我们进行了修改和扩展,修改后就如下展示了。
首先,笔者认为管理不应该是网络层级的一个部分。从技术架构和部署的实际情况出发,把管理从网络层级中分离出来是确保持续访问设备(访问失败过或是失控) 的一种最佳尝试。笔者不认为Bob的原意是暗示管理层曾以这种方式与网络层相连,但是用向东或向西的管理方式绘制的表格似乎更利于表现真正的网络状况,因此笔者把它移到了旁边,对其进行扩展,使其不仅覆盖控制层还覆盖了控制层。
服务框架
SDN最核心的必要条件之一就是用编程的方式通过即插型设备,插件或应用等扩展网络功能。但我们应该把这个层级视为一种服务框架,在这之上,可以部署新服务——无论是通过即插型设备还是直接编程式接口。可扩展的框架中有一套可供使用的基本网络服务。而这也是其附加值所在的地方,是部署新功能的地方也可以实现相同网络设备部署不同功能。应该把相同的设备提炼为常用网络服务套组,但仍支持在一个设备上支持防火墙,另一个支持应用加速,还有一个支持负载平衡。
这一概念源自开发世界的平台理念。程序员没有编写自己的网络堆栈或是应用传输(HTTP)堆栈。他们在常规框架之上开发功能以修改网络行为,这样就可以在相同的常规平台上把安全的银行应用作为完全开放的图片共享应用部署。这种平台通过相同的方式部署,管理,配置和操作,但是应用的配置文件大不一样。
相同的理念必须应用到网络和SDN方案中。把控制层和转发层分开并不足以满足敏捷性的需求。真正的敏捷性要加入可以扩展功能却无需为核心堆栈支付额外运营经费的服务平台。