【技术实现步骤摘要】
一种对计算机网络数据平面进行增量验证的方法与系统
本专利技术属于网络验证
,具体涉及一种对计算机网络数据平面进行增量验证的方法与系统。
技术介绍
计算机网络常常由于人为错误配置、软件漏洞、硬件故障而产生故障。传统的人工故障排查方法是对网络设备的静态配置进行核对,只能在网络发生故障后寻找故障发生的原因并进行解决。由于人工排查期间网络仍无法正常工作,网络瘫痪可达数小时。网络验证是近年提出的,通过对网络正确性进行形式化验证来防止网络故障发生的一类方法。网络验证分为控制平面验证和数据平面验证,控制平面验证目的为检测协议错误配置,而数据平面的检测则是对更接近于真实网络转发行为的数据平面状态进行验证,可覆盖更加广泛的网络故障问题,包括软件漏洞和硬件故障等。现有数据平面验证方法实现了毫秒级的验证速度,这使得网络管理员能够对数据平面的实时更新进行持续验证。为了达到毫秒级的验证速度,实时数据平面验证方法通常将数据包划分为等价类(EquivalenceClass,EC),并维护这些EC的转发行为模型。数据平面更新时,他们会 ...
【技术保护点】
1.一种对计算机网络数据平面进行增量验证的方法,其特征在于,包括以下步骤:/n步骤1:根据数据平面设备配置构造端口谓词映射模型,即PPM模型,PPM模型将在每个元素中转发行为相同的数据包划分为一个等价类,并将等价类用谓词表示,PPM用谓词对等价类进行编码;/n步骤2:获取数据平面状态更新,并将获取的更新转化为增量更新规则,然后对每一条更新规则更新PPM模型,得到每一次更新的移动的谓词集合;/n步骤3:根据更新后的PPM模型拓扑与更新后移动的谓词集合构造增量转发图;/n步骤4:在增量转发图上验证网络正确性。/n
【技术特征摘要】
1.一种对计算机网络数据平面进行增量验证的方法,其特征在于,包括以下步骤:
步骤1:根据数据平面设备配置构造端口谓词映射模型,即PPM模型,PPM模型将在每个元素中转发行为相同的数据包划分为一个等价类,并将等价类用谓词表示,PPM用谓词对等价类进行编码;
步骤2:获取数据平面状态更新,并将获取的更新转化为增量更新规则,然后对每一条更新规则更新PPM模型,得到每一次更新的移动的谓词集合;
步骤3:根据更新后的PPM模型拓扑与更新后移动的谓词集合构造增量转发图;
步骤4:在增量转发图上验证网络正确性。
2.根据权利要求1所述的一种对计算机网络数据平面进行增量验证的方法,其特征在于,所述步骤1中,构造PPM模型的具体过程为:将网络功能划分转发、过滤和重写三种类型,对应地定义转发、过滤和重写三种元素,将交换机按功能表示为一个或多个元素,并按照功能之间的逻辑通过端口连接这些元素得到PPM模型。
3.根据权利要求1所述的一种对计算机网络数据平面进行增量验证的方法,其特征在于,所述步骤1中,为不同类型的元素单独计算等价类。
4.根据权利要求1所述的一种对计算机网络数据平面进行增量验证的方法,其特征在于,所述步骤2中,记待更新规则为r,表示为一个三元组(priority,match,action),其中priority表示优先级,match表示匹配域,action表示动作域;待更新规则的元素记作e,对每一条待更新规则更新PPM模型包括以下步骤:
步骤2.1、编码规则匹配域,得到二元决策图:利用二元决策图对一个规则的匹配域的布尔表达式进行编码,编码后,规则r的匹配域被编码为一个二元决策图,二元决策图用r.match表示;
步骤2.2、分析转发行为变化:
步骤2.2.1、定义三元组(δ,from,to)表示转发行为的变化,其含义为满足谓词δ的数据包最初转发到端口from,在规则更新后将转发到端口to;为每个规则定义hit和port域,其中,规则r的hit域r.hit定义为:
而规则r的port域r.port即规则的动作域r.action所对应的元素端口;
步骤2.2.2、通过从r.match中减去高优先级规则的匹配域来计算命中域r.hit,并通过分析r.hit如何覆盖不同端口的低优先级规则来找出所有发生变化的转发行为,得到转发行为变化集合C;
步骤2.3、更新谓词:以转发行为变化集合为输入,计算移动的谓词集合D。
5.根据权利要求4所述的一种对计算机网络数据平面进行增量验证的方法,其特征在于,所述步骤2.3中的谓词更新方法包括以下步骤:
首先定义两个映射:
Pred:从每个端口到该端口的谓词集合的映射;Port:从每个谓词到该谓词的端口集合的映射;
步骤2.3.1、初始条件下,移动的谓词集合D初始化为空;对于每个行为的变化(δ,from,to),遍历端口from映射的谓词集合,对集合中的每个谓词p,检查谓词p是否与δ有重叠部分,若没有重叠,不对谓词p作任何处理;如果重叠,再判断元素e是否为重写元素,如果元素e不是重写元素,依次执行步骤2.3.2至步骤2.3.4,若元素e为重写元素,则执行步骤2.3.2至步骤2.3.5:
步骤2.3.2、检查谓词p是否属于δ,如果不属于,则通过调用谓词分裂算法将谓词p分裂为两个新的谓词p∧δ和被调用函数Split(p,p1,p2)首先将谓词p替换为p1和p2来更新Port(p)中每个端口的谓词集,此时,p1为p∧δ,p2为然后,使用谓词p的端口集初始化p1和p2的端口集;最后,如果p存在于移动的谓词集合D中,除去移动的谓词集合D中的p,并向移动的谓词集合D中添加p1和p2;
步骤2.3.3、通过调用谓词移动函数将谓词p∧δ从端口from移动到端口to;
步骤2.3.4、检查端口to存有的每个谓词p′,是否与谓词p拥有相同的端口集合:如果没有相同的端口集合,不动作;如果有相同的端口集合,则谓词p′和谓词p具有相同的转发行为,谓词p′和谓词p可以合并,通过调用谓词合并算法,将谓词p′和谓词p合并为新的谓词p∨p′;
步骤2.3.5、对于重写元素的重写表RT,重写表RT的条目(k,v)定义为:键k是一个谓词,值v是一个谓词集,表示重写元素按照重写规则会将谓词k转换为谓词集v;对于重写表RT中的每个条目(k,v),判断集合v中的每一个元素p是否为一个谓词:
如果是一个谓词,则不对p作任何处理;
如果不是一个谓词,则将所有与谓词p有交集的谓词p′拆分成和p′∧p,然后,判断重写表RT中的每一个条目(k,v),如果谓词p′不在v中,不做任何处理;如果p′在集合v中,则在v中除去p′,并添加和p′∧p;最后,删去RT表中k为p′的条目,并添...
【专利技术属性】
技术研发人员:张鹏,刘旭,杨宏坤,
申请(专利权)人:西安交通大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。