Control and Data Plane Seperation

课程地址

Overview

今天正式地学习一个控制与数据平面分离。学习完本节,应该要掌握何为控制和数据平面,了解它们的功能以及好处,并且能够说出它们之间的差异。控制与数据平面的分离给我们带来的机遇和挑战,给我们带来哪些机遇?解决这些挑战的具体方法又是什么呢?

What are the Control and Data Plane?

控制平面就是控制转发行为的逻辑。我的理解是控制平面不一定是一个“平台”之类的东西,例如各种路由协议就是最典型的控制平面,因为路由协议直接操作路由,路由就是控制转发行为的。其他的例子还包括上节课提到的 Firewalls 这类的 middle box 网络配置。还有一类叫做负载平衡器(load balancer)的配置,也是一种控制平面。你也可以认为控制平面就是网络的大脑。

  • Data Plane:

    • 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 就在提供这种功能的供应商名单中。

以上就是两个控制与数据平面分离的两个实例。

Software Defined Networking(Week 3, part 1)的更多相关文章

  1. Software Defined Networking(Week 1)

    前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...

  2. Software Defined Networking For Dummies, Cisco Special Edition

    从接触SDN开始,不论是硬件还是软件,一直都是从具体的点开始,慢慢的勾勒出自己认为的SDN的样子,相信读完这本思科出的关于SDN的书会对其有新的认识 这本书的名字就是Software Defined ...

  3. Improving Network Management with Software Defined Networking

    Name of article:Improving Network Management with  Software Defined Networking Origin of the article ...

  4. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  5. Software Defined Networking(Week 2, part 2)

    History of SDN 1.3 - 1.4 课程地址 Network Virtualization 网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想.我们先讨论何为网络 ...

  6. Software Defined Networking(Week 2, part 1)

    History of SDN 1.1 - 1.2 本节讨论从上世纪八十年代时到现在为止出现的SDN的思想和发展历史.了解历史,可以明白技术后面的成因以及一些原则,并从架构上去大致掌握.了解一些主旨. ...

  7. A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges

    将机器学习用到SDN中的综述:研究的问题和挑战 从流量分类.路由优化.服务质量(Qos)/体验质量(QoE)预测.资源管理和安全性的角度,回顾了机器学习算法如何应用于SDN领域. 相关知识 在SDN中 ...

  8. Software Defined Networking(Week 2, part 3)

    Control of Packet-switch Network 我们已经讨论过中心控制网络的原理,但主要是以电话网络做模型的.现在我们来看看对于分组交换网络的控制是如何改进的. Why Separa ...

  9. RFIDler - An open source Software Defined RFID Reader/Writer/Emulator

    https://www.kickstarter.com/projects/1708444109/rfidler-a-software-defined-rfid-reader-writer-emul h ...

随机推荐

  1. echarts显示X轴最后一个lable

    代码: xAxis: [ { axisLabel: { showMaxLabel: true } } ]

  2. 在Mac检查安装的.net core 版本

    在 Termianl which dotnet #查看dotnetcore的runtime路径 dotnet #dotnet 命令行工具 -h 查看帮助 #常用命令 # --info Display ...

  3. JSON解析工具——Jackson的简单使用

    什么是Jackson 可以轻松实现Java对象与JSON字符串的转换 准备工作:导包 Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jac ...

  4. 2017-2018-1 20155234 实验三 实时系统及mypwd实现

    2017-2018-1 20155234实验三实时系统及mypwd实现 实验三-并发程序-1 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号 ...

  5. mfc 类的const对象

    知识点 类的const对象 const类的成员函数 一. 类的const对象 const 意谓着只读 意谓着所标记的类成员变量不成出现在=号的左边. 构造函数除外. ,,); //比如在存放出生日期的 ...

  6. P4048 [JSOI2010]冷冻波

    出题人你tm搞笑呢,冰霜新星翻成冷冻波,而且tm就只能打一只小精灵???巫妖王都想来砍死你 首先要搞出每个巫妖能不能打到每一个小精灵,然后二分时间,就能算出每个巫妖可以打的次数,网络流check即可 ...

  7. loj2230 「BJOI2014」大融合

    LCT裸题 我LCT学傻了这题明显可以树剖我不会树剖了 本来的siz是Splay上的子树和,并没有什么用. 所以每个点维护虚子树和和子树和 虚子树和即虚边连接的子树和,且只有在access和link操 ...

  8. docker创建image方法以及常用指令介绍

    docker -help    # 显示帮助 docker COMMAND -help    # 帮助信息更详细 docker start “容器名称”    # 启动一个或多个容器 docker s ...

  9. 一款好看的Sublime Text浅色主题:Ayu大作

    上一篇分享的VS Code的文中,界面也是浅色主题,也是Ayu作品.下面看一下Sublime Text中的Ayu浅色主题 不错吧. 如何下载? 首选项——插件控制——安装插件或者ctrl+shift+ ...

  10. 使用Fiddler进行APP弱网测试

    一.安装Fiddler 网上说要先安装.NET Framwork4,应该是由于本机已装,所以在安装Fiddler时并没有相关提示. Fiddler安装包:https://www.telerik.com ...