一种alt网络中的路由信息查询方法和装置的制造方法_2

文档序号:8447383阅读:来源:国知局
ECM封装的Map Request报文后,查找注册EID前缀,发现匹配到192.169.1.0/24,且注册者为ETR,然后,MS对该Map Requset报文进行ECM封装,然后发送给注册ETR。
[0045]步骤107,注册ETR收到该Map Request报文后,进行解封装,并向ITR回应非ECM封装的Map Reply报文。
[0046]步骤108,ITR收到该Map Reply报文后,根据该Map Reply报文生成192.168.1.0/24的Map Cache路由;然后用该路由进行流量转发。
[0047]由图1所示流程可见,一方面,假设在EID前缀多实例的情况下,MR知晓需要将MapRequset报文发给哪一个MS,但是由于MR在通过ALT网络向MS发送Map Request报文时,发送的Map Request报文无法携带EID前缀的实例ID,因此,MS无法知晓当前收到的MapRequset报文是针对哪一个EID前缀实例的,因此无法查找到相应实例ID的EID前缀的路由信息。
[0048]再一方面,由于MS发布的路由中不携带EID前缀的实例ID信息,MR生成的EID路由表中也不包含实例ID信息,因此,实际上,目前在EID前缀多实例的情况下,MR还无法知晓需要将Map Requset报文发给哪一个MS。
[0049]基于上述分析,如果要使得基于ALT网络的LISP网络支持EID前缀的多实例,需要解决以下两个问题:
[0050]问题1,MS能够知晓当前收到的Map Requset报文针对哪一个EID前缀实例。
[0051]问题2,MR能够知晓需要将Map Requset报文发给哪一个MS。
[0052]针对上述问题1,本发明实施例提出,在ALT网络中的Map Request报文中携带EID前缀的实例ID信息。
[0053]具体地,目前MR在接收到ITR发来的路由查询报文时,需要对ITR发来的路由查询报文进行解封装,并剥离掉Map Requset报文的ECM封装信息,然后通过ALT网络向MS发送路由查询报文。
[0054]本发明实施例提出,MR不需要对ITR发来的路由查询报文解封装,而是仅仅将ITR发来的路由查询报文的ECM封装的目的地址进行替换后直接转发,由于没有剥离掉所述ECM封装信息,因此,向MS转发的路由查询报文也是携带ECM封装信息的,其中,在所述ECM封装信息中携带EID前缀的实例ID。
[0055]由于本发明实施例中MR仅仅将ITR发来的路由查询报文的ECM封装的目的地址进行替换,然后直接转发替换后的路由查询报文,因此,MR通过ALT网络发给MS的路由查询报文中携带有EID前缀的实例ID信息。
[0056]ECM封装的长度为36个字节,在ALT网络中传输的Map Request报文携带ECM封装后会略微加大负载。但是,由于Map Request报文为控制报文,控制报文的数量相对是很少的,只有查找不到路由才会触发,因此为在ALT网络中传输的Map Requset报文携带ECM封装对系统的整体性能影响不大。
[0057]如果ALT网络中只有一个MS,那么采用问题I的解决方案,就已经能实现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路由,从而无法通信。
[0058]因此,针对上述问题2,即MR如何知晓需要将Map Requset报文发给哪一个MS,本发明实施例提出,在第一种实施方式中,可以通过配置命令,在MR和MS上为ALT实例与xTR的EID实例建立一一映射关系,并为EID前缀建立多张虚拟路由表,使得对应每个ALT实例都建立一张单独的虚拟路由表,从而解决EID前缀相同但实例ID不同的EID路由相互覆盖的问题。
[0059]在该第一种实施方式中,MR收到携带有实例ID的Map Request报文时,首先根据ALT实例和EID实例ID的映射关系,查找到对应的ALT实例,然后在该ALT实例中查找EID路由,即查询相应ALT实例的虚拟路由转发表(VRF)得到EID路由,查找到EID路由后,根据所述EID路由将带ECM封装的Map Request报文转发到正确的MS上,其中,所述ECM封装中携带有实例ID信息,从而,实现了多MS场景下支持xTR的EID前缀多实例。
[0060]该第一种实施方式的缺点在于,需要为每个EID实例分配一个对应的ALT实例,因此需要在ALT网络中建立大量的虚拟专用隧道VPN,这会浪费大量的ALT实例资源。
[0061]为了节省ALT实例资源,在第二实施例中,ALT网络只是作为一个Map Request控制报文的传输网络,可以不用感知xTR EID多实例,换言之,xTR EID多实例是可以共享同一个ALT实例。
[0062]在该第二实施例中,一方面,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查询路由信息。
[0063]关于所述第二实施例的具体流程,请参见图2。
[0064]图2是本发明实施例提供的ALT网络中的路由信息查询方法流程图。
[0065]如图2所示,该流程包括:
[0066]步骤201,MR接收EID前缀的路由信息,所述路由信息中携带所述EID前缀的实例ID和发布所述路由信息的MS的GRE隧道地址。
[0067]其中,在基于ALT网络的LISP网络中,EID前缀的路由信息为BGP路由信息,可以通过BGP路由的扩展团体属性字段携带EID前缀的实例ID和发布所述路由信息的MS的隧道地址。MS的隧道地址可以是GRE隧道地址,也可以是其他类型的隧道地址,本发明实施例仅以GRE隧道为例进行示例性说明。关于在路由信息中携带EID前缀的实例ID,也可以通过扩展团体属性字段以外的其他可扩展的字段或保留字段或者可以重新定义的字段,携带EID前缀的实例ID。
[0068]步骤202,MR根据所述路由信息生成查找表,所述查找表根据EID前缀和该EID前缀的实例ID,存储发布所述路由信息的MS的GRE隧道地址。
[0069]其中,所述查找表属于二级查找表,第一级可以以实例ID为关键字KEY,第二级可以以EID前缀和掩码为KEY,在数据节点中存储包括发布所述路由信息的MS的GRE隧道地址。
[0070]具体地,所述查找表可以是以实例ID为关键字KEY的HASH表,所述HASH表的每个元素是以EID前缀和掩码为KEY的Radix树的树根,Radix树节点存放的数据包括发布所述路由信息的MS的GRE隧道地址。
[0071]上述步骤201和步骤202属于路由信息处理过程,用于MR处理MS发布的路由信息。当MR收到ITR发送的路由查询报文时,从步骤203开始执行本流程。
[0072]步骤203,MR接收路由查询报文,根据所述路由查询报文请求的EID地址和所述EID地址的实例ID,查询所述查找表,得到MS的GRE隧道地址。
[0073]本步骤中,根据所述路由查询报文中携带的实例ID,在所述第一级查找表中查找对应的第二级查找表,根据所述请求的EID地址最长匹配的EID前缀和所述EID前缀的掩码,在所述第二级查找表中查找对应的数据节点,从查找到的数据节点中获取MS的隧道地址。
[0074]其中,可以根据所述查找表的具体结构,依据所述最长匹配的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隧道地址。
[0075]步骤204,MR将所述路由查询报文的目的地址替换为查找到的MS的GRE隧道地址。
[0076]其中,所述路由查询报文一般为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信息。
[0077]步骤205,MR通过ALT网络发送替换后的路由查询报文,使得所述MS根据所述路由查询报文中携带的EID前缀和实例ID查询路由信息。
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1