摘要

由于软件定义网络(SDN)传统的单一控制器结构无法有效应对复杂多样的应用层网络需求,多控制器结构开始受到学术界及工业界的广泛关注。然而,SDN控制层采用多控制器结构后,其制定的最新路由策略与已有策略之间的路由一致性问题依旧存在,可能会导致数据层流表项存储冗余和网络流量的转发环路。鉴于此,提出了一种基于区块链的SDN路由策略一致性检测方案RCDB-SDN,利用区块链不可篡改的特性存储SDN流表项特征属性等网络信息,并采用基于投票的实用拜占庭容错共识机制,在控制层实现对流表项集的一致性验证,以在引入区块链的基础上,降低路由策略一致性问题给网络带来的不良影响。RCDB-SDN通过验证输出端流表项的一致性,比较新制定的路由策略与已有策略的转发效果,以检测是否存在带来存储冗余的路径重叠;利用有向图的环路检测算法和转发路径关键节点上的流表项检测,判断路径环路是否会导致现有网络的流量转发环路。最后,基于Multichain平台针对导致路径重叠和路径环路的流表项进行了仿真实验。实验结果表明,RCDB-SDN方案检测的精确率高于WedgeTail方案,达到95%以上,并能一定程度减少控制层与数据层之间的消息传递次数。

全文