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. HDFS命令实现分析

    HDFS命令概述 HDFS命令涉及两类,一类是hadoop命令,一类是hdfs命令,功能也分为两类,第一类是HDFS文件操作命令,第二类是HDFS管理命令. 二者都是shell命令,真正的命令只有ha ...

  2. VS2010调试和头文件路径设置

    1:VS2010 release 调试C/C++ -> 常规 -> 调试信息格式, 修改为程序数据库(/Zi)C/C++ ->优化 -> 优化,修改为已禁用(/Od)链接器 - ...

  3. GATK --- wdl 语言

    GATK的pipeline使用WDL进行编写 WDL是一种流程管理语言,内置的支持并行,适合编写pipeline 运行wdl脚本需要两步:第一步编辑参数列表对应的json文件,第二步直接运行Cromw ...

  4. const限定符用法汇总

    const限定符限定变量的类型是一个常量,对象一旦创建后其值就无法改变,所以const对象必须初始化. 初始化 const int i = get_size(); //运行时初始化 const int ...

  5. zabbix3.4 监控路由器报错No Such Instance currently exists at this OID

    zabbix 3.4 监控报错No Such Instance currently exists at this OID 1.首先查看监控的路由器的监控项是否报警 监控主机报错出现这个 No Such ...

  6. 结对测试 vs 随机测试

    在接口测试过程中,最关键的是对参数的各种情况进行测试. 随机测试是指随机选择一些参数值来测. 结对测试是指parewise算法生成较高“性价比”的组合情况来测. 随机测试存在的问题 随机,这两个字本身 ...

  7. Python里的类和对象简介

    ---恢复内容开始--- Python里的类  对象=属性+方法: 对象的属性主要是指主要的特征和参量,而方法主要是指函数: 类是一个具有一定特征和方法的集合,而对象是类的一个:类和对象的关系就如同模 ...

  8. 【LeetCode算法题库】Day3:Reverse Integer & String to Integer (atoi) & Palindrome Number

    [Q7]  把数倒过来 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Outpu ...

  9. tomcat 项目的搭建-【Linux】

  10. 服务发现与消费 --> Spring Cloud Eureka

    在上两篇文章中,我们已经搭建起微服务架构中的核心组件 服务注册 中心(包括单节点模式和高可用模式).同时, 还对上一章中实现的Spring Boot入门程序 做了改造. 通过简单的配置,使该程序注册到 ...