SDN软件定义网络 学习笔记(4)--数据平面

  • 1. 简介
  • 2. SDN数据平面架构
    • 2.1 传统网络交换设备架构
    • 2.2 SDN交换设备架构
    • 2.3 数据平面架构图
  • 3. SDN芯片与交换机
    • 3.1 SDN芯片
    • 3.2 SDN硬件交换机
    • 3.3 SDN软件交换机
  • 参考资料

1. 简介

数据平面是执行网络数据包处理的实体,数据平面的交换设备专注于高速转发数据分组,而转发的决策由控制平面的控制器通过南向接口协议统一分发。

2. SDN数据平面架构

2.1 传统网络交换设备架构

交换机可以识别数据分组中的 MAC 地址,并基于 MAC 地址来转发数据分组;路由器可以识别数据分组中的 IP 地址,并基于 IP 地址来转发数据分组和实现路由。

如下图所示,传统网络交换设备的功能架构主要由控制平面和数据平面组成,它们在物理上是紧密耦合的,逻辑上是相互分离的。

控制平面通过网络操作系统和底层软件,生成、维护交换设备内部的转发表,并实现对网络的配置管理。数据平面通过硬件转发芯片对数据分组进行高速转发,基本功能主要包括转发决策、背板转发以及输出链路调度等几个方面。

  • 转发决策
           交换设备的各种转发行为均和协议相关,工作原理都是在端口收到数据分组时,将数据分组中的目的地址与设备自身存储的MAC 地址表或路由表进行匹配,从而确定数据分组转发的目的端口。表项匹配的工作是由交换设备中的交换芯片来实现的。
  • 背板转发
           交换机通过背板把各个端口连接起来,数据分组经转发决策后,由背板从入端口转发到目的端口。
           交换机背板的交换结构可以分为共享总线结构、共享内存结构和 CrossBar 结构。
  • 输出链路调度
           各个端口针对接收线路和发送线路各有一个缓冲队列,当数据分组发往交换机时,发出的数据分组暂存在交换机的接收队列中,然后等待下一步处理。

总结:传统网络的数据平面和控制平面物理上是完全紧密耦合的,控制平面实现网络的控制逻辑,数据平面执行网络控制逻辑,比如,解析包头和转发数据包到某些端口。但紧密耦合导致设备升级时相互依赖,用户无法自行管理和调用网络设备,网络相对僵化,不够灵活。

2.2 SDN交换设备架构

SDN 将交换设备的数据平面与控制平面完全解耦,所有数据分组的控制策略由远端控制器通过南向接口协议下发,网络的配置管理也同样由控制器完成。

如下图所示,SDN换设备的基本功能仍然包括转发决策、背板转发、输出链路调度,但在功能的具体实现上与传统网络的交换设备有所不同。

  • 转发决策
           以OpenFlow协议为例,数据分组进入 SDN 交换机后,先与流表进行匹配查找,若与其中一个表项匹配成功则执行相应处理动作,若无匹配项则上交控制器,由其决定处理决策。这些流程依旧需要依赖网络设备内的交换芯片实现。
  • 背板转发
           就目前的网络设备来说,设备的速率瓶颈点主要还是在交换芯片上,背板提供满足要求的交换速率并不是太大问题。
  • 输出链路调度
           正常情况下,数据分组发往交换机某一端口或准备从交换机某一端口发
    出时,均需在端口队列中等待处理。
           而支持 QoS 的交换机则可能要对报文根据某些字段进行分类以进入有优先级的队列,对各个队列进行队列调度以及修改报文中的 QoS 字段以形成整个链路的有机处理流程等。

总结:背板转发和输出链路调度功能没有给 SDN 交换机带来太大挑战,但转发决策却给 SDN 交换机在技术实现上带来了很大的难题。

OpenFlow交换机的流表可以包含多层次网络特征,如交换、路由、防火墙、网管等。这就要求交换芯片的性能需要很高,才能通过查找这样一张复杂流表来对进入交换机的数据分组进行转发决策。

2.3 数据平面架构图

传统数据平面架构和SDN通用可编程数据平面的架构如下图所示:

3. SDN芯片与交换机

3.1 SDN芯片

SDN 交换设备所要实现的协议相对简单而且固定,对稳定性的要求较高,因此 ASIC(专用集成电路) 芯片无疑是 SDN 最佳的选择。

芯片厂商暂时不会投入大量精力去开发 SDN 专用芯片,而是采用折中的方式,在传统芯片的基础上增加支持 SDN 的功能。

芯片市场中主要支持 SDN 的产品有博通 StrataXGS Trident Ⅱ系列芯片、Intel FM6764 芯片、盛科 GreatBelt 系列芯片、华为以太网络处理器 ENP等。

3.2 SDN硬件交换机

目前,Cisco、HP、Juniper、阿朗、华为这五大供应商占据了全球交换机市场的绝大多数份额。SDN 逐渐流行起来后,网络设备市场的门槛开始降低,涌现了大量新兴创业公司。

考虑到多数 SDN 用户的需求是 SDN 和传统网络并存,现阶段纯 SDN 的应用场景并不广泛,多数厂商推出的 SDN 硬件交换机都是支持混合模式的,而不是纯 SDN 交换机。

所谓混合模式 SDN 交换机,是指设备商并非将原来的交换机推倒重来,而是利用本身已有的操作系统优势,在系统里增加对 OpenFlow 协议的支持。

其具体思路是,数据分组进入混合模式交换机后,交换机根据端口或 VLAN 进行区分,亦或经过一级流表的处理,以决定数据分组是传统二、三层处理模式还是 SDN 处理模式。传统二、三层处理模式由交换机已写定的协议完成,SDN 处理模式则由SDN 控制器管理。

网络设备市场中比较有代表性的几款 SDN 硬件交换机有:

  • 基于 ASIC 芯片的 SDN 品牌交换机
           NEC IP8800 系列交换机、IBM RackSwitch G8264 交换机、HP SDN 系列交换机、Arista 7150S 系列和 7500E 交换机、DCN CS16800 系列交换机、Cisco Nexus 9000 系列交换机、Juniper EX9200 系列交换机、H3C S12500 系列交换机、博科 ICX7450 交换机等等
  • 基于 ASIC 芯片的 SDN 白盒交换机
           盛科 V330/V350 V580 白盒交换机、Pica8 SDN 白盒交换机系列等等。
           每台白盒交换机交换机都需要一个独立于硬件的网络操作系统,用户自行安装网络操作系统和应用程序,由网络管理人员编程来控制设备转发行为,实现自营业务的灵活创新和快速部署。
  • 基于 NP 的 SDN 交换机
           华为 S12700 系列等。
  • 基于 NetFPGA 的 SDN 交换机

3.3 SDN软件交换机

  • Open vSwitch
           Open vSwitch是一款开源软件交换机。基本部件分为 3 个部分:

(a)ovs-vswtichd 守护进程,慢速转发平面,位于用户空间,完成基本转发逻辑,包括地址学习、镜像配置、LACP、外部物理端口绑定、基于源 MAC 和 TCP 负载均衡或主备方式,支持 OpenFlow 协议,可通过 sFlow、NetFlow 或 SPAN端口镜像方式保证网络可视性,配置后数据交由 ovsdb-server 进程存储和管理;

(b)核心数据转发平面,即 openvswitch_mod.ko 模块,它位于内核空间,完成数据分组查询、修改、转发,隧道封装,维护底层转发表等功能;

(c)其三是控制平面,分布在不同物理机上的软件交换机通过 OpenFlow 控制集群组成分布式虚拟化交换机,还实现了不同租户虚拟机隔离功能;

每个数据转发保持一个 OpenFlow 连接,没有在转发平面出现的数据流在第一次通过软件交换机时,都被转发到 OpenFlow 控制平台处理,OpenFlow 根据一至四层信息特征匹配,定义转发、丢弃、修改或排队策略,第二次数据转发时就直接由核心转发模块处理,加快了后续数据处理过程。

  • Pantou
           Pantou是一个基于 OpenWrt 实现 OpenFlow 的创新项目,它可以将商用无线路由器或无线接入点(AP)转换成 OpenFlow 交换机。
  • Indigo
           Indigo开源项目是Floodlight项目内的子项目,Indigo是基于OpenFlow的SDN软件交换机,它运行在硬件交换机上,并利用以太网交换机的硬件功能来线速运行 OpenFlow。
  • LINC
           LINC 是纯软件的 OpenFlow 交换机,支持 OpenFlow v1.2、OpenFlow v1.3.1以及 OF-CONFIG v1.1.1。LINC 的主要软件模块包括:OpenFlow 交换机、OpenFlow 协议模块和 OF-CONFIG 模块
  • OpenFlow Click
           OpenFlow Click 是由美国麻省理工大学 Eddie Kohler 博士等人开发的一款优秀的软件工具,专门用于构建基于 Linux 操作系统的软件路由器。Click 以模块化为核心思想,把路由器功能划分为若干粒度合适的模块

参考资料

《SDN软件定义网络核心原理与应用实践》
《重构网络:SDN架构与实现》

另:本文是对以上参考资料的学习笔记整理

SDN软件定义网络 学习笔记(4)--数据平面相关推荐

  1. SDN软件定义网络 学习笔记(1)--基本概念

    SDN软件定义网络 学习笔记(1)--基本概念 1. 定义 2. 提出背景 3. 体系结构 1. 定义 软件定义网络(Software Defined Network,SDN),顾名思义,SDN 与传 ...

  2. SDN软件定义网络 学习笔记(3)--北向接口、东西向接口

    1. 北向接口 北向接口提供了 SDN 中开发者与控制器间的交互功能.从更为宽泛的角度考虑,北向接口在 SDN 控制器中的作用类似于命令行在传统NOS 中的作用,都是实现了网络管理者对网络的设计与管理 ...

  3. SDN(Software Defined Network) 软件定义网络学习

    SDN(Software Defined Network) 软件定义网络学习 SDN是啥? 简单来说就是软件定义网络!其旨在对现有的网络架构进行重构,使得我们能够像安装软件一样对网络进行修改,加快部署 ...

  4. 关于SDN软件定义网络和NFV网络功能虚拟化

    1.SDN软件定义网络 在传统的网络中,各个转发节点(路由器.交换机)都是独立工作的,内部管理命令和接口也是厂商私有的,不对外开放.而SDN(Software Defined Networking)网 ...

  5. SDN软件定义网络概述,netperf,scapy网络命令简单使用。

    目录 SDN网络架构 SDN(面向网络架构) sdn控制器的三个主要角色: sdn关键特征: sdn网络架构的三层模型: sdn面临的挑战 可靠性问题: 解决方案: 开放能力: netperf命令 环 ...

  6. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  7. 深度学习(三十二)半监督阶梯网络学习笔记

    半监督阶梯网络学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50877704 作者:hjimce 一.相关理论 这几年深度学习声名鹊起,一 ...

  8. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

  9. 科普:SDN(软件定义网络)

    http://www.zdnet.com.cn/wiki-SDN SDN(软件定义网络) 软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean s ...

最新文章

  1. 这次我让你彻底弄懂 RESTful
  2. Java 洛谷 P1200 [USACO1.1]你的飞碟在这儿 Your Ride Is Here
  3. c winform 上传文件到mysql_WinForm上传文件至服务器
  4. 如果编程语言是女人(译)
  5. day3-python学习笔记(三)字典、元组
  6. php 使用fseek指针读取大文件日志
  7. mac下Python2运行SparkSQL
  8. verilog将像素数据写入txt_FPGA仿真必备(1)——Matlab生成.mif文件/.txt文件
  9. 好程序员web前端教程:字符串
  10. VS2010打开旧版本MFC工程无对话框
  11. Excel导入导出SQL server数据库
  12. 手机支付需厘清六大关键问题
  13. 初中英语听力计算机考试反馈,【初中英语】英语听说机考,怎样才能有效提高英语听力和口语水平?...
  14. 如何修改SnipeIT的部分设置
  15. joinus计算机怎么弄游戏,美国us计算机专业学校排名:joinus学生计算机如何消除sci...
  16. 计算机软件比赛团队名称,代表团队名称
  17. Ubuntu 12.04 安装磊科无线网卡驱动
  18. 5.1-5.31推荐文章汇总
  19. 经典提高培养情商最有效的13本书
  20. python关键词挖掘_seo必备工具,python采集关键词挖掘数据

热门文章

  1. FACES纳新|2021春纳线上分享会等你来
  2. 深度增强学习射击类游戏(vizdoom)
  3. 国内一些黑客高手的联系方法
  4. Android 按钮实现按压水波纹效果
  5. 自定义View之案列篇(三):仿QQ小红点
  6. 运用Ntop监控网络流量(视频Demo)
  7. SyntaxError:Non-UTF-8 code starting with ‘\xb6‘ in file E:/...py on line 16, but no encoding declare
  8. 如何破解百度文库的防复制功能
  9. C++入门经典(第三版Ivor Horton著 ) 第一章习题答案
  10. 实战1-数据项目分析流程