首页> 中国专利> 一种ALT网络中的路由信息查询方法和装置

一种ALT网络中的路由信息查询方法和装置

摘要

本发明公开了一种ALT网络中的路由信息查询方法和装置。该方法包括:MR接收EID前缀的路由信息,其中携带EID前缀的实例ID和发布所述路由的MS的隧道地址;MR根据所述路由信息生成查找表,所述查找表根据EID前缀和实例ID,存储发布所述路由信息的MS的隧道地址;MR接收路由查询报文,根据其中携带的EID前缀和实例ID,查询所述查找表,得到MS的隧道地址;MR将所述路由查询报文的目的地址替换为查找到的MS的隧道地址,通过ALT网络发送替换后的路由查询报文,使得所述MS根据所述路由查询报文中携带的EID前缀和实例ID查询路由信息。应用本发明实施例能够支持EID前缀的多实例。

著录项

  • 公开/公告号CN104767686A

    专利类型发明专利

  • 公开/公告日2015-07-08

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201510162769.8

  • 发明设计人 廖俊云;

    申请日2015-04-08

  • 分类号

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人张玉波

  • 地址 310052 浙江省杭州市滨江区长河路466号

  • 入库时间 2023-12-18 09:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-20

    授权

    授权

  • 2017-05-17

    著录事项变更 IPC(主分类):H04L12/745 变更前: 变更后: 申请日:20150408

    著录事项变更

  • 2015-08-12

    实质审查的生效 IPC(主分类):H04L12/745 申请日:20150408

    实质审查的生效

  • 2015-07-08

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别是涉及一种ALT网络中的路由信息查询方 法和装置。

背景技术

位置标识分离协议(Locator Identity Separation Protocol,LISP)是一种位置和 标识分离的建网思想,LISP网络形成了两个独立的地址空间,即端点标识 (Endpoint Identifier,EID)空间和路由器位置(Routing Locator,RLOC)空间。 其中,EID为通信端点的主机地址,用于标识主机的身份。在LISP网络中,EID 可以独立于RLOC进行迁移;迁移过程中迁移主机的EID地址不变。RLOC为 LISP路由器的地址,可在现有Internet中路由转发。EID之间通信的报文根据 LISP的映射缓存(Map Cache)路由进行LISP封装,报文在RLOC之间的隧 道中进行转发。

xTR为入口隧道路由器(Ingress Tunnel Router,ITR)和出口隧道路由器 (Engress Tunnel Router,ETR)的统称,表示路由器具备ITR和/或ETR能力。 ITR对本数据中心EID空间匹配Map Cache路由表的数据报文进行LISP隧道 封装;ETR解封装LISP隧道封装的报文,发到本数据中心下的EID空间。

在LISP网络中,ETR将本数据中心下的EID前缀注册到映射服务器(Map  Server,MS)中,MS根据注册的EID前缀发布路由信息;映射解析器(Map  Resolver,MR)根据MS发布的路由信息生成路由表,接收ITR发送的路由查 询报文,根据所述路由表,将所述路由查询报文转发给发布相应路由的MS, 以便所述MS对所述路由查询报文进行处理。其中,LISP网络中的MR和MS 可以基于可替换的逻辑拓扑(Alternative Logical Topology,ALT)网络进行部 署。

由于MR生成的EID路由表中不包含实例ID信息,而且,MR通过ALT 网络向MS发送的Map Request报文中也无法携带EID前缀的实例ID,因此, 目前基于ALT网络的LISP网络还不能够支持EID前缀的多实例。

发明内容

有鉴于此,本发明提出了一种ALT网络中的路由信息查询方法和装置,能 够支持EID前缀的多实例。

本发明提出的技术方案是:

一种ALT网络中的路由信息查询方法,该方法包括:

映射解析器MR接收EID前缀的路由信息,所述路由信息中携带所述EID 前缀的实例ID和发布所述路由信息的MS的隧道地址;

MR根据所述路由信息生成查找表,所述查找表根据EID前缀和该EID前 缀的实例ID,存储发布所述路由信息的MS的隧道地址;

MR接收路由查询报文,根据所述路由查询报文请求的EID地址和所述EID 地址的实例ID,查询所述查找表,得到MS的隧道地址;

MR将所述路由查询报文的目的地址替换为查找到的MS的隧道地址,根 据所述查找到的MS的隧道地址查找路由表,根据查找到的路由发送替换后的 路由查询报文,使得所述查找到的MS根据所述路由查询报文请求的EID前缀 和实例ID查询路由信息。

一种ALT网络中的路由信息查询方法,该方法包括:

映射解析器MR接收EID前缀的路由信息,所述路由信息中携带所述EID 前缀的实例ID;

MR根据所述路由信息中携带的实例ID,生成相应ALT实例的虚拟路由转 发表VRF,其中,所述MR上配置有多个ALT实例,ALT实例的实例ID与 EID前缀的实例ID对应;

MR接收路由查询报文,根据所述路由查询报文请求的EID地址和所述EID 地址的实例ID,查询相应ALT实例的虚拟路由转发表VRF,得到转发所述路 由查询报文的路由信息;

MR根据查询到的路由信息,发送路由查询报文,使得收到所述路由查询 报文的MS根据所述路由查询报文中请求的EID地址和实例ID查询路由信息

一种ALT网络中的路由信息查询装置,该装置位于映射解析器MR中,包 括接收模块、存储模块和查询报文处理模块;

所述接收模块,用于接收EID前缀的路由信息,所述路由信息中携带所述 EID前缀的实例ID和发布所述路由信息的MS的隧道地址;

所述存储模块,用于根据所述路由信息生成查找表,所述查找表根据EID 前缀和该EID前缀的实例ID,存储发布所述路由信息的MS的隧道地址;

所述查询报文处理模块,用于接收路由查询报文,根据所述路由查询报文 请求的EID地址和所述EID地址的实例ID,查询所述查找表,得到MS的隧道 地址,将所述路由查询报文的目的地址替换为查找到的MS的隧道地址,根据 所述查找到的MS的隧道地址查找路由表,根据查找到的路由发送替换后的路 由查询报文,使得所述查找到的MS根据所述路由查询报文请求的EID前缀和 实例ID查询路由信息。

一种ALT网络中的路由信息查询装置,该装置位于映射解析器MR中,包 括配置模块、接收模块、路由生成模块和查询报文处理模块;

所述配置模块,用于配置多个ALT实例,ALT实例的实例ID与EID前缀 的实例ID对应;

所述接收模块,用于接收EID前缀的路由信息,所述路由信息中携带所述 EID前缀的实例ID;

所述路由生成模块,用于根据所述路由信息中携带的实例ID,生成相应 ALT实例的虚拟路由转发表VRF;

所述查询报文处理模块,用于接收路由查询报文,根据所述路由查询报文 请求的EID地址和所述EID地址的实例ID,查询相应ALT实例的虚拟路由转 发表VRF,得到转发所述路由查询报文的路由信息,根据查询到的路由信息, 发送路由查询报文,使得收到所述路由查询报文的MS根据所述路由查询报文 请求的EID地址和实例ID查询路由信息。

由上述技术方案可见,本发明实施例中,MR接收的EID前缀的路由信息 中携带有所述EID前缀的实例ID,并且,MR能够根据路由信息中携带的EID 前缀实例ID,生成查找表或者路由表,根据所述查找表或者路由表,能够查找 到将路由查询报文转发到注册了相应实例ID的EID前缀的MS的路由信息, 换言之,通过本发明实施例提供的路由信息存储和查找方式,可以在MR中查 找到注册了相应实例ID的EID前缀的MS的地址信息,换言之,MR知晓需要 将路由查询报文发往哪个MS。

另外,目前MR在通过ALT网络向MS发送路由查询报文时,需要剥离掉 ITR发来的路由查询报文的ECM封装信息,而本发明实施例中,MR仅仅将ITR 发来的路由查询报文的ECM封装的目的地址进行替换,没有剥离掉所述ECM 封装信息,因此,向MS转发的路由查询报文也是携带ECM封装信息的,在 MR接收的来自ITR的路由查询报文中,携带有EID前缀和实例ID,该实例ID 通常都携带在ECM封装信息中,由于本发明实施例中MR仅仅将ITR发来的 路由查询报文的ECM封装的目的地址进行替换,然后直接转发替换后的路由 查询报文,没有对路由查询报文的信息携带内容进行删除或剥离,因此,MR 通过ALT网络发给MS的路由查询报文中也携带有EID前缀的实例ID信息。

可见,本发明实施例一方面通过改进MS发布的路由信息,使得在所述路 由信息中能够携带EID前缀的实例ID,另一方面通过改进路由信息的存储和查 找方式,使得能够在MR上根据EID前缀和实例ID查找到注册了所述实例ID 的所述EID前缀的MS,再一方面,通过改进对路由查询报文的处理方式,仅 仅替换路由查询报文的目的地址,而不剥离路由查询报文的ECM封装,使得 MR发往MS的路由查询报文中也能够携带EID前缀的实例ID,通过上述三方 面的相互结合,使得EID前缀存在多实例的情况下,也能够通过基于ALT网络 的MR和MS,查找到相应EID前缀的路由信息,因此,采用本发明实施例以 后,基于ALT网络的LISP网络能够支持EID前缀的多实例。

附图说明

图1是目前在基于ALT网络的LISP网络中MR和MS对路由查询报文 的处理流程示意图。

图2是本发明实施例提供的ALT网络中的路由信息查询方法流程图。

图3是本发明实施例提供的在ALT网络中的路由信息查询方法的详细 处理流程图。

图4是本发明实施例提供的映射解析器的硬件结构连接图。

图5是本发明实施例提供的路由信息查询装置的第一结构示意图。

图6是本发明实施例提供的路由信息查询装置的第二结构示意图。

具体实施方式

目前,基于ALT网络的LISP网络还不能够支持EID前缀的多实例,下面 结合具体的例子,说明目前在基于ALT网络的LISP网络中MR和MS对路由 查询报文的处理流程,具体请参见图1。

图1是目前在基于ALT网络的LISP网络中MR和MS对路由查询报文的 处理流程示意图。

如图1所示,该流程包括:

步骤101,ETR向MS注册192.168.1.0/24的EID前缀。

步骤102,MS根据ETR的注册信息生成192.168.1.0/24的注册EID前缀, 然后根据EID前缀192.168.1.0/24生成ALT EID路由,并注入到BGP路由中, 通过BGP路由在ALT网络中发布。

步骤103,ITR发现到达EID地址192.168.1.1的流量查不到Map Cache表 项,因此ITR向MR发送Map Request报文。

步骤104,MR收到该Map Requset报文后,在ALT网络中最长匹配查找 192.168.1.0/24的EID路由。

步骤105,MR将来自ITR的Map Requset报文的外层封装、即ECM封装 剥离掉,然后通过ALT网络将非ECM封装的Map Request报文发送到MS。

步骤106,MS上收到该非ECM封装的Map Request报文后,查找注册EID 前缀,发现匹配到192.169.1.0/24,且注册者为ETR,然后,MS对该Map Requset 报文进行ECM封装,然后发送给注册ETR。

步骤107,注册ETR收到该Map Request报文后,进行解封装,并向ITR 回应非ECM封装的Map Reply报文。

步骤108,ITR收到该Map Reply报文后,根据该Map Reply报文生成 192.168.1.0/24的Map Cache路由;然后用该路由进行流量转发。

由图1所示流程可见,一方面,假设在EID前缀多实例的情况下,MR知 晓需要将Map Requset报文发给哪一个MS,但是由于MR在通过ALT网络向 MS发送Map Request报文时,发送的Map Request报文无法携带EID前缀的实 例ID,因此,MS无法知晓当前收到的Map Requset报文是针对哪一个EID前 缀实例的,因此无法查找到相应实例ID的EID前缀的路由信息。

再一方面,由于MS发布的路由中不携带EID前缀的实例ID信息,MR生 成的EID路由表中也不包含实例ID信息,因此,实际上,目前在EID前缀多 实例的情况下,MR还无法知晓需要将Map Requset报文发给哪一个MS。

基于上述分析,如果要使得基于ALT网络的LISP网络支持EID前缀的多 实例,需要解决以下两个问题:

问题1,MS能够知晓当前收到的Map Requset报文针对哪一个EID前缀实 例。

问题2,MR能够知晓需要将Map Requset报文发给哪一个MS。

针对上述问题1,本发明实施例提出,在ALT网络中的Map Request报文 中携带EID前缀的实例ID信息。

具体地,目前MR在接收到ITR发来的路由查询报文时,需要对ITR发来 的路由查询报文进行解封装,并剥离掉Map Requset报文的ECM封装信息,然 后通过ALT网络向MS发送路由查询报文。

本发明实施例提出,MR不需要对ITR发来的路由查询报文解封装,而是 仅仅将ITR发来的路由查询报文的ECM封装的目的地址进行替换后直接转发, 由于没有剥离掉所述ECM封装信息,因此,向MS转发的路由查询报文也是 携带ECM封装信息的,其中,在所述ECM封装信息中携带EID前缀的实例ID。

由于本发明实施例中MR仅仅将ITR发来的路由查询报文的ECM封装的 目的地址进行替换,然后直接转发替换后的路由查询报文,因此,MR通过ALT 网络发给MS的路由查询报文中携带有EID前缀的实例ID信息。

ECM封装的长度为36个字节,在ALT网络中传输的Map Request报文携 带ECM封装后会略微加大负载。但是,由于Map Request报文为控制报文,控 制报文的数量相对是很少的,只有查找不到路由才会触发,因此为在ALT网络 中传输的Map Requset报文携带ECM封装对系统的整体性能影响不大。

如果ALT网络中只有一个MS,那么采用问题1的解决方案,就已经能实 现ALT网络支持xTR EID的多实例。但是,如果ALT网络中存在多个MS,则 当具有不同实例ID的相同EID前缀分别注册到不同的MS上时,MR将无法知 道到将Map Request报文发送到哪台MS上。这是因为,MS上的注册EID前 缀信息在注入到ALT网络中时,无法携带实例ID信息。因此两个MS分别向 ALT网络中注入前缀相同但实例ID不同的EID路由时,由于实例ID信息丢失, 只能生成一条EID路由,且后生成的覆盖先生成的路由,所以,MR根据该EID 路由,只能将Map Request发送到某台MS上,而该MS上可能并没有对应实 例ID的EID前缀。MS在接收到Map Request报文后,将该Map Request报文 携带EID前缀及其实例ID与该MS上注册的EID前缀及其实例ID进行匹配, 如果MS上没有匹配成功的实例ID和EID前缀信息,MS将不会处理该Map  Request报文,发送Map Request报文的xTR显然也就无法学习到相应的Map  Cache路由,从而无法通信。

因此,针对上述问题2,即MR如何知晓需要将Map Requset报文发给哪一 个MS,本发明实施例提出,在第一种实施方式中,可以通过配置命令,在MR 和MS上为ALT实例与xTR的EID实例建立一一映射关系,并为EID前缀建 立多张虚拟路由表,使得对应每个ALT实例都建立一张单独的虚拟路由表,从 而解决EID前缀相同但实例ID不同的EID路由相互覆盖的问题。

在该第一种实施方式中,MR收到携带有实例ID的Map Request报文时, 首先根据ALT实例和EID实例ID的映射关系,查找到对应的ALT实例,然后 在该ALT实例中查找EID路由,即查询相应ALT实例的虚拟路由转发表(VRF) 得到EID路由,查找到EID路由后,根据所述EID路由将带ECM封装的Map  Request报文转发到正确的MS上,其中,所述ECM封装中携带有实例ID信 息,从而,实现了多MS场景下支持xTR的EID前缀多实例。

该第一种实施方式的缺点在于,需要为每个EID实例分配一个对应的ALT 实例,因此需要在ALT网络中建立大量的虚拟专用隧道VPN,这会浪费大量 的ALT实例资源。

为了节省ALT实例资源,在第二实施例中,ALT网络只是作为一个Map  Request控制报文的传输网络,可以不用感知xTR EID多实例,换言之,xTR EID 多实例是可以共享同一个ALT实例。

在该第二实施例中,一方面,MS在发布的BGP路由中,通过BGP的扩展 团体属性来携带EID前缀的实例ID和MS的隧道地址,另一方面,在MR上 建立查找表,该查找表是数据表,不是路由表,所述查找表根据EID前缀和该 EID前缀的实例ID,存储发布所述路由信息的MS的隧道地址,MR根据Map  Requset报文中的EID前缀和实例ID,在该查找表中查找MS的隧道地址,然 后将Map Requset报文的目的地址替换为查找到的MS的隧道地址,转发替换 后的Map Requset报文,使得收到所述Map Requset报文的MS根据所述Map  Requset报文请求的EID地址和实例ID查询路由信息。

关于所述第二实施例的具体流程,请参见图2。

图2是本发明实施例提供的ALT网络中的路由信息查询方法流程图。

如图2所示,该流程包括:

步骤201,MR接收EID前缀的路由信息,所述路由信息中携带所述EID 前缀的实例ID和发布所述路由信息的MS的GRE隧道地址。

其中,在基于ALT网络的LISP网络中,EID前缀的路由信息为BGP路由 信息,可以通过BGP路由的扩展团体属性字段携带EID前缀的实例ID和发布 所述路由信息的MS的隧道地址。MS的隧道地址可以是GRE隧道地址,也可 以是其他类型的隧道地址,本发明实施例仅以GRE隧道为例进行示例性说明。 关于在路由信息中携带EID前缀的实例ID,也可以通过扩展团体属性字段以外 的其他可扩展的字段或保留字段或者可以重新定义的字段,携带EID前缀的实 例ID。

步骤202,MR根据所述路由信息生成查找表,所述查找表根据EID前缀 和该EID前缀的实例ID,存储发布所述路由信息的MS的GRE隧道地址。

其中,所述查找表属于二级查找表,第一级可以以实例ID为关键字KEY, 第二级可以以EID前缀和掩码为KEY,在数据节点中存储包括发布所述路由信 息的MS的GRE隧道地址。

具体地,所述查找表可以是以实例ID为关键字KEY的HASH表,所述 HASH表的每个元素是以EID前缀和掩码为KEY的Radix树的树根,Radix树 节点存放的数据包括发布所述路由信息的MS的GRE隧道地址。

上述步骤201和步骤202属于路由信息处理过程,用于MR处理MS发布 的路由信息。当MR收到ITR发送的路由查询报文时,从步骤203开始执行本 流程。

步骤203,MR接收路由查询报文,根据所述路由查询报文请求的EID地 址和所述EID地址的实例ID,查询所述查找表,得到MS的GRE隧道地址。

本步骤中,根据所述路由查询报文中携带的实例ID,在所述第一级查找表 中查找对应的第二级查找表,根据所述请求的EID地址最长匹配的EID前缀和 所述EID前缀的掩码,在所述第二级查找表中查找对应的数据节点,从查找到 的数据节点中获取MS的隧道地址。

其中,可以根据所述查找表的具体结构,依据所述最长匹配的EID前缀和 所述EID前缀的实例ID,查找得到MS的GRE隧道地址。比如,如果所述查 找表是以实例ID为关键字KEY的HASH表,所述HASH表的每个元素是以 EID前缀和掩码为KEY的Radix树的树根,Radix树节点存放的数据包括发布 所述路由信息的MS的GRE隧道地址,则在查找时,根据路由查询报文中携带 的实例ID,在所述HASH表中查找到对应的Radix树根,以所述路由查询报文 中携带的EID前缀和掩码为Key,在该Radix树中查找到对应的Radix树节点, 从查找到的Radix树节点中获取到MS的GRE隧道地址。

步骤204,MR将所述路由查询报文的目的地址替换为查找到的MS的GRE 隧道地址。

其中,所述路由查询报文一般为Map Request报文,所述Map Request报文 包括ECM封装信息,在所述ECM封装信息的LISP头中可以携带EID前缀的 实例ID,图2所示实施例通过将所述Map Request报文的ECM封装信息中的 目的地址替换为查找到的MS的GRE隧道地址、并保持所述ECM封装信息中 的源地址不变,发送替换后的Map Request报文,实际上相当于为在ALT网络 中传输的Map Request报文也加上了ECM封装,从而通过该ECM封装携带EID 前缀的实例ID信息。

步骤205,MR通过ALT网络发送替换后的路由查询报文,使得所述MS 根据所述路由查询报文中携带的EID前缀和实例ID查询路由信息。

本步骤中,MR根据步骤204得到的MS的隧道地址查询路由表,得到转 发路由查询报文的路由,根据该路由发送所述替换后的路由查询报文。

其中,MS根据所述路由查询报文请求的EID地址和实例ID查询路由信息 时,查询得到实例ID相同、且与请求的EID地址匹配的EID前缀的路由信息 的注册信息,根据所述注册信息反馈应答报文。其中,在MS中也可以通过建 立二级查找表的方式存储注册信息,比如,第一级可以以实例ID为关键字KEY, 第二级可以以EID前缀和掩码为KEY,在数据节点中存储包括该实例ID的该 EID前缀的注册信息,然后MS根据自身所建立的二级查找表的结构,根据接 收的路由查询报文中携带的EID前缀和实例ID查找注册信息。

具体地,当所述注册信息表明需要由所述MS代为反馈应答报文,则由所 述MS对所述路由查询报文解封装,得到请求的EID地址,查询所述请求的EID 地址对应的路由信息,将所述请求的EID地址对应的路由信息反馈给向所述 MR发送所述路由查询报文的ITR。

当所述注册信息表明需要由向所述MS注册所述实例ID的EID前缀的ETR 反馈应答报文时,所述MS将所述路由查询报文的目的地址替换为所述ETR的 RLOC地址,转发替换后的路由查询报文,所述ETR接收到所述路由查询报文 后,对所述路由查询报文解封装,得到请求的EID地址,查询所述请求的EID 地址对应的路由信息,将所述请求的EID地址对应的路由信息反馈给向所述 MR发送所述路由查询报文的ITR。

可见,采用所述图2所示的方法,不仅可以解决基于ALT网络的LISP网 络不支持EID前缀多实例的问题,而且,EID前缀的所有实例可以共用一个ALT 实例,大大节省了ALT网络的实例资源。

下面结合一个具体的例子,对本发明实施例提供的ALT网络中的路由信息 查询方法进行示例性的详细介绍,具体请参见图3。

图3是本发明实施例提供的在ALT网络中的路由信息查询方法的详细处理 流程图。

图3所示流程基于这样的例子:ETR1为本地VPN1配置映射到实例ID 1; 并在该实例下配置一条基础数据(Database)192.168.1.0/24实例ID为1;然后 向MS1注册EID前缀192.168.1.0/24、且实例ID为1的注册信息。ETR2为本 地VPN2配置映射到实例ID 2;并在该实例下配置一条基础数据(Database) 192.168.1.0/24实例ID为2;然后向MS2注册EID前缀192.168.1.0/24、且实例 ID为2的注册信息。这两个注册信息的EID前缀相同,但是实例ID不同。

如图3所示,基于上述两个EID前缀相同、但是实例ID不同的注册信息, 在ALT网络中发布路由和进行路由信息查询的详细处理流程具体包括:

步骤301,MS1将实例ID为1的192.168.1.0/24EID前缀注入BGP路由中, 并通过BGP路由的扩展团体属性字段携带上EID的实例ID 1和MS1的GRE 隧道地址。MS2将实例ID为2的192.168.1.0/24EID前缀注入BGP路由中, 并通过BGP路由的扩展团体属性字段携带上EID的实例ID 2和MS2的GRE 隧道地址。

步骤302,MR通过BGP收到两条EID前缀192.168.1.0/24的BGP路由, 并通过BGP路由的扩展团体属性字段获取这两条EID前缀的BGP路由各自的 实例ID和MS的GRE隧道地址,即从其中一条BGP路由中获取到实例ID1 和MS1的GRE隧道地址,从另一条BGP路由中获取到实例ID2和MS2的GRE 隧道地址。

步骤303,MR根据提取的信息,在LISP线程建立一张本地数据查找表。

本步骤中,MR首先以实例ID为Key,创建一张实例ID的哈希表。实例 ID1和实例ID2哈希到不同的Hash冲突链上,MR为这两个Hash冲突链各自 新建立一个Hash节点,并为每个Hash节点新建立一张以EID前缀和掩码为 Key的Radix树,树根作为Hash节点的数据,Radix树节点存放MS的GRE隧 道地址。

步骤304,ITR上VPN1下的主机发起到192.168.1.1的流量,由于没有对 应的Map Cache路由,因此向MR发起带ECM封装的Map Request报文,该 报文ECM封装LISP头中携带实例ID为1。

其中,ITR上配置VPN1映射到实例ID 1。

步骤305,MR收到该ECMP封装的Map Request报文后,根据实例ID1 查找LISP线程的查找表,找到对应的Hash节点,然后从Hash节点中取到Radix 树根,根据EID前缀192.168.1.0和掩码24在Radix树中查找到对应的Radix 树节点,从查找到的Radix树节点中获取到MS1的GRE隧道地址。

步骤306,MR将所述Map Request报文的ECM封装的目的IP地址替换成 MS1的GRE隧道地址。

步骤307,MR根据MS1的GRE隧道地址,在ALT实例中查路由表,得 到到达MS1的路由,根据所述路由将该替换后的Map Request报文发送给MS1。

步骤308,MS1收到该Map Request报文后,查找本地注册的EID前缀, 在查到注册EID前缀192.168.1.0/24后,比较ECM封装中LISP头的实例ID, 如果该实例ID和注册该EID前缀的实例ID相同,即两者实例ID均为1,则认 为找到匹配的EID前缀,如果两者实例ID不同,则认为没有找到匹配的EID 前缀。本步骤中,假设两者实例ID相同,因此进入步骤308。

步骤309,MS1发现该EID前缀的注册者是ETR1、且需要由ETR1反馈应 答报文,因此将Map Request报文的ECM封装中的目的IP地址替换成ETR1 的RLOC地址,之后将该替换后的Map Request报文发给ETR1。

步骤310,ETR1收到ECM封装的Map Request报文,进行ECM解封装处 理。解封装后,提取Map Request报文Record字段中的EID地址192.168.1.1。 然后ETR1根据该EID地址,查找本地Database表。查找到本地的Database 192.168.1.0/24,再对比ECM封装的实例ID和Database的实例ID,发现两者 是一致的、均为1,因此,ETR1向ITR发送Map Reply报文。

步骤311,ITR收到Map Reply报文后,学习到192.168.1.0/24的Map Cache 路由,从而根据该Map Cache路由向ETR1下的主机192.168.1.1发送报文。

可见,本发明实施例通过为ALT网络中的Map Request报文添加一层ECM 封装,使得MS接收到的Map Request报文中能够携带有实例ID信息,而且, 通过在BGP路由中的扩展团体属性字段携带EID路由的实例ID和对应MS的 GRE隧道地址,将所述BGP路由在ALT网络中发布出去,MR根据该BGP路 由的扩展团体属性字段携带的信息,建立一张查找表,使得MR能够根据ITR 发来的Map Request报文中携带的EID前缀和实例ID查找到相应MS的GRE 隧道地址,使得MR能够通过ALT网络将Map Request报文发送到正确的MS 上,从而实现基于ALT网络部署的MS和MR能够支持xTR EID多实例,同时, 还节省了ALT网络的虚拟专用隧道资源。

针对上述方法,本发明实施例还公开了一种映射解析器,该映射解析器中 包括路由信息查询装置,能够在ALT网络中支持EID前缀的多实例。

图4是本发明实施例提供的映射解析器的硬件结构连接图。

如图4所示,该映射解析器包括处理器、网络接口、内存和非易失性存储 器,且上述各硬件通过总线连接,其中:

非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成 的操作主要为内存中的路由信息查询装置完成的功能。

处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储 的所述指令代码,完成上述路由信息查询装置完成的功能。

内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内 存中的路由信息查询装置完成的功能。

从软件层面而言,应用于映射解析器的路由信息查询装置如图5和图6所 示。

图5是本发明实施例提供的路由信息查询装置的第一结构示意图。

如图5所示,该装置包括接收模块501、存储模块502和查询报文处理模 块503。

接收模块501,用于接收EID前缀的路由信息,所述路由信息中携带所述 EID前缀的实例ID和发布所述路由信息的MS的GRE隧道地址。

存储模块502,用于根据所述路由信息生成查找表,所述查找表根据EID 前缀和该EID前缀的实例ID,存储发布所述路由信息的MS的隧道地址。

查询报文处理模块503,用于接收路由查询报文,根据所述路由查询报文 请求的EID地址和所述EID地址的实例ID,查询所述查找表,得到MS的隧道 地址,将所述路由查询报文的目的地址替换为查找到的MS的隧道地址,根据 所述查找到的MS的隧道地址查找路由表,根据查找到的路由发送替换后的路 由查询报文,使得所述查找到的MS根据所述路由查询报文请求的EID前缀和 实例ID查询路由信息。

其中,接收模块501,可以用于接收BGP路由信息,所述BGP路由的扩展 团体属性字段携带EID前缀的实例ID和发布所述路由信息的MS的隧道地址。

其中,存储模块502,用于生成二级查找表,第一级查找表以实例ID为关 键字KEY,第一级查找表的元素是以EID前缀和掩码为KEY的第二级查找表, 在第二级查找表的数据节点中存储发布所述路由信息的MS的隧道地址。

查询报文处理模块503,用于根据所述路由查询报文中携带的实例ID,在 所述第一级查找表中查找对应的第二级查找表,根据所述请求的EID地址最长 匹配的EID前缀和所述EID前缀的掩码,在所述第二级查找表中查找对应的数 据节点,从查找到的数据节点中获取MS的隧道地址。

存储模块502,可以用于生成以实例ID为关键字KEY的HASH表,所述 HASH表的每个元素是以EID前缀和掩码为KEY的Radix树的树根,Radix树 节点存放的数据包括发布所述路由信息的MS的隧道地址。

查询报文处理模块503,可以用于根据所述路由查询报文中携带的实例ID, 在所述HASH表中查找到对应的Radix树根,以所述路由查询报文中携带的EID 前缀和掩码为Key,在该Radix树中查找到对应的Radix树节点,从查找到的 Radix树节点中获取到MS的隧道地址。

图6是本发明实施例提供的路由信息查询装置的第二结构示意图。

如图6所示,该装置包括配置模块601、接收模块602、路由生成模块603 和查询报文处理模块604。

配置模块601,用于配置多个ALT实例,ALT实例的实例ID与EID前缀 的实例ID对应。

接收模块602,用于接收EID前缀的路由信息,所述路由信息中携带所述 EID前缀的实例ID。

路由生成模块603,用于根据所述路由信息中携带的实例ID,生成相应ALT 实例的虚拟路由转发表VRF。

查询报文处理模块604,用于接收路由查询报文,根据所述路由查询报文 请求的EID地址和所述EID地址的实例ID,查询相应ALT实例的虚拟路由转 发表VRF,得到转发所述路由查询报文的路由信息,根据查询到的路由信息, 发送路由查询报文,使得收到所述路由查询报文的MS根据所述路由查询报文 请求的EID地址和实例ID查询路由信息。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本 发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号