1 / 37

Project 3 和 软件定义的网络 (SDN)

Project 3 和 软件定义的网络 (SDN). 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw/ 内容取自 BERKELEY. 项目 3 介绍. Scott: 软件定义网络( SDN )背景 (40 分钟 ) Yahel: 项目概述 (10 分钟 ) Murphy: 软件架构 (10 分钟 ) TD and Kyriakos: 演示及细节 (15 分钟 ). 基本介绍. 想让大家对真实设备编程 Marwell 赠送了 250 台 PLUG 计算机,和 NUST (巴基斯坦)共享 对我们好一些,我们也会对你好

Download Presentation

Project 3 和 软件定义的网络 (SDN)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project 3和软件定义的网络 (SDN) 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw/ 内容取自BERKELEY

  2. 项目3介绍 • Scott: 软件定义网络(SDN)背景(40分钟) • Yahel: 项目概述 (10分钟) • Murphy: 软件架构 (10分钟) • TD and Kyriakos: 演示及细节 (15分钟)

  3. 基本介绍 • 想让大家对真实设备编程 • Marwell赠送了250台PLUG计算机,和NUST(巴基斯坦)共享 • 对我们好一些,我们也会对你好 • 你弄坏早一点,我们修好早一点 • 如果你们想用盒子做一些更好的事情,给我们一个提议,我们会让你们课完成后继续使用 • 不要弄丢盒子,我们需要退还 3

  4. SDN的看法 • SDN是网络的一个新的做法 • 不是关于架构:IP,TCP等 • But about design of network control(routing,TE) • 完整讨论:SDN由Nicira Network发明 • 基于Stanford,UCB,Princeton,CMU的早期工作 • 这不是Nicira宣传广告 • Nicira出售的产品只是碰巧使用了SDN • 它不卖SDN,也不标榜自己是SDN公司. 4

  5. SDN状况 • Open Networking Foundation 是标准化实体 • SDN有 49家公司支持 • 几乎所有都与之有关….. • 市场上有少量产品, 将来会更多 • 一些大公司在内部使用SDN • SDN在文字战中已经取胜, 真实的战争即客户是否接受还刚刚开始….

  6. 项目3与SDN是什么关系? • 项目3使用SDN技术 • 但SDN对你不可见(它也应该如此) • 你需要编写软件控制单个交换机 • 容易(原理上) • 类似的软件可以控制整个网络 • 将提供SDN的动机和背景材料 • 当然是没有细节 6

  7. 约定规则 • 由于时间短,就不问问题了 • 如果对我所说的不理解,让我停止. • 想深入了解, 课后再做 • 这里的目标不是深入,而是对SDN的一般直觉

  8. 两个主要定义 • 数据面: 处理和发送包 • 基于路由器和端点中的状态 • 如, IP, TCP, Ethernet等 • 快时标 (每个包) • 控制面: 在路由器中建立状态 • 确定包如何转发及在转发到何处 • 路由, 流量工程, 防火墙状态, … • 慢时标 (每个控制事件)

  9. 网络未来,和协议的过去

  10. Internet成功的关键: Layers Applications …built on… Reliable (or unreliable) transport …built on… Best-effort global packet delivery …built on… Best-effort local packet delivery …built on… Physical transfer of bits

  11. 分层为什么如此重要? • 将传输分解成基本部件 • 每层独立且兼容的创新 • 应用上空前的成功… • …但在学术上却失败

  12. 建立人造物, 而非一个学科 • “系统”中的其他领域: OS, DB, DS, etc. • 讲授基本原理 • 较易管理 • 继续演化 • 网络: • 讲授大量协议 • 其管理上的困难是有名的 • 演化非常慢

  13. 为什么网络落后了? • 网络过去很简单: Ethernet, IP, TCP…. • 新的控制需求导致极大复杂性 • 独立 VLANs, ACLs • 流量工程 MPLS, ECMP, Weights • 包处理  防火墙, NATs, middleboxes • 负载分析 深度包检查 (DPI) • ….. • 独立设计和布署机制 • 复杂的“控制面”设计, 原始功能 • 栈相对于优美的模块“数据面”

  14. 架构仍能工作! • 仅因为“我们” 管理复杂性的能力 • 这种管理复杂性的能力既是优点… • …也是缺点!

  15. 关于复杂性的简单故事 • ~1985: Don Norman visits Xerox PARC • 讨论用户界面和变速杆操作方法

  16. 他的观点是什么? • 管理复杂性的能力和提取简单性的能力是不一样的 • 当最初让系统能工作时…. • 关注管理复杂性 • 当让系统易用且易理解时 • 关注提取简单性 • 在提取简单性方面,将永远无法成功 • 如果不认识到其与管理复杂性的区别的话

  17. 作者的观点是什么? • 网络仍然关注于管理复杂性 • 在控制面很少强调提取简单性 • 没有意识到存在不同…. • 提取简单性建立了智能基础 • 有必要创立一个学科…. • 这也是网络落后的原因

  18. 更好的例子: 程序设计 • 机器语言: 没有抽象 • 掌控复杂性是关键 • 高级语言: OS 和其他抽象 • 文件系统, 虚拟内存, 抽象数据类型, ... • 现代语言: 更多抽象 • 面向对象, garbage collection,… 抽象是获取简单性的关键

  19. “抽象的力量” “Modularity based on abstraction is the way things get done基于抽象的模块化是成事之路” − Barbara Liskov 抽象接口  模块化 在网络中我们有什么抽象?

  20. 层是伟大的抽象 • 层仅处理数据面 • 没有强有力的控制面抽象! • 如何找到哪些控制面抽象? • 两步: 定义问题,然后分解它.

  21. 网络控制问题 • 计算每个物理设备的配置 • 例, 转发表, ACLs,… • 没有通信保障的管理 • 在给定网络层协议上的管理 只有喜欢复杂性的人发现这是合理的需求

  22. 程序设计类比 • 程序员必须做下面事情时怎么办: • 指定每个位存储在哪里 • 显式地处理所有内部通信错误 • 在一个程序设计语言中仅拥有有限的表达能力时 • 程序员将重新定义问题: • 定义内存的一个更高级别的抽象 • 建立在可靠通信抽象的基础上 • 使用一个更通用的语言 • 抽象将问题分割成易处理的片断 • 从而使程序员的任务更容易

  23. 从需求到抽象 没有通信保障的管理 需要对分布状态的抽象 2. 计算每个物理设备的配置 需要抽象以简化配置 3. 在给定网络层协议上的管理 需要对通用转发模型抽象 一旦所有这些抽象都做好了,控制机制就非常容易

  24. 整个内容归纳成一句话 • SDN由这样三个抽象精确地定义 • 分布, 转发, 配置 • SDN并非一个偶然的好想法… • 基本有效且通用 • SDN能帮助我们最终创建一个学科 • 抽象使得关于系统行为的推理成为可能 • 提供了使形式化成为可能的环境…. • 好吧, 这些抽象是什么?

  25. 1. 分布式状态抽象 • “状态分布下”保护了控制机制 • 同时允许访问这些状态 • 自然抽象: 全局网络视图 • 通过API提供的注解网络图(Annotated network graph) • 用“网络操作系统”实现 • 控制机制现在是使用API的程序 • 不再是分布式协议, 现在只是一个图算法 • 如使用 Dijkstra而非Bellman-Ford

  26. 软件定义网络 (SDN) 传统控制机制 交换机和/或路由器的网络 如 寻路, 访问控制 控制程序 全局网络视图 在邻居间运行分布式算法 Network OS

  27. 范型(Paradigm)的主要变化 • 不再设计分布式控制协议 • 设计一个分布式系统 (NOS) • 对所有控制功能都使用 • 现在只是定义一个中心化的控制函数 配置 = Function(view) • 理解的同学请举手

  28. 2. 规格说明抽象 • 控制程序应该表示所需的行为 • 它不应是负责实现物理网络架构行为 • 自然抽象: 网络的简化模型 • 仅有足够细节来指定目标的简单模型 • 需要一个新的共享控制层: • 将抽象配置映射到物理配置 • 这是“网络虚拟化”

  29. 简单示例: 访问控制 What Abstract Network Model Global Network View How

  30. 软件定义网络: 任务2 抽象网络模型 网络虚拟化 Control Program 全局网络视图 网络OS

  31. 此图意味着什么? • 编写简单程序来配置简单模型 • 配置仅仅是一种方式用来指定你想要的 • 例 • ACLs: 谁能和谁通话 • 孤立: 谁能听到我的广播 • 路由: 仅指定路由到你所关心的程度 • 一些通过卫星流, 另一些在固话网 • TE: 以服务质量形式指定,而非路由 • 虚拟化层“编译”这些需求 • 产生实验网络设备的合适配置 • NOS然后将这些设置转换成物理盒子

  32. 软件定义网络: 任务2 指定特性 控制程序 抽象网络模型 编译到拓朴 网络虚拟化 全局网络视图 网络OS 转换到交换机

  33. 两个使用示例 • 外扩路由器: • 抽象视图是唯一路由器 • 物理网络是一组互联的交换机 • 允许路由器“scale out, not up” • 在顶层使用标准路由协议 • 多租用(Multi-tenant)网络: • 每个租户控制其自己的“私有”网络 • 网络虚拟化层编译所有这些单个控制需求到单一的物理配置中 • 没有SDN很难完成, 有SDN很容易(在原理上)

  34. 3. 转发抽象 • 交换机有两个“大脑brains” • 管理CPU (聪明但很慢腾腾) • 转发ASIC (快速但哑dumb) • 对于两者需要一个转发抽象 • CPU 抽象可以是几乎任何事情 • ASIC 抽象更微秒一些: OpenFlow • OpenFlow: • 通过插入<header;action>项控制交换机 • 基本工作是让NOS远程访问转发表 • 在 OpenvSwitch中实例化

  35. SDN能工作吗? • 可扩展吗? Yes • 反应不很灵敏吗? No • 产生单点失效吗? No • 固有的安全性不高吗? No • 可增量部署吗? Yes

  36. SDN: 关心问题的清晰分离 • 控制程序: 在抽象模型上指定行为 • 由操作需求驱动 • 网络虚拟化: 抽象模型映射到全局视图 • 由规格抽象驱动 • NOS: 全局视图映射到物理交换机 • API: 由分布式状态抽象驱动 • 交换机/结构接口: 由转发抽象驱动

  37. 我们实现了模块化! • 模块化使独立创新成为可能 • 引起生态系统的繁荣 • 创新是SDN提议的真实价值 • SDN不允许你做不可能的事情 • 它只是让你非常容易地做可能的事情 • 这就是SDN是网络未来的原因…

More Related