1.本发明涉及软件定义可编程网络及移动目标防御领域,尤其涉及一种基于可编程数据平面的可编程语言的路由跳变防御构建方法。
背景技术:2.移动目标防御是改变网络攻防不对称形势的开创性技术,其通过对网络元素的主动变迁,使网络运行环境及功能具有不确定性、动态性、异构性,以增大网络攻击难度,提高网络防御能力。路由跳变作为移动目标防御中关键的防御技术,通过改变数据包传输的路由路径以抵御被动监听攻击。如何使用可编程语言在数据平面上实现细粒度、高效率的路由跳变防御,是移动目标防御领域的重要问题。
技术实现要素:3.本发明的目的是克服现有软件定义网络(software defined network)架构下实现路由跳变方法的不足,利用数据平面交换机可编程性,实现数据包粒度的概率转发,提高网络抵御被动监听的能力。
4.其通过网络中的控制节点收集全网信息,实时分析数据包在不同时间周期内转发的最优路由路径;通过下发路由表项及转发概率给数据平面交换机,实现基于数据包粒度的多路径概率转发,完成全网流量在不同时间周期以不同路由路径进行细粒度、多路径数据转发。
5.包括以下步骤:s1:网络中充当控制角色的节点通过p4runtime协议或者交换机的thrift接口收集全网网络节点及链路信息;s2:基于可满足性理论smt(satisfiability modulo theories)实现四个约束。当下一个跳变周期开始前,控制端收集对应的元素,通过本方法提出的四个约束筛选出满足特定延时、丢包率限制的可用路由集合;s3:本方案基于最短增广路路径算法提出最优跳变路径生成算法,在可用路由集合中根据容量值选出最优跳变路由并计算交换机转发各流量的概率值;s4:通过p4runtime下发编译好的流表定义程序、最优路由表项集合、链路的数据包转发概率到数据平面交换机;s5:数据平面交换机根据流表定义程序及流表项,执行预先设计的自定义数据包转发逻辑,完成对数据包的多路径概率转发。本发明利用数据平面交换机可编程性,实现数据包粒度的概率转发,提高网络抵御被动监听的能力。该方法简单,实现灵活,实用性强。
6.本发明具体采用以下方案实现:
7.一种基于可编程数据平面的路由跳变防御构建方法,其特征在于:通过网络中的控制节点收集全网信息,实时分析数据包在不同时间周期内转发的最优路由路径;通过下发路由表项及转发概率给数据平面交换机,实现基于数据包粒度的多路径概率转发,完成全网流量在不同时间周期以不同路由路径进行细粒度、多路径数据转发。
8.进一步地,具体包括如下步骤:
9.步骤s1:网络中的控制节点通过p4runtime协议或交换机的thrift接口收集全网
网络节点及链路信息;
10.步骤s2:基于可满足性理论smt构建qos质量保障、防丢包保障、路由节点流表项承载量保障、以及目的路由可达四个约束,并确认所需元素的类型和可用数值范围,利用smt求解器计算;当下一个跳变周期开始前,控制端收集对应的信息元素,通过四个约束筛选出满足特定延时、丢包率限制的可用路由集合;
11.步骤s3:采用基于最短增广路算法额最优跳变路径生成算法,在可用路由集合中根据容量值选出最优跳变路由并计算交换机转发各流量的概率值;
12.步骤s4:控制器通过p4runtime下发数据层面交换机所需要的流表定义程序及相关参数;
13.步骤s5:数据平面交换机根据流表定义程序及流表项,执行预先设计的自定义数据包转发逻辑,完成对数据包的多路径概率转发。
14.进一步地,在步骤s1中,所收集的信息包括:全网拓扑信息、链路延时信息、链路流量信息、交换机流表条目信息、交换机流表大小信息、tcp协议ack信息和对流比。
15.进一步地,步骤s2中,在下一个跳变周期开始之前,需要采集的数据包括:net、config、packet和history;其中,net为步骤s1收集到的包括全网拓扑信息、链路延时信息、链路流量信息、交换机流表大小信息的网络数据;config为用户自定义的包括跳变周期大小和最长可选路径长度的配置信息;packet为当前所需要转发的流量集合;history为历史跳变数据。
16.进一步地,在步骤s2中,形式化规约路由跳变的路径所需满足的约束条件,约束计算在下一周期前需要计算新的可选跳变路径时触发;
17.对于防丢包,构建的约束如下:为了保障跳变前后的路径不会产生分组乱序甚至丢包的问题,跳变前后的路径的时延差应小于分组间时延的转发路径,且pathj≠pathi,有约束公式:
18.max({delayi})-min({delayj})≤ave_ipd
19.其中,{patha→b}表示从路由节点a到路由节点b的全部可选路径,pathi为当前周期可能流经的第i条跳变路径,pathj为下一个跳变周期可选的第j条跳变路径,delayi表示当前周期pathi的传输时延,其中,1≤i≤n,n为周期内可选的跳变路径总量,delayj为下一个跳变周期pathj的传输时延,其中,1≤j≤m,m为下一周期可选的跳变路径总量,ave_ipd表示全网的平均分组间时延;约束公式翻译为对应smt求解器可识别的代码。
20.进一步地,在步骤s2中,所述可选的跳变路径基于数据包粒度,定义为:在满足约束的条件下,使用概率选择下一跳时,从源节点到目的节点允许流经的路由节点形成的一条路径;数据包在同一周期实际的流经路径由概率决定;
21.所述可选跳变路径表达成二元组path(t,bool),其中t为当前跳变周期,bool={bi|1≤i≤n}表示当前周期该可选跳变路径中是否包含路由节点i的布尔值集合,其中1≤i≤n,n为网络路由节点总数量;每个跳变周期开始之前都会重置path,根据预先设定好的路由跳变约束规则,利用smt工具,计算新的bool集合,应用于下一个周期的path。
22.进一步地,在步骤s3中,首先,将可用路由集合构建成流网络g(v,e),v集合为可用路由集合中的路由节点,每条有向边拥有一个容量值c,容量值c由评价函数计算得出,每个路由结点也有一个容量值l,容量值l由评价函数计算得出;选择最优路径,即容量值最大的
路由,问题即可抽象为最大流问题;再使用最短增广路算法解决所述最大流问题,构造出最大流方案的流网络并计算各链路转发数据包的概率。
23.进一步地,所述评价函数使用的评价指标包括交换机安全性、链路剩余可用资源和控制端计算开销。
24.进一步地,在步骤s4中,流表定义程序由自定义p4数据包格式和操作逻辑构成;相关参数由最优路由表项集合及链路的数据包转发概率构成。
25.进一步地,在步骤s5中,所述自定义数据包转发逻辑包括匹配流表项实施相应转发动作、丢弃特定的流表项、读取计数器信息、重置计数器、更新计数器信息、主动上报计数器信息、解析数据包、重组数据包和生成随机概率。
26.本发明及其优选方案利用数据平面交换机可编程性,实现数据包粒度的概率转发,提高网络抵御被动监听的能力。该方法简单,实现灵活,实用性强;对于防御被动监听攻击有较好的防御效果。
附图说明
27.图1是本发明实施例步骤原理图;
28.图2是本发明实施例最优路由选择及概率计算图。
具体实施方式
29.为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:
30.应该指出,以下详细说明都是例示性的,旨在对本技术提供进一步的说明。除非另有指明,本说明书使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
31.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
32.本实施例提供的基于可编程数据平面的路由跳变防御构建方法,通过网络中的控制节点收集全网信息,实时分析数据包在不同时间周期内转发的最优路由路径。同时通过下发路由表项及转发概率给数据平面交换机,实现基于数据包粒度的多路径概率转发,完成全网流量在不同时间周期以不同路由路径进行细粒度、多路径数据转发。实现方案如图1所示,包含如下步骤:
33.步骤s1:网络中充当控制角色的节点通过p4runtime协议或者交换机的thrift接口收集全网网络节点及链路信息。
34.具体地,步骤s1所收集的信息包括全网拓扑信息、链路延时信息、链路流量信息、交换机流表条目信息、交换机流表大小信息、tcp协议ack信息、对流比等网络数据。
35.步骤s2:基于可满足性理论smt(satisfiability modulo theories)实现四个约束。当下一个跳变周期开始前,控制端收集对应的元素,通过本实施例提出的四个约束筛选出满足特定延时、丢包率限制的可用路由集合。
36.具体地,步骤s2在下一个跳变周期开始之前,需要采集的数据为(net,config,
packet,history),net为步骤s1收集到的全网拓扑信息、链路延时信息、链路流量信息、交换机流表大小信息等网络数据,config为用户自定义的跳变周期大小、最长可选路径长度等配置信息,packet为当前所需要转发的流量集合,history为历史跳变数据;
37.进一步地,步骤s2确认所需元素的类型和可用数值范围,需要利用smt求解器计算的约束包括:qos质量保障、防丢包保障、路由节点流表项承载量保障、目的路由可达,形式化规约路由跳变的路径所需满足的约束条件,约束计算在下一周期前需要计算新的可选跳变路径时触发。
38.对于防丢包约束,构建的约束公式如下:为了保障跳变前后的路径不会产生分组乱序甚至丢包的问题,跳变前后的路径的时延差应小于分组间时延的转发路径,乱序甚至丢包的问题,跳变前后的路径的时延差应小于分组间时延的转发路径,且pathj≠pathi,有约束公式:
39.max({delayi})-min({delayj})≤ave_ipd
40.其中,{patha→b}表示从路由节点a到路由节点b的全部可选路径,pathi为当前周期可能流经的第i条跳变路径,pathj为下一个跳变周期可选的第j条跳变路径,delayi表示当前周期pathi的传输时延(1≤i≤n,n为该周期可选的跳变路径总量),delayj为下一个跳变周期pathj的传输时延(1≤j≤m,m为下一周期可选的跳变路径总量),ave_ipd表示全网的平均分组间时延,上述时延数据由步骤s1测量和收集。约束公式翻译为对应smt求解器可识别的代码。
41.进一步地,步骤s2可选的跳变路径基于数据包粒度,在该方案中的定义为,在满足约束的条件下,使用概率选择下一跳时,从源节点到目的节点允许流经的路由节点形成的一条路径。数据包在同一周期实际的流经路径由概率决定。
42.进一步地,步骤s2可选跳变路径表达成二元组path(t,bool),其中t为当前跳变周期,bool={bi|1≤i≤n}表示当前周期该可选跳变路径中是否包含路由节点i的布尔值集合,其中1≤i≤n,n为网络路由节点总数量。每个跳变周期开始之前都会重置path,根据预先设定好的路由跳变约束规则,利用smt工具,计算新的bool集合,应用于下一个周期的path。
43.步骤s3:本实施例方案基于最短增广路算法提出最优跳变路径生成算法,在可用路由集合中根据容量值选出最优跳变路由并计算交换机转发各流量的概率值。首先,将可用路由集合构建成流网络g(v,e),v集合为可用路由集合中的路由节点,每条有向边拥有一个容量值c,容量值c由评价函数计算得出,每个路由结点也有一个容量值l,容量值l由评价函数计算得出。根据上述思路,选择最优路径(容量值最大的路由)问题即可抽象为最大流问题。本方案使用最短增广路算法解决这个问题,构造出最大流方案的流网络并计算各链路转发数据包的概率,如图2所示。
44.进一步的,步骤s3的容量值由评价函数确定,评价函数使用到的评价指标包含交换机安全性、链路剩余可用资源、控制端计算开销等。
45.步骤s4:控制器通过p4runtime下发数据层面交换机所需要的流表定义程序及相关参数。
46.进一步地,步骤s4中流表定义程序由自定义p4数据包格式和操作逻辑构成;相关参数由最优路由表项集合及链路的数据包转发概率构成。
47.步骤s5:数据平面交换机根据流表定义程序及流表项,执行预先设计的自定义数
据包转发逻辑,完成对数据包的多路径概率转发。
48.进一步地,步骤s5中自定义数据包转发逻辑中包括匹配流表项实施相应转发动作、丢弃特定的流表项、读取计数器信息、重置计数器、更新计数器信息、主动上报计数器信息、解析数据包、重组数据包、生成随机概率。
49.例如,匹配流表项实施相应转发动作代码如下:
[0050][0051][0052]
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0053]
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程、以及流程图中的流程结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
[0054]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程图中指定的功能。
[0055]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程中指定的功能的步骤。
[0056]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所
作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
[0057]
本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的基于可编程数据平面的路由跳变防御构建方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。