一种流量转发的方法及装置与流程

文档序号:18134522发布日期:2019-07-10 10:30阅读:279来源:国知局
一种流量转发的方法及装置与流程

本申请涉及通信技术领域,具体而言,涉及一种流量转发的方法及装置。



背景技术:

边界网关协议(bordergatewayprotocol,bgp)网络中,每个路由器可具备至少一个出接口,其中,任两个路由器之间若已建立bgp邻居关系,则可以通过各自的出接口构成至少一条链路,以便转发业务流量,其中,业务流量可以理解为携带有业务数据的数据包。具体的,业务流量的转发方式可以基于流规格(flowspecification,flowspec)来控制,其中一个路由器可以作为bgpflowspec控制器,向另外的路由器下发flowspec报文,以便通知流量匹配规则以及对应的流量应用动作,相应地,另外的路由器在接收到业务流量后,可以判断该业务流量是否与某种流量匹配规则相符合,若符合,则进一步基于对应的流量应用动作中定义的默认下一跳出接口地址,转发该业务流量。

但是,考虑到路由器中不同出接口对应的链路的传输质量可能出现不稳定的情况,如果采用上述方案将符合某种流量匹配规则的业务流量根据预先定义好的默认下一跳出接口进行转发,很可能该默认下一跳出接口对应的链路的传输质量较差,那么通过该链路转发业务流量,很难满足一些业务中对传输质量的要求。



技术实现要素:

有鉴于此,本申请的目的在于提供一种流量转发的方法及装置,以提高业务流量的传输质量。

第一方面,本申请提供一种流量转发的方法,应用于第一转发设备中,包括:

接收第二转发设备发送的第一流规格报文,所述第一流规格报文中包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

基于所述至少两条链路中每条链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

在接收到业务流量之后,在本地路由表中查找所述第一转发设备上用于转发所述业务流量的第一目标出接口;

若所述第一目标出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

本申请的一些实施例中,所述基于所述至少两条链路中每条链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口,包括:

若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则对所述待探测链路进行探测;

通过将探测到的传输质量参数与所述第一流规格报文中携带的预设检测参数进行对比,确定探测结果;若所述探测结果为探测成功,则将所述待探测链路的传输质量状态更新为第二状态;若所述探测结果为探测失败,则将所述待探测链路的传输质量状态更新为第三状态;

基于探测后的各链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

其中,所述第一状态用于指示链路未进行探测,所述第二状态用于指示链路的传输质量符合预设要求,所述第三状态用于指示链路的传输质量不符合预设要求。

本申请的一些实施例中,所述方法还包括:

在完成对所述待探测链路的探测之后,向所述第二转发设备发送第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态。

本申请的一些实施例中,根据以下方式确定所述至少两条链路中传输质量状态符合预设要求的目标链路,包括:

确定所述至少两条链路中所述传输质量状态置为第二状态的链路;其中,所述第二状态用于指示链路的传输质量符合预设要求;

若所述传输质量状态置为第二状态的链路为一条,则将一条传输质量状态置为第二状态的链路作为所述目标链路;

若所述传输质量状态置为第二状态的链路为至少两条,则基于预设策略从至少两条传输质量状态置为第二状态的链路中选择所述目标链路。

本申请的一些实施例中,所述方法还包括:

若满足以下任一种条件时,则基于所述本地路由表中记录的路由表项转发所述业务流量;其中,所述任一种条件为:

所述至少两条链路中不存在所述传输质量状态置为第二状态的链路;或者,所述第一目标出接口未通过所述目标链路连接所述第二目标出接口。

第二方面,本申请提供一种流量转发的方法,应用于第二转发设备中,包括:

向第一转发设备发送第一流规格报文,所述第一流规格报文包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则在所述第一转发设备对所述待探测链路进行探测后,接收所述第一转发设备发送的第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态;

基于探测后的各链路的传输质量状态,确定各链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

在接收到业务流量之后,在本地路由表中查找所述第二转发设备上用于转发所述业务流量的第二出接口;

若用于转发所述业务流量的第二出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

第三方面,本申请提供一种流量转发的装置,包括:

接收模块,用于接收第二转发设备发送的第一流规格报文,所述第一流规格报文中包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

确定模块,用于基于所述至少两条链路中每条链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

查找模块,用于在接收到业务流量之后,在本地路由表中查找所述第一转发设备上用于转发所述业务流量的第一目标出接口;

流量转发模块,用于若所述第一目标出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

本申请的一些实施例中,所述确定模块,具体用于:

若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则对所述待探测链路进行探测;

通过将探测到的传输质量参数与所述第一流规格报文中携带的预设检测参数进行对比,确定探测结果;若所述探测结果为探测成功,则将所述待探测链路的传输质量状态更新为第二状态;若所述探测结果为探测失败,则将所述待探测链路的传输质量状态更新为第三状态;

基于探测后的各链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

其中,所述第一状态用于指示链路未进行探测,所述第二状态用于指示链路的传输质量符合预设要求,所述第三状态用于指示链路的传输质量不符合预设要求。

本申请的一些实施例中,所述装置还包括:

发送模块,用于在完成对所述待探测链路的探测之后,向所述第二转发设备发送第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态。

本申请的一些实施例中,所述确定模块,具体用于:

确定所述至少两条链路中所述传输质量状态置为第二状态的链路;其中,所述第二状态用于指示链路的传输质量符合预设要求;

若所述传输质量状态置为第二状态的链路为一条,则将一条传输质量状态置为第二状态的链路作为所述目标链路;

若所述传输质量状态置为第二状态的链路为至少两条,则基于预设策略从至少两条传输质量状态置为第二状态的链路中选择所述目标链路。

本申请的一些实施例中,所述流量转发模块,还用于:

若满足以下任一种条件时,则基于所述本地路由表中记录的路由表项转发所述业务流量;其中,所述任一种条件为:

所述至少两条链路中不存在所述传输质量状态置为第二状态的链路;或者,所述第一目标出接口未通过所述目标链路连接所述第二目标出接口。

第四方面,本申请提供另一种流量转发的装置,包括:

发送模块,用于向第一转发设备发送第一流规格报文,所述第一流规格报文包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

接收模块,用于若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则在所述第一转发设备对所述待探测链路进行探测后,接收所述第一转发设备发送的第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态;

确定模块,用于基于探测后的各链路的传输质量状态,确定各链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

查找模块,用于在接收到业务流量之后,在本地路由表中查找所述第二转发设备上用于转发所述业务流量的第二出接口;

流量转发模块,用于若用于转发所述业务流量的第二出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

第五方面,本申请提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面所述的流量转发的方法的步骤,或者,执行如上述第二方面所述的流量转发的方法的步骤。

第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面所述的流量转发的方法的步骤,或者,执行如上述第二方面所述的流量转发的方法的步骤。

本申请实施例中,通过在flowspec报文中新增用于指示链路选取方式的字段,第一转发设备可以基于第二转发设备发送的flowspec报文中新增字段中所定义的参数,来确定与第二转发设备之间每条链路的传输质量状态,并基于每条链路的传输质量状态来选择传输质量符合预设要求的目标链路,进一步地,第一转发设备在接收到业务流量之后,还可以通过判断用于转发业务流量的第一目标出接口是否通过目标链路连接第二转发设备的第二目标出接口,来确定业务流量是否与目标链路相匹配,对于与目标链路相匹配的业务流量,可以通过该目标链路来转发,从而提高业务流量的传输质量。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所述附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种流量转发的方法的流程示意图;

图2示出了本申请实施例提供的应用场景示意图;

图3示出了本申请实施例提供的一种流量转发的装置的结构示意图;

图4示出了本申请实施例提供的另一种流量转发的装置的结构示意图;

图5示出了本申请实施例提供的一种电子设备的结构示意图;

图6示出了本申请实施例提供的另一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请可应用在bgp网络中确定传输业务流量的链路的场景下。目前,bgp网络中路由器在转发业务流量时,可以基于flowspec中指示的流量匹配规则以及对应的流量应用动作来确定传输业务流量的链路。但是,值得注意的是,flowspec中一般配置好每种类型的业务流量所对应的链路,路由器在基于流量匹配规则确定出业务流量的类型之后,可以直接基于流量应用动作中配置的链路来转发业务流量。由于路由器中不同出接口对应的链路的传输质量可能出现不稳定的情况,这种基于预先配置好的链路来转发业务流量的方式,可能导致业务流量的传输质量较差的问题。

示例性的,对于已建立bgp邻居关系的路由器(router)#a和router#b来说,router#a的出接口#a1和router#b的出接口#b1之间可构成链路#1,router#a的出接口#a2和router#b的出接口#b2之间可构成链路#2,假设flowspec中配置了针对某种类型的业务流量利用链路#1来进行转发,如果链路#1出现网络异常情况,那么router#a或router#b在转发该类型的业务流量时,可能出现网络时延较高、或丢包率较高等问题,导致传输质量较差。

针对上述问题,本申请提供了一种流量转发的方法及装置,在flowspec中新增用于指示链路选取方式的字段,以便路由器可以基于flowspec中新增的字段中所定义的参数,来确定每条链路的传输质量状态,并基于每条链路的传输质量状态来选择用于传输业务流量的链路,以便路由器可以智能地选取链路来传输业务流量,从而提高业务流量的传输质量。

下面,结合具体实施例,对本申请提供的流量转发的方法进行详细说明。需要说明的是,下述实施例以bgp网络中已建立bgp邻居关系的任意两个转发设备之间的交互流程为例,来说明流量转发方式。其中,转发设备可以是任何具备路由功能的转发设备,例如路由器等。以路由器为例,上述任意两个路由器可以直接连接,也可以经过中间的至少一个路由器进行连接,例如,router#a和router#b之间可以直接连接,或者,router#a和router#b之间还可以通过中间的router#c进行连接,即router#a-router#c-router#b,本申请对此并不限定。并且,本申请实施例中所提到的“第一”、“第二”等序数词,并不暗示某种顺序或重要性,等仅作为区分不同特征的目的。

参照图1所示,为本申请实施例提供的一种流量转发的方法的流程示意图,包括如下步骤:

步骤101、第二转发设备向第一转发设备发送第一flowspec报文。

本申请实施例中,第二转发设备可以作为bgpflowspec控制器,向第一转发设备发送第一flowspec报文,以通知第一转发设备在进行转发流量时的转发规则等。

其中,第一flowspec报文中新增用于指示链路选取方式的字段,该新增字段中可以如下参数:

(1)动作标识,用于标识链路选取动作。第一转发设备在识别到上述动作标识之后,可以执行链路选取动作,以便智能地确定传输业务流量的链路。

(2)链路的传输质量状态。

其中,第一转发设备和第二转发设备之间可以构成至少两条链路。例如,假设第一转发设备包括第一出接口#11和第一出接口#12,第二转发设备包括第二出接口#21和第二出接口#22,其中,第一出接口#11和第二出接口#21之间可以构成一条链路#1,第一出接口#12和第二出接口#22之间可以构成另一条链路#2。

上述新增字段中可以包括每条链路的传输质量状态,以指示链路的传输质量是否符合预设要求。另外,由于在初始状态下,上述两个转发设备之间的链路可能还未经过探测,故传输质量状态中还可以包括用于指示链路未进行探测的状态。示例性的,每条链路的传输质量状态可以分为三种状态:第一状态,用于指示链路未进行探测;第二状态,用于指示链路的传输质量符合预设要求;第三状态,用于指示链路的传输质量不符合预设要求。

一种可能的实施方式中,每条链路的传输质量状态可以通过标识位来表示,通过将该标识位置为不同的数值,可以表示不同的传输质量状态。示例性的,若该标识位置为1,可以说明该链路的传输质量符合预设要求,若该标识位置为0,可以说明该链路的传输质量不符合预设要求,若该标识位置为2,可以说明该链路还未进行探测,需要进行探测过程。当然,实际应用中,也可以根据不同的需求来配置不同的传输质量状态,并不限定以上三种,并且上述标识位的具体数值可以根据实际需求来配置,上述数值仅作为示例性说明,并不起限定作用。

(3)第二转发设备上用于连接每条链路的第二出接口的信息。

由于每个转发设备的不同出接口可以用互联网协议(internetprotocol,ip)地址和端口号来标识,故上述第二转发设备上用于连接每条链路的第二出接口的信息可以包括第二出接口的ip地址以及端口号。例如,假设第二转发设备通过第二出接口#21与第一转发设备的第一目标出接口#11相连,构成链路#1,第二出接口#21的ip地址为100.1.1.1,端口号为60000,那么第二转发设备连接链路#1的第二出接口#21的信息,即为ip地址100.1.1.1,端口号60000。

本申请的一些实施例中,为了便于指示第一转发设备对每条链路进行探测,上述字段中还包括预设检测参数,例如丢包率阈值、传输时延阈值等,用于检测每条链路的传输质量是否符合预设要求。其中,针对不同的链路,预设检测参数既可以相同也可以不同,也就是说,评价每条链路的传输质量是否符合预设要求的评价标准并不一定相同,通过区分不同链路的传输质量,可以确定出传输质量更优的链路,用来转发对传输质量要求较高的业务流量。

另外,第一转发设备和第二转发设备中也可以预先配置上述预测检测参数,这样,如果在第一flowspec报文中不携带上述预测检测参数的情况下,还可以基于本地预先配置的预测检测参数,来判断每条链路的传输质量是否符合预设要求。

步骤102、第一转发设备在接收到第一flowspec报文之后,基于第一flowspec报文中携带的至少两条链路中每条链路的传输质量状态,确定至少两条链路中传输质量状态符合预设要求的目标链路、以及第二转发设备上用于连接目标链路的第二目标出接口。

具体实施中,如果第一转发设备识别到至少两条链路中存在传输质量状态置为第一状态的待探测链路,也即,存在没有经过探测的链路,那么第一转发设备也可以启动探测过程,对每条待探测链路进行探测。

示例性的,针对每条待探测链路,第一转发设备可以通过该待探测链路向第二转发设备发送探测报文,并接收第二转发设备通过该待探测链路回复的响应报文。通过这一探测流程,第一转发设备可以探测出探测报文在传输过程中的传输时延、丢包率等传输质量参数。

进一步地,可以将探测到的传输质量参数与该待探测链路对应的预设检测参数进行对比,确定探测结果,例如,假设传输质量参数包括传输时延、丢包率,预设检测参数包括传输时延阈值、丢包率阈值,那么通过对比传输时延和传输时延阈值,若传输时延低于传输时延阈值、且丢包率低于丢包率阈值,则可以确定探测成功,否则,确定探测失败。

进一步地,若探测结果为探测成功,则可以将该待探测链路的传输质量状态置为第二状态;若探测结果为探测失败,则可以将该待探测链路的传输质量状态置为第三状态。

在探测完成后,第一转发设备可以基于探测后的各链路的传输质量状态,确定至少两条链路中传输质量状态符合预设要求的目标链路、以及第二转发设备连接目标链路的第二目标出接口。一种可能的实施方式中,第一转发设备可以通过识别每条链路的传输质量状态,从至少两条链路中选择传输质量状态置为第二状态的链路,作为目标链路。

其中,若传输质量状态置为第二状态的链路为一条,则可以将上述一条传输质量状态置为第二状态的链路作为目标链路;若传输质量状态置为第二状态的链路为至少两条,则基于预设策略从至少两条传输质量状态置为第二状态的链路中选择目标链路。其中,预测策略可以为随机选取一条链路作为目标链路,或者将每条链路均作为目标链路,以实现负载均衡。

步骤103、第一转发设备在接收到业务流量之后,在本地路由表中查找第一转发设备上用于转发业务流量的第一目标出接口。

其中,本地路由表中记录的表项内容包括但不限于目的地址、出接口信息、以及下一跳出接口信息之间的对应关系。

具体实施中,由于第一转发设备的第一出接口有多个,每个第一出接口对应的链路并不一定对应着与第二转发设备之间连接的链路,也不一定对应着与第二转发设备之间连接的目标链路,故第一转发设备可以通过在本地路由表中查找该业务流量的目的地址对应的第一出接口的信息,以便确定第一转发设备上用于转发业务流量的第一目标出接口。

步骤104、若第一目标出接口通过目标链路连接第二目标出接口,则第一转发设备通过目标链路转发业务流量。

具体实施中,如果第一目标出接口通过目标链路连接第二目标出接口,则可以说明该业务流量与目标链路相匹配,即业务流量通过第一转发设备的第一目标出接口转发出去后,可以经过目标链路,到达第二转发设备的第二目标出接口,被第二转发设备所接收。

在上述流程中,在转发业务流量的过程中,可能存在一些与目标链路不匹配的业务流量,即无法选择目标链路转发业务流量的情况,在这种情况下可以基于普通路由规则进行转发业务流量。

示例性的,若满足以下任一种条件时,则第一转发设备可以基于本地路由表中记录的路由表项转发业务流量。其中,所述任一种条件为:

条件1、至少两条链路中不存在传输质量状态置为第二状态的链路;

条件2、第一目标出接口未通过目标链路连接第二目标出接口;

条件3、在本地路由表中未查找到第二目标出接口的信息。

本申请实施例中,通过在flowspec报文中新增用于指示链路选取方式的字段,第一转发设备可以基于第二转发设备发送的flowspec报文中新增字段中所定义的参数,来确定与第二转发设备之间每条链路的传输质量状态,并基于每条链路的传输质量状态来选择传输质量符合预设要求的目标链路,进一步地,第一转发设备在接收到业务流量之后,还可以通过判断用于转发业务流量的第一目标出接口是否通过目标链路连接第二转发设备的第二目标出接口,来确定业务流量是否与目标链路相匹配,对于与目标链路相匹配的业务流量,可以通过该目标链路来转发,从而提高业务流量的传输质量。

另外,本申请实施例中,在执行完步骤102,即第一转发设备在完成对待探测链路的探测之后,可以基于探测结果来更新第一flowspec报文的新增字段中对应链路的传输质量状态,并且还可以执行步骤105,需要说明的是,上述步骤105与上述步骤103至步骤104的执行顺序可以不分先后,本申请对此并不限定。

步骤105、第一转发设备向第二转发设备发送第二flowspec报文,第二flowspec报文中包含探测后的各链路的传输质量状态。

其中,第二flowspec报文的包括的flowspec表项内容与第一flowspec报文中更新后的表项内容可以相同。

相应地,第二转发设备在接收到第二flowspec报文之后,可以基于探测后的各链路的传输质量状态,确定出目标链路,并将与目标链路相匹配的业务流量通过目标链路进行转发,其中,第二转发设备选择目标链路并转发业务流量的过程,可以参照第一转发设备执行的上述转发过程,这里不再展开说明。

本申请实施例中,通过向第二转发设备同步探测结果,而无需第二转发设备再重复执行探测过程。并且,由于第二转发设备作为bgpflowspec控制器,可能会向多个第一转发设备下发第一flowspec报文,那么如果由第二转发设备分别向每个第一转发设备发起探测过程,可能会导致第二转发设备的探测压力较大,而本申请实施例中,第二转发设备仅同步探测结果,不发起探测过程,从而可以有效降低单台转发设备上的探测压力。

为便于对本申请提供的上述实施例的理解,下面结合上述具体实施方式和具体应用场景,对本申请提供的流量转发的方法进行示例性说明。

参照图2所示的应用场景示意图,应用在bgp网络中,其中,router#a和router#c、router#a和router#d之间分别建立了bgp邻居关系,router#a的出接口#a1与router#c的出接口#c1之间构成链路#1,router#a的出接口#a2与router#c的出接口#c2之间构成链路#2,router#a的出接口#a1与router#d的出接口#d1之间构成链路#3,router#a的出接口#a2与router#d的出接口#d2之间构成链路#4。

将router#a作为上述第二转发设备,将router#c作为上述第一转发设备,假设router#a的出接口#a1和出接口#a2的ip地址分别为100.1.1.1和200.1.1.1、端口号分别为60000和60001,router#c的出接口#c1和出接口#c2的ip地址分别为101.1.1.1和201.1.1.1、端口号分别为60000和60001。另外,假设router#g上与router#a连接的出接口的ip地址为1.1.1.1,router#e上与router#c连接的出接口的ip地址为2.2.2.2。

那么,router#a和router#c之间的交互流程,包括如下步骤:

首先,router#a作为bgpflowspec控制器,向router#c发送第一flowspec报文。

其中,第一flowspec报文中新增用于指示链路选取方式的字段。

示例性的,上述新增字段可以采用标签-长度-值(tag-length-value,tlv)结构,具体格式例如为:

<type,length,(length,rir-flag),(length,rir-addr),(length,rir-port),(length,rir-para)>。

其中,type字段标识链路选取动作,可以填0x800a;rir-flag字段用来标识链路的传输质量状态,置1标识链路传输质量符合预设要求,置0标识链路传输质量不符合预设要求,置2标识链路未进行探测;rir-addr字段用来标识检测链路质量的具体地址路径,即第二转发设备的第二出接口ip地址;rir-port字段用来标识检测链路质量的监听端口,即第二转发设备的第二出接口的端口号;rir-para字段用来表示标识检测链路质量的要求参数,即为上述预设检测参数,其中,rir-para字段既可以有也可以没有。length标识每种类型的字段占用的长度。

示例性的,针对router#a和router#c之间的链路#1和链路#2来说,第一flowspec报文中新增字段分别为:

apply<type0x800a,(rir-flag2),(rir-addr100.1.1.1),(rir-port60000)>;

apply<type0x800a,(rir-flag2),(rir-addr200.1.1.1),(rir-port60001)>。

其中,链路#1和链路#2的传输质量状态置为2,说明链路#1和链路#2还未进行探测。

另外,第一flowspec报文中还可以包括flow_spec_nlri(1.1.1.1,2.2.2.2)字段,该字段为第一flowspec报文中原有字段,可以用于匹配业务流量的特征,针对特定的业务流量,应用对应链路选取动作。比如指定目的地址为1.1.1.1和2.2.2.2的业务流量执行链路选取动作。

然后,router#a在发送第一flowspec报文之后,可以自动调用网络质量分析(networkqualityanalyzer,nqa)模块,通过端口号60000监听目的地址是100.1.1.1的nqa探测报文;通过端口号60001监听目的地址是200.1.1.1的nqa探测报文。

进一步地,router#c在接收到第一flowspec报文之后,识别到链路#1和链路#2的传输质量状态置为2,可以调用nqa模块,分别通过端口号60000向目的地址100.1.1.1、端口号60001向目的地址200.1.1.1发起nqa探测。若链路#1和链路#2均探测成功,则可以将链路#1和链路#2的传输质量状态置为1,反之,若链路#1和链路#2均探测失败,则可以将链路#1和链路#2的传输质量状态置为0。

其中,具体探测过程的实施方式可以参照图1中所述的探测过程,这里不再展开说明。

进一步地,router#c执行完探测流程后,可以向router#a发送第二flowspec报文。其中,第二flowspec报文中携带的内容包括:

apply<type0x800a,(rir-flag1,(rir-addr100.1.1.1),(rir-port60000)>;

apply<type0x800a,(rir-flag1),(rir-addr200.1.1.1),(rir-port60001)>。

并且,第二flowspec报文中也包含原有字段,这里不再展开说明。

进一步地,router#a和router#c已经确定相连的两条链路的传输质量状态,router#a和router#c在接收到业务流量后,分别执行的流量转发流程为:

针对router#c:

router#c确定出与router#a相连的两条链路的传输质量状态置1,即链路#1和链路#2为目标链路,router#a分别连接链路#1和链路#2的第二目标出接口分别为出接口#a1和出接口#a2,对应的信息分别为100.1.1.1、60000,200.1.1.1、60001。

router#c在接收到业务流量后,可以识别业务流量的目的地址,若业务流量的目的地址不为flowspec报文中指定的目的地址1.1.1.1或2.2.2.2,那么该业务流量直接通过普通路由规则进行转发。

若业务流量的目的地址为flowspec报文中指定的目的地址,那么可以进一步在本地路由表中查找业务流量的目的地址对应的第一出接口信息,以便router#c确定从哪个第一目标出接口转发该业务流量。

一示例中,若接收到的业务流量的目的地址为1.1.1.1,通过查找本地路由表,确定该目的地址对应ip地址为101.1.1.1的出接口#c1、以及ip地址为201.1.1.1的出接口#c2,因为出接口#c1通过链路#1连接出接口#a1,出接口#c2通过链路#2连接出接口#a2,故说明该业务流量与链路#1和链路#2匹配,可以通过链路#1和链路#2中的至少一条链路来转发该业务流量。

另一示例中,若接收到的业务流量的目的地址为2.2.2.2,通过查找本地路由表,确定该目的地址对应的出接口不为ip地址为101.1.1.1的出接口#c1、以及ip地址为201.1.1.1的出接口#c2,那么目的地址对应的出接口不能通过链路#1连接出接口#a1,也不能通过链路#2连接出接口#a2,故说明该业务流量与链路#1和链路#2不匹配,可以通过普通路由规则进行转发。

针对router#a:

router#a确定出链路#1和链路#2为目标链路,router#a分别连接链路#1和链路#2的第二目标出接口为出接口#a1和出接口#a2,对应的信息分别为100.1.1.1、60000,200.1.1.1、60001。

router#a在接收到业务流量后,可以识别业务流量的目的地址,若业务流量的目的地址不为flowspec报文中指定的目的地址1.1.1.1或2.2.2.2,那么该业务流量直接通过普通路由规则进行转发。

若业务流量的目的地址为指定的目的地址,那么可以进一步在本地路由表中查找业务流量的目的地址对应的第二出接口信息,以便router#a确定从哪个第二出接口转发该业务流量。

一示例中,若接收到的业务流量的目的地址为2.2.2.2,通过查找本地路由表,确定该目的地址对应ip地址为100.1.1.1的出接口#a1、以及ip地址为200.1.1.1的出接口#a2,因为出接口#a1属于直连接口,即出接口#a1通过链路#1与自身直连,出接口#a2也属于直连接口,即出接口#a2通过链路#2与自身直连,这种情况下该业务流量也视为与目标链路匹配,也可以利用链路#1和链路#2中的至少一条链路来转发该业务流量。

另一示例中,若接收到的业务流量的目的地址为1.1.1.1,通过查找本地路由表,确定该目的地址对应的出接口不为ip地址为100.1.1.1的出接口#a1、以及ip地址为200.1.1.1的出接口#a2,这种情况下,说明该业务流量与目标链路不匹配,可以通过普通路由规则进行转发。

至此,router#a和router#c可以通过链路选取动作,来选择传输质量较高的目标链路,进而可以将与目标链路相匹配的业务流量通过目标链路转发,从而可以提高业务流量的传输质量。

基于同一技术构思,本申请实施例中还提供了与流量转发的方法对应的流量转发的装置,由于本申请实施例中的流量转发的装置解决问题的原理与本申请实施例上述流量转发的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图3所示,为本申请实施例提供的一种流量转发的装置的结构示意图,流量转发的装置30包括:

接收模块31,用于接收第二转发设备发送的第一流规格报文,所述第一流规格报文中包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

确定模块32,用于基于所述至少两条链路中每条链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

查找模块33,用于在接收到业务流量之后,在本地路由表中查找所述第一转发设备上用于转发所述业务流量的第一目标出接口;

流量转发模块34,用于若所述第一目标出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

本申请的一些实施例中,所述确定模块32,具体用于:

若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则对所述待探测链路进行探测;

通过将探测到的传输质量参数与所述第一流规格报文中携带的预设检测参数进行对比,确定探测结果;若所述探测结果为探测成功,则将所述待探测链路的传输质量状态更新为第二状态;若所述探测结果为探测失败,则将所述待探测链路的传输质量状态更新为第三状态;

基于探测后的各链路的传输质量状态,确定所述至少两条链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

其中,所述第一状态用于指示链路未进行探测,所述第二状态用于指示链路的传输质量符合预设要求,所述第三状态用于指示链路的传输质量不符合预设要求。

本申请的一些实施例中,流量转发的装置30还包括:

发送模块35,用于在完成对所述待探测链路的探测之后,向所述第二转发设备发送第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态。

本申请的一些实施例中,所述确定模块32,具体用于:

确定所述至少两条链路中所述传输质量状态置为第二状态的链路;其中,所述第二状态用于指示链路的传输质量符合预设要求;

若所述传输质量状态置为第二状态的链路为一条,则将一条传输质量状态置为第二状态的链路作为所述目标链路;

若所述传输质量状态置为第二状态的链路为至少两条,则基于预设策略从至少两条传输质量状态置为第二状态的链路中选择所述目标链路。

本申请的一些实施例中,所述流量转发模块34,还用于:

若满足以下任一种条件时,则基于所述本地路由表中记录的路由表项转发所述业务流量;其中,所述任一种条件为:

所述至少两条链路中不存在所述传输质量状态置为第二状态的链路;或者,所述第一目标出接口未通过所述目标链路连接所述第二目标出接口。

其中,关于上述各模块的具体功能和交互方式,可参见上述方法实施例中涉及的相关内容,在此不再赘述。

参照图4所示,为本申请实施例提供的另一种流量转发的装置的结构示意图,流量转发的装置40包括:

发送模块41,用于向第一转发设备发送第一流规格报文,所述第一流规格报文包括所述第一转发设备与所述第二转发设备之间的至少两条链路中每条链路的传输质量状态、所述第二转发设备上用于连接每条链路的第二出接口的信息;

接收模块42,用于若所述至少两条链路中存在传输质量状态置为第一状态的待探测链路,则在所述第一转发设备对所述待探测链路进行探测后,接收所述第一转发设备发送的第二流规格报文,所述第二流规格报文中包含探测后的各链路的传输质量状态;

确定模块43,用于基于探测后的各链路的传输质量状态,确定各链路中传输质量状态符合预设要求的目标链路、以及所述第二转发设备上用于连接所述目标链路的第二目标出接口;

查找模块44,用于在接收到业务流量之后,在本地路由表中查找所述第二转发设备上用于转发所述业务流量的第二出接口;

流量转发模块45,用于若用于转发所述业务流量的第二出接口通过所述目标链路连接所述第二目标出接口,则通过所述目标链路转发所述业务流量。

其中,关于各模块的具体功能和交互方式,可参见上述方法实施例中涉及的相关内容,在此不再赘述。

对应于上述方法实施例,本申请实施例还提供了一种电子设备,参照图5所示的结构示意图,所述设备50包括处理器51、存储器52和总线53,所述存储器52存储执行指令,当所述设备50运行时,所述处理器51与所述存储器52之间通过总线53通信,所述处理器51执行所述存储器52存储的所述执行指令,使得所述设备50执行实现上述流量转发的方法中第一转发设备所执行的方法的步骤。

对应于上述方法实施例,本申请实施例还提供了另一种电子设备,参照图6所示的结构示意图,所述设备60包括处理器61、存储器62和总线63,所述存储器62存储执行指令,当所述设备60运行时,所述处理器61与所述存储器62之间通过总线63通信,所述处理器61执行所述存储器62存储的所述执行指令,使得所述设备60执行实现上述流量转发的方法中第二转发设备所执行的方法的步骤。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的流量转发的方法的步骤。

本申请实施例所提供的流量转发的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的方法的步骤,具体可参见上述方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1