一种报文发送方法及装置与流程

文档序号:16309717发布日期:2018-12-19 05:13阅读:140来源:国知局
一种报文发送方法及装置与流程
本申请涉及通信
技术领域
,特别是涉及一种报文发送方法及装置。
背景技术
gre(genericroutingencapsulation,通用路由封装)协议用于对其他的ip(internetprotocol,网络互连协议)、mpls(multiprotocollabelswitching,多协议标签交换)、以太网等协议的数据报文进行封装,并将封装后的数据报文在gre隧道中进行传输。封装后的数据报文为gre报文。gre隧道包括点对点和点对多点两种连接类型的gre隧道。其中,点对多点gre隧道能够提供一个中心节点到多个分支节点的虚拟连接。中心节点在接收到分支节点发送的gre报文后,从gre报文中获取传输协议报文头(封装层ip头)的隧道源ip地址和乘客协议报文头(内层ip头)的报文源ip地址,将隧道源ip地址确定为隧道目的ip地址,将报文源ip地址确定为报文目的ip地址,并将该隧道目的ip地址和该报文目的ip地址确定为对应关系。中心节点存储有gre隧道表,gre隧道表包括多个gre隧道表项,每一gre隧道表项记录隧道目的ip地址与报文目的ip地址的对应关系。中心节点从gre报文中确定隧道目的ip地址和报文目的ip地址的对应关系之后,在gre隧道表中查询是否存在该对应关系的gre隧道表项,若不存在,则该对应关系新建一条gre隧道表项,并将该新建的gre隧道表项存储在gre隧道表中。当中心节点需要通过gre隧道向分支节点发送数据报文时,中心节点确定所需发送的数据报文的目的地址,即报文目的ip地址,并在gre隧道表中查询是否存在该报文目的ip地址的gre隧道表项,若存在,则根据gre隧道表项确定出隧道目的ip地址,利用该隧道目的ip地址对数据报文进行封装成为gre报文,并发送该gre报文。一般来说,中心节点处理的业务为ip对称的,针对此类业务的报文也是ip对称的。例如,中心节点所接收的gre报文为gre请求报文,中心节点发送的gre报文为gre响应报文。gre请求报文与gre响应报文是ip对称的报文,即:gre请求报文的隧道源ip地址与gre响应报文的隧道目的ip地址相同,gre请求报文中内层报文的源ip地址与gre响应报文中内层报文的目的ip地址相同,gre请求报文的隧道目的ip地址与gre响应报文的隧道源ip地址相同,gre请求报文中内层报文的目的ip地址与gre响应报文中内层报文的源ip地址相同。然而,中心节点还会处理非对称ip的业务,比如ipv6地址冲突检测,ospf(openshortestpathfirst,开放式最短路径优先)业务等。当中心节点接收到分支节点发送的非对称ip业务的gre报文时,即使中心节点根据该非对称ip业务的gre报文建立gre隧道表项。当中心节点向该设备发送该非对称ip业务的gre报文时,该gre报文中内层报文的目的ip地址与gre隧道表项中的报文目的ip地址不相同,因此,不能获取到隧道目的ip地址,导致中心节点无法通过gre隧道发送gre报文。以图1为例,设备a是作为中心节点的设备,设备b为分支节点,设备a的隧道接口配置ipv6地址为1111::1111,当设备b的隧道接口配置ipv6地址为1111::1111时,设备b发送ns(neighborsolicitation)报文进行ipv6地址冲突检测。设备b先对ns报文进行封装,对于封装后的ns报文,隧道源ip地址为2.0.0.1,隧道目的ip地址为1.0.0.1,ns报文的源ip地址为::,ns报文的目的ip地址为ff02::1:ff00:1111(组播地址),设备a接收到该封装后的ns报文后所建立的gre隧道表项中:报文目的ip地址为::,隧道目的ip地址为2.0.0.1。当设备a向设备b反馈na(neighboradvertisement)报文时,该na报文的源地址为1111::1111,目的地址为ff02::1(组播地址),在设备a建立的gre隧道表项中不能匹配到该目的地址(ff02::1),使得设备a无法获取隧道目的ip地址,进而导致设备a无法将na报文发送给设备b。因此,中心节点如何获取非对称ip业务的gre报文的隧道目的地址是亟待解决的问题。技术实现要素:本申请实施例的目的在于提供一种报文发送方法及装置,以解决中心节点无法获取到非对称ip业务的gre报文的隧道目的地址,进而无法发送该gre报文的问题。具体技术方案如下:第一方面,本申请实施例提供了一种报文发送方法,应用于中心节点,所述方法包括:利用待发送报文的目的地址查询第一隧道表;若不存在与所述待发送报文的目的地址相匹配的第一隧道表项,则确定所述待发送报文的目标应用类型;利用所述目标应用类型查询第二隧道表,其中,所述第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的;若存在与所述目标应用类型相匹配的第二隧道表项,则利用所述第二隧道表项发送所述待发送报文。可选地,所述方法还包括:接收分支节点发送的gre报文,并判断该gre报文是否满足预设条件;若是,则获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址;根据获取到的应用类型和隧道源地址建立对应的隧道表项,为该隧道表项设置老化时间,并维护在第二隧道表中。可选地,所述利用所述第二隧道表项发送所述待发送报文时,所述方法还包括:将与所述目标应用类型相匹配的第二隧道表项的老化时间重置为预设的默认值。可选地,所述判断该gre报文是否满足预设条件的步骤包括:获取所接收的gre报文中内层报文的目的地址;判断所获取的目的地址是否为所述中心节点的地址、与所述中心节点的地址相匹配的组播地址和广播地址中的任一种;如果是,则确定所接收的gre报文满足预设条件。可选地,所述利用所述第二隧道表项发送所述待发送报文的步骤包括:若所述第二隧道表项为多个,则利用各第二隧道表项中的隧道地址分别对所述待发送报文进行gre封装,得到隧道目的地址不同的各gre报文;将封装后得到的各gre报文分别通过对应的gre隧道发送。第二方面,本申请实施例提供了一种报文发送装置,应用于中心节点,所述装置包括:第一查询模块,用于利用待发送报文的目的地址查询第一隧道表;第一确定模块,用于若不存在与所述待发送报文的目的地址相匹配的第一隧道表项,则确定所述待发送报文的目标应用类型;第二查询模块,用于利用所述目标应用类型查询第二隧道表,其中,所述第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的;发送模块,用于若存在与所述目标应用类型相匹配的第二隧道表项,则利用所述第二隧道表项发送所述待发送报文。可选地,所述装置还包括:判断模块,用于接收分支节点发送的gre报文,并判断该gre报文是否满足预设条件;获取模块,用于当所述判断模块的判断结果为是时,则获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址;建立模块,用于根据获取到的应用类型和隧道源地址建立对应的隧道表项,为该隧道表项设置老化时间,并维护在第二隧道表中。可选地,所述装置还包括:重置模块,用于将与所述目标应用类型相匹配的第二隧道表项的老化时间重置为预设的默认值。可选地,所述判断模块具体用于:获取所接收的gre报文中内层报文的目的地址,判断所获取的目的地址是否为所述中心节点的地址、与所述中心节点的地址相匹配的组播地址和广播地址中的任一种;如果是,确定所接收的gre报文满足预设条件。可选地,所述发送模块具体用于:若所述第二隧道表项为多个,则利用各第二隧道表项中的隧道地址分别对所述待发送报文进行gre封装,得到隧道目的地址不同的各gre报文;将封装后得到的各gre报文分别通过对应的gre隧道发送。第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的报文发送方法步骤。第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一所述的报文发送方法步骤。本申请实施例提供的技术方案中,利用待发送报文的目的地址查询第一隧道表;若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型;利用目标应用类型查询第二隧道表;若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。通过本申请实施例提供的技术方案,第二隧道表是中心节点根据接收到的、分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的,中心节点在接收到非对称ip业务的gre报文时,在第二隧道表中记录该gre报文中非对称ip业务报文的应用类型和发送该gre报文的gre隧道的源地址之间的映射关系,即建立对应的隧道表项。而对于中心节点来说,针对一个业务报文的响应报文,其发送的响应报文与接收到的业务报文的应用类型是相同的,因此,当中心节点在对接收到的业务报文进行响应时,需要发送非对称ip业务的待发送报文,基于应用类型不变,可以从第二隧道表中查询到与待发送报文的应用类型相匹配的第二隧道表项,进而利用该第二隧道表项发送待发送报文。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的报文发送方法的一种流程图;图2为本申请实施例提供的报文发送方法的另一种流程图;图3为本申请实施例提供的中心节点与分支节点交互的示意图;图4为本申请实施例提供的报文发送装置的一种结构示意图;图5为本申请实施例提供的电子设备一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为了解决中心节点无法获取非对称ip业务的gre报文的隧道目的地址的问题,本申请实施例提供了一种报文发送方法及装置,应用于中心节点,其中,本申请实施例提供的一种报文发送方法包括:利用待发送报文的目的地址查询第一隧道表;若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型;利用目标应用类型查询第二隧道表,其中,第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的;若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。通过本申请实施例提供的技术方案,第二隧道表是中心节点根据接收到的、分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的,中心节点在接收到非对称ip业务的gre报文时,在第二隧道表中记录该gre报文中非对称ip业务报文的应用类型和发送该gre报文的gre隧道的源地址之间的映射关系,即建立对应的隧道表项。而对于中心节点来说,针对一个业务报文的响应报文,其发送的响应报文与接收到的业务报文的应用类型是相同的,因此,当中心节点在对接收到的业务报文进行响应时,需要发送非对称ip业务的待发送报文,基于应用类型不变,可以从第二隧道表中查询到与待发送报文的应用类型相匹配的第二隧道表项,进而利用该第二隧道表项发送待发送报文。下面首先对本申请实施例提供的一种报文发送方法进行介绍。本申请实施例提供的报文发送方法应用于中心节点,中心节点配置有grep2mp(point2multiplepoint,点对多点主站)隧道接口,基于grep2mp隧道接口,中心节点可以与多个分支节点建立多条gre隧道,即实现在中心节点与分支节点之间建立grep2mp隧道。可以认为,中心节点是p2mp侧,即一个中心节点对应多个分支节点,分支节点是p2p侧,即一个分支节点只对应一个中心节点。中心节点可以与分支节点通过建立的gre隧道传输gre报文。中心节点和分支节点均可以根据gre协议对所需发送的数据报文进行封装,得到gre报文,再通过gre隧道发送gre报文。如图1所示,本申请实施例提供的一种报文发送方法,包括如下步骤。s101,利用待发送报文的目的地址查询第一隧道表;其中,待发送报文是中心节点向分支节点发送的报文。可以认为,中心节点从分支节点接收的报文与向该分支节点发送的报文是相对应的,比如,请求报文与响应报文的对应关系。因此,待发送报文为中心节点从该分支节点所接收的请求报文相对应的响应报文。其中,第一隧道表是根据分支节点发送的gre报文中内层报文的源地址和发送该gre报文的隧道源地址建立的。第一隧道表中可以包括多个第一隧道表项,每一隧道表项记录分支节点发送的gre报文中内层报文的源地址与发送该gre报文的隧道源地址的对应关系。例如,分支节点发送的gre报文中内层报文的源地址为10.1.1.2,发送该gre报文的隧道源地址为11.1.1.2,则针对该源地址和该隧道源地址,第一隧道表中记录如下表1所示:表1其中,第一隧道表可以预先存储于中心节点。对于每一个第一隧道表项,除了记录对应关系以外,还可以设置老化时间。第一隧道表项的老化时间用于表示该第一隧道表项老化所需的时长,老化时间随着时间持续地减少,直至变为0。当老化时间变为0之后,该第一隧道表项会从第一隧道表中删除。其中,老化时间从第一隧道表项建立开始计时。例如,一个第一隧道表项的老化时间为10秒,则从该第一隧道表项建立开始计时,老化时间从10秒开始持续减少,当老化时间变为0秒后,该第一隧道表项会被删除。通过对第一隧道表项设置老化时间,每一第一隧道表项仅在所对应的老化时间内存储于第一隧道表中,一旦老化时间变为0,该第一隧道表项即被删除,从而释放一定的存储空间。这样,不仅节省了中心节点的存储空间资源。s102,若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型。不存在与待发送报文的目的地址相匹配的第一隧道表项,即第一隧道表中没有记录与待发送报文的目的地址相同的地址,进而无法查找到相应的隧道源地址。其中,确定待发送报文的应用类型的实现方式可以是通过tcp(transmissioncontrolprotocol传输控制协议)头或者udp(userdatagramprotocol,用户数据报协议)头中的端口信息来确定,还可以通过icmp(internetcontrolmessageprotocol,网际控制报文协议)报文的type字段或code字段来确定,还可以通过ip(internetprotocol,网际协议)头的protocol信息来确定。例如,当待发送报文的ip头的protocol信息为89时,确定出的应用类型为ospf(openshortestpathfirst,开放式最短路径优先);当待发送报文的ip头的protocol信息为58、且icmptype字段为135时,确定出的应用类型为nd(neighbordiscovery,邻居发现协议)协议。对于应用类型的确定方法并不仅限于以上三种,还可以通过其他方式确定,在此不再赘述。s103,利用目标应用类型查询第二隧道表。其中,第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的。第二隧道表可以包括多个第二隧道表项,每一第二隧道表项记录分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址的对应关系。例如,中心节点接收到分支节点发送的gre报文中内层报文的应用类型为ospf,且发送该gre报文的隧道源地址为2.0.0.1,则第二隧道表项中记录的应用类型与隧道源地址的对应关系为:ospf与2.0.0.1的对应关系。在第二隧道表中,对于同一种应用类型,可以有一个第二隧道表项,还可以有多个第二隧道表项,即包含同一应用类型的第二隧道表项有一个或多个。这样,一种应用类型可以对应有一个隧道源地址,还可以对应有多个隧道源地址。例如,第二隧道表中,基于应用类型ospf的第二隧道表项包括:ospf与2.0.0.1的第二隧道表项,ospf与11.1.1.2的第二隧道表项,ospf与11.1.1.24的第二隧道表项。利用目标应用类型查询第二隧道表的一种实现方式中,查询第二隧道表中是否存在目标应用类型,若存在,即可以认为,第二隧道表中包含目标应用类型的第二隧道表项与目标应用类型相匹配。s104,若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。存在与目标应用类型相匹配的第二隧道表项,即第二隧道表项中包含目标应用类型。具体地,从第二隧道表中获取与目标应用类型相匹配的第二隧道表项,并从该第二隧道表项中获取隧道源地址,并将所获取的隧道源地址作为对待发送报文进行封装的隧道目的地址,并利用该隧道目的地址对待发送报文进行封装。对待发送报文封装完成后可以得到基于该待发送报文的gre报文,该gre报文的传输协议报文头的隧道目的地址即为从第二隧道表中获取的隧道源地址。中心节点在得到该gre报文之后,再通过gre隧道将该gre报文发送至隧道目的地址。这样,中心节点便完成了通过gre隧道发送待发送报文。一种实施方式中,若与目标应用类型相匹配的第二隧道表项有多个的情况下,则利用各第二隧道表项中的隧道地址分别对待发送报文进行gre封装,得到隧道目的地址不同的各gre报文;将封装后得到的各gre报文分别通过对应的gre隧道发送。例如,在第二隧道表中与目标应用类型ospf相匹配的第二隧道表项有两个,且该两个第二隧道表项中包含的隧道地址分别为:2.0.0.1和11.1.1.2。则利用2.0.0.1对待发送报文进行gre封装,可以得到一个基于该待发送报文的gre报文,并利用11.1.1.2对待发送报文进行gre封装,可以得到另一个基于该待发送报文的gre报文。中心节点通过与2.0.0.1的gre隧道发送第一个gre报文,通过与11.1.1.2的gre隧道发送第二个gre报文。第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的,针对第二隧道表中第二隧道表项的建立,一种实施方式中,中心节点可以接收分支节点发送的gre报文,发送该gre报文的分支节点可以是任一分支节点。中心节点在接收到gre报文之后,可以判断该gre报文是否满足预设条件。其中,预设条件可以是自定义设定的。一种实施方式中,中心节点可以获取所接收的gre报文中内层报文的目的地址,并判断所获取的目的地址是否为中心节点的地址、与中心节点的地址相匹配的组播地址和广播地址中的任一种;如果是,则可以确定所接收的gre报文满足预设条件,否则,则可以确定所接收的gre报文不满足预设条件,此时,中心节点可以根据该目的地址将该gre报文进行转发。其中,当所接收的gre报文中内层报文的目的地址为中心节点的地址时,则可以确定中心节点所接收的该gre报文是满足预设条件的。当所接收的gre报文中内层报文的目的地址为与中心节点的地址相匹配的组播地址时,则可以确定中心节点为接收内层报文的多个设备中的其中一个。其中,组播地址为接收内层报文的一组地址,中心节点的地址与组播地址相匹配即中心节点的地址为组播地址中的其中一个地址。例如,所接收的gre报文中内层报文的目的地址为ff02::1:ff00:1111,该目的地址为ipv6的组播地址,只要地址的最后24位为00:1111,即可以认为该地址为组播地址中的其中一个地址。当中心节点的地址为1111::1111,则可以确定1111::1111与ff02::1:ff00:1111是相匹配的,即中心节点的地址为组播地址中的其中一个地址,进而确定中心节点所接收的该gre报文是满足预设条件的。当所接收的gre报文中内层报文的目的地址为广播地址时,则可以认为接收到该内层报文的地址均为广播地址中的其中一个地址,进而确定中心节点所接收的该gre报文是满足预设条件的。若判断出该gre报文满足预设条件,中心节点可以获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址。具体地,中心节点对gre报文进行解封装处理,可以得到该gre报文的隧道源地址,该隧道源地址即为发送该gre报文的分支节点的隧道接口地址。还可以得到该gre报文中的内层报文,根据该内层报文可以确定出该内层报文的应用类型。在获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址之后,根据获取到的应用类型和隧道源地址建立对应的隧道表项,为该隧道表项设置老化时间,并维护在第二隧道表中。其中,为该隧道表项设置老化时间用于表示该隧道表项老化的时长。这样,第二隧道表中的每一隧道表项包括应用类型、隧道源地址和老化时间。以下表2为例,表2中为第二隧道表中的一个隧道表项,该隧道表项中对应关系为:ospf与2.0.0.1的对应关系,该隧道表项的老化时间为60秒。表2隧道表项的老化时间可以从隧道表项建立开始计时,当一个隧道表项的老化时间变为0秒后,该一个隧道表项会从第二隧道表中删除。例如,第二隧道表中的一个隧道表项的老化时间为60秒,则从该隧道表项建立开始计时,老化时间从60秒开始持续减少,当老化时间变为0秒后,该隧道表项会从第二隧道表中删除。老化时间可以是自定义设定的。一种实现方式中,老化时间可以根据报文的业务类型来设定,具体地,所设定的老化时间大于属于同一业务类型的报文连续两次发送的时间间隔。例如,针对一种业务类型的报文,连续两次发送报文的时间间隔为50秒,则针对该业务类型的老化时间应大于50秒。通过为第二隧道表中的隧道表项设置老化时间,每一隧道表项仅在所对应的老化时间内维护在第二隧道表中,一旦老化时间变为0,该隧道表项从第二隧道表中删除,从而释放一定的存储空间。这样,节省了中心节点的存储空间资源。一种实施方式中,在利用第二隧道表项发送待发送报文时,还可以将与目标应用类型相匹配的第二隧道表项的老化时间重置为预设的默认值。其中,默认值可以是自定义设定的。在将第二隧道表项的老化时间重置为默认值后,则该第二隧道表项的老化时间变为默认值,重新开始计时。在时长为默认值的老化时间变为0之后,且在老化时间变为0的过程中该第二隧道表项未被匹配成功,则将该对应关系删除。以上述表2为例进行说明,默认值为60秒,上表1中的老化时间持续减小,在老化时间减小到10秒时,中心节点对目标应用类型为ospf进行匹配时,与表2中的隧道表项匹配成功,则将表2中的老化时间重置为60秒,老化时间重新从60秒开始计时。本申请实施例还提供一种报文发送方法,如图2所示,该报文发送方法包括如下步骤。s201,接收分支节点发送的gre报文。结合图3为例进行说明。a为中心节点,b为分支节点,a和b之间建立gre隧道。其中,a配置的ipv6地址为1111::1111,隧道地址为1.0.0.1,当b需要配置的ipv6地址同样为1111::1111时,根据ipv6协议要求,在所配置的ipv6地址生效前,先发送ns报文进行重复地址检测,ns报文携带所需检测地址,即1111::1111。b的隧道地址为2.0.0.1,b利用该隧道地址对ns报文进行封装,即ns报文为内层报文,得到基于ns报文的gre报文,并将该gre报文发送给a。对于该gre报文,如下表3所示,封装层ip头的隧道源地址为2.0.0.1,隧道目的地址为:1.0.0.1,内层ip头的源ip地址为::,目的地址为ff02::1:ff00:1111。表3源地址目的地址封装层ip头2.0.0.11.0.0.1内层ip头::ff02::1:ff00:1111s202,获取所接收的gre报文中内层报文的目的地址,并判断所获取的目的地址是否为中心节点的地址、与中心节点的地址匹配的组播地址和广播地址中的任一种。如果是,则确定所接收的gre报文满足预设条件。a接收到gre报文后,对gre报文进行解封装,获得ns报文的目的地址为ff02::1:ff00:1111,该目的地址为组播地址,且与a的ipv6地址1111::1111匹配,则可以确定该gre报文满足预设条件。另外,a接收到gre报文后,可以根据该gre报文建立第一隧道表项,如下表4所示。表4其中,所建立的该第一隧道表项的老化时间为10秒,该第一隧道表项维护在第一隧道表中。s203,获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址。a在对gre报文解封装处理后,可以得到ns报文,从ns报文的报文ip头可以得到protocol信息,并根据protocol信息和icmp报文信息可以确定ns报文的应用类型为ipv6dad(duplicateaddressdetect,重复地址检测)应用类型。另外,a还可以从gre报文获得隧道源地址为2.0.0.1。s204,根据获取到的应用类型和隧道源地址建立对应的隧道表项,为该隧道表项设置老化时间,并维护在第二隧道表中。所建立的隧道表项中包括:ipv6dad与2.0.0.1的对应关系,以及老化时间10秒。所建立的隧道表项如下表5所示。表5s205,利用待发送报文的目的地址查询第一隧道表,若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型。a在对na报文进行重复地址检测处理时,当发现所检测为1111::1111时,可以确定与a自身的地址冲突,则需要向b发送na报文,以向b报告该地址冲突。a向b发送na报文时是以组播的方式发送的,所以对于na报文来说,源地址为1111::1111,目的地址为ff02::1。a利用na报文的目的地址(ff02::1)在第一隧道表中查询是否存在与ff02::1相匹配的第一隧道表项,若未查询到与ff02::1相匹配的第一隧道表项,则可以确定na报文的目标应用类型,在第二隧道表中查询是否存在与na报文的目标应用类型相匹配的第二隧道表项。如,确定na报文的应用类型为ipv6dad,并将ipv6dad作为目标应用类型。s206,利用目标应用类型查询第二隧道表。a在第二隧道表中查询是否存在与ipv6dad相匹配的第二隧道表项,即在第二隧道表所包括的各隧道表项中查找是否存在与ipv6dad相匹配的第二隧道表项。s207,若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。并将与目标应用类型相匹配的第二隧道表项的老化时间重置为预设的默认值。当第二隧道表中仅上述表5的隧道表项与目标应用类型ipv6dad相匹配,则从上述表5的隧道表项中获取ipv6dad对应的隧道源地址为2.0.0.1,将该地址2.0.0.1作为隧道目的地址,对na报文进行封装,得到一个基于na报文的gre报文。对于该基于na报文的gre报文,如下表6所示,封装层ip头的隧道源地址为1.0.0.1,隧道目的地址为:2.0.0.1,内层ip头的源ip地址为1111::1111,目的地址为ff02::1。表6源地址目的地址封装层ip头1.0.0.12.0.0.1内层ip头1111::1111ff02::1a在采用第二隧道表项对na报文进行封装处理,得到对应的gre报文之后,将该gre报文通过对应的gre隧道发送给b。这样,对于待发送报文,即使不能从第一隧道表中获取到隧道目的地址,可以通过本申请实施例提供的技术方案,从第二隧道表中获取隧道目的地址,进而利用该隧道目的地址对待发送报文进行封装,并将封装后得到的gre报文发送给分支节点。相应于上述报文发送方法实施例,本申请实施例还提供一种报文发送装置,应用于中心节点,如图4所示,该报文发送装置包括:第一查询模块410,用于利用待发送报文的目的地址查询第一隧道表;第一确定模块420,用于若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型;第二查询模块430,用于利用目标应用类型查询第二隧道表,其中,第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的;发送模块440,用于若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。一种实施方式中,该报文发送装置还可以包括:判断模块,用于接收分支节点发送的gre报文,并判断该gre报文是否满足预设条件;获取模块,用于当判断模块的判断结果为是时,则获取该gre报文中内层报文的应用类型和发送该gre报文的隧道源地址;建立模块,用于根据获取到的应用类型和隧道源地址建立对应的隧道表项,为该隧道表项设置老化时间,并维护在第二隧道表中。一种实施方式中,该报文发送装置还可以包括:重置模块,用于将与目标应用类型相匹配的第二隧道表项的老化时间重置为预设的默认值。一种实施方式中,判断模块具体用于:获取所接收的gre报文中内层报文的目的地址,判断所获取的目的地址是否为中心节点的地址、与中心节点的地址相匹配的组播地址和广播地址中的任一种;如果是,确定所接收的gre报文满足预设条件。一种实施方式中,发送模块440具体用于:若第二隧道表项为多个,则利用各第二隧道表项中的隧道地址分别对待发送报文进行gre封装,得到隧道目的地址不同的各gre报文;将封装后得到的各gre报文分别通过对应的gre隧道发送。通过本申请实施例提供的技术方案,第二隧道表是中心节点根据接收到的、分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的,中心节点在接收到非对称ip业务的gre报文时,在第二隧道表中记录该gre报文中非对称ip业务报文的应用类型和发送该gre报文的gre隧道的源地址之间的映射关系,即建立对应的隧道表项。而对于中心节点来说,针对一个业务报文的响应报文,其发送的响应报文与接收到的业务报文的应用类型是相同的,因此,当中心节点在对接收到的业务报文进行响应时,需要发送非对称ip业务的待发送报文,基于应用类型不变,可以从第二隧道表中查询到与待发送报文的应用类型相匹配的第二隧道表项,进而利用该第二隧道表项发送待发送报文。本申请实施例还提供了一种电子设备,如图5所示,包括处理器510和机器可读存储介质520,机器可读存储介质520存储有能够被处理器510执行的机器可执行指令。另外,如图5所示,电子设备还可以包括:通信接口530和通信总线540;其中,处理器510、机器可读存储介质520、通信接口530通过通信总线540完成相互间的通信,通信接口530用于上述电子设备与其他设备之间的通信。处理器510促使执行上述任一种报文发送方法的实施例,其中,报文发送方法包括:利用待发送报文的目的地址查询第一隧道表;若不存在与待发送报文的目的地址相匹配的第一隧道表项,则确定待发送报文的目标应用类型;利用目标应用类型查询第二隧道表,其中,第二隧道表是根据分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的;若存在与目标应用类型相匹配的第二隧道表项,则利用第二隧道表项发送待发送报文。通过本申请实施例提供的技术方案,第二隧道表是中心节点根据接收到的、分支节点发送的gre报文中内层报文的应用类型与发送该gre报文的隧道源地址建立的,中心节点在接收到非对称ip业务的gre报文时,在第二隧道表中记录该gre报文中非对称ip业务报文的应用类型和发送该gre报文的gre隧道的源地址之间的映射关系,即建立对应的隧道表项。而对于中心节点来说,针对一个业务报文的响应报文,其发送的响应报文与接收到的业务报文的应用类型是相同的,因此,当中心节点在对接收到的业务报文进行响应时,需要发送非对称ip业务的待发送报文,基于应用类型不变,可以从第二隧道表中查询到与待发送报文的应用类型相匹配的第二隧道表项,进而利用该第二隧道表项发送待发送报文。上述通信总线540可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线540可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。机器可读存储介质520可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质520还可以是至少一个位于远离前述处理器的存储装置。上述处理器510可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。相应于上述报文发送方法的实施例,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述报文发送方法。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于报文发送装置、电子设备以及机器可读存储介质实施例而言,由于其基本相似于报文发送方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1