目标地址请求的重定向的制作方法

文档序号:7777995阅读:169来源:国知局
专利名称:目标地址请求的重定向的制作方法
技术领域
本发明一般涉及的是在通信网络中对于针对目标因特网协议(IP)地址的请求的重定向以及更具体地,涉及基于目标IP地址与提交请求的客户端的距离来重定向对于目标IP地址的请求。
背景技术
点对点网络是可以被覆盖在另一个网络诸如因特网上的网络的一个示例。在这样的网络中,通常的情况下由对等方之一所需要的一项内容或服务可以由覆盖网络中多于一个的节点来提供。在这些实例中,通常需要在覆盖网络中选择源节点来优化效率。

发明内容
本发明的一个技术方案提供了一种方法,该方法包括由第一网络设备接收对于至少一个服务于客户端的目标的标识符的请求;由所述第一网络设备获取两个或更多目标中每一个目标的标识符;由所述第一网络设备确定是否重定向该请求;以及根据确定步骤的结果,由所述第一网络设备将所述请求重定向到第二网络设备,其中所述第一网络设备在第一自治系统中且所述第二网络设备在第二自治系统中。本发明的另一技术方案提供了一种设备,该设备包括处理器;和存储器,所述处理器或所述存储器中至少一个适于接收对于至少一个服务于客户端的目标的标识符的请求;获取两个或更多目标中每一个目标的标识符;确定是否重定向所述请求,其中确定是否重定向所述请求包含确定所述设备是否在对于从所述客户端到所述两个或更多目标中的每一个目标的路径是共有的自治系统中;以及根据确定步骤的结果重定向所述请求。本发明的又一技术方案提供了一种设备,该设备包含用于接收对于至少一个服务于客户端的目标的标识符的请求的装置;用于获取两个或更多目标中每一个目标的标识符的装置;用于识别两个或更多路径的装置,所述两个或更多路径中每一个路径对应所述两个或更多目标中不同的一个目标,其中所述两个或更多路径的每一个路径由在所述客户端和所述两个或更多目标中对应的一个目标之间的一个或多个自治系统定义;用于识别对所述两个或更多路径的每一个路径是共有的自治系统的装置;用于确定所述设备是否在对所述两个或更多路径的每一个路径是共有的自治系统中的装置;以及用于根据确定步骤的结果将所述请求重定向到第二网络设备的装置,其中所述设备在第一自治系统中且所述第二网络设备在第二自治系统中。


图1是描述了在其中可以实现公开的实施例的第一示例系统的图解。图2是描述了在其中可以实现公开的实施例的第二示例系统的图解。图3是描述了在其中可以实现公开的实施例的第三示例系统的图解。图4是描述了根据本发明多个实施例的由网络定位系统(NPS)服务器重定向对目标地址的请求的方法的处理流程图。图5是描述了根据多个实施例的确定是否重定向请求的方法的处理流程图。图6是描述了由包括第一 NPS服务器的第一网络设备重定向请求到包括第二 NPS 服务器的第二网络设备的方法的处理流程图。图7A-图7B是可以由根据多个实施例的每个NPS服务器维护的示例表。图8是在其中可实现多个实施例的示例网络设备的图形表示。
具体实施例方式在以下描述中,大量特定细节被展示以提供公开实施例的彻底的理解。但明显的是,对于本领域技术人员,所公开的实施例可以不用一些或者所有这些特定细节来被实施。 在其他实例中,公知的处理步骤没有被详细描述以使得描述简要。概述在一个实施例中,第一网络设备可以接收对于至少一个服务于客户端的目标的标识符的请求。第一网络设备可以获取两个或更多目标中的每一个目标的标识符。第一网络设备然后可以确定是否重定向该请求。第一网络设备可以根据确定步骤的结果来重定向该请求到第二网络设备,其中第一网络设备在第一自治系统中且第二网络设备在第二自治系统中。具体示例实施例在网络中,从目的实体请求数据或服务的源实体可以被称作客户端。客户端可以通过在客户端设备上安装客户端程序来实现。客户端设备例如可以是台式电脑、便携式电脑、或者例如蜂窝电话的手持设备。请求的目的实体可以被称作目标。目标可以通过例如万维网服务器(web server) 或存储设备这样的网络设备来实现。另外,目标可以配置有软件,该软件使得目标能够处理来自客户端的请求,以及能够获取和发送所请求的数据或服务到客户端。客户端可能希望获取来自目标的数据或服务。然而,当系统包含多个目标时,就通常需要客户端从距客户端最近的目标获取所需要的数据或服务。公开的实施例使得距客户端最近的(例如,有着最短路由路径)的目标能被识别。在今天的网络中从事路径确定的任务的一个协议就是边界网关协议(BGP)。边界网关协议(BGP)在传输-控制协议/因特网协议(TCP/IP)网络中执行域间路由。BGP是一种外部网关协议(EGP),其意味着该协议在不同自治系统的网关设备之间交换路由信息以及执行路由。通过经由BGP的路由信息的交换,网关设备能够获取在自治系统之间的路径的路由信息。然而,路由信息仅表示可通过BGP获得的信息。结果,多个自治系统的网关设备可能没有足够的信息来选择最佳的可获得的路由。在因特网中,自治系统(AS)可以是在共有实体或管理(例如企业网络或服务提供商网络)控制下所连接的IP路由前缀(例如包含路由器和链路)的集合,所述共有实体或管理表现出到因特网的共有的、清楚地定义的路由策略。唯一的自治系统号码(ASN)被分配到每个AS以在BGP路由中使用。因此,ASN可以唯一地标识因特网上的每个网络。每个AS可以包含一个或多个边界路由器。边界路由器可以是具有和多于一个AS 中的设备的连接的路由器。
内部网关协议(IGP)是可以被部署在AS内部且用于产生路由方案的路由协议,所述路由方案包含节点(例如路由器)以及链路,所述节点和链路形成路由/转发IP分组所经由的网络拓扑。示例IGP包括开放式最短路径优先(0SPF,一种链路状态路由协议),中间系统到中间系统(ISIS,另一种链路状态路由协议),增强内部网关路由协议(EIGRP),以及路由信息协议(RIP)。链路状态协议是基于链路状态通告的路由协议。链路状态协议的示例包括ISIS 以及0SPF。链路状态协议的特征包括每个节点将其本地连接性通告给剩余其他节点。链路状态协议使用路由的特征,例如成本(cost),来确定最佳路径。这与距离-矢量协议形成了对照,在距离-矢量协议中每个节点将它的路由表的内容通告给其相邻的邻居。最短路径优先(SPF)和反向最短路径优先(R-SPF)是可以在链路状态网络中被每个路由器执行的算法(例如执行SPF或R-SPF的每个路由器)。SPF的目的是建立路由信息库(RIB),该RIB被路由器使用来路由/转发IP分组。算法可以使用数据结构和逻辑。 更具体地,数据结构可以包含三个列表。未知(UNKOWN)列表可以标识在拓扑(网络)中还没有为其计算路径的所有已知节点。实验性(TENTATIVE)列表可以标识已为其计算至少一个路径(但可以不是最短路径)的节点。路径(PATH)列表可以标识一系列的已为其计算到该节点的最短路径的节点。SPF或R-SPF算法通过按未知_>实验性_>路径的顺序将节点从一个列表移动到另一个列表来运行,并当实验性列表被清空的时候停止。一种示例SPF 算法就是戴克斯特拉(Dijkstra)算法。SPF和R-SPF之间的区别就是节点在算法期间被查看和评估的方式。SPF算法基于从参考节点到网络中每个其他节点的成本来计算最短路径,而R-SPF算法考虑的是反向度量,即从网络中每个节点到参考节点的度量。网络定位系统(NPS)可以在网络中实现增强的接近(proximity)服务。更具体地, 在NPS中的客户端可以提交对于目标IP地址的请求,通过该目标IP地址获取数据或(一个或多个)服务。有了目的目标的列表,NPS确定哪些目标距请求目标地址的客户端是最近的。NPS然后可以基于目标地址距客户端的距离来对目标地址进行排名,且响应于请求来提供一个或更多经排名的IP地址的列表。下面将进一步详细描述的是,NPS的网络基础设施通过诸如IGP和BGP的路由协议来获取路由信息。通过使用路由信息,NPS可以推荐提供最优路径的(一个或多个)目标给客户端请求者。以这种方式,NPS改善了用户体验且减少了成本。公开的实施例使得客户端提交的对于合适目标的因特网协议(IP)地址的请求由接收请求的网络定位系统服务器(NPS服务器)合适地重定向。更具体地,如果NPS服务器不能够准确的确定两个或更多目标中的哪个是和客户端最近的,则NPS服务器可以重定向该请求到另一个NPS服务器,即第NPS服务器。在下面的描述中,NPS服务器被描述为实现在网络设备中。网络设备例如可以是实现多个路由协议和网络定位系统功能的路由器,其将在下面被进一步详细描述。每个目标可以包含一个或多个网络设备(例如存储设备或万维网服务器),在所述网络设备上存储了可以被一个或多个客户端请求的内容。例如,目标可以包含一个或多个能够流送(stream)诸如无线或电视广播这样的媒体音频和/或视频数据的流转换器 (streamer)。结果,需要将提供最优传输路径的目标的IP地址提供给请求内容的客户端。下面将参考图1-3进一步详细描述可在其中实现所公开实施例的示例网络定位系统(NPQ,同时执行本发明多个实施例的方法将参考图4-6在下面被进一步详细描述。图1是描述了在其中可以执行公开实施例的示例系统的图表。在这个示例中,多个自治系统被示出。如图1所示,第一自治系统,自治系统1100,可以包含由接近源地址 (PSA)标识的客户端102。客户端102可以发送请求到服务路由器104来获取目标地址,该目标地址可被称为接近目标地址(PTA)。服务路由器104最初可以配置有一组两个或更多目标地址(例如IP地址)。响应于来自客户端102的请求,服务路由器104然后可以提供该组两个或更多目标地址给第一 NPS服务器,NPS服务器1106。NPS服务器1 106然后可以识别该组两个或更多目标地址中提供了最优路径的一个目标地址。NPS服务器1 106然后可以提供所识别的目标地址给服务路由器104。服务路由器然后可以提供所识别的目标地址给客户端102。需要重点指出的是尽管服务路由器104和NPS服务器1 106是被分开图示的,但是服务路由器104和NPS服务器1 106不需要实现在不同的网络设备中。而是, 服务路由器104和NPS服务器1 106可以在一个单个的网络设备中被实现。如在这个示例中示出的,第二自治系统,自治系统2 110,包含三个边界路由器 Rl 112,R2 114,以及R3 116。每个AS可以包含或者不包含NPS服务器。在这个示例中, 自治系统2 110包含第二 NPS服务器,NPS服务器2 118。第三自治系统,自治系统3 120,包含由接近目标地址3 122标识的第一目标。第四自治系统,自治系统4 130,包含由接近目标地址4 132标识的第二目标。根据多个实施例,NPS服务器可以根据与从客户端102到每个目标的整个路由路径关联的成本来对目标进行排名。这可以通过考虑两个不同成本来完成。第一成本是与在自治系统之间的对应路由路径关联的成本,例如,通过BGP获取的BGP AS_PATH长度。第二成本是与单一自治系统内部诸如路由器的网关设备之间的对应路由路径关联的成本,如通过诸如OSPF或IS-IS的内部网关协议(IGP)而获取的。OSPF协议版本2在1998年4月在 RFC 23 上被J. Moy公开。IS-IS域内路由协议在1990年2月在RFC 1142上被D. Oran 公开。IGP是用来在自治网络内的网关设备之间交换路由信息的协议。网关设备例如可以包含路由器和/或交换机。如图1所示,在Rl 112和R2 114之间的IGP成本是20,而在 Rl 112和R3 116之间的IGP成本是80。如果NPS服务器1 106拥有IGP成本度量,则NPS 服务器1 106将推荐与第一目标关联的接近目标地址3 122。不幸的是,在第二自治系统, 自治系统2110中的IGP成本度量仅在自治系统2 110中是可见的。结果,在其他自治系统中的网络设备不能够准确确定最优路由。因此,在这个示例中,第一 NPS服务器,NPS服务器1 106,将提供不是最优选择的目标的IP地址。根据多个实施例,接收对于目标地址的请求的NPS服务器在其确定NPS服务器不在对于到每个目标的路径共有的自治系统中的情况下,可以重定向请求到另一个自治系统中的NPS服务器。在该例子中,由于NPS服务器不在对于到每个目标的路径共有的自治系统中,因此NPS服务器无法得到指出在客户端和两个或更多目标的每个之间的距离的内部网关协议(IGP)信息。因此,在这个示例中,第一 NPS服务器,NPS服务器1106,可以重定向请求到第二 NPS服务器,NPS服务器2 118。对已经被第一 NPS服务器接收到的对于目标地址的请求的重定向可以以多种方式来实现。更具体地,第一 NPS服务器可以转发请求到第二 NPS服务器,其中第一 NPS服务器和第二 NPS服务器在不同自治系统中。可替换地,第一 NPS服务器可以提供第二 NPS服务器的IP地址给服务路由器(或客户端),使得服务路由器(或客户端)能重发该请求给第二 NPS服务器。在参考图1示出和描述的示例中,发送请求的客户端102是在和最初接收到该请求的NPS服务器106相同的自治系统中。然而,客户端不需要在和请求被最初定向到的NPS 系统相同的自治系统中。例如,如图2示出,客户端102可以和处理请求的NPS服务器1 106(和服务路由器104)在不同的自治系统中。由于接收来自客户端102的请求的NPS服务器1 106和客户端102在不同的自治系统中,因此请求可被重定向到NPS服务器2 118。在图3示出的例子中,由接近目标地址3 134和接近目标地址4 132标识的目标都位于自治系统4 130中。此外,自治系统4 130还包含第三NPS服务器,NPS服务器3 136。 根据一个实施例,目标位于单一自治系统中时,NPS服务器106可以重定向该请求到与目标相同的自治系统中的NPS服务器。因此,在这个例子中,NPS服务器106重定向该请求到第三NPS服务器,NPS服务器3136。重点指出的是根据图1-3示出和描述的例子仅仅是用作例证的。其他系统配置可以被实现。这些例子被简化以使得简化公开实施例的描述。因此,系统可以包含任意数量的自治系统,NPS服务器,和/或目标。图4描述了根据发明多个实施例的由NPS服务器重定向对目标地址的请求的方法的处理流程图。为了确保每个NPS服务器接收不同自治系统的网关设备之间的距离的成本度量,每个NPS服务器(或包括NPS服务器的网络设备)可以注册为BGP收听者。在注册作为BGP收听者后,NPS服务器可以接收BGP更新,该BGP更新来自实现了根据Y. Rekhter 以及T. Li于1995年3月提出的请求评议(RFC) 1771 “边界网关协议4(BGP-4) ”的BGP的网关设备。此外,每个NPS服务器可以注册为IGP收听者以确保在自治系统内的网关设备之间的距离的成本度量可以被接收。更具体地,IGP可以是OSPF或IS-IS协议。每个NPS 服务器此后可以从实现了 IGP的其自治系统内的网关设备接收IGP更新。此外,每个NPS服务器可以获取其他NPS服务器的IP地址以使得可以适当地对请求进行重定向。在一个实施例中,每个NPS服务器可以静态地配置为具有其他NPS服务器的IP地址。在可替代的实施例中,NPS服务器可以使用动态发现协议来互相发现。如图4中示出的,在402第一网络设备可以接收对于至少一个服务于客户端的目标的标识符的请求。例如,接收来自客户端的请求的服务路由器可以提供该请求(或来自该请求的信息)到第一网络设备(例如NPS服务器)。在一个实施例中,请求的尽力服务 (best-effort)标志可以起作用以向NPS服务器指出它是要重定向该请求,还是处理该请求以及返回结果(例如目标IP地址的经排名列表)。因此,当客户端发送请求时,尽力服务标志可以被初始化(例如不设置)来指出该请求将被重定向。在404,第一网络设备可以获取两个或更多可以服务于客户端的目标中每一个目标的标识符(例如IP地址)。例如,服务路由器可以提供两个或更多目标的每一个的IP地址给第一网络设备。在406,第一网络设备(例如NPS服务器)然后可以确定是否重定向请求。在一个实施例中,第一网络设备可以通过确定其是否能获得内部网关协议(IGP) 信息,来确定是否重定向请求,所述IGP信息指出客户端和两个或更多目标中每个目标间的距离。例如,第一网络设备可以确定是否其在对于客户端到两个或更多目标的每个目标之间的路径共有的自治系统中。更具体地,如果第一网络设备确定其在对于客户端到每个目标之间的路径共有的自治系统中,则第一网络设备能获得指出在客户端和每个目标之间的距离的IGP信息。网络设备(例如NPS服务器)确定是否重定向请求的方法将参考图5 在下面进一步详细的描述。在步骤408,根据确定步骤的结果,第一网络设备然后可以重定向该请求到第二网络设备(例如包含NPS服务器)。更具体地,如果第一网络设备确定其在对于客户端到两个或更多目标的每个目标之间的路径共有的自治系统中,则第一网络设备将能获得指出到两个或更多目标的每个的距离的IGP信息。第一网络设备因此可以选择不重定向请求到第二网络设备,这是因为第一网络设备可以使用其依次接收的IGP信息以选择有着到客户端的最优路径的目标。然而,如果第一网络设备确定其不在对于客户端到两个或更多目标的每个目标之间的路径共有的自治系统中,则第一网络设备将不能获得指出在客户端和两个或更多目标的每个之间的距离的IGP信息,并可选择重定向请求到另一个自治系统中的另一个网络设备(例如另一个NPS服务器)。更具体地,第一网络设备可以选择重定向该请求到第二网络设备(例如另一个NPS服务器),该第二网络设备更可能获得第一网络设备缺乏的信息以选择有着最优路径的目标,其中第一网络设备在第一自治系统中且第二网络设备在第二自治系统中。在重定向请求时,第一网络设备可以在请求中设置尽力服务标志来通知第二网络设备其应该尽力计算路径成本且不应尝试重定向请求到另一个网络设备(NPS服务器),因为这样做可能导致重定向循环。重定向请求到第二网络设备的方法将参照图6在下面进一步被详细描述。如果第一网络设备(例如第一 NPS服务器)不重定向请求,则第一网络设备可以使用IGP(以及任意EGP)成本信息来识别最优路径,并因此识别最优目标。第一网络设备然后可以提供最优目标的标识符(例如IP地址)给服务路由器或客户端。可替换的,如果第一网络路由器重定向请求,则第二网络设备(例如第二 NPS服务器)可以使用IGP(以及任意EGP)成本信息以识别最优目标。第二网络设备然后可以提供最优目标的标识符(例如IP地址)给第一 NPS服务器,服务路由器,和/或客户端。图5是描述了根据多个实施例的确定是否重定向请求的方法的处理流程图。网络设备(例如NPS服务器)在502可识别两个或更多路径,其中两个或更多路径的每一个对应两个或更多目标中不同的一个。两个或更多路径的每一个可以通过在客户端和两个或更多目标中的对应一个之间的一个或更多自治系统定义。在504,网络设备可以识别对于两个或多个路径的每一个是共有的自治系统。在506,网络设备然后可以确定是否其在对于两个或更多路径中的每一个是共有的自治系统中。如果网络设备位于对于两个或更多路径中的每一个是共有的自治系统中,则网络设备将能获得该自治系统内部的成本度量,且因此可选择不重定向该请求。然而,如果网络设备不位于对于两个或更多路径中的每一个是共有的自治系统中,则网络设备将不能获得该自治系统内部的成本度量,且因此可选择重定向该请求。根据一些实施例,如果两个或更多目标都位于相同的自治系统中,则可能需要重定向请求。如果两个或更多目标都位于相同自治系统中,则网络设备可以重定向该请求到位于该自治系统中的另一个网络设备(例如NPS服务器),并设置尽力服务标志。然而,如果两个或更多目标没有位于相同自治系统中,则网络设备可以如上述参照图5描述的运行。图6是描述了由包含第一 NPS服务器的第一网络设备重定向请求到包含第二 NPS 服务器的第二网络设备的方法的处理流程图。在602,第一网络设备可识别两个或更多路径,其中两个或更多路径中的每一个对应两个或更多目标中的不同的一个。两个或更多路径中的每个可以通过由一个或更多自治系统构成的序列来定义。在604第一网络设备可以识别对于两个或更多路径中的每一个是共有的一个或更多自治系统。在606第一网络设备然后可以识别第二网络设备,该第二网络设备位于对于两个或更多路径中每一个是共有的一个或更多自治系统中的一个自治系统中。第一网络设备和第二网络设备可以每个都包含 NPS服务器,其中每个NPS服务器(或者对应的网络设备)可以配置为执行参考图4所图示和描述的请求的重定向。根据多个实施例,第一网络设备可以根据多个算法选择重定向请求。例如,如果第一网络设备不在客户端的自治系统(即本地AS)中且本地AS中存在包含NPS服务器的网络设备,则第一网络设备可以重定向接近请求到在客户端的AS中包含有NPS服务器的第二网络设备,并设置尽力服务标志。此外,在一些实例中,这两个或更多路径可具有共有的多于一个自治系统。如果两个或更多路径共有着多于一个自治系统,则第一网络设备可以选择这些自治系统中的一个来重定向请求。例如,第一网络设备可以选择其中最接近于所述两个或更多目标的一个自治系统。换句话说,第一网络设备可以选择如下的自治系统该自治系统对于两个或更多路径来说是共有的,且被识别为在两个或更多路径(例如,对应的自治系统序列)中的最后的 (last)共有自治系统。一旦第一网络设备识别了要将请求重定向到的自治系统,第一网络设备然后就可以识别该自治系统中要将请求重定向至的网络设备(例如包含NPS服务器)。更具体地,第一网络设备可以识别第二网络设备(例如包含NPS服务器),该第二网络设备存在于所识别的对于两个或更多路径中的每个是共有的自治系统中。第一网络设备然后可重定向该请求到所识别的第二网络设备。假定该第一网络设备(例如NPS服务器)已经获取了其他网络设备(例如具有NPS服务器)的IP地址,则IP地址可以被用来识别在所识别的自治系统中的NPS服务器。因此,每个网络设备可包含NPS服务器,所述NPS服务器中的每个被配置为如果该NPS服务器不在对于客户端和两个或更多目标之间的路径是共有的自治系统中, 则执行请求的重定向。在一个实施例中,当第一网络设备重定向请求到第二网络设备时,第一网络设备在请求中设置尽力服务标志以指示第二网络设备第二网络设备应该尽力计算路径成本且不应尝试重定向请求到另一个网络设备(NPS服务器)。在接收到重定向请求时,第二网络设备可从请求中确定尽力服务标志被设置。结果,第二网络设备明白它要计算路径成本且不重定向请求。第二网络设备(例如NPS服务器)可以识别与到两个或更多目标的“分支”相关联的潜在成本。更具体地,第二网络设备可在诸如参考图7A图示和描述的表中查找目标IP地址。当在表中定位了目标IP地址时, 第二网络设备可以从对应的表条目中获取下一跳(Next-Hop) IP地址。第二网络设备然后可查找该下一跳IP地址来从诸如参考图7B图示和描述的表中获取对应成本。以这种方式,第二网络设备可确定对于特定目标的IGP成本。第二网络设备可以类似的方式确定对于两个或更多目标中每个的IGP成本。图7A-图7B是示例的表,其可以由根据多个实施例的每个NPS服务器维护。更具体地,自治系统中的NPS服务器可从其他自治系统中的网关设备接收EGP(例如BGP)更新消息,还有来自自治系统中网关设备的IGP(例如IS-IS和0SPF)更新消息。根据多个实施例,在接收到EGP (例如BGP)更新消息时,NPS服务器可更新表,该表例如是图7A所示的表。更具体地,NPS服务器可从BGP更新消息的AS_PATH(自治系统路径)和NEXT_H0P (下一跳)属性中获取信息。如RFC 1771公开的,AS_PATH属性通常由AS路径段的序列组成。每个AS路径段由三元组 < 路径段类型,路径段长度,路径段值 > 来表示。路径段类型是取值为2的一个八比特组长度的字段来指出段类型是AS_SEQUENCE (自治系统序列),其标识更新消息中的路由已经遍历的AS的有序集。换句话说,AS_SEQUENCE可以包括AS标识符(例如ASN)的序列。路径段长度是包含在路径段值字段中的AS的数量的一个八比特组长度的字段。路径段值字段包含一个或更多AS号码,每个AS号码编码为两个八比特组长度的字段。NEXT_H0P 属性在RFC 1771中被描述为定义边界路由器的IP地址,所述边界路由器应该被使用为到更新消息的网络层可达性(Network Layer Reachability)字段中所列的目的地的下一跳。 因此,在表中指定的IP地址可以从更新消息的网络层可达性字段中获取。图7A示出的表可以包含多个条目,其中的每个条目对应不同IP地址。这些IP地址可包含目标地址,以及NPS服务器地址。如示例所示,表可包含诸如AS_PATH和NEXT_H0P 的栏。因此,每个条目可标识IP地址、标识从NPS服务器到IP地址的自治系统的序列的路径(AS_PATH),以及从NPS服务器到IP地址的路径中的路由器的下一跳地址(ΝΕΧΤ_Η0Ρ)。为了识别到特定目标的路径,NPS服务器可仅仅在表中定位目标的IP地址以识别合适的表条目。从表条目中,NPS服务器可确定出标识从NPS服务器到IP地址的自治系统 (例如ASN)的序列的路径。自治系统的序列可以以这样的方式针对两个或更多目标而获取,使得能够比较序列以识别对于到所有目标的路径共有的自治系统。更具体地,可以确定 ASN的序列中的AS(例如最后的ASN)的身份,其中ASN标识对于每个到目标的路径都共有的自治系统。一旦识别了共有的自治系统,第一 NPS服务器就可以在共有自治系统中识别第二 NPS服务器。更具体地,第一 NPS服务器可以通过首先确定共有自治系统的网络前缀来确定第二 NPS服务器的IP地址。更具体地,第一 NPS服务器可确定其他NPS服务器的网络前缀 (例如通过BGP路由表)。从其他NPS服务器的网络前缀,可以识别共有AS中的NPS服务器。例如,如果共有AS是AS 2,则具有前缀2. 2.118. 0/ 的NPS服务器是AS 2中的NPS 服务器。相似的,具有前缀3. Χ. XXX. X/M的NPS服务器可以被识别为在AS 3中。第一 NPS 服务器然后可重定向请求到第二 NPS服务器。在接收到IGP (例如IS-IS或0SPF)更新消息时,NPS服务器可以更新诸如图7B示出的表。更具体地,NPS服务器可从IGP更新消息中获取成本和对应的目的地IP地址。如图7B示出,对于每个IP地址,表可以指定从NPS服务器到达该IP地址的成本。如果NPS 服务器在与到目标的路径的“分叉”相同的自治系统中,则NPS服务器将能获得到目标的不同分支的成本信息。
为了识别有关的成本信息,NPS服务器可从图7A的表中识别目标IP地址以识别下一跳地址。NPS服务器然后可识别在图7B的表的IP地址栏中的下一跳地址以识别有关的表条目。从表条目中,NPS服务器可以确定到达下一跳的成本。NPS服务器可对每个目标 IP地址重复该处理,使得NPS服务器能确定到达每个目标IP地址的“内部”成本。第二 NPS服务器可以使用到每个目标的“分支”的IGP成本信息以识别最优路径以及因此识别最优目标。更具体地,第二 NPS服务器可使用结合IGP成本信息的任意EGP 成本信息来确定与特定目标相关联的总成本。对于每个目标的总成本然后可被比较以识别最优目标。第二 NPS服务器然后可提供最优目标的标识符到第一 NPS服务器,服务路由器, 和/或客户端。重点指出的是上面描述的数据结构仅仅是阐释性的。因此,可以预期的是其他类型的数据结构或格式可以被使用以存储诸如此处描述的数据。一般地,用开实现公开实施例的技术可以实施在软件和/或硬件上。例如,他们可以被实现在操作系统内核中、单独的用户进程中、绑定到网络应用中的封装库中、专门构造的机器上、或者在网络接口卡上。在特定实施例中,公开的技术可以被实施在软件,诸如操作系统或者运行在操作系统上的应用程序中。公开实施例的软件或软件/硬件混合分组处理系统可被实现在通用可编程机器上,该通用可编程机器由存储在存储器中的计算机程序有选择地激活或重新配置。这样的可编程机器可以是设计以处理网络流量的网络设备。这样的网络设备典型的有多个网络接口。这样的网络设备的特定例子包括路由器,交换机以及接入点。例如,公开实施例的分组处理系统可以从加利福尼亚州圣何塞的思科系统公司获得的型号为4400系列和2006系列的无线控制器,以及型号为1000系列和12XX系列的接入点来实施。网络设备可以是专门配置的路由器,例如专门配置的可以从加利福尼亚州圣何塞的思科系统公司获得的路由器型号 1600, 2500, 2600, 3600,4500,4700, 7200, 7500,12000 以及载波路由系统(CRS)。这些机器中的一些的通用体系结构将从下面给出的描述中给出。进一步,公开实施例可以至少部分地实施在用于网络设备或通用计算设备的卡(例如,接口卡)上。在一个实施例中,实现公开实施例的网络设备是路由器。现在参考图8,路由器1110适于执行公开实施例,其包含主中央处理单元(CPU) 1162,接口 1168以及总线 1115(例如PCI总线)。当在合适的软件或固件控制下运作时,CPU 1162负责诸如路由表计算和网络管理之类的路由任务。它也可负责全部或部分地实现公开实施例。路由器可在软件的控制下完成这些功能,所述软件包含思科系统公司的操作系统(例如网际操作系统 (IOS ))的软件以及任意合适的应用软件。CPU 62可包含一个或更多处理器1163,诸如来自摩托罗拉微处理器家族或MIPS微处理器家族的处理器。在可替换的实施例中,处理器 1163是用来控制路由器10运行的专门设计的硬件。在特定实施例中,存储器1161(例如非易失RAM和/或ROM)同样组成CPU 1162的部分。然而,这里有许多不同的方式使得存储器耦合到系统上。存储块1161可以被用于多种目的,诸如,举例为,高速缓存和/或存储数据,编程指令,等等。接口 1168典型地被提供为接口卡(有时称为“线卡”)。一般地,它们控制网络上的数据分组或数据段的发送和接收且有时支持与路由器1110 —起使用的其他外围设备。 可提供的接口包括以太网接口,帧中继接口,电缆接口,DSL接口,令牌环接口,等等。此外,多种非常高速率接口可以被提供,诸如快速以太网接口,吉比特以太网接口,异步传输模式 (ATM)接口,高速串行接口(HSSI)接口,分组同步光网络(POS)接口,光纤分布式数据接口 (FDDI)接口,本地局域网(LAN)接口,无线局域网(WAN)接口,城域网(MAN)接口等等。一般地,这些接口可包含适于同合适介质通信的端口。在一些情况下,它们还可以包含独立处理器以及在一些实例中包含易失RAM。独立处理器可以控制这样的通信集中业务如分组交换,介质控制和管理。通过为通信集中业务提供单独处理器,这些接口允许主微处理器1162 有效率的执行路由计算,网络诊断,安全功能,等等。尽管图8示出的系统是一个特定路由器,其可被用来执行公开实施例,但这绝不是仅有的可以在其上实现实施例的路由器体系结构。例如,通常使用的一种体系结构有着处理通信以及路由计算等的单一处理器。进一步地,其他类型的接口和介质可以同路由器一起使用。不管网络设备的配置如何,它都可以使用一个或更多存储器或存储模块(诸如, 举例为,存储块1165),其配置为存储用于通用网络运行和/或这里描述的发明技术的数据,程序指令。例如,程序指令可以控制操作系统和/或一个或更多应用程序的运行。因为这样的信息和程序指令可被用来执行这里描述的系统/方法,所以公开的实施例涉及包括程序指令,状态信息,等等的机器可读介质,用来执行这里描述的多种操作。 机器可读介质的例子包括,但是不局限于,磁性介质诸如硬盘,软盘,以及磁带;光介质诸如 ⑶-ROM盘和DVD ;磁-光介质诸如光磁软盘;以及专门配置为存储和执行程序指令的硬件设备,诸如只读存储设备(ROM)和随机存取存储器(RAM)。程序指令的例子包括机器代码, 诸如编译器产生的,以及包含可以被计算机使用翻译器执行的高级代码的文件。尽管公开实施例的解说性的实施例和应用程序在这里示出和描述,多种变化和修正是可能的,其保持在公开实施例的概念,范围以及精神内,且这些变化在熟读本申请后对于本领域普通技术人员将变得清晰。此外,公开实施例不需要使用上面描述的步骤来执行。 相应的,目前实施例被看做解说性的而不是限制性的,且公开实施例不局限于这里给出的细节,但是可以在附加权利要求的等同和范围内被修改。
权利要求
1.一种方法,包括由第一网络设备接收对于至少一个服务于客户端的目标的标识符的请求; 由所述第一网络设备获取两个或更多目标中每一个目标的标识符; 由所述第一网络设备确定是否重定向该请求;以及根据确定步骤的结果,由所述第一网络设备将所述请求重定向到第二网络设备,其中所述第一网络设备在第一自治系统中且所述第二网络设备在第二自治系统中。
2.如权利要求1所述的方法,其中确定是否重定向该请求包含确定所述第一网络设备是否能够获得内部网关协议IGP信息,该IGP信息指出在所述客户端和所述两个或更多目标中的每个之间的距离。
3.如权利要求1所述的方法,其中由所述第一网络设备确定是否重定向该请求包含 识别两个或更多路径,所述两个或更多路径中的每一个路径对应于所述两个或更多目标中不同的一个目标,其中所述两个或更多路径中的每一个路径由在所述客户端和所述两个或更多目标中的对应一个之间的一个或多个自治系统定义;识别对于所述两个或更多路径中的每一个路径共有的自治系统;以及确定所述第一网络设备是否在对于所述两个或更多路径中的每一个路径共有的自治系统中。
4.如权利要求1所述的方法,其中由所述第一网络设备将所述请求重定向到第二网络设备包含识别两个或更多路径,所述两个或更多路径中的每一个路径对应于所述两个或更多目标中不同的一个目标,其中所述两个或更多路径中的每一个路径由一个或多个自治系统所构成的序列定义;以及识别对于所述两个或更多路径中的每一个路径共有的一个或多个自治系统; 识别第二网络设备,该第二网络设备位于对于所述两个或更多路径中的每一个路径共有的所述一个或多个自治系统当中的一个自治系统中;以及将所述请求重定向到所述第二网络设备。
5.如权利要求4所述的方法,进一步包含确定所述两个或更多路径是否有着多于一个共有的自治系统;以及如果确定了所述两个或更多路径有着多于一个共有的自治系统,则选择所述一个或多个自治系统当中的一个自治系统来重定向所述请求。
6.如权利要求5所述的方法,其中,选择所述一个或多个自治系统当中的一个自治系统来重定向所述请求包含选择所述一个或多个自治系统中的最接近所述两个或更多目标的一个自治系统。
7.如权利要求4所述的方法,进一步包括 获取多个网络设备的IP地址;其中,识别第二网络设备,该第二网络设备位于对于所述两个或更多路径中的每一个路径共有的所述一个或多个自治系统当中的一个自治系统中,这是使用所述多个网络设备的IP地址来执行的。
8.如权利要求7所述的方法,其中,所述多个网络设备中的每一个网络设备配置为如果所述多个网络设备中的该一个网络设备不在对于所述客户端和所述两个或更多目标之间的路径是共有的自治系统中,则执行所述请求的重定向。
9.如权利要求1所述的方法,进一步包括确定所述两个或更多目标是否在相同自治系统中;以及如果确定出所述两个或更多目标在相同自治系统中,则将所述请求重定向到该相同自治系统中的第二网络设备。
10.如权利要求1所述的方法,其中所述两个或更多目标在所述第二自治系统中。
11.如权利要求1所述的方法,其中所述客户端在所述第一自治系统中。
12.如权利要求1所述的方法,其中所述客户端不在所述第一自治系统中。
13.如权利要求1所述的方法,其中所述第二网络设备是多个设备中的一个设备,其被配置为如果所述多个设备中的该一个设备不在对于所述客户端和所述两个或更多目标之间的路径是共有的自治系统中,则执行所述请求的重定向。
14.一种设备,包括处理器;和存储器,所述处理器或所述存储器中至少一个适于接收对于至少一个服务于客户端的目标的标识符的请求;获取两个或更多目标中每一个目标的标识符;确定是否重定向所述请求,其中确定是否重定向所述请求包含确定所述设备是否在对于从所述客户端到所述两个或更多目标中的每一个目标的路径是共有的自治系统中;以及根据确定步骤的结果重定向所述请求。
15.如权利要求14所述的设备,所述处理器或所述存储器中的至少一个进一步适于识别两个或更多路径,所述两个或更多路径中的每一个路径是所述客户端和所述两个或更多目标中不同的一个目标之间的路径,每个路径标识由一个或多个自治系统构成的序列;其中,确定所述设备是否在对于从所述客户端到所述两个或更多目标中的每一个目标的路径是共有的自治系统中包含确定所述设备是否在针对所述两个或更多路径的每一个路径的一个或多个自治系统所构成的序列中所标识的自治系统中。
16.如权利要求14所述的设备,其中如果确定所述设备在对于从所述客户端到所述两个或更多目标的每一个目标的路径是共有的自治系统中,则不执行对所述请求的重定向。
17.如权利要求14所述的设备,其中如果确定所述设备不在对于从所述客户端到所述两个或更多目标的每一个目标的路径是共有的自治系统中,则执行对所述请求的重定向, 其中对所述请求的重定向包含将所述请求重定向到第二设备,其中所述设备在第一自治系统中并且所述第二设备在第二自治系统中。
18.一种设备,包含用于接收对于至少一个服务于客户端的目标的标识符的请求的装置;用于获取两个或更多目标中每一个目标的标识符的装置;用于识别两个或更多路径的装置,所述两个或更多路径中每一个路径对应所述两个或更多目标中不同的一个目标,其中所述两个或更多路径的每一个路径由在所述客户端和所述两个或更多目标中对应的一个目标之间的一个或多个自治系统定义;用于识别对所述两个或更多路径的每一个路径是共有的自治系统的装置;用于确定所述设备是否在对所述两个或更多路径的每一个路径是共有的自治系统中的装置;以及用于根据确定步骤的结果将所述请求重定向到第二网络设备的装置,其中所述设备在第一自治系统中且所述第二网络设备在第二自治系统中。
19.如权利要求18所述的设备,其中如果确定了所述设备在对所述两个或更多路径是共有的自治系统中,则用于重定向所述请求的装置不重定向该请求。
20.如权利要求18所述的设备,其中如果确定所述设备不在对所述两个或更多路径是共有的自治系统中,则用于重定向所述请求的装置将所述请求重定向到所述第二网络设备。
全文摘要
本发明涉及目标地址请求的重定向。在一个实施例中,第一网络设备可以接收对于至少一个服务于客户端的目标的标识符的请求。第一网络设备可获取两个或更多目标的每一个的标识符。第一网络设备然后可确定是否重定向该请求。第一网络设备可根据确定步骤的结果重定向请求到第二网络设备,其中第一网络设备在第一自治系统中且第二网络设备在第二自治系统中。
文档编号H04L29/06GK102546596SQ201110417930
公开日2012年7月4日 申请日期2011年10月20日 优先权日2010年10月21日
发明者史蒂文·V·梁, 张柱年, 斯特凡诺·普雷维蒂, 马尼什·巴德瓦耶 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1