邻居发现协议调解的制作方法

文档序号:7738370阅读:154来源:国知局
专利名称:邻居发现协议调解的制作方法
技术领域
本发明涉及数据通信网络,特别地,涉及使用互联网协议版本6(IPv6)的那些数据通信网络。
背景技术
互联网工程任务组(IETF) RFC4861指定用于IPv6的邻居发现协议(NDP)。相同链路上的IPv6节点使用NDP来发现彼此的存在、确定彼此的链路层地址、找到路由器、以及维护关于到活动邻居的路径的可达信息。IETF RFC^6指定地址解析协议(ARP),地址解析协议(ARP)类似地使用NDP,但针对用于IPv4节点的链路层地址发现。虚拟租用线路(VLL)是用于在互联网协议(IP)和多协议标签交换(MPLS)网络 (IP/MPLS)上提供基于以太网的点到点通信的服务。该技术也被称为虚拟专线服务(VPWS) 或MPLS以太网(EoMPLS)。VPWS服务在两个用户边缘(CE)设备间提供点到点连接。它通过将两个联接电路(attachment circuit) (AC)绑定到连接两个供应商边缘(PE)设备的伪线来进行,其中,每一个PE设备经由所述联接电路之一被连接到所述CE设备之一。VLL通常使用伪线封装经由MPLS隧道跨IP/MPLS骨干传输以太网流量。关于伪线的更多信息可以参见 2005 年 3 月 S. Bryant 和 P. Pate 的“Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture”,RFC3985, IETF。当VLL通过不同AC协议经由IP/MPLS网络连接CE设备时,它被称为IP互通VLL。IETF 草案 “draft-ietf-12vpn-arp-mediation-09” 指定用于 IP 互通 VLL 的 ARP 调解。当上述联接电路采用不同链路层技术并且伪线上承载的帧的有效载荷仅由IP数据报组成时,使用ARP调解。ARP调解是指当联接电路上使用不同解析协议时解析链路层地址的过程。部分ARP调解需要将CE设备的AC接口的IP地址传递到在伪线的远端处的PE设备。以便PE设备可以用作它的本地联接的CE设备的ARP代理。伪线的LDP控制链路被用于在PE设备间交换这些IP地址。类似于IPv4网络中用于IP互通VLL的ARP调解,为了支持IPv6网络中的IP互通VLL,需要一种NDP调解方法。然而,由于IPv6节点每AC接口可以有多个此处也被称为 IPv6接口地址或简单称为接口地址的IP地址,简单采用类似于用于IP互通VLL的ARP调解的方法是不可取的。因为这种方法将需要大量信令来经由LDP控制链路传递这些多个IP 地址。因此,需要提供一种不需要经由LDP控制链路传递CE设备IPv6接口地址的NDP调解方法。

发明内容
本发明针对经由IP互通VLL提供NDP调解。PE设备截取互联网控制消息协议版本6(ICMPv6)邻居发现(ND)和反向邻居发现(IND)消息,以在向CE设备转发这些消息前获知CE设备的IPv6接口地址和链路层地址。在一些情况中,在转发这些消息前更改它们, 以使得它们对于接收CE设备更有意义。根据这种NDP调解方式,不需要像IPv4ARP调解中那样经由LDP控制链路传递CE设备接口地址。本发明的一些实施例将NDP邻居请求消息从本地CE设备转发到远端CE设备,以用于在其上进行处理。这些邻居请求消息是通过IP互通VLL承载的,并且被远端PE设备在途中适配以与连接远端PE和CE设备的远端联接电路兼容。类似地,将NDP邻居公告消息从远端CE设备经由IP互通VLL发送到本地CE设备,用于在其上进行处理。这些邻居公告消息被本地PE设备在途中调适以与连接本地PE和CE设备的本地联接电路兼容。本地和远端PE设备从邻居请求和邻居公告消息获知本地和远端CE设备的接口 IP地址和链路层地址,当这些地址中任何一项在这种消息中可用时。根据本发明的一方面,提供了一种经由互联网协议互通虚拟租用线路进行邻居发现协议调解的方法。该方法包括以下步骤在虚拟租用线路的供应商边缘设备处接收发现消息;确定该发现消息是否是从虚拟租用线路的本地联接电路接收的;以及响应于该发现消息是从本地联接电路接收的确定,检查该发现消息以获知链路层和接口地址,并且经由虚拟租用线路的伪线转发该发现消息。在本发明的一些实施例中,所述方法进一步包括响应于发现消息不是从本地联接电路接收的确定,检查该发现消息以获知虚拟租用线路的远端用户边缘设备的接口地址;以及经由本地联接电路将更改的发现消息转发到本地用户边缘设备。根据本发明的另一方面,提供了一种经由互联网协议互通虚拟租用线路进行数据通信的方法。该方法包括以下步骤截取从虚拟租用线路的第一用户边缘设备发送的发现消息;检查该发现消息以获知第一用户边缘设备的地址;存储获知的地址;更改发现消息; 以及将更改的发现消息转发到虚拟租用线路的第二用户边缘设备。在本发明的一些实施例中,所述方法进一步包括从第二用户边缘设备接收数据分组;从存储设备检索获知的地址;用所述获知的地址取代数据分组的目的链路层地址, 从而形成更改的数据分组;以及将所述更改的数据分组转发到第一用户边缘设备。在本发明的一些实施例中,所述方法进一步包括从第一用户边缘设备接收数据分组;从存储设备检索所述获知的地址;将数据分组的源链路层地址与所述获知的地址进行比较;以及响应于所述源链路层地址不匹配所述获知的地址丢弃数据分组。


本发明的上述以及其他目标、特征和优势将从以下对附图所示的优选实施例的更具体描述中显而易见,在附图中图1示出根据本发明实施例的经由IP互通VLL的NDP调解;图2示出根据图1所示的NDP调解处理邻居请求消息的方法;图3示出根据图1所示的NDP调解处理邻居公告消息的方法;图4示出根据图1所示的NDP调解处理反向邻居请求消息的方法;以及图5示出根据图1所示的NDP调解处理反向邻居公告消息的方法。附图中,相同特征用相同附图标记来标示。
具体实施例方式参考图1,IP/MPLS网络100在两个PE设备PEl和PE2之间提供伪线连接102。所述PE设备的第一 PE设备PEl通过第一联接电路ACl被连接到第一 CE设备CEl。所述PE 设备的第二 PE设备PE2通过第二联接电路AC2被连接到第二 CE设备CE2。第一和第二联接电路ACl和AC2使用不同的链路层协议。例如,第一联接电路ACl可以使用帧中继(FR) 协议,第二联接电路AC2可以使用以太网协议。伪线102在第一和第二 PE设备PEl和PE2 之间承载数据帧,所述帧只有IP数据报作为有效载荷。在第一和第二联接电路ACl和AC2 与伪线102之间存在绑定,以便在第一和第二 CE设备CEl和CE2之间提供点到点连接104。 该连接被称为IP互通VLL。图1的PE和CE设备是诸如IP路由器的IPv6节点,或者至少是能够在伪线语境中处理ICMPv6分组的节点。例如,第一和第二 PE设备PEl和PE2可以是服务供应商的IP/ MPLS网络100中的PE路由器。第一和第二 CE设备CEl和CE2是IPv6节点,例如,在该情况中它们分别是FR和以太网路由器。为了经由图1所示的IP互通VLL传递IPv6数据报, 需要NDP调解。NDP 调解NDP调解的基本原理是PE设备PE1、PE2应截取此处也被统称为发现消息的 ICMPv6邻居发现和反向邻居发现(IND)消息。这种邻居发现消息包括邻居请求和邻居公告消息,IND消息包括反向邻居请求(INS)和反向邻居公告(INA)消息。PE设备PE1、PE2从这些消息获知CE设备CE1、CE2的IPv6接口地址和链路层地址,然后将这些消息转发到接收CE设备CE1、CE2,在一些情况中修改这些消息以使这些消息对于接收CE设备CE1、CE2 更有意义。有利的是,这种获知意味着不需要像IPv4ARP调解中那样经由LDP控制链路传递CE设备接口地址。对于一对CE设备CEl、CE2之间的给定点到点连接104,PE设备PEl、PE2执行以下步骤作为NDP调解的一部分1.发现本地联接的CE设备以及远端CE设备的IPv6地址。2.截取从本地CE设备接收的邻居发现和反向邻居发现消息,在将这些消息跨伪线102转发到远端PE设备前获知关于CE设备的IPv6配置的信息。3.截取经由伪线102从远端PE设备接收的邻居发现和反向邻居发现消息,其中有可能在向本地CE设备转发前修改这些消息,以及还获知关于远端CE设备的IPv6配置的信肩、ο在本说明书中,假定每一个PE设备PE1、PE2上的联接电路分别是到单个CE设备 CEU CE2的点到点连接。该CE设备可以是主机,或者更可能是背后有多个主机的路由器, 但假定每一个联接电路上有对应于该CE设备上的若干IPv6接口地址的单个CE设备链路层地址。再次参考图1,假定例如ACl是帧中继联接电路,而AC2是以太网联接电路。还假定在伪线102变得可操作后发送106的第一邻居发现消息是来自第二 CE设备CE2的邻居请求消息NS。邻居请求消息NS提供第二 CE设备CE2的链路层地址MACx。当邻居请求消息NS到达第二 PE设备PE2时被截取,使得第二 PE设备PE2能够从邻居请求消息NS获知 108第二 CE设备CE2的链路层地址MACx和用于第二 CE设备CE2的至少一个IPv6接口地址IP2。第二 PE设备PE2将邻居请求消息NS转发110到也截取该消息的第一 PE设备PE1。 第一 PE设备PEl从邻居请求消息NS获知112用于第二 CE设备CE2的至少一个IPv6接口地址IP2,然后从邻居请求消息NS清除链路层地址MACx (其是以太网地址)并且用它自己的链路层地址DLCIy (其是帧中继DLCI标识符)来取代,从而形成更改的邻居请求消息 NS'。更改的邻居请求消息NS'然后被转发114到第一 CE设备CE1,进行处理。假定更改的邻居请求消息NS'是用于第一 CE设备CEl的IPv6接口地址IPl中的一个的有效请求,第一 CE设备CEl将通过邻居公告消息NA响应116,该邻居公告消息NA包含第一 CE设备的链路层地址DLCIx和第一 CE设备CEl的IPv6接口地址IPl中的至少一个。第一 PE设备PEl截取邻居公告消息NA并且从它获知118第一 CE设备CEl的至少一个 IPv6接口地址IPl和CE设备的链路层地址DLCIx。第一 PE设备PEl然后经由伪线102将邻居公告消息NA转发120到第二 PE设备PE2。第二 PE设备PE2截取邻居公告消息NA并且从它获知122第一 CE设备CEl的至少一个IPv6接口地址IPl。第一 PE设备PEl用它的在第二联接电路AC2上的接口的链路层地址MACy (其是以太网地址)取代第一 CE设备的链路层地址DLCIx (其是帧中继DLCI标识符),从而形成更改的邻居公告消息NA'。第二 PE设备PE2将更改的邻居公告消息NA'转发IM到第二 CE设备CE2。在该过程结束时,两个CE设备CE1、CE2均已确认了彼此的IPv6接口地址,第二 PE和CE设备PE2、CE2已获知了彼此的链路层地址,然后它们可以使用彼此的链路层地址在第一和第二 CE设备CE1、CE2 之间传递用户数据分组。供应商提供商边缘设备的功能假定每一个PE设备PE1、PE2具有用于给定NDP调解功能的单个联接电路AC1、 AC2,以及被连接到远端PE设备PE2、PE1的单个输出伪线102。每一个PE设备PE1、PE2具有以下功能截取ICMPv6邻居发现消息,无论所述消息是经由它的相应联接电路AC1、AC2 还是经由伪线102接收的;检查邻居发现消息,以获知被连接到联接电路AC1、AC2的CE设备CE1、CE2的IPv6接口地址和CE设备链路层地址;修改邻居发现消息,然后在前进方向上转发修改的邻居发现消息。因此,每一个PE设备PE1、PE2具有获知它的直接联接的CE 设备CE1、CE2的IPv6接口地址的列表以及用于远端CE设备CE2、CEl的另一列表的功能。 每一个PE设备PE1、PE2具有获知它的本地联接的CE设备CE1、CE2的链路层地址并且当向本地联接的CE设备CE1、CE2转发流量时使用所述链路层地址的功能。每一个PE设备 PEU PE2还可以具有监控从它的本地联接的CE设备CE1、CE2接收的数据分组的源链路层地址并且丢弃不匹配所获知的该CE设备CE1、CE2的链路层地址的数据分组的功能。每一个PE设备PE1、PE2还具有用于生成在邻居发现和反向邻居发现协议之间互通所需的任何分组的功能。上述PE设备功能可以通过硬件或硬件和软件的各种组合来实现,软件包括运行软件程序和现场可编程门阵列FGPA的微处理器。邻居请求的处理现在将参考图2并且针对图1的网络配置,描述处理在PE设备处接收的邻居请求消息的方法200。接收邻居请求消息202,确定204该消息是否来自本地联接电路。如果是,检查206该消息以获知其中提供的任何IPv6接口地址和链路层地址。然后,经由伪线无修改地转发208该消息。然而,如果邻居请求消息是经由伪线接收的,则检查210该消息以获知用于远端CE设备的IPv6接口地址。更改的邻居请求消息是通过在将更改的消息转发214到本地CE设备前做出任何要求的和期望的可选更改来形成212的。例如,如果存在源链路层地址选项,则PE设备清除它。PE设备可以例如通过指定它自己的本地AC的链路层地址来替代适当的链路层地址选项。注意,如果本地AC是以太网,则未能替代链路层地址选项可以意味着本地CE设备将没有用来传输数据分组的有效链路层地址。邻居公告的处理现在将参考图3并且针对图1的网络配置,描述处理在PE设备处接收的邻居公告消息的方法300。接收302邻居公告消息,确定304该消息是否来自本地联接电路。如果是,检查306)该消息以获知其中提供的任何IPv6接口地址和链路层地址。然后,经由伪线无修改地转发308该消息。然而,如果邻居公告消息是经由伪线接收的,则检查310该消息以获知用于远端CE设备的IPv6接口地址。更改的邻居公告消息是通过在将更改的消息转发314到本地CE设备前做出任何要求的和期望的可选更改来形成312的。例如,如果存在源链路层地址选项,则PE设备清除它。PE设备可以例如通过指定它自己的本地AC的链路层地址来替代适当的链路层地址选项。注意,如果本地AC是以太网,则未能替代链路层地址选项可以意味着本地CE设备将没有用来传输数据分组的有效链路层地址。注意,处理邻居请求和公告消息的方法一般涉及应用于它们各自类型的发现消息的相同步骤。反向邻居请求的处理现在将参考图4并且针对图1的网络配置,描述处理在PE设备处接收的反向邻居请求消息的方法400。接收402反向邻居请求消息,确定404该消息是否来自本地联接电路。如果是,检查406该消息以获知其中提供的任何IPv6接口地址和链路层地址。该消息可能可选地包含用于本地CE设备的接口地址的列表,并且这些接口地址也都是获知的。然后,经由伪线无修改地转发408该消息。然而,如果反向邻居请求消息是经由伪线接收的, 则检查410该消息以获知用于远端CE设备的一个或多个IPv6接口地址。确定412本地AC 是否支持反向邻居发现(例如,帧中继AC)。如果是,更改的反向邻居发现消息是通过在将更改的消息转发416到本地CE设备前进行任何要求的和期望的可选更改来形成414的。这种更改包括修改链路层地址选项来匹配本地联接电路。然而,如果本地AC不支持反向邻居发现,则该消息的处理取决于PE设备是否已获知至少一个用于它的本地CE设备的接口地址。确定418该效果。如果PE设备已获知至少一个用于本地CE设备的接口地址,则PE设备丢弃420反向邻居请求消息、生成422反向邻居公告消息并将INA消息发送似4回伪线。 INA消息的目的地址是来自INS消息的源地址。INA消息的源地址是CE设备的接口地址中的一个,并且PE设备到目前为止所已获知的全部CE设备的接口地址都被包括在目标地址列表中。源和目标链路层地址是从INS复制的。然而,如果PE设备还尚未获知至少一个用于它的本地CE设备的接口地址,则丢弃426INS消息。这种处理持续到PE设备获知CE设备的地址(例如通过接收邻居请求消息)为止。在获知后,PE设备将能够响应经由伪线接收的INS消息。反向邻居公告的处理现在将参考图5并且针对图1的网络配置,描述处理在PE设备处接收的反向邻居公告消息的方法500。接收502反向邻居公告消息,确定504该消息是否来自本地联接电路。如果是,检查506该消息以获知本地CE设备的一个或多个接口地址。然后,经由伪线无修改地转发508该消息。然而,如果反向邻居公告消息是经由伪线接收的,则检查510该消息以获知远端CE设备的一个或多个IPv6接口地址。确定512本地AC是否支持反向邻居发现(例如,帧中继AC)。如果是,更改的反向邻居公告消息是通过在将更改的消息转发 516到本地CE设备前进行任何要求的和期望的可选更改来形成514的。然而,如果本地AC 不支持反向邻居发现,则PE设备丢弃518INA消息、生成520邻居公告消息并向它的本地CE 设备发送522NA消息。NA消息的源接口地址是来自INA消息的源接口地址,NA消息的目的接口地址是来自INA消息的目的接口地址,以及NA消息的源链路层地址是PE设备上的本地AC的源链路层地址。路由器请求的处理应当检查AC上从CE设备接收的路由器请求消息以确定CE设备的接口地址,以及 CE的链路层地址(如果有的话)。然后应当经由伪线无修改地转发路由器请求消息。应当检查经由伪线接收的路由器请求以确定用于远端CE设备的接口地址。如果源链路层地址选项存在,则PE设备清除它。PE设备可以通过指定它的AC的链路层地址来替代源链路层地址选项。然后将路由器请求消息转发到本地CE设备。路由器公告的处理应当检查AC上从CE设备接收的路由器公告消息以确定用于CE的接口地址,以及 CE的链路层地址(如果有的话)。然后应当经由伪线无修改地转发路由器公告消息。应当检查经由伪线接收的路由器公告消息以确定用于远端CE设备的接口地址。如果源链路层地址选项存在,则PE设备清除它。PE设备可以通过指定它的AC的链路层地址来替代源链路层地址选项。如果存在最大传输单元(MTU)选项,如果伪线的MTU小于该选项中指定的值,则PE设备可以减小指定MTU。然后将路由器公告消息转发到CE。重复地址检测重复地址检测允许IPv6主机和路由器确保分配到接口的地址在链路上是唯一的。像所有邻居发现消息一样,重复地址检测中使用的那些将仅仅流过伪线,在每一端的PE 设备处被检查。处理如上所述(例如,清除/替代源链路层地址,如果有的话)。然而,重复地址检测中使用的邻居请求消息的源地址是非指定地址,因此PE设备无法获知CE设备的接口地址。PE设备之间的信令由于远端CE设备接口地址是通过截取流过伪线的ICMPv6邻居发现分组获知的, 而不是通过来自远端PE的带外信令获知的,对PE设备之间的LDP信令没有特殊要求。事实上,静态配置每一个PE设备要使用的伪线标签是可行的,并且通过截取两个PE设备间流动的ICMPv6分组,NDP调解伪线仍然可以正常操作。然而,更有可能的是,将使用[RFC4447]中的标签分发协议(LDP)来建立伪线。伪线的封装类型应当是IP 2层传输(像[PTO3-IANA] 中所定义的,值0x0008)。注意,该伪线还可以正承载IPv4流量、使用[ARP-MED]中描述的机制来通过使用IP地址列表TLV传递CE设备IPv4地址。如果伪线仅仅正承载IPv6流量, 则IP地址列表TLV中指定的地址将一直为零。如果伪线既承载IPv4流量又承载IPv6流量,则此处以及[ARP-MED]中描述的机制不应当重叠。特别地,仅仅因为PE设备已通过截取来自它的本地CE设备的邻居公告获知用于IPv6流量的链路层地址,不应当假定它可以使用用于IPv4流量的链路层地址,直到该事实通过例如从该CE设备接收IPv4ARP消息得以确认为止。在不背离权利要求中限定的本发明范围的情况下,可以对上述本发明的实施例做出众多修改、改变和调适。
权利要求
1.一种经由互联网协议互通虚拟租用线路进行邻居发现协议调解的方法,所述方法包括以下步骤在所述虚拟租用线路的供应商边缘设备处接收发现消息;确定所述发现消息是否是从所述虚拟租用线路的本地联接电路接收的;以及响应于所述发现消息是从本地联接电路接收的确定检查所述发现消息以获知链路层和接口地址,以及经由所述虚拟租用线路的伪线转发所述发现消息。
2.根据权利要求1所述的方法,进一步包括以下步骤响应于所述发现消息不是从所述本地联接电路接收的确定 检查所述发现消息以获知所述虚拟租用线路的远端用户边缘设备的接口地址; 更改所述发现消息;以及经由所述本地联接电路将所述更改的发现消息转发到本地用户边缘设备。
3.根据权利要求2所述的方法,其中,所述更改步骤包括从所述发现消息清除源链路层地址信息。
4.根据权利要求3所述的方法,其中,所述更改步骤进一步包括在所述供应商边缘设备处将所述本地联接电路的链路层地址插入到所述发现消息中作为源链路层地址信息。
5.根据权利要求2所述的方法,其中,所述发现消息是反向邻居发现消息,并且所述检查所述发现消息以获知所述远端用户边缘设备的接口地址的步骤进一步包括确定所述本地联接电路是否支持反向邻居发现协议;以及响应于所述本地联接电路不支持所述反向邻居发现协议的确定,进行所述更改所述发现消息的步骤。
6.根据权利要求5所述的方法,其中,所述发现消息是反向邻居公开消息,并且所述检查所述发现消息以获知所述远端用户边缘设备的接口地址的步骤进一步包括响应于所述本地联接电路不支持所述反向邻居发现协议的确定 丢弃所述反向邻居公告消息; 生成邻居公告消息;以及经由所述本地联接电路将所述邻居公告消息发送到所述本地用户边缘设备。
7.根据权利要求5所述的方法,其中,所述发现消息是反向邻居请求消息,并且所述检查所述发现消息以获知所述远端用户边缘设备的接口地址的步骤进一步包括响应于所述本地联接电路不支持所述反向邻居发现协议的确定 丢弃所述反向邻居请求消息;以及响应于所述供应商边缘设备已获知所述本地用户边缘设备的至少一个接口地址 生成反向邻居公告消息;以及经由所述伪线将所述反向邻居公告消息发送到所述远端用户边缘设备。
8.一种经由互联网协议互通虚拟租用线路进行数据通信的方法,包括以下步骤 截取从所述虚拟租用线路的第一用户边缘设备发送的发现消息;检查所述发现消息以获知所述第一用户边缘设备的地址; 存储获知的地址; 更改所述发现消息;以及将更改的发现消息转发到所述虚拟租用线路的第二用户边缘设备。
9.根据权利要求8所述的方法,其中,所述获知的地址是链路层地址,所述方法进一步包括以下步骤从所述第二用户边缘设备接收数据分组; 从存储设备检索所述获知的地址;用所述获知的地址取代所述数据分组的目的链路层地址,从而形成更改的数据分组;以及将更改的数据分组转发到所述第一用户边缘设备。
10.根据权利要求8所述的方法,其中,所述获知的地址是链路层地址,所述方法进一步包括以下步骤从所述第一用户边缘设备接收数据分组; 从存储设备检索所述获知的地址;将所述数据分组的源链路层地址与所述获知的地址进行比较;以及响应于所述源链路层地址不匹配所述获知的地址,丢弃所述数据分组。
全文摘要
本发明涉及经由IP互通VLL提供NDP调解。ICMPv6邻居发现和反向邻居发现消息被供应商边缘(PE)设备截取以在向用户边缘(CE)设备转发所述消息前以及在一些情况中在更改所述消息以使得它们对于接收CE设备更有意义后获知所述CE设备的IPv6接口地址和链路层地址。通过这种方式,不需要像IPv4ARP调解中那样,经由LDP控制链路传递所述CE设备接口地址。
文档编号H04L12/56GK102273177SQ200980154099
公开日2011年12月7日 申请日期2009年12月31日 优先权日2009年1月9日
发明者A·多尔加诺, N·哈特 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1