通信网络与交换 1
7 软交换与 SDN 网络 软交换网络 SDN 网络 2
7.2 SDN 网络 3
SDN 的提出 提出背景 问题 : 现有的网络架构不适合 a) 复杂的控制模型 b) 快速的技术更新 原因 : 流量的控制和转发完全依赖于路由设备 解决方法 : a) 控制面和数据面分离 b) 将路由设备的转发功能抽象 SDN 的提出 SDN 是由美国斯坦福大学 clean slate 研究组提出的一种新型网络创新架构, 实现了网络流量的灵活控制, 为核心网络及应用的创新提供了良好的平台 2008 年 Nick McKeown 等人在 ACM SIGCOMM 发表题为 OpenFlow : Enabling Innovation in Campus Network 的论文, 提出了 OpenFlow 的概念随后 Nick 和他的团队在 OpenFlow 的基础上提出了 SDN 的概念
软件自定义网络 (SDN) 控制程序 控制程序 网络操作系统 特性 特性 操作系统 特性 特性 特性 特性 硬件 操作系统 操作系统 硬件 硬件 特性 特性 操作系统 硬件
软件自定义网络 (SDN) SDN 体系架构
软件自定义网络 (SDN) SDN 的实现方式 利用传统协议配置 (telnet, snmp, etc) 设备厂商私有协议开放的结构化配置协议 (NETCONF) 新交换架构及协议 OpenFlow
SDN 的部署 Stanford Computer Science Department Gates Building ~1,000 network users Stanford Center for Integrated Systems (EE) Paul Allen Building ~200 network users
SDN 的部署 谷歌公司于 2011 年底在其数据中心内部部署了世界上最大的基于 OpenFlow 的 SDN 广域网 利用 SDN 的管理方式,Google 公司对内提供了流量工程 (TE) 服务, 将其内部网络线路利用率从之前的最高水准 30%-40% 提升到了 95%
什么是 OpenFlow? OpenFlow 是一种标准, 是一个控制交换机行为的协议, 规定了处理数据包的规则模式 : 匹配数据包的包头行动 : 丢弃 转发 修改和发送给控制器计数器 : 字节的个数 数据包的个数 同时也是一种网络通信协议 OpenFlow 是交换机和控制器的交换标准发展状况在校园中得到创新, 目前被成功部署在斯坦福大学可以在我们的实验室被部署已有很多支持 OpenFlow 的软件硬件
什么是 OpenFlow? OpenFlow Switch Controller sw Secure Channel PC hw Flow Table Flow Table: 定义如何处理数据 Secure Channel: 连接交换机和控制器 OpenFlow Protocol: 交换机和控制器的交互标准
什么是流表? Rule Action Stats Flow Table Entry Packet + byte 计数 1. 转发数据包到指定端口 2. 封装并转发给控制器 3. 丢弃数据包 4. 按照传统交换机进行数据包的转发 Switch Port + mask MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport
控制器与交换机的交互过程 第一步 控制器 Flow Table
控制器与交换机的交互过程 第二步 控制器 如果 header=x, 将数据包传输到端口 4 如果 header=y, 更改 header=z, 并将数据传输到端口 5 和 6 如果 header=?, 将数据传回控制器 Flow Table
OpenFlow 的应用 动态访问控制 无缝迁移 OpenFlow 网络虚拟化 服务器负载均衡
动态访问控制 将数据流中第一个包转发至控制器控制器查询访问控制策略表控制器修改交换机流表, 转发或阻塞数据流
无缝迁移 控制器发现客户接入点发生变化修改各转发节点的流表并建立新路径
服务器负载均衡 根据所设定的负载均衡策略, 设置交换机流表
网络虚拟化
OpenFlow 软硬件支持情况 数据层 商用硬件 :HP NEC Cisco IBM Juniper 华为等 开源硬件 :NetFPGA 虚拟交换软件 :OpenvSwitch 控制层 NOX Beacon Floodlight Nettle ONIX POX 等开源控制器
部署基于 OpenFlow 的 SDN
实验室内平台实例 1 利用联想 ThinkServer RD530 系列服务器开发并部署实际 SDN 平台 平台细节 路由设备 ( 支持 OpenFlow 协议 ) SDN 控制器 服务端 客户端 IXIA 软硬件支持 ThinkServer RD530 系列服务 + 虚拟交换软件 ThinkServer RD530 系列服务器 + 开源控制器软件 POX 普通 PC 网络测试仪
搭建基于 OpenFlow 的 SDN 平台 联想 ThinkServer RD530 系列服务器 IXIA 网络测试仪 服务端 客户端 IXIA 网络测试仪
实验室内平台实例 2 利用 NetFPGA 开发并部署实际 SDN 平台
控制器 POX 在控制层采用开源软件 POX POX 是利用 Python 开发的一个开源控制器软件, 用来与 OpenFlow 交换机进行交互, 用以搭建 SDN( 软件定义网路 ) 平台 同时 POX 可以用来完成网络虚拟化 控制器设计等目的
Open vswitch Open vswitch Open vswitch 的含义顾名思义, 开放虚拟交换标准 具体点说,Open vswitch 是在开源的 Apache2.0 许可下的产品级质量的多层虚拟交换标准! 它旨在通过编程扩展, 使庞大的网络自动化 ( 配置 管理 维护 ), 同时还支持标准的管理接口和协议 总的来说, 它被设计为支持分布在多个物理服务器 与传统物理交换机相比优势 a) 配置更加灵活 ; 一台普通服务器可以配置出数十台甚至上百台虚拟交换机, 且端口数目可以灵活选择 b) 成本低廉, 通过虚拟交换机可以获得昂贵的普通交换机才能达到的性能
Open vswitch Open vswitch 的含义 即开放虚拟交换标准 具体点说,Open vswitch 是在开源的 Apache2.0 许可下的产品级质量的多层虚拟交换标准! 它旨在通过编程扩展, 使庞大的网络自动化 ( 配置 管理 维护 ), 同时还支持标准的管理接口和协议 总的来说, 它被设计为支持分布在多个物理服务器 Open vswitch 的优点 a)open vswitch 可以作为一个在管理程序上运行的软开关, 也可以作为开关控制堆栈 它已经被移植到多种虚拟化平台和交换芯片 b) 由于大部分的代码是使用平台独立的 C 写成, 所以可移植性非常好
Open vswitch Open vswitch 在网络数据包转发中的作用 如图所示, Open vswitch (OVS) 有 eth0 eth1 tap1 tap2 四个虚拟端口, 这个的创建是利用 OVS 的控制工具挂载到某个系统接口得到的 br0 是 OVS 创建的网桥
Cloud Computing
OpenStack OpenStack is a collection of open source software projects that can be collectively utilized to operate a cloud network infrastructure in order to provide IaaS.