Control and Data Plane Seperation
Overview
今天正式地学习一个控制与数据平面分离。学习完本节,应该要掌握何为控制和数据平面,了解它们的功能以及好处,并且能够说出它们之间的差异。控制与数据平面的分离给我们带来的机遇和挑战,给我们带来哪些机遇?解决这些挑战的具体方法又是什么呢?
What are the Control and Data Plane?
-
- Logic for Controlling forwarding behavior.
控制平面就是控制转发行为的逻辑。我的理解是控制平面不一定是一个“平台”之类的东西,例如各种路由协议就是最典型的控制平面,因为路由协议直接操作路由,路由就是控制转发行为的。其他的例子还包括上节课提到的 Firewalls 这类的 middle box 网络配置。还有一类叫做负载平衡器(load balancer)的配置,也是一种控制平面。你也可以认为控制平面就是网络的大脑。
-
- Forwarding traffic according to control logic.
数据平面就是依照控制逻辑来进行转发行为。就是网络中的 packet 通过一些信息确定一个路径,到达合适的目的地。在之前,把数据平面配置在硬件上比较常见,现在越来越多地使用软件来定义可编程的数据平面。
Why Separate the Control and Data Plane?
之前讲过,这里做点补充。
分离的控制和数据平面第一个有利于它们隔离进行创新迭代。第二个在配置新网络、新的软硬件时有好处。比方说如果要为网络配置新的路由器或者交换机时,因为控制平面和数据平面分离,配置时不会受到硬件上跑的软件的能力的限制。
有利于网络管理者从一个更高的层次,使用高阶软件(high-order softwares)去控制网络。使得网络管理者很容易推断网络本身的行为,也方便了查错。
Where Separation helps?
这种思想给我们带来了哪些好处,又在哪些方面帮助到了我们?这里会涉及数据中心管理、路由控制、企业网络安全这几个方面,还有一个方面是能够使得通过分离控制和数据平面来让用于研究的网络和成品网络和谐共存在同一个基础设施上(allowing research network to coexist with production network)(有点儿网络虚拟化的味道)。
Data Center
控制和数据平面分离在数据中心领域方面的应用是相当广的。
在管理数据中心时,由于流量需求变化(traffic demands shift),要在物理位置上移动一个虚拟机是非常常见的。这里举了雅虎做例子,雅虎的数据中心中有两万台服务器,四十万台虚拟机,这些巨量的虚拟机在网络拓扑结构下要互相通信,任意两两虚拟机之间需要 1024 个link才能满足需求。
当你要移动一台虚拟机,又要保证网络的一致性、完整性、稳定性,真是一件相当难的事情。
雅虎的做法是:对交换机进行编程,并引入中心控制器,用控制器来更新网络状态。
Program each of the network switches from a central database, so as virtual machines migrate that central controller knows about the migration and can update the switch state accordingly, so the network path update in accordence with the VM migration.
Filtering Attack Traffic
Dos 攻击,全称为 Denial-of-service_attack,拒绝服务攻击。是一种很常见的攻击方式,攻击者发送大量无用请求,耗尽网络资源,使得网络不能满足正常功能和其他用户的需求而瘫痪。
wiki - perpetrator seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host connected to the Internet. Denial of service is typically accomplished by flooding the targeted machine or resource with superfluous requests in an attempt to overload systems and prevent some or all legitimate requests from being fulfilled.
要对Dos攻击有比较好的防御效果,需要下面几个机制:攻击侦查、流量分级、响应工具,来阻止恶意的流量,让正常访问的流量通过。
wiki #Defense techniques - Defensive responses to denial-of-service attacks typically involve the use of a combination of attack detection, traffic classification and, aiming to block traffic that they identify as illegitimate and allow traffic that they identify as legitimate.
在传统网络中,对这种攻击可能真的没有太好的办法。比方说,很难在离攻击源较劲的地方就消除威胁。wiki中有提到几个防御手段,Firewall 就是一种。但也有为难的地方,如果某一端口遭受攻击,Firewall 也不能全部断开这个端口的流量输入,因为这会阻挡合法用户的请求。还有一点就是 Firewall 在网络的架构中算是比较深的级别,在 Firewall 搞定攻击威胁之前,也许已经有很多路由器遭攻击瘫痪。
... firewalls may be too deep in the network hierarchy, with routers being adversely affected before the traffic gets to the firewall.
也有别的方法,比方说配置额外的前端硬件,来侦测流量,检查是否合法。或者配置软件来完成这些工作。但也有缺点,甚至有这样的恶意攻击方式:
Intrusion prevention systems (IPS) are effective if the attacks have signatures associated with them. However, the trend among the attacks is to have legitimate content but bad intent. Intrusion-prevention systems which work on content recognition cannot block behavior-based DoS attacks.
有的 Dos 攻击不只是发送大量请求来耗尽网络资源。它经过精心伪装,内容看似合法,实则不怀好意,是想进网络里搞坏事的(behavior-based DoS attacks)。IPS对此无能为力。。。
为此,AT&T 的策略是将转发流量的数据平面和控制流量去向的控制平面分离。AT&T 配置了一个 RCP (route control platform)。RCP 会对遭受 Dos 攻击的 point 给予一个 null route(怎么翻译好呢,我想叫它假路由),不会让攻击流量真正地产生攻击效果。这有点儿像黑洞路由,也可以说是 Upstream filtering,上游过滤。 AT&T 就在提供这种功能的供应商名单中。
以上就是两个控制与数据平面分离的两个实例。