2.1 引言
控制和数据平面的分离,的确是SDN最基本的原则之一,但也是较富争议性的一个原则。尽管这不是一个新的概念,但用当前的思考方式可以对这个传统的想法有一些新的考量:控制平面究竟可以与数据平面相距多远?需要多少实例才能满足对故障的恢复能力和高可用性的要求?是否控制平面可以实际上百分之百地放置在数据平面之外更远的位置,而不是仅相距几英寸的距离处?这些问题大家都激烈地争论过。面对这些想法时,作者更乐意将它们看作是各种不同可能性的连续区,即从最简单的、传统的完全分布式的控制平面,到半集中式的或逻辑上集中式的控制平面,最终到严格的集中式控制平面。图2-1说明了可供网络管理员选择的全谱系选项,以及它们的优缺点。
图2-1:控制平面与数据平面分布式选项的谱系图
演进还是革命
在回答控制平面放置位置问题时,该谱系图的最左端是对革命方式的支持,它提出了将网络的控制平面完全采用集中式这样一种推倒重来的全新方案。在大多数情况下,由于规模或高可用性的要求,使得严格集中式的方案很难实现,对这种极端方案的尝试实际上最终演化为逻辑上集中式的方案。在这一模型中,设备上并不具备控制平面的功能,这种模型中的设备都是“傻”的(尽管速度很快)交换设备,被位于远端的集中式控制平面完全地控制。稍后,本章会探讨这些细节,并且说明为什么这种模型通常最适用于新部署的网络,而不是现有的网络。
在该谱系图的中间是对演进方式的支持,它着眼于一般定义下的网络域。在这里,集中式控制的形式固然带来了一些新功能,但并不能取代原有的所有功能,也不能完全地将控制平面从设备上移除。这种模式通常能以某种形式和分布式的控制平面一起工作,这意味着设备还保留了一些传统的控制平面功能(如ARP处理或MAC地址学习),同时允许一个集中式的控制器来操控其他功能,即采用集中式操作范式更方便的那些功能。这种观点往往被当作混合操作或“承载/叠加”(underlay/overlay)的概念,即分布式控制平面作为承载,而集中式控制平面在利用承载网进行网络传输的基础上,在逻辑上叠加新的功能。
最后,在谱系图的最右端就是传统的控制平面的用法:完全彻底的分布式。在这个模型中,每个设备除了拥有至少一个数据平面以外,还要拥有一个完整的控制平面。而且,在该模型中每一个独立的控制平面必须与其他控制平面合作,以支持一个整体的、可运行的网络。显然这个方案并没有新意,既不是革命性的,也不是演进性的。
本章不会向读者呈现关于控制/数据平面设计或部署方面的全面讨论,因为这种全面讨论始终会贯穿全书。因此,本章会讨论所涉及的SDN问题的一般性概念,并尽量为读者提供一些参考文献,以供读者进行更加深入的了解。本章将探讨前面介绍的控制平面分布与操作谱系图上每种方式在过去与当今的各种示例,包括关于控制的集中式、混合式和完全分布式操作。