SDN

SDN

SDN 定义

Software-defined networking (SDN) 技术是一种网络管理方法,它支持动态的、编程高效的网络配置,以改进网络性能和监控,使其相比传统网络管理,更像云计算。

SDN 旨在解决传统网络去中心化的复杂的静态体系结构。当前网络需要更多的灵活性,排查故障需要变得更加容易。SDN 试图通过将网络数据包的转发过程(转发平面 forwarding plane)与路由过程(控制平面 control plane)分离,将网络智能集中在一个网络组件中。

控制平面由一个或多个控制器组成,这些控制器被视为 SDN 网络的大脑,所有的网络智能都包含其中。

然而,网络智能集中在一个组件在安全性、可扩展性和弹性方面也有其自身的缺点。软件的多层次和处理过程会增加性能开销,会使得网络更加复杂。封包、解包需要大量的算力。物理网络也无法根据虚拟网络中的改变自动调整。

SDN 分析与总结

理想的网络架构应该具备计算机的灵活性,可适用于任何网络硬件,换句话说,应该有一种通用网络操作系统,在此平台下,硬件只负责收发网络数据包,由软件负责思考。

当今的硬件网络的改造难度已经到了荒谬的地步。一旦要对网络做出调整,就得就硬件进行物理性地重新安排。

网络虚拟化,用软件实现网络调整,底层的硬件引擎无需改动。其实就是把交换机和路由器里面的智能部分取出移到软件上,这样交换机就不需要知道太多东西。

网络设备制造商不允许对硬件进行重新编程,代码都是直接写进交换机或着路由器的。当然,他们这么做也是由原因的,用户买一个东西回来当然希望插上电就能用,另外网络公司也不希望因为用户修改而导致网络瘫痪。但是这种限制会给网络的扩容改造带来大问题。而对于业务规模不断扩大的大型互联网公司来说,这样的情况是常有的事。

Google 从2005年开始甚至开始自己造网络硬件,部分原因就是由于它需要对硬件能够有更多的控制。服务器之间需要高带宽的连接,同时网络还需要能够伸缩自如。传统的网络设备供应商做不到这一点,成本过高,系统太封闭,以 Google 的这种网络规模是其无法管理的。

SDN 追求的目标是更好地控制网络,即把网络控制模块化,对网络控制平面进行适当的软件抽象,使之可演进。

SDN 的第一个突破就是 OpenFlow,这是一种远程控制交换机和路由器的标准方式。可以理解为一种通用语言或指令集,有了它就可以编写网络的控制程序而无需为每一台路由器重写代码。OpenFlow 的大旗一扯,众人即集结在其鞍前马后,其中不乏业界的大佬,如 Google、HP、NEC、爱立信等,众多媒体都把它称为是将网络带出野蛮的中世纪的救主。

不过有一点比较麻烦,如果硬件供应商不把 OpenFlow 加入自己的设备的协议支持清单,那么 OpenFlow 就无法在交换机和路由器上使用,就只能叫好不叫座。从结构和标准的角度来看,OpenFlow 无疑是重要的,但是从架构的角度而言却并非如此,因为更重要的组件关心的是协调交换机的活动,以便行为能够连贯协调。

OpenFlow 的终极目标不是更好地管理网络硬件,而是创建一种无需关心硬件即可组网的软件架构,也就是说实现组建虚拟网络的能力。

虚拟层可以屏蔽底层硬件的复杂性。将网络的控制从网络硬件中脱离出来,交给虚拟的网络层处理。这个虚拟网络层加载在物理网络之上,在一个虚拟的空间重建整个网络。有了网络虚拟化,物理网络被泛化为网络能力池,正如服务器虚拟化把服务器设备转化为计算能力池。网络虚拟化使得 IP 连接大为简化。

参考

Last updated

Was this helpful?