核查转发表项的方法、装置和控制器与流程

文档序号:16899999发布日期:2019-02-19 17:52阅读:189来源:国知局
本公开涉及通信
技术领域
:,尤其是涉及核查转发表项的方法、装置和控制器。
背景技术
::现有诸如sdn(softwaredefinednetwork,软件定义网络)等通信网络架构中,通常需要控制器核查本地存储的转发表项(诸如,流表项flowentry)和与其关联的网络设备存储的转发表项是否一致,以确保网络设备和控制器具有相同的转发动作和转发策略。现有的控制器在核查转发表项是否一致时,主要采用逐条比对转发表项中数据的方式实现。具体而言,控制器定时从网络设备上读取转发表项,然后和本地存储的转发表项的数据进行比较,从而进行一致性核查。然而,这种方式需要控制器进行大量的表项读取及逐条核查工作,通常耗费时间较长,核查效率较为低下。技术实现要素:有鉴于此,本公开的目的在于提供一种核查转发表项的方法、装置和控制器,用以提高转发表项的核查效率。为了实现上述目的,本公开采用的技术方案如下:第一方面,本公开提供了一种核查转发表项的方法,应用于控制器,该方法包括:向目标网络设备发送核查请求消息;接收目标网络设备根据核查请求消息反馈的核查应答消息;其中,核查应答消息携带有转发表项标识以及与转发表项标识对应的计算值;根据转发表项标识对应的计算值核查目标网络设备上的转发表项是否异常。第二方面,本公开提供了一种核查转发表项的装置,应用于控制器,该装置包括:请求发送模块,用于向目标网络设备发送核查请求消息;应答接收模块,用于接收目标网络设备根据核查请求消息反馈的核查应答消息;其中,核查应答消息携带有转发表项标识以及与转发表项标识对应的计算值;核查模块,用于根据转发表项标识对应的计算值核查目标网络设备上的转发表项是否异常。第三方面,本公开实施方式提供了一种控制器,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述方法。第四方面,本公开实施方式提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述方法。上述核查转发表项的方法、装置、控制器和机器可读存储介质,控制器首先向目标网络设备发送核查请求消息,然后接收目标网络设备根据该核查请求消息反馈的核查应答消息,其中,核查应答消息中携带有转发表项标识以及与转发表项标识对应的计算值;控制器进而根据转发表项标识对应的计算值核查目标网络设备上的转发表项是否异常。与现有技术中的控制器需要进行大量的表项读取及逐条核查工作,效率低下的方式相比,本实施例提供的这种方式,控制器只需根据转发表项的计算值核查转发表项是否异常,能够极大地缩短控制器核查转发表项的时间,提升转发表项的核查效率。本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本公开实施方式提供的核查转发表项的方法的应用场景示意图;图2为本公开实施方式提供的一种核查转发表项的方法流程图;图3为本公开实施方式提供的另一种核查转发表项的方法流程图;图4为本公开实施方式提供的另一种核查转发表项的方法流程图;图5为本公开实施方式提供的一种sdn控制器1与接入交换机sw1的交互过程示意图;图6为本公开实施方式提供的一种核查转发表项的装置的结构框图;图7为本公开实施方式提供的另一种核查转发表项的装置的结构框图;图8为本公开实施方式提供的另一种核查转发表项的装置的结构框图;图9为本公开实施方式提供的另一种核查转发表项的装置的结构框图;图10为本公开实施方式提供的一种核查转发表项的实现装置的结构框图。具体实施方式为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。需要说明的是,上述各方法实施方式均采用递进的方式描述,每个实施方式重点说明的都是与其他实施方式的不同之处,各个实施方式之间相同相似的部分互相参见即可。为了更好地理解本公开的技术方案,下面结合图1首先对核查转发表项的方法的应用场景进行描述。可以理解的是,图1仅以sdn网络环境为例进行示意,其中,sdn网络是一种新型的网络架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对网络流量的灵活控制,能够为核心网络及应用提供良好的平台。在实际应用中,本实施例提供的核查转发表项的方法还可应用于其它控制器集群的网络环境中,在此不进行限制。在图1中象征性示意出了sdn控制器集群,本实施例中以该控制器集群中包括sdn控制器1以及sdn控制器2两个控制器为例进行说明;其中,sdn控制器1为主设备(leader),sdn控制器2为成员设备(member)。图1中的sw1、sw2……sw20为接入交换机,sdn控制器1和sdn控制器2分别负担10台接入交换机的转发表项下发、核查等工作。诸如,平均每个接入交换机sw存储有100k的openflow流表。接入交换机还可以下挂有用户虚拟设备vm。在如图1所示的应用场景中,sdn控制器1是接入交换机sw1~sw10的主机(master),是sw11~sw20的辅机(slave);而sdn控制器2是接入交换机sw11~sw20的主机(master),是sw1~sw10的辅机(slave);可以理解的是,只有主机才会向接入交换机sw发送创建、修改或者删除转发表项的指令,而辅机只可以读取接入交换机sw上的转发表项。诸如,sdn控制器1可以向sw1~sw10发送创建、修改或者删除转发表项的指令,但是sdn控制器1只可以读取sw11~sw20上的转发表项。以sdn控制器1与接入交换机sw1为例,理论上二者各自存储的转发表项应该是一致的,但是,现实情况中也可能出现sdn控制器1与接入交换机sw1存储的转发表项不同的现象,以下示意出两种主要原因:原因一:sdn控制器1与接入交换机sw1之间传输数据的网络通道、sdn控制器1、接入交换机sw1均可能出现消息丢失的情况。诸如,sdn控制器1在给接入交换机sw1发送创建转发表项、删除转发表项等消息时,因网络通道的可靠性难以达到100%,接入交换机sw1都可能出现收不到消息的情况。又诸如,接入交换机sw1虽然接收到了sdn控制器1下发的消息,但由于消息较多,可能会出现消息从缓存队列中溢出的情况。又诸如,sdn控制器1在通过消息队列发送消息时,也存在消息从队列中溢出的情况,导致消息没有发出。原因二:接入交换机sw1自身触发转发表项更新所导致表项差异。诸如,当数据迁移时会触发转发表项更新,接入交换机sw1会刷新自身存储的转发表项,并将转发表项更新消息上报给sdn控制器1,但是也可能出现非正常上报的情况,导致sdn控制器1未对自身存储的转发表项进行更新,从而导致表项差异。基于上述原因,sdn控制器1有必要定期对接入交换机sw1中存储的转发表项进行一致性核查,以确保接入交换机sw1是按照sdn控制器1的意愿转发报文。同理,不同控制器上保存的转发表项应当相同,以确保控制器对外能够体现出相同的转发动作和转发策略,诸如,当切换控制器时,新生效的控制器能够执行与原有控制器相同的操作,因此,sdn控制器1与sdn控制器2之间也需要进行表项一致性核查。因此,sdn控制器和与自身关联的接入交换机之间、两台sdn控制器之间均需要可对转发表项进行核查。具体而言,sdn控制器1可以定期对接入交换机sw1~sw10和sdn2控制器中存储的转发表项进行核查,sdn控制器2可以定期对接入交换机sw11~sw20中存储的转发表项进行核查。仍旧以sdn控制器1与接入交换机sw1为例,现有的表项一致性核查方法中,sdn控制器1通常是先给接入交换机sw1下发表项核查请求,然后接收接入交换机sw1上传的自身存储的转发表项,sdn控制器1读取接入交换机sw1的转发表项,并与控制器本地存储的转发表项进行逐条数据对比,以判断是否一致。这种方式下,需要sdn控制器1进行大量的读取和比对工作,尤其是sdn控制器1需要对多个接入交换机进行表项一致性核查,工作量巨大,耗费时间较长,表项核查效率极低。而且,这种方式核查方式由于需要传输表项,数据传输量较大,还比较浪费控制带宽和设备资源。因此,本实施方式考虑通过改变核查转发表项的方式,以缓解上述表项核查用时较长,效率较低的问题。本实施方式提供了一种核查转发表项的方法、装置和控制器;该技术可以应用于诸如sdn等通信网络架构中,便于网络架构中的控制器对各网络设备存储的转发表项进行一致性核查,下面进行具体描述。首先,参见图2所示的一种核查转发表项的方法流程图,该方法应用于控制器,诸如,该控制器可以为sdn控制器,该方法包括:步骤s202,向目标网络设备发送核查请求消息。一种实施方式中,核查请求消息仅为一种预先与目标网络设备协议好的请求信息,目标网络设备一旦接收到该请求信息,即可获知需要待核查的转发表项;在另一种实施方式中,核查请求消息中直接携带有待核查的转发表项的标识,目标网络设备根据核查请求消息中的转发表项的标识确定待核查的转发表项。如果应用于sdn网络架构,则本实施例提供的上述该目标网络设备可以包括sdn控制器连接的交换机或另一个sdn控制器。从而实现控制器与交换机之间、控制器与控制器之间的表项一致性核查工作。步骤s204,接收目标网络设备根据核查请求消息反馈的核查应答消息;其中,核查应答消息携带有转发表项标识以及与该转发表项标识对应的计算值。转发表项可以为流表项,诸如可以为sdn网络中的openflow流表。对于控制器集群,转发表项标识可以是基于sdn控制器的标识和对应表项的标识生成的标识。一般而言,每个sdn控制器都能够独立创建流表,而且本实施例中由sdn控制器分配的流表均可携带有本地标识,基于此,本实施例中的转发表项标识=sdn控制器id+本地标识;其中,本地标识为sdn控制器为流表项分配的标识符。通过上述控制器标识与本地标识相结合的方式,能够在整个网络中确保设备上存储的每条流表都具有唯一标识,从而避免集群控制器之间进行流表同步时,以及sdn控制器将流表下发给网络设备等流表交互过程不会遇到流表重复的情况。而且,每条流表具有唯一标识,也可以使得流表项的计算值具有唯一性。其中,流表项的计算值可以是基于流表项的匹配域和动作域中的内容计算的散列值(又可称为hash值)。具体可以采用散列(hash)算法对流表项内容进行计算,得到散列值。诸如md2、md4、md5和sha-1等算法均为散列算法。散列算法又可称为散列函数,其能够将数据压缩成摘要,使得数据量变小。当然,还可以采用其它用户自定义算法,只需该算法针对不同的内容可以计算得到不同的数值即可,在此不进行限定。相比于现有技术中目标网络设备需要将完整的流表内容传输给sdn控制器进行一致性核验,本实施例中的目标网络设备只需要将转发表项的计算值发送给sdn控制器即可,极大的缩减了数据传输量,能够有效降低带宽和设备资源。以上以转发表项是流表为例进行说明,在实际应用中,转发表项还可以是路由表或其它需要在具有集中控制功能的控制器与网络设备间转发的表项,原理与流表相似,在此不再赘述。如果转发表项是路由表,则本实施例提供的上述方法尤其适用于路由表数量较多的场景,能够有效提升路由表的核查效率。在控制器与网络设备交互的转发表项中,还可以扩展指定字段(诸如,instructionexperiment字段)专门保存散列算法和计算值;可以理解的是,在采用散列算法基于转发表项的内容进行计算时,计算内容不包含上述扩展的指定字段。步骤s206,根据转发表项标识对应的计算值核查目标网络设备上的转发表项是否异常。本实施例为了减少流表一致性核查的时间,对现有的数据比对方式进行了优化处理,sdn控制器不再是从网络设备中直接获取完整的流表内容并逐条比对数据,而是通过转发表项标识对应的计算值来判断该转发表项是否异常。可以理解的是,转发表项的计算值是采用散列算法基于转发表项的内容计算得到的,如果转发表项的内容相同,则计算得到的计算值通常相同,反之,一旦转发表项不一致,则相应的计算值也不相同。基于此,sdn控制器可以直接比对目标网络设备上传的待核查转发表项的计算值与本地存储的待核查转发表项的计算值是否一致,如果一致,则确定转发表项正常,如果不一致,则说明转发表项的内容有误,可进一步确定转发表项异常。综上所述,通过本实施例提供的上述核查转发表项的方法,控制器只需根据转发表项的计算值便可核查转发表项是否异常,能够极大地缩短控制器核查转发表项的时间,提升转发表项的核查效率。可以理解的是,本实施例提供的方法所应用的环境下的控制器,以及目标网络设备均支持散列算法,由于散列算法可能有多种,为了确保计算值的唯一性,控制器与目标网络设备应当均采用相同的算法,以便针对同一转发表项计算得到相同的数值。为此,控制器与目标网络设备之间应当对采用的散列算法达成一致性协议,以确定双方共同使用同一算法对转发表项进行计算。基于此,本实施例提供了以下两种控制器与目标网络设备之间的算法确定方式:方式一:控制器在向目标网络设备发送核查请求消息之前,还需要首先获取目标网络设备支持的散列算法;然后从目标网络设备支持的散列算法中选择目标算法,进而将目标算法的标识通知给目标网络设备,以使目标网络设备应用目标算法计算转发表项的计算值。诸如,sdn控制器可以通过openflow协议获取目标网络设备支持的散列算法,然后使用openflow报文头中的字段multiparttablefeatures向目标网络设备发起算法协商请求,目标网络设备向控制器发起的openflow报文头中的字段multiparttablefeaturesreply中携带目标网络设备所支持的算法,控制器从而可保存每个目标网络设备支持的算法。sdn控制器可从获取的多种散列算法中选取一种目标算法,然后告知目标网络设备。方式二,控制器在向目标网络设备发送核查请求消息时,可以首先获取目标网络设备支持的散列算法,然后从目标网络设备支持的散列算法选择目标算法;生成携带有目标算法的标识的核查请求消息;进而向目标网络设备发送核查请求消息,以使目标网络设备应用目标算法计算转发表项的计算值。在方式一中,控制器与目标网络设备共同确认所采用的的目标算法之后,控制器才向目标网络设备发送核查请求消息。而在方式二中,控制器在给目标网络设备发送核查请求消息中便携带有需采用的目标算法,无需预先告知目标网络设备。在实际应用时,可以灵活选用上述方式一或方式二。在实际应用中,在不同次的表项一致性核查中选择的目标算法可以不同,其优势在于:尽可能避免因固定采用某一散列算法而可能出现的散列冲突的问题,其中,散列冲突主要体现为表项内容不同但计算得到的散列值相同。虽然这种情况发生的可能性不大,但这种情况一旦出现,就有可能遗漏错误表项,对核查结果有所影响。而采用不同的目标算法进行核查,则可以有效避免散列冲突的情况。为便于理解,在此简单示意性说明:诸如,假设转发表项x1与待核查表项x2的内容存在差异,而在较低概率下,第一次核查时采用a散列算法作为目标算法计算转发表项的计算值时,有可能计算得到的转发表项x1与待核查表项x2的计算值恰巧相同,则会导致控制器误认为两张转发表项x1和x2一致。如果在第二次核查时换用b散列算法作为目标算法技术转发表项的计算值时,可以理解的是,b散列算法计算得到的转发表项x1与待核查表项x2的计算值基本是不同的,因此在第二次核查时就可将遗漏的待核查表项x2的问题发现,从而进一步提升了表项核查的可靠性。在图2的基础上,本发明实施方式还提供了如图3所示的另一种核查转发表项的方法流程图,该方法给出了一种具体的核查方式,该方法仍应用于诸如sdn控制器等控制器,该方法包括:步骤s302,向目标网络设备发送核查请求消息。其中,核查请求消息中携带有待核查的转发表项标识。步骤s304,接收目标网络设备根据核查请求消息反馈的核查应答消息;其中,核查应答消息携带有转发表项标识以及与转发表项标识对应的计算值。步骤s306,判断是否在控制器的本地查找到上述转发表项标识对应的转发表项。如果是,执行步骤s308,如果否,执行步骤s312。步骤s308,比对接收到的转发表项标识对应的计算值与本地存储的转发表项标识对应的转发表项的计算值是否相等;如果是,执行步骤s310,如果否,执行步骤s312;步骤s310,确定目标网络设备上的转发表项标识对应的转发表项正常;步骤s312,确定目标网络设备上的转发表项标识对应的转发表项异常。步骤s314,根据异常情况进行处理。其中,控制器针对异常情况进行处理的方式包括以下中的一种或多种:(1)若转发表项标识对应的计算值错误,向目标网络设备发送转发表项标识在本地对应的转发表项;(2)若本地不存在转发表项标识对应的转发表项,通知目标网络设备删除转发表项标识对应的转发表项;(3)若接收到的转发表项标识不全,将缺失的转发表项标识对应的转发表项发送给目标网络设备。通过本实施例提供的上述方式,控制器在接收到目标网络设备根据核查请求消息反馈的核查应答消息时,通过比对接收到的转发表项标识对应的计算值与本地存储的转发表项标识对应的转发表项的计算值是否相等,从而实现转发表项的一致性核查,这种方式一方面无需传输完整的转发表项,能够有效节约网络资源,另一方面只需比对转发表项的计算值是否相同即可,无需逐一比对转发表项的所有数据,因此极大地缩短了核查时间,有效提升了核查效率。对应于图2所示的控制器执行的核查转发表项的方法,本公开实施例还站在与控制器关联的网络设备的角度上提供了一种核查转发表项的方法,也即,该方法应用于与控制器(具有集中式控制功能)连接的网络设备,该网络设备具体可对应于图2提供的核查转发表项的方法中的目标网络设备,具体可以为交换机,也可以为另一个控制器,如图4所示,该方法包括如下步骤:步骤s402,接收控制器发送核查请求消息。步骤s404,根据核查请求消息生成核查应答消息;其中,核查应答消息携带有本地转发表项的转发表项标识以及该转发表项标识对应的计算值。步骤s406,将核查应答消息反馈给控制器,以使控制器根据转发表项标识对应的计算值核查网络设备上的转发表项是否异常。通过本实施例提供的上述核查转发表项的方法,网络设备在接收到核查请求消息时,能够生成携带有本地转发表项的转发表项标识对应的计算值,从而将该核查应当消息反馈给控制器。这种方式无需网络设备将完整的转发表项传输给控制器,因而能够有效的节约网络资源,而且仅给控制器传输转发表项的计算值的方式,可以使控制器根据计算值核查转发表项是否异常,无需逐条数据进行核验,因此能够有效提升核查效率。同样,控制器与网络设备之间确定共同采用的目标算法时,可采用如下方式一或方式二实现:方式一:网络设备在接收控制器发送核查请求消息的步骤之前,还需要向控制器发送网络设备支持的散列算法的算法标识;然后接收控制器从算法标识中选择的目标算法标识;进而应用目标算法标识对应的算法计算本地各个转发表项的计算值,之后如果接收到控制器发送的核查请求消息,则针对该核查请求消息向控制器反馈携带有计算值的核查应答消息。其中,目标算法标识对应的算法即为网络设备上存储的目标算法。方式二:网络设备在根据核查请求消息生成核查应答消息时,可以首先提取核查请求消息中携带的目标算法标识;其中,目标算法标识是控制器从网络设备支持的散列算法中选择的目标算法的标识;然后获取本地的转发表项对应目标算法标识的计算值;最后基于获取的转发表项的计算值生成核查应答消息。在网络设备获取本地的转发表项对应目标算法标识的计算值时,可以是直接采用目标算法对本地的转发表项进行计算得到,也可以是预先计算并存储有转发表项对应各散列算法的计算值,然后从中选取目标算法的计算值。方式一和方式二的主要区别在于网络设备获知目标算法以及采用目标算法确定计算值的时机有所差异,在实际应用时,可以灵活选用上述方式一或方式二。结合图1,本公开实施例提供了一种如图5所示的sdn控制器1与接入交换机sw1的交互过程示意图,以转发表项是流表为例,该交互过程包括以下步骤:步骤s502,sdn控制器1向接入交换机sw1发送携带有目标算法标识的核查请求消息。其中,目标算法标识可以是sdn控制器1预先通过openflow报文头中的字段multiparttablefeaturesreplay获取的接入交换机sw1所支持的算法中选取的目标算法的标识,诸如,接入交换机sw1所支持的散列算法有sha-1算法和md5算法,sdn控制器1从中选取sha-1算法作为目标算法,并将目标算法标识sha-1通过核查请求消息通知给接入交换机sw1。步骤s504,接入交换机sw1解析出核查请求消息中的目标算法标识。也即,接入交换机sw1从核查请求消息中解析出目标算法sha-1。步骤s506,接入交换机sw1依次遍历并收集本地的openflow流表,基于目标算法计算出各openflow流表的计算值,基于流表标识符和流表计算值生成核查应答报文。也即,接入交换机sw1可采用目标算法sha-1计算各openflow流表的计算值,进而生成携带有流表计算值的核查应答报文。在一种实施方式中,openflow流表的计算值长度可以为128bits。当然,也可以是256bits或者其它,在此不进行限定。步骤s508,接入交换机sw1将核查应答报文上传给sdn控制器1。步骤s510,sdn控制器1解析出核查应答报文中的流表标识符和流表计算值。步骤s512,sdn控制器1将接入交换机sw1上传的流表计算值与本地保存的流表计算值比对,判断是否一致。步骤s514,sdn控制器1对异常情况进行处理。具体而言,可以根据不同的异常情况进行差异化处理。为便于理解,以下给出两种异常情况示例:异常情况示例一:假设在某个时刻,交换机管理员直接通过接入交换机sw1的api接口修改了流表1的内容,诸如,将流表1中的outputport由port1改成port2,此时接入交换机sw1会自动利用sha-1算法将整个流表1的内容进行计算,得到并保存新的计算值,如果接入交换机sw1未将该更新上报给sdn控制器1,则sdn控制器1中的流表1的计算值与接入交换机sw1中流表1的计算值通常是不同的。sdn控制器1在根据计算值进行表项核查时,则会发现接入交换机sw1上传的流表1的计算值与sdn控制器1本地保存的流表1的计算值不一致,则sdn控制器1可以进一步通过openflow协议的individualflowdescription消息获取流表1的具体内容进行比对,并基于流表1给接入交换机sw1下发流表更新消息,以便接入交换机sw1根据流表更新消息对本地存储的流表1进行更新。异常情况示例二:假设在某个时刻,交换机管理员直接通过接入交换机sw1的api接口修改了流表2,sdn控制器1在根据计算值进行表项核查时,则会发现待核查的流表2在接入交换机sw1上不存在(诸如,计算值为空),则基于流表2给接入交换机sw1下发流表创建消息,并根据流表创建消息在本地创建流表2,从而使sdn控制器1与接入交换机sw1中的流表一致。可以理解的是,图5仅是sdn控制器1与接入交换机sw1的交互过程示例,在实际应用中,sdn控制器1与其它接入交换机之间、sdn控制器2与其它接入交换机之间、以及,sdn控制器1和sdn控制器2之间,均可参照上述步骤实现,在此不再赘述。在实际应用中,sdn控制器1也会通过sdn控制器2收集到接入交换机sw11~sw20上的流表计算值,并进行一致性核查,若发现异常,则可以记录异常。sdn控制器1可以选择向管理平台上报异常,但是由于sdn控制器1不是接入交换机sw11~sw20的主机,因此不会主动进行流表的修复操作,接入交换机sw11~sw20的流表修复操作可以由其主机sdn控制器2实现。综上所述,本公开实施例提供的上述核查转发表项的方法,控制器能够以高效的方式收集到网络设备上的openflow流表差异,网络设备不再需要将自身完整的流表数据上传到控制器,只需将能够代表流表内容的计算值上传给控制器即可,二者通过算法的传递完成数据的核查,减少了控制通道上的大量流表数据传输,改善了信令传输的有效带宽,并提高了控制器和网络设备的cpu执行效率,可进一步提升网络运行的可靠性和稳定性。对应于上述方法实施方式,本实施例提供了一种核查转发表项的装置,该装置应用于具有集中式控制功能的控制器,如图6所示,该装置包括:请求发送模块60,用于向目标网络设备发送核查请求消息;应答接收模块62,用于接收目标网络设备根据核查请求消息反馈的核查应答消息;其中,核查应答消息携带有转发表项标识以及与转发表项标识对应的计算值;核查模块64,用于根据转发表项标识对应的计算值核查目标网络设备上的转发表项是否异常。通过本实施例提供的上述核查转发表项的装置,控制器只需根据转发表项的计算值核查转发表项是否异常,能够极大地缩短控制器核查转发表项的时间,提升转发表项的核查效率。参见图7所示的另一种核查转发表项的装置结构示意图,在图6的基础上,还包括算法获取模块70,用于获取目标网络设备支持的散列算法;算法选择模块72,用于从目标网络设备支持的散列算法中选择目标算法;算法通知模块74,用于将目标算法的标识通知给目标网络设备,以使目标网络设备应用目标算法计算转发表项的计算值。在一种实施方式中,上述请求发送模块60用于:获取目标网络设备支持的散列算法;从目标网络设备支持的散列算法选择目标算法;生成携带有目标算法的标识的核查请求消息;向目标网络设备发送核查请求消息,以使目标网络设备应用目标算法计算转发表项的计算值。在一种实施方式中,上述核查模块64用于:在控制器的本地查找转发表项标识对应的转发表项;如果查找到转发表项,比对接收到的转发表项标识对应的计算值与本地存储的转发表项标识对应的转发表项的计算值是否相等;如果相等,确定目标网络设备上的转发表项标识对应的转发表项正常;如果不相等,确定目标网络设备上的转发表项标识对应的转发表项异常。此外,在图7中还示意出该装置还包括异常处理模块76,用于如果目标网络设备上的转发表项异常,根据异常情况进行处理;其中,处理的方式包括以下中的一种或多种:若转发表项标识对应的计算值错误,向目标网络设备发送转发表项标识在本地对应的转发表项;若本地不存在转发表项标识对应的转发表项,通知目标网络设备删除转发表项标识对应的转发表项;若接收到的转发表项标识不全,将缺失的转发表项标识对应的转发表项发送给目标网络设备。在一种具体的实施方式中,上述控制器可以为sdn控制器,目标网络设备可以包括:sdn控制器连接的交换机或另一个sdn控制器;转发表项为流表项,转发表项标识是基于sdn控制器的标识和对应流表项的标识生成的标识;计算值是基于流表项的匹配域和动作域中的内容计算的散列值。对应于图8所示的应用于集中式控制功能的控制器的核查转发表项的装置,本公开实施例还提供了一种应用于网络设备的核查转发表项的装置,其中,该网络设备与控制器连接,该装置包括:请求接收模块80,用于接收控制器发送核查请求消息;应答生成模块82,用于根据核查请求消息生成核查应答消息;其中,核查应答消息携带有本地转发表项的转发表项标识以及与该转发表项标识对应的计算值;应答反馈模块84,用于将核查应答消息反馈给控制器,以使控制器根据转发表项标识对应的计算值核查网络设备上的转发表项是否异常。通过本实施例提供的上述核查转发表项的装置,网络设备在接收到核查请求消息时,能够生成携带有本地转发表项的转发表项标识对应的计算值,从而将该核查应当消息反馈给控制器。这种方式无需网络设备将完整的转发表项传输给控制器,因而能够有效的节约网络资源,而且仅给控制器传输转发表项的计算值的方式,可以使控制器根据计算值核查转发表项是否异常,无需逐条数据进行核验,因此能够有效提升核查效率。参见图9所示的另一种核查转发表项的装置结构示意图,在图8的基础上,图9所示的装置还包括如下模块:标识发送模块90,用于向控制器发送网络设备支持的散列算法的算法标识;标识接收模块92,用于接收控制器从算法标识中选择的目标算法标识;计算模块93,用于应用目标算法标识对应的算法计算本地各个转发表项的计算值。在一种实施方式中,上述应答生成模块用于:提取核查请求消息中携带的目标算法标识;其中,目标算法标识是控制器从网络设备支持的散列算法中选择的目标算法的标识;获取本地的转发表项对应目标算法标识的计算值;基于获取的转发表项的计算值生成核查应答消息。本发明实施方式还提供了一种控制器,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现核查转发表项的方法。本实施方式提供了一种核查转发表项的的实现装置。用于执行本公开实施例提供的核查转发表项的控制器,或者用于执行本公开实施例提供的核查转发表项的网络设备(诸如接入交换机等)的硬件结构均可参照该实现装置。图10为该实现装置的结构示意图,如图10所示,存储器100和处理器101;其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述核查转发表项的方法。进一步,图10所示的实现装置还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。其中,存储器100可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成前述实施方式的方法的步骤。本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现本公开实施例提供的上述控制器执行的核查转发表项的方法。本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述网络设备执行的核查转发表项的方法,具体实现可参见方法实施方式,在此不再赘述。本公开实施方式所提供的核查转发表项的装置及核查转发表项的实现装置,其实现原理及产生的技术效果和前述方法实施方式相同,为简要描述,装置实施方式部分未提及之处,可参考前述方法实施方式中相应内容。在本申请所提供的几个实施方式中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本公开各个实施方式中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
:的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1