SDN数据平面简介

传统网络数据平面

数据平面主要执行网络控制逻辑,数据包的处理主要通过查询由控制平面所生成的FIB表 来完成。包处理流程:
在这里插入图片描述
传统网络数据平面的特点
– 数据转发处理都是协议相关的;
– 只支持有限的用户配置,不支持编程自定义。

SDN数据平面

在这里插入图片描述
SDN数据平面的特点
– 处理流程中的:解析(Parser)、转发(Forwarding)和调度 (Scheduling)都是可编程、协议无关的;
– 传统网络设备的二层或三层转发表抽象成流表;

OpenFlow概述

2008年, Nick等在SIGCOMM会议上发表论文“OpenFlow: Enabling Innovation in Campus Networks”,首次提出OpenFlow交换 机架构,将OpenFlow协议用于校园网络的试验创新。
OpenFlow架构三个组成部分
– 流表(Flow Table),每个动作(Action)关联一个流表项(Flow Entry),指示交换机如何进行流(Flow)的处理;
– 安全通道(Sccure Channel),OpenFlow交换机通过安全通道与远 端控制器连接,负责控制器与交换机之间的交互;
– OpenFlow协议(Protocol),定义了一种南向接口标准,为控制 器与交换机之间的通信提供了一种开放标准的方式。
2009年12月,ONF发布了具有里程碑意义的可用于商业化产 品的OpenFlow 1.0版本规范。
OpenFlow是ONF主推的南向接口协议,目前已成为SDN主流 的南向接口协议之一。
已经有多个版本的OpenFlow规范(OF)被发布。
OpenFlow主要版本及特性
openflow主要版本级特性
ONF将1.0和1.3版本作为长期支持的稳定版本,此后一段时间内 后续版本的发展要维持版本的兼容性。
学习重点技术规范文件:
– openflow-spec-v1.0.0
– openflow-spec-v1.3.0

什么是流表(flow table)

流的概念:
同一时间,经过同一网络中具有某种共同特征(属性)的数据,抽象为一个流。比如,可以将访问同一目的地址的数据视为 一个流; 流一般由网络管理员定义,根据不同的流执行不同的策略; OpenFlow体系中,数据以“流”为单位进行处理。 流表:针对特定流的策略表项的集合,负责数据包的查找与转发。 一张流表包含了一系列的流表项(flow entries)。
OpenFlow v1.0流表项
在这里插入图片描述
流表项包括三个域
包头域(Head Fields) :涵盖了链路层、网络层和传输层大部分标识;
计数器( Counters ) :用于统计数据流量相关信息,可以针对交换机 中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护;
动作表(Actions) :指示与该流表项匹配的数据包应该执行的下一步 操作。
流表及其组成
在这里插入图片描述
OpenFlow v1.0流表项-包头域
在这里插入图片描述
第一层:入端口(Ingress Port) ,即消息在哪个端口进入交换机;
第二层:源MAC地址(Ether source),目的MAC地址(Ether dst),以太网类型(Ether Type), VLAN标签(VLAN id),VLAN优先级(VLAN priority);
第三层:源IP(IP src),目的IP(IP dst),IP协议字段(IP Proto),IP服务类型(IP ToSbits);
第四层:TCP/UDP源端口号(TCP/UCP src port),TCP/UDP目的端口号(TCP/UDP dst port)。
OpenFlow v1.0流表项-计数器
针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队 列进行维护,用于统计数据流量的相关信息:
对每张流表,统计当前活动的表项数、数据包查询次数、数据包匹配 次数等;
对每个数据流,统计接收到的数据包数、字节数、数据流持续时间等;
对每个设备端口,除统计接收到的数据包数、发送数据包数、接收字 节数、发送字节数等指标乊外,还可以对各种错误发生的次数进行统计;
对每个队列,统计发送的数据包数和字节数,还有发送时的溢出错误次数等。
OpenFlow v1.0流表项-动作表
用于指示交换机在收到匹配的数据包后应该如何对其进行处理
每个流表项可以对应有零至多个动作,如果没有定义转发动作,那么数据 包将被默认丢弃;
同一流表项中的多个动作的执行可以具有不同优先级,但是在数据包的发 送上并不保证其顺序;
如果流表项中出现有OpenFlow交换机不支持的参数值,交换机将向控制 器返回相应的出错信息;
必备动作(Required Actions) 、可选动作(Optional Actions)
必备动作:需要所有OpenFlow交换机默认支持
可选动作:需要交换机告知控制器它所能支持的动作种类

OpenFlow端口类型

端口(Ports):
交换机传递数据包的网络接口,交换机通过接口和其他交换机建立逻辑连接;
物理端口
逻辑端口: 是对物理端口的虚拟化,提高可复用性,逻辑端口的数据包需要 有tunnel_id;
保留端口 :指定通用的转发动作(包括:ALL、CONTROLLER、TABLE、 IN_PORT、ANY、LOCAL、NORMAL、FLOOD)。
OpenFlow保留端口
ALL:转发给所有出端口,但不包括入端口
CONTROLLER:封装数据包并转发给控制器
TABLE:对packet_out数据包执行流表操作
LOCAL:转发给本地的网络栈;
IN_PORT:从入端口发出
NORMAL:利用交换机的传统转发机制处理数据包
FLOOD:按照最小生成树从设备出端口洪泛发出
流表动作列表
在这里插入图片描述
数据包处理流程
每个包按照优先级依次去匹配流表中表项,匹配包的优先级最高的表项即为 匹配结果。匹配成功,对应的计数器将更新,同时实施转发动作;如果没能 找到匹配的表项,则转发给控制器。
流表项结构变化
在这里插入图片描述
组表(Group Table) – 组表为OpenFlow交换机提供了更高级的数据包转发特性(如 select和all),从而实现组播、负载均衡、容灾备份和聚合等功能;
一个组表由多个组表项(Group Entries)组成。
在这里插入图片描述
组表号(Group Identifier):一个32位无符号整数,组表项的唯一标识。 组表类型(Group Type):表明了对数据包的处理行为。其中必须支持的动作包括all和indirect,可选动 作包括select和fast failover;
计数器(Counters):被该组表项处理过的数据包的统计量。
动作桶(Action Buckets):一个Action Bucket的有序列表,每个Action Bucket又包含了一组Action集合 及其参数。
计量表(Meter Table)
– 通过计量表,OpenFlow交换机可以实现简单的QoS功能,比如速率限 制等,还可以与每个端口队列结合,实现更加复杂的QoS框架,如 DiffServ; – 每个计量表由多个计量表项(Meter Entries)组成。
计量表号(Meter Identifier):一个32位无符号整数,计量表项的唯一标识。
计量带(Meter Bands):一个无序的Meter Band集合,每个Meter Band指明了带宽速率以及处理 数据包的行为。
计数器(Counters):被该计量表项处理过的数据包的统计量。

交换芯片

– 通用CPU;
– 专用集成电路芯片(Application-Specific Integrated Circuit,ASIC);
– 现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片;
– 网络处理器(Network Processor,NP)
设计支持OpenFlow架构的交换芯片
– ONF成立了转发抽象组(Forwarding Abstraction WG),负责数据平面 新的转发抽象技术,并在现有交换芯片架构基础上提出了支持 OpenFlow接口的折中方案(Table Typing Pattern,TTP),后更名为可 协商的数据平面模型(Negotiable Data-plane Model,NDM);
– 这种折中方案基于现有的交换芯片,在传统交换芯片基础上增加对 OpenFlow的支持,因此,该方案被芯片厂商普遍接受,加快了交换芯 片在产业界的落地。
主流交换芯片产品
– Broadcom StrataXGS系列交换芯片:三叉戟(Trident)和战斧(Tomahawk), 两种系列的芯片应用于不同的用户场景;
– Barefoot Tofino系列交换芯片:基于通用可编程数据平面PISA架构,并 支持数据平面编程语言P4,提供高达12.8 Tb/s的交换处理能力;
– 盛科系列芯片:CTC5160、CTC7148、CTC8096。
SDN交换机
– SDN物理(硬件)交换机: 多数为支持OpenFlow的混合模式交换机,支持传统二、三层处理模式和 SDN处理模式;
– SDN虚拟(软件)交换机: 成本低、配置灵活,性能满足中小规模网络要求
SDN物理交换机
– 基于ASIC芯片的SDN品牌交换机;
– Cisco 、NEC、Juniper、IBM、HPE、Arista、DCN等
– 基于ASIC芯片的SDN白盒交换机;
– BigSwitch、盛科、Pica8
– 基于NP的SDN交换机;
– 基于FPGA的SDN交换机:NetFPGA
基于ASIC芯片的SDN品牌交换机
– Cisco Nexus 9000系列:Nexus 9500、Nexus 9300
– NEC IP8800系列交换机;
– Arista 7160系列和7500R;
– HPE FlexFabric 5700、5900、 12900系列;
– Juniper EX9200系列
– IBM RackSwitch G8264交换机;
– DCN CS16800系列 – H3C S12500系列 – 博科ICX7450 基于ASIC芯片的SDN白盒交换机
– 盛科V330、V350、V580;
– Pica8 P3290、P3295、P3297、P3920、P3922、P3930、P5101、 P5401 SDN虚拟(软件)交换机
– Open vSwitch(OVS) Cisco Nexus 1000V H3C S1020V SDN

交换机选型考虑参数

背板带宽
交换机接口处理器和数据总线间所能吞吐的最大数据量, 背板带宽越高,所能处理数据的能力就越强,背板带宽是机架式交换 机的技术参数,对于盒式交换机一般没有背板带宽的概念。
– 背板带宽从几个Gbps到几百Gbps不等,背板带宽也不是越高越好,只 要满足端口线速转发就可以。 – 对于线速转发的交换机,背板的带宽计算方法:端口数*相应端口速率 *2(全双工模式)
端口密度:代表着交换机的转发能力。端口密度:密度越大,设备的转发能 力越强;
端口速率:速率越高,设备的处理性能越强;
支持模块类型:类型越多,实用性越强,可以应用于不同的网络环境,比如: LAN接口、WAN接口、ATM接口。 – 端口带宽类型:越丰富越好,即支持40G、100G高速端口,又支持百兆、千 兆低速端口,即支持XFP又支持SFP、SFP+、CFP等等多种光接口类型。
其他参数
时延(延迟) 、功耗 、 支持OpenFlow版本 、机架单元 、网管功能

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值