CN103973574B - 位置与身份分离协议网络中的数据报文转发方法及装置 - Google Patents
位置与身份分离协议网络中的数据报文转发方法及装置 Download PDFInfo
- Publication number
- CN103973574B CN103973574B CN201410212530.2A CN201410212530A CN103973574B CN 103973574 B CN103973574 B CN 103973574B CN 201410212530 A CN201410212530 A CN 201410212530A CN 103973574 B CN103973574 B CN 103973574B
- Authority
- CN
- China
- Prior art keywords
- lisp
- rloc
- etr
- messages
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本申请公开了一种位置与身份分离协议网络中的数据报文转发方法及装置,其中,该方法包括:当ITR接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的RLOC进行转发;当ITR接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的EID对应的目的RLOC,根据获取的目的RLOC将该用户数据报文封装成LISP数据报文后进行转发,并将目的EID和目的RLOC发送给前置路由器。本申请中,ITR将部分查表转发工作分担到了前置路由器上,减轻了ITR的工作压力,当存在多个前置路由器时,ITR将会把查表转发工作压力分担到多个前置路由器上,大大减轻了ITR的性能压力。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种位置与身份分离协议(Locator/IDSeparation Protocol,LISP)网络中的数据报文转发方法及装置。
背景技术
LISP(Location/ID Separation Protocol,位置与身份分离协议)提供了一种数据包路由方法,它可以在不改变终端软件的前提下实现移动设备在不同无线网络之间无缝迁移。LISP将原有的IP(Internet Protocol,因特网协议)地址分成EID(End PointIdentifier,终端标识)和RLOC(Routing Locator,路由位置标识),其中,EID是终端(移动设备或VM)的IP地址,不具备全局路由功能,RLOC用于全网路由。下面对LISP中的主要术语进行介绍。
EID:是终端初始化时被分配的IP地址,它通常由动态主机配置协议(DynamicHost Configuration Protocol)确定。在网络迁移过程中,终端的EID不会发生改变。
RLOC:是指IP地址的网络标识符部分。它可用于将数据报文从ITR传输到ETR。
ETR(Egress Tunnel Router,隧道出口路由器):负责将数据报文从互联网传输到本地网络的路由器,而目标终端就位于本地网络中。
ITR(Ingress Tunnel Router,隧道入口路由器):负责将数据报文从本地网络传输到互联网的路由器,而源终端就位于本地网络中。由于数据报文在两个方向移动,所以路由器既可以作为离开本地网络的数据报文的ITR,也可以作为去往本地网络中的目标终端的数据报文的ETR。
LISP网络中单播数据报文的转发流程如下:
当要发送数据报文(为了便于描述,可以称为用户数据报文)时,源终端首先在DNS(Domain Name System,域名系统)服务器中查找到目标终端的EID,然后,源终端将用户数据报文的源EID设置为自己的EID,将目的EID设置为目标终端的EID后,发送出去。如果目标终端在另一个网络,则该用户数据报文会发送到本地网络的ITR。其中,该用户数据报文的报头的格式可以参见图1。
本地网络的ITR收到该用户数据报文后,根据该用户数据报文中携带的目的EID在本地的RLOC映射表中查找对应的ETR的IP地址,如果查找到了对应的ETR的IP地址,则该ITR会在该用户数据报文的头部再封装一个外层报头,并将该外层报头的源RLOC设置为自己的IP地址,将目的RLOC设置为查找到的ETR的IP地址,然后将最终封装得到的LISP数据报文发送到互联网上,通过目的RLOC的指示到达ETR,ETR解封装该LISP数据报文得到用户数据报文,再继续将该用户数据报文发送到目的EID所指示的目标终端。其中,该LISP数据报文的报头的格式可以参见图2。
另一方面,如果ITR根据该用户数据报文中携带的目的EID在RLOC映射表中没有查找到对应的ETR的IP地址,即,RLOC映射表中没有目的EID的EID-to-RLOC映射信息,则用户数据报文可以通过以下两种方式之一发送给目标终端:
方式一:该ITR在该用户数据报文的头部再封装一个外层报头,并将该外层报头的目的RLOC设置为内层报头中的目的EID,此时,封装得到的LISP数据报文就成了一个DataProbe(数据探测)报文,该ITR将该Data Probe报文发送到具有权威映射信息的LISP-ALT(LISP-Alternative Topology,LISP替代拓扑)路由器,由LISP-ALT路由器发给ETR。ETR接收到该Data Probe报文后,进行解封装得到用户数据报文并发送给目的EID所指示的目标终端,同时再发送一个携带有目的EID与该ETR的IP地址之间的映射信息的Map Reply(映射响应)消息给ITR,以便后续的用户数据报文可以直接查表封装后发送到互联网。
方式二:该ITR先向映射系统发送Map Request(映射请求)消息以请求目的EID与ETR的IP地址之间的映射信息,获取到该映射信息之后,保存到本地的RLOC映射表中,然后,该ITR根据目的EID在RLOC映射表中查找对应的ETR的IP地址,此时,可以查找到对应的ETR的IP地址,之后会在该用户数据报文的头部再封装一个外层报头,并将该外层报头的源RLOC设置为自己的IP地址,将目的RLOC设置为查找到的ETR的IP地址,然后将最终封装得到的LISP数据报文发送到互联网上,通过目的RLOC的指示到达ETR,ETR解封装该LISP数据报文得到用户数据报文,再继续将该用户数据报文发送到目的EID所指示的目标终端。
在现有技术中,ITR需要针对每一个接收到的用户数据报文都需要查询RLOC映射表,之后再进行封装转发,当ITR上的RLOC映射表中的表项数量庞大时,ITR的工作压力较大,转发性能下降。
发明内容
本申请提供了一种位置与身份分离协议网络中的数据报文转发方法及装置,旨在解决现有技术中存在的ITR的工作压力较大,转发性能降低的问题。
本申请的技术方案如下:
一方面,提供了一种LISP网络中的数据报文转发方法,该方法包括:
当ITR接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的RLOC进行转发;
当ITR接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的EID对应的目的RLOC,根据获取的目的RLOC将该用户数据报文封装成LISP数据报文后进行转发,并将目的EID和目的RLOC发送给前置路由器。
另一方面,还提供了一种LISP网络中的数据报文转发方法,该方法包括:
前置路由器接收ITR发来的目的EID和目的RLOC,并保存到本地的RLOC映射表中;
在接收到终端发来的未做LISP封装的用户数据报文之后,前置路由器根据该用户数据报文的目的EID,在RLOC映射表中查找对应的目的RLOC;
若查找到了对应的目的RLOC,则前置路由器根据查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;
若没有查找到对应的目的RLOC,则前置路由器将该用户数据报文转发给ITR。
又一方面,还提供了一种LISP网络中的数据报文转发装置,该装置应用于ITR,该装置包括:
接收模块,用于接收LISP数据报文和未做LISP封装的用户数据报文;
获取模块,用于当接收模块接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的EID对应的目的RLOC;
LISP封装模块,用于根据获取模块获取的目的RLOC将接收模块接收到的用户数据报文封装成LISP数据报文;
发送模块,用于当接收模块接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的RLOC进行转发;还用于在LISP封装模块将接收模块接收到的用户数据报文封装成LISP数据报文后进行转发,并将该用户数据报文的目的EID和获取模块获取的目的RLOC发送给前置路由器。
又一方面,还提供了一种LISP网络中的数据报文转发装置,该装置应用于前置路由器,该装置包括:
接收模块,用于接收ITR发来的目的EID和目的RLOC,并保存到本地的RLOC映射表中;还用于接收未做LISP封装的用户数据报文;
查找模块,用于在接收模块接收到终端发来的未做LISP封装的用户数据报文之后,根据该用户数据报文的目的EID,在RLOC映射表中查找对应的目的RLOC;
LISP封装模块,用于若查找模块查找到了对应的目的RLOC,则根据查找到的目的RLOC将接收模块接收到的用户数据报文封装成LISP数据报文;
发送模块,用于在LISP封装模块将接收模块接收到的用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;还用于若查找模块没有查找到对应的目的RLOC,则将接收模块接收到的用户数据报文转发给ITR。
本申请的以上技术方案中,与ITR直连的前置路由器在接收到来自终端的用户数据报文时,会先根据该用户数据报文的目的EID在本地查找对应的目的RLOC,若查找到了,则使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,否则,直接将该用户数据报文转发给ITR;ITR在收到前置路由器发来的LISP数据报文后,就会直接将该LISP数据报文转发出去,在收到前置路由器发来的用户数据报文后,会根据该用户数据报文的目的EID查找到对应的目的RLOC,使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发出去,并将目的EID与该目的RLOC之间的映射信息发送给前置路由器,以便,前置路由器可以对接收到的用户数据报文进行查表封装转发。这样,ITR将本地部分的映射信息发送给了前置路由器,并由前置路由器对用户数据报文进行查表封装转发,即,将部分查表转发工作分担到了前置路由器上,减轻了ITR的工作压力;当存在多个前置路由器时,将会把查表转发工作压力分担到多个前置路由器上,大大减轻了ITR的性能压力。
另外,ITR是在前置路由器转发来的用户数据报文的触发下,向前置路由器发送相关映射信息,所以,前置路由器上的映射信息较ITR上的映射信息的数量要少很多,前置路由器的查表转发压力较小。
附图说明
图1是用户数据报文的报头的格式示意图;
图2是LISP数据报文的报头的格式示意图;
图3是一种LISP网络的实际组网示意图;
图4是本申请实施例一的LISP Map-pull报文的格式示意图;
图5是本申请实施例一的LISP Map-push报文的格式示意图;
图6是本申请实施例一的LISP Map-sync报文的格式示意图;
图7是本申请实施例一的LISP网络中的数据报文转发方法的流程图;
图8是图3所示的组网中主路径故障后,切换到备份路径的组网示意图;
图9是本申请实施例三的包含有数据报文转发装置的ITR的硬件结构示意图;
图10是本申请实施例三的包含有数据报文转发装置的前置路由器的硬件结构示意图。
具体实施方式
为了解决现有技术中存在的ITR的工作压力较大,转发性能降低的问题,本申请以下实施例中提供了一种LISP网络中的数据报文转发方法,以及一种可以应用该方法的装置。
本申请以下实施例的LISP网络中包括:ITR、前置路由器和终端,终端通过前置路由器连接至ITR,前置路由器与ITR直连。即,前置路由器是LISP网络中与ITR直连的路由器。
如图3所示,终端1通过一个路由器连接至前置路由器,前置路由器又与ITR直接连接,从而,终端1通过前置路由器连接至ITR。
实施例一
本申请实施例的LISP网络中的数据报文转发方法包括以下几个方面的内容:
(1)控制平面
前置路由器使能映射获取功能(LISP Map-pull功能),之后,按照预设周期向ITR发送LISP Map-pull(映射获取)报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有使能了映射获取功能的前置路由器上连接ITR的接口的IP地址。例如,预设周期为30秒。
为了描述方便,下文中所说的前置路由器均指的是使能了LISP Map-pull功能的前置路由器。
其中,LISP Map-pull报文的格式可以参见图4,LISP Map-pull报文为普通的UDP(User Data Protocol,用户数据报协议)报文,包括IP头、UDP头和LISP报文字段。IP头(即图4中的IPv4or IPv6Header)中的目的IP置为ITR的IP地址,源IP置为本前置路由器上连接ITR的接口的IP地址;UDP头中的目的端口号(即图4中的Dest Port)的值置为固定的4342,与现有LISP报文一致,源端口号(即图4中的Source Port)的值可以任意指定;LISP报文字段共占用64比特,其中的前4比特为类型(Type)字段,Type字段的值置为5,中间28比特为保留(Reserved)字段,最后32比特为前缀路由位置标识(Prefix Routing Locator)字段,Prefix Routing Locator字段用于携带本前置路由器上连接ITR的接口的IP地址。
ITR接收到前置路由器发来的LISP Map-pull报文之后,将该LISP Map-pull报文的Prefix Routing Locator字段中携带的IP地址,保存到本地的ITR前压表中,如表1所示:
表1
在表1中,前置路由器IP地址用于记录接收到的LISP Map-pull报文的PrefixRouting Locator中携带的前置路由器上连接ITR的接口的IP地址;在将接收到的LISPMap-pull报文的Prefix Routing Locator中携带的IP地址保存到如表1所示的ITR前压表中时,为其设置老化定时器,该老化定时器的时长可以是2倍的LISP Map-pull报文发送周期,例如60秒,老化定时器的计时方式可以采用倒计时的方式,当老化定时器的时间减为0时,对应表项被删除。
(2)数据平面
前置路由器需要执行的报文转发流程包括以下步骤:
步骤S102,接收ITR发来的目的EID与目的RLOC之间的映射信息,并保存到本地的如表2所示的RLOC映射表中;
目的RLOC即为ETR的IP地址。
表2
EID | ETR的IP地址 |
具体的,在步骤S102中,前置路由器需要执行以下操作:
步骤11:接收ITR发来的LISP Map-push(映射推送)报文,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;之后执行步骤12;
其中,LISP Map-push报文的格式可以参见图5所示。LISP Map-push报文的格式与现有技术的LISP Map-Reply(映射响应)报文的格式基本相同,只是LISP Map-push报文中的Type字段的值置为6,并在Nonce(随机数)字段和Record TTL(Record Time To Live,生存时间记录)字段之间增加了一个prefix Routing Locator(前缀路由位置标识)字段,prefix Routing Locator字段用于携带前置路由器上直连ITR的接口的IP地址,前置路由器接收到LISP Map-push报文后,利用prefix Routing Locator字段来识别该LISP Map-push是否是发送给自己的。另外,LISP Map-push报文中的Sequence number(序列号)字段用来标识本LISP Map-push报文的编号,以便与后续的LISP Map-sync报文进行匹配;EID-prefix(EID前缀)字段和Locator(位置标识)字段分别用于携带目的EID和目的RLOC。
步骤12:根据接收到的LISP Map-push报文中携带的目的EID,在如表2所示的RLOC映射表中查找对应的目的RLOC,若查找到了对应的目的RLOC,则执行步骤13,否则,执行步骤14;
步骤13,将查找到的目的RLOC替换成接收到的LISP Map-push报文中携带的目的RLOC;
例如,原表项中包括:EID1和IP1,经过步骤13后,将原表项替换成新表项,该新表项中包括:EID1和IP2。
步骤14,在如表2所示的RLOC映射表中添加一表项,该表项中包括:接收到的LISPMap-push报文中携带的目的EID和目的RLOC;
另外,在步骤11之后,前置路由器会向ITR反馈LISP Map-sync(映射同步)报文,其中,LISP Map-sync报文用于确认已经收到了对应的LISP Map-push报文。LISP Map-sync报文的格式可以参见图6所示,LISP Map-sync报文中的Type字段的值可以置为7,prefixRouting Locator字段用于携带前置路由器上连接ITR的接口的IP地址,Sequence number字段的值置为对应LISP Map-push报文中的Sequence number字段的值。
步骤S104,在接收到来自终端的用户数据报文(即终端发出的未经LISP封装的数据报文称为用户数据报文)之后,根据该用户数据报文中携带的目的EID,在如表2所示的RLOC映射表中查找对应的目的RLOC,若查找到了对应的目的RLOC,则执行步骤S106,否则,执行步骤S108;
步骤S106,根据查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;ITR收到该LISP数据报文后,将执行以下步骤S206;
步骤S108,不对该用户数据报文进行处理,直接将该用户数据报文转发给ITR。ITR收到该用户数据报文后,将执行以下步骤S208。
如图7所示,ITR需要执行的报文转发流程包括以下步骤:
步骤S202,接收数据报文;之后执行步骤S204;
步骤S204,判断步骤S202中接收到的数据报文是否是LISP数据报文;即,判断接收到的数据报文是LISP数据报文还是未经LISP封装的用户数据报文,若是LISP数据报文,则执行步骤S206,若是用户数据报文,则执行步骤S208;
步骤S206,根据该LISP数据报文的目的RLOC,对该LISP数据报文进行转发;之后结束本流程;
在实际实施过程中,为了进行链路保护,通常会对到达目的EID所指示的目标终端的路径进行备份,从而,在主路径正常时,使用主路径,当主路径故障时,切换到备份路径,在主路径恢复正常后,如果需要回切到主路径,则切换回主路径,如果不需要回切到主路径,则继续使用备份路径。因此,对应于主路径会有目的EID与主ETR的IP地址之间的映射信息,即,数据报文通过主ETR到达目标终端,而对应于备份路径会有目的EID与备ETR的IP地址之间的映射信息,即,数据报文通过备ETR到达目标终端。这样,当主路径故障时,ITR可以将LISP数据报文通过备ETR发送到目标终端。
由此,在步骤S206中会存在以下几种情况:
情况一:若该LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本设备与主ETR之间的路径正常,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;
情况二:若该LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本设备与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的EID查找备ETR的IP地址;将该LISP数据报文的目的RLOC携带的主ETR的IP地址替换为备ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与备ETR的IP地址(即目的RLOC)之间的映射信息发送给前置路由器;这样,前置路由器中保存的就是目的EID与备ETR的IP地址(即目的RLOC)之间的映射信息;
情况三:若该LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本设备与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;
情况四:若该LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本设备与主ETR之间的路径恢复了正常,则在需要回切到主路径时,根据该LISP数据报文的目的EID查找主ETR的IP地址,将该LISP数据报文的目的RLOC携带的备ETR的IP地址替换为主ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与主ETR的IP地址(即,目的RLOC)之间的映射信息发送给前置路由器;这样,前置路由器中保存的就是目的EID与主ETR的IP地址(即,目的RLOC)之间的映射信息;在不需要回切到主路径时,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去。
在实际实施过程中,一种具体实现方式是:目的EID与主ETR的IP地址、备ETR的IP地址之间的映射信息保存在本地的如表3所示的RLOC映射表中。在本ITR与主ETR之间的路径正常时,RLOC映射表中的主ETR的IP地址标记为可用,备ETR的IP地址标记为不可用;当检测到本ITR与主ETR之间的路径发生了故障时,将RLOC映射表中的主ETR的IP地址标记为不可用,备ETR的IP地址标记为可用;当本ITR与主ETR之间的路径故障恢复时,若需要回切到主路径,则再将主ETR的IP地址标记为可用,将备ETR的IP地址标记为不可用。
表3
EID | 主ETR的IP地址 | 备ETR的IP地址 |
这样,在情况一中,根据该LISP数据报文的目的EID在如表3所示的RLOC映射表中查找到匹配表项,当该LISP数据报文的目的RLOC中携带的IP地址与该匹配表项中的主ETR的IP地址相同,且该IP地址标记为可用时,直接根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;在情况二中,根据该LISP数据报文的目的EID在如表3所示的RLOC映射表中查找到匹配表项,当该LISP数据报文的目的RLOC中携带的IP地址与该匹配表项中的主ETR的IP地址相同,且该IP地址标记为不可用时,将该LISP数据报文的目的RLOC携带的主ETR的IP地址替换为备ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与备ETR的IP地址之间的映射信息发送给前置路由器;在情况三中,根据该LISP数据报文的目的EID在如表3所示的RLOC映射表中查找到匹配表项,当该LISP数据报文的目的RLOC中携带的IP地址与该匹配表项中的备ETR的IP地址相同,且该IP地址标记为可用时,直接根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;在情况四中,根据该LISP数据报文的目的EID在如表3所示的RLOC映射表中查找到匹配表项,当该LISP数据报文的目的RLOC携带的IP地址与该匹配表项中的备ETR的IP地址相同时,若该匹配表项中的备ETR的IP地址标记为不可用,则将该LISP数据报文的目的RLOC携带的备ETR的IP地址替换为主ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与主ETR的IP地址之间的映射信息发送给前置路由器,若该匹配表项中的备ETR的IP地址标记为可用,则直接根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去。
显然,在实际实施过程中还可以采用其它方式,例如,将EID与主ETR的IP地址之间的映射信息保存到一个表中,而EID与备ETR的IP地址之间的映射信息保存到另一个表中;或者,判断本ITR与主ETR之间的路径是否故障的方式,也可以采用查找路由表的方式等其它方式;或者,查找到主/备ETR的IP地址的方式,也可以采用其它方式,本申请对此不做限定。
步骤S208,根据该用户数据报文的目的EID,在本地查找对应的目的RLOC;之后执行步骤S210;
在步骤S208中,可以按照以下几种情况进行:
情况1:若本设备与主ETR之间的路径正常,则根据该用户数据报文的目的EID,在本地查找主ETR的IP地址(即,目的RLOC);
情况2:若本设备与主ETR之间的路径发生了故障,则根据该用户数据报文的目的EID,在本地查找备ETR的IP地址(即,目的RLOC);
情况3:若本设备与主ETR之间的路径恢复了正常,则在需要回切到主路径时,根据该用户数据报文的目的EID,在本地查找主ETR的IP地址(即,目的RLOC),在不需要回切到主路径时,根据该用户数据报文的目的EID,在本地查找备ETR的IP地址(即,目的RLOC)。
在实际实施过程中,一种具体实施方式是:EID与主ETR的IP地址、备ETR的IP地址之间的映射信息保存在如表3所示的RLOC映射表中。在本ITR与主ETR之间的路径正常时,RLOC映射表中的主ETR的IP地址标记为可用,备ETR的IP地址标记为不可用;当检测到本ITR与主ETR之间的路径发生了故障时,将RLOC映射表中的主ETR的IP地址标记为不可用,备ETR的IP地址标记为可用;当本ITR与主ETR之间的路径故障恢复时,若需要回切到主路径,则再将主ETR的IP地址标记为可用,将备ETR的IP地址标记为不可用。这样,在情况1中,可以根据用户数据报文的目的EID,在如表3所示的RLOC映射表中查找到可用的主ETR的IP地址;在情况2中,可以根据用户数据报文的目的EID,在如表3所示的RLOC映射表中查找到可用的备ETR的IP地址;在情况3中,在需要回切到主路径时,可以根据用户数据报文的目的EID,在如表3所示的RLOC映射表中查找到可用的主ETR的IP地址,在不需要回切到主路径时,可以根据用户数据报文的目的EID,在如表3所示的RLOC映射表中查找到可用的备ETR的IP地址。
显然,在实际实施过程中还可以采用其它方式,例如,将EID与主ETR的IP地址之间的映射信息保存到一个表中,而EID与备ETR的IP地址之间的映射信息保存到另一个表中;或者,根据主路径是否故障查找到主ETR的IP地址或备ETR的IP地址方式,也可以采用其它方式,本申请对此不做限定。
步骤S210,判断是否查找到了对应的目的RLOC,若是,则执行步骤S212,否则,执行步骤S218;
步骤S212,根据查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发出去;之后执行步骤S214;
步骤S214,判断该用户数据报文是否是由前置路由器转发到本设备的,若是,则执行步骤S216,否则,结束本流程;
在实际实施过程中,判断该用户数据报文是否是由前置路由器转发到本设备的方法可以有多种,以下以其中一种进行举例说明:
根据该用户数据报文的源EID,在本地的路由表中,查找从本设备到该源EID所指示的源终端的路由信息,从该路由信息中获取本设备的IP地址的上一跳IP地址(即反向下一跳IP地址);判断如表1所示的ITR前压表中是否存在该上一跳IP地址;若存在,则判断该用户数据报文是由前置路由器转发到本设备的;否则,判断该用户数据报文不是由前置路由器转发到本设备的。
步骤S216,将目的EID与查找到的目的RLOC之间的映射信息发送给该前置路由器;之后结束本流程;
步骤S218,向映射服务器获取目的EID与目的RLOC之间的映射信息并保存;之后执行步骤S220;
即,向映射服务器获取目的EID与ETR的IP地址之间的映射信息。
步骤S220,根据目的EID在本地查找到对应的目的RLOC,并根据查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发出去;之后执行步骤S222;
步骤S222,判断该用户数据报文是否是由前置路由器转发到本设备的,若是,则执行步骤S224,否则,结束本流程;
步骤S224,将获取到的目的EID与目的RLOC之间的映射信息发送给该前置路由器;之后结束本流程。
其中,在步骤S206的情况二、情况四,步骤S216和步骤S224中,将目的EID与目的RLOC之间的映射信息发送给前置路由器的方法可以是:ITR向前置路由器发送如图5所示的LISP Map-push报文,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;并且,在向前置路由器发送了LISP Map-push报文之后,还需要接收前置路由器反馈的如图6所示的LISP Map-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文,若没有接收到LISP Map-sync报文,则会重复地向前置路由器发送LISP Map-push报文,直至收到LISP Map-sync报文为止,以确保前置路由器与ITR上的对应表项一致。
本申请的以上技术方案中,与ITR直连的前置路由器在接收到来自终端的用户数据报文时,会先根据该用户数据报文的目的EID在本地查找对应的目的RLOC,若查找到了,则使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,否则,直接将该用户数据报文转发给ITR;ITR在收到前置路由器发来的LISP数据报文后,就会直接将该LISP数据报文转发出去,在收到前置路由器发来的用户数据报文后,会根据该用户数据报文的目的EID查找到对应的目的RLOC,使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发出去,并将目的EID与该目的RLOC之间的映射信息发送给前置路由器,以便,前置路由器可以对接收到的用户数据报文进行查表封装转发。这样,ITR将本地部分的映射信息发送给了前置路由器,并由前置路由器对用户数据报文进行查表封装转发,即,将部分查表转发工作分担到了前置路由器上,减轻了ITR的工作压力;当存在多个前置路由器时,将会把查表转发工作压力分担到多个前置路由器上,大大减轻了ITR的性能压力。
另外,ITR是在前置路由器转发来的用户数据报文的触发下,向前置路由器发送相关映射信息,所以,前置路由器上的映射信息较ITR上的映射信息的数量要少很多,前置路由器的查表转发压力较小。
实施例二
本申请实施例中,以如图3所示的实际组网为例,对上述实施例一中的方法进行详细说明。如图3所示,终端1通过前置路由器连接至ITR,终端2连接至ETR1。终端1的IP地址是100.1.1.2,前置路由器上连接ITR的接口P1的IP地址是10.1.1.1,ITR的IP地址是1.1.1.1,ETR1的IP地址是2.1.1.1,终端2的IP地址是200.1.1.2。
前置路由器使能了LISP Map-pull功能后,向ITR发送LISP Map-pull报文,其中,LISP Map-pull报文的IPv4头中的目的IP地址为1.1.1.1、源IP地址为10.1.1.1,SourcePort由该前置路由器自动分配,prefix routing locator的值置为本设备上P1接口的IP地址10.1.1.1。
ITR收到该LISP Map-pull报文后,会在本地的如表4所示的ITR前压表中添加一表项。
表4
前置路由器IP地址 | 老化时间 |
10.1.1.1 | 59 |
当终端1向终端2发送用户数据报文时,该用户数据报文会通过路由器100.1.1.1到达前置路由器,前置路由器在本地的RLOC映射表中查找对应ETR的IP地址,结果没有查找到,则前置路由器直接将该用户数据报文发送给ITR。
ITR在判断出该报文是未经LISP封装的用户数据报文后,根据该用户数据报文的源EID100.1.1.2,在本地的路由表中查找从本设备到该源EID所指示的终端1的路由信息,从该路由信息中获取本设备的IP地址1.1.1.1的上一跳IP地址10.1.1.1,然后判断在如表4所示的ITR前压表中是否存在10.1.1.1,发现10.1.1.1在表4中存在,说明该用户数据报文是通过前置路由器转发来的。ITR根据该用户数据报文的目的EID200.1.1.2查找对应ETR的IP地址2.1.1.1/32,若查找到了,则将该用户数据报文封装成LISP数据报文后转发出去,并将相应映射信息通过LISP Map-push报文发送给前置路由器;若没有查找到,则向Map-server(映射服务器)获取,待获取到后再将该用户数据报文封装成LISP数据报文后转发出去,并将相应映射信息通过LISP Map-push报文发送给前置路由器。
前置路由器收到LISP Map-push报文后,保存该报文中携带的映射信息,并向ITR发送LISP Map-sync报文,告知表项同步一致。
后续,终端1发给终端2的用户数据报文到达前置路由器时,前置路由器就可以根据该用户数据报文的目的EID查找到对应ETR的IP地址,然后,将用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文的源RLOC是ITR的IP地址1.1.1.1。ITR接收到该LISP数据报文后,直接根据目的RLOC进行转发。
如图8所示,当主路径发生了故障,切换到了备份路径,ITR接收到前置路由器发来的LISP数据报文后,会将该LISP数据报文的目的RLOC携带的2.1.1.1替换成备ETR的IP地址3.1.1.1后进行转发出去,并将该LISP数据报文的目的EID与备ETR的IP地址3.1.1.1之间的映射信息通过LISP Map-push报文发送给前置路由器。前置路由器收到该LISP Map-push报文后,会将包括目的EID与主ETR的IP地址2.1.1.1的表项更新为:包括目的EID与备ETR的IP地址3.1.1.1的表项,后续会按照该表项进行查表封装转发。
实施例三
针对上述实施例一中的方法,本申请实施例中提供了一种可以应用该方法的LISP网络中的数据报文转发装置。
一种实施例中,以软件实现为例,如图9所示,应用于ITR中的数据报文转发装置中包括以下模块:接收模块301、获取模块302、LISP封装模块303和发送模块304,其中:
接收模块301,用于接收LISP数据报文和未做LISP封装的用户数据报文;
获取模块302,用于当接收模块301接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的EID对应的目的RLOC;
LISP封装模块303,用于根据获取模块302获取的目的RLOC将接收模块301接收到的用户数据报文封装成LISP数据报文;
发送模块304,用于当接收模块301接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的RLOC进行转发;还用于在LISP封装模块303将接收模块301接收到的用户数据报文封装成LISP数据报文后进行转发,并将该用户数据报文的目的EID和获取模块302获取的目的RLOC发送给前置路由器。
另外,该装置中还可以包括:保存模块和判断模块,其中:
接收模块,还用于接收前置路由器发来的LISP Map-pull报文,其中,LISPMap-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISPMap-pull报文中携带有前置路由器上连接ITR的接口的IP地址;
保存模块,用于将接收模块接收到的LISP Map-pull报文中携带的前置路由器上连接ITR的接口的IP地址,保存到本地的ITR前压表中;
判断模块,在接收模块接收到用户数据报文之后,根据该用户数据报文的源EID,查找从本ITR到该源EID所指示的终端的路由信息,从该路由信息中获取本ITR的IP地址的上一跳IP地址,判断保存模块中的ITR前压表中是否存在该上一跳IP地址,若存在,则判断该用户数据报文是前置路由器发送的。
其中,发送模块具体用于:
若接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本ITR与主ETR之间的路径正常,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;其中,主ETR是到达目的EID所指示的终端的主路径所经过的ETR;
若接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本ITR与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的EID查找备ETR的IP地址;将该LISP数据报文的目的RLOC携带的主ETR的IP地址替换为备ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与备ETR的IP地址之间的映射信息发送给前置路由器;其中,备ETR是到达目的EID所指示的终端的备份路径所经过的ETR;
若接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本ITR与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;
若接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本ITR与主ETR之间的路径恢复了正常,则在需要回切到主路径时,根据该LISP数据报文的目的EID查找主ETR的IP地址,将该LISP数据报文的目的RLOC携带的备ETR的IP地址替换为主ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与主ETR的IP地址之间的映射信息发送给前置路由器;在不需要回切到主路径时,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去。
其中,获取模块具体用于:
若本ITR与主ETR之间的路径正常,则根据接收模块接收到的用户数据报文的目的EID,获取主ETR的IP地址;
若本ITR与主ETR之间的路径发生了故障,则根据接收模块接收到的用户数据报文的目的EID,获取备ETR的IP地址;
若本ITR与主ETR之间的路径恢复了正常,则在需要回切到主路径时,根据接收模块接收到的用户数据报文的目的EID,获取主ETR的IP地址;在不需要回切到主路径时,根据接收模块接收到的用户数据报文的目的EID,获取备ETR的IP地址。
其中,发送模块通过LISP Map-push报文,将用户数据报文的目的EID和获取模块获取的目的RLOC发送给前置路由器,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;则,接收模块,还用于在发送模块向前置路由器发送LISP Map-push报文之后,接收前置路由器反馈的LISPMap-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文。
本申请实施例并不排除硬件或者软硬件结合的实施方式。请参考图9,从硬件层面而言,ITR中包括:CPU(中央处理器)、非易失性存储器、内存、转发芯片以及其他硬件。上述的数据报文转发装置作为一个逻辑意义上的装置,其是通过CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。当对应的计算机程序指令被执行时,形成的数据报文转发装置用于按照实施例一中的方法执行相应操作。
另一种实施例中,以软件实现为例,如图10所示,应用于前置路由器中的数据报文转发装置中包括以下模块:接收模块401、查找模块402、LISP封装模块403和发送模块404,其中:
接收模块401,用于接收ITR发来的目的EID和目的RLOC,并保存到本地的RLOC映射表中;还用于接收未做LISP封装的用户数据报文;
查找模块402,用于在接收模块401接收到终端发来的未做LISP封装的用户数据报文之后,根据该用户数据报文的目的EID,在RLOC映射表中查找对应的目的RLOC;
LISP封装模块403,用于若查找模块402查找到了对应的目的RLOC,则根据查找到的目的RLOC将接收模块401接收到的用户数据报文封装成LISP数据报文;
发送模块404,用于在LISP封装模块403将接收模块401接收到的用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;还用于若查找模块402没有查找到对应的目的RLOC,则将接收模块401接收到的用户数据报文转发给ITR。
另外,该装置中还可以包括:使能模块,其中:
使能模块,用于使能映射获取功能;
发送模块,还用于在使能模块使能了映射获取功能之后,向ITR发送LISP Map-pull报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有前置路由器上连接ITR的接口的IP地址。
其中,接收模块中包括:
报文接收单元,用于接收ITR发来的LISP Map-push报文,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;
查找单元,用于根据报文接收单元接收到的LISP Map-push报文中携带的目的EID,在RLOC映射表中查找对应的目的RLOC;
替换单元,用于若查找单元查找到了对应的目的RLOC,则将查找到的目的RLOC替换成报文接收单元接收到的LISP Map-push报文中携带的目的RLOC;
添加单元,用于若查找单元没有查找到对应的目的RLOC,则在RLOC映射表中添加一表项,该表项中包括:报文接收单元接收到的LISP Map-push报文中携带的目的EID和目的RLOC;
发送模块,还用于在报文接收单元接收到ITR发来的LISP Map-push报文之后,向ITR反馈LISP Map-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文。
本申请实施例并不排除硬件或者软硬件结合的实施方式。请参考图10,从硬件层面而言,前置路由器中包括:CPU、非易失性存储器、内存、转发芯片以及其他硬件。上述的数据报文转发装置作为一个逻辑意义上的装置,其是通过CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。当对应的计算机程序指令被执行时,形成的数据报文转发装置用于按照实施例一中的方法执行相应操作。
综上,本申请以上实施例可以达到以下技术效果:
本申请的以上技术方案中,与ITR直连的前置路由器在接收到来自终端的用户数据报文时,会先根据该用户数据报文的目的EID在本地查找对应的目的RLOC,若查找到了,则使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,否则,直接将该用户数据报文转发给ITR;ITR在收到前置路由器发来的LISP数据报文后,就会直接将该LISP数据报文转发出去,在收到前置路由器发来的用户数据报文后,会根据该用户数据报文的目的EID查找到对应的目的RLOC,使用查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发出去,并将目的EID与该目的RLOC之间的映射信息发送给前置路由器,以便,前置路由器可以对接收到的用户数据报文进行查表封装转发。这样,ITR将本地部分的映射信息发送给了前置路由器,并由前置路由器对用户数据报文进行查表封装转发,即,将部分查表转发工作分担到了前置路由器上,减轻了ITR的工作压力;当存在多个前置路由器时,将会把查表转发工作压力分担到多个前置路由器上,大大减轻了ITR的性能压力。
另外,ITR是在前置路由器转发来的用户数据报文的触发下,向前置路由器发送相关映射信息,所以,前置路由器上的映射信息较ITR上的映射信息的数量要少很多,前置路由器的查表转发压力较小。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (13)
1.一种位置与身份分离协议LISP网络中的数据报文转发方法,其特征在于,所述方法包括:
当隧道入口路由器ITR接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的路由位置标识RLOC进行转发;
当ITR接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的终端标识EID对应的目的RLOC,根据获取的目的RLOC将该用户数据报文封装成LISP数据报文后进行转发,并将所述目的EID和目的RLOC发送给所述前置路由器;
将所述目的EID和目的RLOC发送给所述前置路由器的方法包括:向所述前置路由器发送LISP映射推送Map-push报文,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;
在向所述前置路由器发送LISP Map-push报文之后,还包括:接收所述前置路由器反馈的LISP映射同步Map-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文。
2.根据权利要求1所述的方法,其特征在于,还包括:接收所述前置路由器发来的LISP映射获取Map-pull报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有所述前置路由器上连接ITR的接口的IP地址;将接收到的LISP Map-pull报文中携带的所述前置路由器上连接ITR的接口的IP地址,保存到本地的ITR前压表中;
则,ITR判断接收到的未做LISP封装的用户数据报文是由所述前置路由器发送的方法包括:根据该用户数据报文的源EID,查找从本设备到该源EID所指示的终端的路由信息,从该路由信息中获取本设备的IP地址的上一跳IP地址;判断所述ITR前压表中是否存在该上一跳IP地址;若存在,则判断该用户数据报文是所述前置路由器发送的。
3.根据权利要求1所述的方法,其特征在于,根据该LISP数据报文的目的RLOC进行转发的方法包括:
若该LISP数据报文的目的RLOC携带的是主隧道出口路由器ETR的IP地址,并且,本设备与主ETR之间的路径正常,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;其中,主ETR是到达目的EID所指示的终端的主路径所经过的ETR;
若该LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本设备与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的EID查找备ETR的IP地址;将该LISP数据报文的目的RLOC携带的主ETR的IP地址替换为备ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与备ETR的IP地址之间的映射信息发送给所述前置路由器;其中,备ETR是到达目的EID所指示的终端的备份路径所经过的ETR;
若该LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本设备与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;
若该LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本设备与主ETR之间的路径恢复了正常,则在需要回切到所述主路径时,根据该LISP数据报文的目的EID查找主ETR的IP地址,将该LISP数据报文的目的RLOC携带的备ETR的IP地址替换为主ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与主ETR的IP地址之间的映射信息发送给所述前置路由器;在不需要回切到所述主路径时,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去。
4.根据权利要求3所述的方法,其特征在于,获取该用户数据报文的目的EID对应的目的RLOC的方法包括:
若本设备与主ETR之间的路径正常,则根据该用户数据报文的目的EID,获取主ETR的IP地址;
若本设备与主ETR之间的路径发生了故障,则根据该用户数据报文的目的EID,获取备ETR的IP地址;
若本设备与主ETR之间的路径恢复了正常,则在需要回切到所述主路径时,根据该用户数据报文的目的EID,获取主ETR的IP地址;在不需要回切到所述主路径时,根据该用户数据报文的目的EID,获取备ETR的IP地址。
5.一种位置与身份分离协议LISP网络中的数据报文转发方法,其特征在于,所述方法包括:
前置路由器接收隧道入口路由器ITR发来的目的终端标识EID和目的路由位置标识RLOC,并保存到本地的RLOC映射表中;
在接收到终端发来的未做LISP封装的用户数据报文之后,所述前置路由器根据该用户数据报文的目的EID,在所述RLOC映射表中查找对应的目的RLOC;
若查找到了对应的目的RLOC,则所述前置路由器根据查找到的目的RLOC将该用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;
若没有查找到对应的目的RLOC,则所述前置路由器将该用户数据报文转发给ITR。
6.根据权利要求5所述的方法,其特征在于,还包括:
使能映射获取功能,向ITR发送LISP映射获取Map-pull报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有所述前置路由器上连接ITR的接口的IP地址。
7.根据权利要求5所述的方法,其特征在于,接收隧道入口路由器ITR发来的目的EID和目的RLOC,并保存到本地的RLOC映射表中的方法包括:接收ITR发来的LISP映射推送Map-push报文,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;根据接收到的LISP Map-push报文中携带的目的EID,在所述RLOC映射表中查找对应的目的RLOC;若查找到了对应的目的RLOC,则将查找到的目的RLOC替换成接收到的LISP Map-push报文中携带的目的RLOC;若没有查找到对应的目的RLOC,则在所述RLOC映射表中添加一表项,该表项中包括:接收到的LISP Map-push报文中携带的目的EID和目的RLOC;
在接收到ITR发来的LISP Map-push报文之后,还包括:向ITR反馈LISP映射同步Map-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文。
8.一种位置与身份分离协议LISP网络中的数据报文转发装置,所述装置应用于隧道入口路由器ITR,其特征在于,所述装置包括:
接收模块,用于接收LISP数据报文和未做LISP封装的用户数据报文;
获取模块,用于当所述接收模块接收到前置路由器发送的未做LISP封装的用户数据报文时,获取该用户数据报文的目的终端标识EID对应的目的路由位置标识RLOC;
LISP封装模块,用于根据所述获取模块获取的目的RLOC将所述接收模块接收到的用户数据报文封装成LISP数据报文;
发送模块,用于当所述接收模块接收到前置路由器发送的LISP数据报文时,根据该LISP数据报文的目的RLOC进行转发;还用于在所述LISP封装模块将所述接收模块接收到的用户数据报文封装成LISP数据报文后进行转发,并将该用户数据报文的目的EID和所述获取模块获取的目的RLOC发送给所述前置路由器;
所述发送模块通过LISP映射推送Map-push报文,将用户数据报文的目的EID和所述获取模块获取的目的RLOC发送给所述前置路由器,其中,LISP Map-push报文中携带有目的EID与目的RLOC之间的映射信息;
所述接收模块,还用于在所述发送模块向所述前置路由器发送LISP Map-push报文之后,接收所述前置路由器反馈的LISP映射同步Map-sync报文,其中,LISP Map-sync报文用于确认已经收到LISP Map-push报文。
9.根据权利要求8所述的装置,其特征在于,还包括:保存模块和判断模块,其中:
所述接收模块,还用于接收所述前置路由器发来的LISP映射获取Map-pull报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有所述前置路由器上连接ITR的接口的IP地址;
所述保存模块,用于将所述接收模块接收到的LISP Map-pull报文中携带的所述前置路由器上连接ITR的接口的IP地址,保存到本地的ITR前压表中;
所述判断模块,在所述接收模块接收到用户数据报文之后,根据该用户数据报文的源EID,查找从本ITR到该源EID所指示的终端的路由信息,从该路由信息中获取本ITR的IP地址的上一跳IP地址,判断所述保存模块中的ITR前压表中是否存在该上一跳IP地址,若存在,则判断该用户数据报文是所述前置路由器发送的。
10.根据权利要求8所述的装置,其特征在于,所述发送模块具体用于:
若所述接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是主隧道出口路由器ETR的IP地址,并且,本ITR与主ETR之间的路径正常,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;其中,主ETR是到达目的EID所指示的终端的主路径所经过的ETR;
若所述接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是主ETR的IP地址,并且,本ITR与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的EID查找备ETR的IP地址;将该LISP数据报文的目的RLOC携带的主ETR的IP地址替换为备ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与备ETR的IP地址之间的映射信息发送给所述前置路由器;其中,备ETR是到达目的EID所指示的终端的备份路径所经过的ETR;
若所述接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本ITR与主ETR之间的路径发生了故障,则根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去;
若所述接收模块接收到的前置路由器发送的LISP数据报文的目的RLOC携带的是备ETR的IP地址,并且,本ITR与主ETR之间的路径恢复了正常,则在需要回切到所述主路径时,根据该LISP数据报文的目的EID查找主ETR的IP地址,将该LISP数据报文的目的RLOC携带的备ETR的IP地址替换为主ETR的IP地址后,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去,并将目的EID与主ETR的IP地址之间的映射信息发送给所述前置路由器;在不需要回切到所述主路径时,根据该LISP数据报文的目的RLOC将该LISP数据报文转发出去。
11.根据权利要求10所述的装置,其特征在于,所述获取模块具体用于:
若本ITR与主ETR之间的路径正常,则根据所述接收模块接收到的用户数据报文的目的EID,获取主ETR的IP地址;
若本ITR与主ETR之间的路径发生了故障,则根据所述接收模块接收到的用户数据报文的目的EID,获取备ETR的IP地址;
若本ITR与主ETR之间的路径恢复了正常,则在需要回切到所述主路径时,根据所述接收模块接收到的用户数据报文的目的EID,获取主ETR的IP地址;在不需要回切到所述主路径时,根据所述接收模块接收到的用户数据报文的目的EID,获取备ETR的IP地址。
12.一种位置与身份分离协议LISP网络中的数据报文转发装置,所述装置应用于前置路由器,其特征在于,所述装置包括:
接收模块,用于接收隧道入口路由器ITR发来的目的终端标识EID和目的路由位置标识RLOC,并保存到本地的RLOC映射表中;还用于接收未做LISP封装的用户数据报文;
查找模块,用于在所述接收模块接收到终端发来的未做LISP封装的用户数据报文之后,根据该用户数据报文的目的EID,在所述RLOC映射表中查找对应的目的RLOC;
LISP封装模块,用于若所述查找模块查找到了对应的目的RLOC,则根据查找到的目的RLOC将所述接收模块接收到的用户数据报文封装成LISP数据报文;
发送模块,用于在所述LISP封装模块将所述接收模块接收到的用户数据报文封装成LISP数据报文后转发给ITR,其中,该LISP数据报文中的源RLOC置为ITR的IP地址;还用于若所述查找模块没有查找到对应的目的RLOC,则将所述接收模块接收到的用户数据报文转发给ITR。
13.根据权利要求12所述的装置,其特征在于,还包括:使能模块,其中:
所述使能模块,用于使能映射获取功能;
所述发送模块,还用于在所述使能模块使能了映射获取功能之后,向ITR发送LISP映射获取Map-pull报文,其中,LISP Map-pull报文用于指示发送本LISP Map-pull报文的前置路由器使能了映射获取功能,LISP Map-pull报文中携带有所述前置路由器上连接ITR的接口的IP地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410212530.2A CN103973574B (zh) | 2014-05-19 | 2014-05-19 | 位置与身份分离协议网络中的数据报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410212530.2A CN103973574B (zh) | 2014-05-19 | 2014-05-19 | 位置与身份分离协议网络中的数据报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103973574A CN103973574A (zh) | 2014-08-06 |
CN103973574B true CN103973574B (zh) | 2017-12-15 |
Family
ID=51242634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410212530.2A Active CN103973574B (zh) | 2014-05-19 | 2014-05-19 | 位置与身份分离协议网络中的数据报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103973574B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105530325B (zh) * | 2014-09-30 | 2019-05-03 | 新华三技术有限公司 | 位置和标识分离协议主机迁移方法及装置 |
CN105592000B (zh) * | 2014-10-21 | 2018-10-09 | 新华三技术有限公司 | 位置和标识分离协议注册方法及装置 |
US9912584B2 (en) * | 2014-11-07 | 2018-03-06 | Cisco Technology, Inc. | Data center inbound routing optimization in the event of virtual machine mobility |
CN104579758B (zh) * | 2014-12-22 | 2019-05-07 | 新华三技术有限公司 | 一种lisp域故障检测收敛的方法和设备 |
CN105991453B (zh) * | 2015-01-29 | 2019-04-12 | 新华三技术有限公司 | 用于bgp控制的方法和装置 |
CN104767686B (zh) * | 2015-04-08 | 2018-03-20 | 新华三技术有限公司 | 一种alt网络中的路由信息查询方法和装置 |
CN105591811B (zh) * | 2015-10-23 | 2019-08-09 | 新华三技术有限公司 | 一种lisp中映射服务器重启恢复方法及装置 |
CN105915455B (zh) * | 2016-04-06 | 2020-08-04 | 新华三技术有限公司 | 位置标识分离协议多归属实现方法及装置 |
CN107786444B (zh) * | 2016-08-31 | 2020-04-07 | 中国电信股份有限公司 | 消息传输方法和控制器 |
CN107547401B (zh) * | 2017-06-27 | 2021-06-22 | 新华三技术有限公司 | 一种数据转发方法及装置 |
CN109901084A (zh) * | 2019-02-25 | 2019-06-18 | 南京邮电大学 | 一种基于udp的实时开关电源监测与控制系统 |
CN111343096B (zh) * | 2020-02-21 | 2023-12-15 | 深圳市风云实业有限公司 | 一种标地分离报文转发方法、设备、交换芯片和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534240A (zh) * | 2008-03-14 | 2009-09-16 | 华为技术有限公司 | 一种映射信息的发送方法、系统和装置 |
CN101841442A (zh) * | 2010-02-08 | 2010-09-22 | 电子科技大学 | 一种在名址分离网络中对网络异常进行检测的方法 |
CN101945034A (zh) * | 2009-07-08 | 2011-01-12 | 中兴通讯股份有限公司 | 一种身份标识与位置分离协议数据转发系统及方法 |
CN101951589A (zh) * | 2009-10-17 | 2011-01-19 | 中兴通讯股份有限公司 | 信息获取/通知、数据报文转发和切换的方法及接入节点 |
CN101958830A (zh) * | 2009-07-14 | 2011-01-26 | 中兴通讯股份有限公司 | 一种网络部署系统及其映射和数据转发方法 |
CN102238058A (zh) * | 2010-04-20 | 2011-11-09 | 中兴通讯股份有限公司 | 数据报文处理方法、入口隧道路由器及系统 |
CN103108375A (zh) * | 2011-11-14 | 2013-05-15 | 中兴通讯股份有限公司 | 一种切换过程中路由优化的方法及系统及接入网元 |
CN103167463A (zh) * | 2011-12-09 | 2013-06-19 | 中兴通讯股份有限公司 | 更新报文的处理方法及系统、映射服务器和移动节点 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012244497A (ja) * | 2011-05-20 | 2012-12-10 | Kddi Corp | マッピングサーバ及びその制御方法 |
-
2014
- 2014-05-19 CN CN201410212530.2A patent/CN103973574B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534240A (zh) * | 2008-03-14 | 2009-09-16 | 华为技术有限公司 | 一种映射信息的发送方法、系统和装置 |
CN101945034A (zh) * | 2009-07-08 | 2011-01-12 | 中兴通讯股份有限公司 | 一种身份标识与位置分离协议数据转发系统及方法 |
CN101958830A (zh) * | 2009-07-14 | 2011-01-26 | 中兴通讯股份有限公司 | 一种网络部署系统及其映射和数据转发方法 |
CN101951589A (zh) * | 2009-10-17 | 2011-01-19 | 中兴通讯股份有限公司 | 信息获取/通知、数据报文转发和切换的方法及接入节点 |
CN101841442A (zh) * | 2010-02-08 | 2010-09-22 | 电子科技大学 | 一种在名址分离网络中对网络异常进行检测的方法 |
CN102238058A (zh) * | 2010-04-20 | 2011-11-09 | 中兴通讯股份有限公司 | 数据报文处理方法、入口隧道路由器及系统 |
CN103108375A (zh) * | 2011-11-14 | 2013-05-15 | 中兴通讯股份有限公司 | 一种切换过程中路由优化的方法及系统及接入网元 |
CN103167463A (zh) * | 2011-12-09 | 2013-06-19 | 中兴通讯股份有限公司 | 更新报文的处理方法及系统、映射服务器和移动节点 |
Also Published As
Publication number | Publication date |
---|---|
CN103973574A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103973574B (zh) | 位置与身份分离协议网络中的数据报文转发方法及装置 | |
US10476795B2 (en) | Data packet forwarding | |
US10205657B2 (en) | Packet forwarding in data center network | |
CN101945034B (zh) | 一种身份标识与位置分离协议数据转发系统及方法 | |
CN103685022B (zh) | 报文转发方法及服务提供商网络边缘设备 | |
CN101155130B (zh) | 学习mac地址的方法及传送vpls客户数据的系统及设备 | |
US9240944B2 (en) | Overlay services in communication networks | |
CN103685010B (zh) | 一种报文转发方法和边缘设备 | |
CN101958830B (zh) | 一种网络部署系统及其映射和数据转发方法 | |
US9749239B2 (en) | Transparent Rbridge | |
CN108718269B (zh) | 报文处理方法及装置 | |
CN105099922A (zh) | 一种跨虚拟可扩展局域网的数据报文转发方法和装置 | |
CN106209557B (zh) | 报文转发方法及装置 | |
KR20230101903A (ko) | Bier 패킷 포워딩 방법, 디바이스 및 시스템 | |
US10020954B2 (en) | Generic packet encapsulation for virtual networking | |
CN102447752A (zh) | 基于二层隧道协议的业务访问方法、系统和装置 | |
CN104683210A (zh) | 一种自动建立隧道的方法和装置 | |
JP6098192B2 (ja) | アドレス生成装置 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
CN105933235B (zh) | 数据通信方法及装置 | |
CN105681486A (zh) | 一种XinIP的跨广播域数据通信方法 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN101286918A (zh) | 虚拟专用网络系统及其数据处理方法 | |
CN104378302B (zh) | 地址对应关系发送方法和路由桥设备 | |
CN101938531A (zh) | 一种IPv4网络与IPv6网络通信的方法、系统及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |