论文阅读八:SDN 交换机转发规则 TCAM 存储优化综述

摘要:SDN将传统网络的控制平面和数据平面解耦,通过控制平面的控制器灵活地对网络进行管理,目前应用最广泛的控制协议是OpenFlow。三态内容寻址存储器(TCAM)查找速度快、支持三态掩码存储,在SDN网络中应用广泛.但TCAM成本高、功耗大,并且在存储含有范围字段匹配域的规则时候存在范围膨胀问题,因此交换机中可存储的转发规则数量,尤其是匹配域的数量和类型都比较多的OpenFlow规则数目非常有限,这成为约束SDN网络大规模扩展和应用的瓶颈。研究机构从不同角度提出了针对SDN中交换机转发规则的TCAM存储优化方案。本文从转发规则存储架构优化、本地交换机转发规则压缩、全局转发规则动态优化以及控制器参与的网络转发规则管理四个角度总结了相关研究工作,并提出了适合未来SDN网络的转发规则存储的综合优化方案。

1 引言

OpenFlow 是目前 SDN 中应用最为广泛的控制协议,它的规则匹配域已经增加到 40 多个,而转发规则宽度的持续增加进一步限制了 TCAM 可存储规则的数量。因此目前 TCAM 规则存储数量远远不能满足实际网络尤其是数据中心的数据交换需求,转发规则存储空间成为限制 SDN 尤其是支持 OpenFlow 协议的 SDN 网络大规模应用的瓶颈之一。如何优化 SDN 网络的转发规则存储,减轻 TCAM 的规则储存压力,成为重要的研究课题。

文章根据 TCAM 规则存储资源优化角度的不同,从“转发规则存储结构优化”、“本地转发规则压缩算法”、“网络全局转发规则存储优化”、“控制器参与网络转发规则管理机制”四个角度总结相关工作。

2 转发规则存储结构优化

转发规则存储结构优化从硬件存储结构角度出发,如优化交换机存储介质和存储结构等,使 SDN 交换机在保证优秀查找性能的前提下,更有效率地使用内部的转发规则存储空间。

3 本地转发规则压缩算法

通过软件方法对交换机中的规则进行压缩,在保持规则集语义不变的情况下,减少规则的数量,或者缩短规则的长度。传统算法如动态规划算法(TCAM-Razor、Diplomat 、Lossy Compression 算法等)、二叉树(MDTC 等),往往要求规则集的匹配域是前缀形式表示,但 OpenFlow 规则的维度更高、匹配域格式更为复杂,大多数软件压缩的方案无法直接应用于 OpenFlow 规则集。

3.1 压缩规则集中规则的数目

3.1.1 规则集压缩算法

Bitwaving:自上而下将规则集进行分组,原则是每一个分组的规则集可以通过列交换转换为一维前缀表达形式。组内通过比特列交换转换为前缀形式,将汉明距离为1的两个规则字符串进行聚合,得到压缩后的新分组规则。最后再将压缩后的规则集还原为原始比特顺序。压缩效率受到原始规则集“ * ”的分布限制,分组的数量可能会很多且由于组间列交换顺序各异,列的交换和还原会影响压缩的速度和更新的效率。

FFTA(Fast Incremental Flow Table Aggregation):取消了比特列交换的步骤,对Bitwaving得到的分组直接构造二叉树,利用改进ORTC和比特聚合方法进行压缩,提高了压缩速度。

Genmatcher:将某些原始规则进行膨胀得到前缀表达形式,与剩余规则组成新规则集再进行优化分组,相比Bitwaving分组更少,查询速度更快;但由于存在规则数目膨胀,且计算复杂度高,配置时间更长。

Bit & Subset Weaving:在Bitwaving算法得到的分组内,按照规则的动作指令继续划分为一系列的小子集,在子集内部和子集之间寻找压缩机会。

以上这些压缩算法一般与冗余规则的去除算法如 Redundancy Removal 互补。

3.1.2 范围字段优化编码——适用于 OpenFlow 规则

(1)设计范围字段存储和查找结构

(2)利用 TCAM 额外字段编码

(3) 裁剪范围字段长度

3.2 逻辑表达式最小化

将原始规则集看作或者映射成为特定的逻辑表达形式,通过逻辑运算的方式最小化表达式集合,包括卡诺图、Quine-McCluskey(QM) 算法和 Espresso 算法等。但逻辑运算复杂,规则集的原始状态无法保留,影响交换机的包匹配处理速度

3.3 减少规则集中规则的宽度

OpenFlow 规则集匹配域较多,单条规则占用的 TCAM 空间较大,存储效率低;单条规则长度过长也会影响查询的效率。匹配域修建是在保持转发语义不变的前提下,调整或者裁剪匹配域,降低单条规则占用的比特宽度。

3.3.1 根据分组头部信息熵裁剪匹配域

3.3.2 根据逻辑关系裁剪匹配域

3.4 其他压缩方案

FTRS:通过选取特殊的匹配域(如IP地址),构造 Trie 树,将改进后的 Trie 树中冗余的节点删除完成压缩的目的;但只适用于局域网的网络环境,且有大概率发生交换机规则溢出。

IDFA:通过控制器向交换机添加冗余规则,再通过降级、排序等方式对原规则集和冗余规则集进行组合,尽可能多地进行规则压缩;相比 FTRS ,在胖树网络拓扑中有更好的压缩效果以及更短的包传输时延。

TERM:对原始的含有“ * ”的规则进行整数编码,得到整数表达的新规则集。根据新规则集构造张量矩阵,原始规则集的压缩过程就转换成张量矩阵的降解过程。

4 网络全局转达规则优化

SDN 控制器可以获取全局网络信息,根据网络拓扑和资源情况,在全网范围内灵活分配转发规则,从而平衡全网转发规则分布;或者通过调整流的路径复用特定转发规则,进而减少全网转发规则的数量。

4.1 基于规则放置的优化方案

将整个网络抽象为一个大的交换机,在保持网络的端到端策略语义不变前提下,将相应规则在网络内部特定路径上合理放置,使得网络整体规则数目减少或均衡分布。规则放置的一般步骤包括规则分割和规则分配。

One Big Switch:根据网络的端到端策略和相应的路由转发策略,将网络拓扑分割为一系列的路径集合,并计算路径上单个交换机可分配的规则数目。采用贪心策略,在交换机转发规则容量允许范围内,尽可能多的放置规则集。

Palette:分析规则之间的依赖关系,将原始规则集分割为一系列独立的子规则集。根据端到端策略,计算路径,并通过彩虹着色算法将子规则集在路径上尽可能均衡分布。

CORA:将交换机中规则分割为相对独立的规则集,根据不同交换机之间的规则覆盖关系,沿原始数据包转发路径进行规则迁移和重新放置。

JORA:利用规则复用技术,提出多路径的端到端策略规则最小化分布方案,并基于网络约束条件构造混合整数线性规划方程(MILP),通过软件 CPLEX 求解。

Raptor:尽可能多的让规则被多条路径复用。

4.2 路由转发策略的优化方案

4.2.1 路径聚合方法

具有相同目的地的流,如果他们路径发生重合,那么在重合路径上可以通过相同的规则对这几条流进行转发,减少用于转发这部分流的规则数目。

分配路径使尽可能多的流路径重合从而复用某些规则,伴随的问题是可能导致部分流路径拉伸过长,而路径拉伸导致转发跳数增加从而单路径上转发规则数也会增加,网络整体的规则数目是否减少还需进行更深入的算法和实验验证。

4.2.2 求解数学模型

应用图论知识对网络进行建模,在节点交换机规则存储资源、链路带宽等一系列网络状态约束条件下,构造使得网络规则数目最小的线性规划方程组,并求解相应转发路径。

4.3 标签路由算法

MPLS:见论文阅读一

改进的标签路由算法主要集中在两个方面:利用 OpenFlow 自带的协议字段作为转发标签;使用协议无关路由的 SDN 架构;或者优化标签编码,使新的标签占用更少的带宽资源。

4.3.1 利用 OpenFlow 自带的协议字段

JumpFlow:将数据包分组的路由信息写入到分组自带的 VLAN ID(VID) 中。VID 只有12个比特位,只能携带3跳的路由信息,因此需要将数据包的路径进行分段,其中部分路径的数据转发依据 VID 信息。JumpFlow 通过计算不同分段方案下的交换机规则存储资源利用率,选择最合理的路径分段方式。缓解 TCAM 存储压力的同时增加控制器的计算负担。

4.3.2 网络不使用 OpenFlow 协议

(1)协议无关路由

POF(华为, 2013):通过重新设定的转发规则三元组(偏移量、长度及动作)来替代 OpenFlow 定义的复杂的协议规则。

POMP:利用“污点分析”得到并压缩多级规则集。

(2)优化标签编码方案

XPath:提前计算好“足够多”的静态路径,通过二进制前缀形式为单个交换机内的路径进行随机分配路径ID;利用数据中心拓扑的对称性等特点压缩路径的数量并赋予相应的ID,实现数据中心网络的离线路径设计。

PathSets:根据流的各种网络属性进行分组,对包含顺序的等属性子集合分别进行掩码编码压缩。

4.4 TCAM有限条件下的QoS指标优化

常见表示网络质量和性能参数的指标包括吞吐量、能源利用率、负载均衡、链路利用率等。

EAR:优化网络能源消耗,即网络在运行状态下活跃的链路数量。

MINNIE:在已有可选路径前提下对输入网络的流量进行再分配和节点交换机转发规则压缩,在使网络达到负载均衡的状态下尽可能多的压缩网络的转发规则数目。

5 控制器参与网络转发规则管理机制

通过 SDN 控制器的参与,对网络转发规则从生成到超时删除等中间各个阶段进行优化管理,分担或者缓解规则向 TCAM 存储的压力。

5.1 规则生成和下发管理机制

Mapple++:包含4个模块,核心引擎负责运行应用程序、记录网络状态等;全局优化模块根据数据包信息和网络全局信息做出路由决策;本地优化模块为每个交换机配置合适的规则集并进行优化压缩;环境信息收集模块收集网络拓扑和设备状态信息。

RL-based Approach:通过传统强化学习和深度强化学习算法,对网络中流量进行学习分类,决定哪些流适合放在交换机的TCAM中,哪些适合放在控制器中。

Table Visor 2.0:将数据平面每一个交换机看作多级子规则集,利用规则优先级和特定匹配域的哈希值将规则集在各个交换机之间进行均衡分布。

5.2  规则缓存机制

CAB:分析规则集空间内的依赖关系,将规则集空间进行分割,并放入合适的缓存痛内。掩码表示的缓存桶用于数据包的精确转发以及确定哪些规则适合放在缓存桶内。流建立时,控制器查询相应的缓存桶并将桶内相应规则缓存中交换机上。

CacheFlow:把最流行的转发规则集存储在资源有限的交换机TCAM中,通过软件处理非流行的流信息。

CRAFT:通过分析规则集的空间分布,在尽量减少规则集重叠的前提下,将规则集分类,然后分别缓存。

DevoFlow:通过检测并提取代表流的标志性字段,将需要存储在TCAM中的规则和需要精确匹配的规则区分开来,分开存放。

MMS:将最常匹配和最近匹配的规则存放在交换机TCAM中,最少被匹配到的规则被转移到控制器的RAM中进行缓存。

5.3 规则超时和溢出管理机制

通过控制器和交换机的协同作用,及时发现并删除交换机中冗余的超时规则,及时管理和控制交换机规则的溢出。

(1)规则超时处理

SmartTime:根据自适应的超时启发式算法,计算有效的空闲超时时间,主动删除掉交换机中需要清除的规则。

FlowMaster:基于马尔科夫预测模型进行学习预测,判断哪些规则更有价值,从而对规则集及时进行更新,删除不活跃的规则,释放交换机规则存储空间。

STAR:根据信息路由决策模块计算路由生成转发规则下发到数据平面。

(2)交换机规则溢出控制

FTS:使发生溢出的交换机继续对相应数据分组进行随机转发。

猜你喜欢

转载自blog.csdn.net/weixin_43563178/article/details/122493500
今日推荐