将经过动态修改的量度用于冗余连接的业务网络流量控制的制作方法

文档序号:7854157阅读:334来源:国知局
专利名称:将经过动态修改的量度用于冗余连接的业务网络流量控制的制作方法
技术领域
本发明一般涉及在路由器之间传送数据的方法和设备,尤其涉及一种用于在两个路由器之间使用网际协议来传送数据的方法和设备。
背景技术
在历史上,由于路由信息协议(RIP)的较早实施及其相对简单的结构,所述协议是使用最广泛的因特网路由协议。RIP是所有路由协议中最持久的协议之一。RIP以及多种类似于RIP的协议都是以一组通过使用距离矢量来以数学方式比较路由,从而识别出到达任何指定目的地地址的最佳路径的算法为基础的。这些算法是从可以回溯到1957年的学术研究中形成的。
每隔一定时间间隔以及在网络拓扑结构发生变化的时候,RIP都会发送路由更新消息。当路由器接收到一个包含了条目改变的路由更新时,所述路由器会通过更新其路由表来反映新的路由。通常,RIP路由器只保持了到达目的地的最佳路由(具有最低度量值的路由)。在更新了路由表之后,所述路由器立即开始传送路由更新,以便将变化通知给其他网络路由器。而在其他接口上则会再次通告习得的路由以及递增了一(1)的路由“度量”,由此指示应该在接入目的地网络的时候对一个附加的路由器“跳点”进行计数。这些更新则是借助了RIP的“被触发”变化而在独立于RIP路由器每隔30秒发送的规则调度更新的情况下发送的。
RIP使用单独的路由量度(跳数)来测量源网络与目的地网络之间的距离。在从源到目的地的路径中,每一跳都指定了一个跳数值,这个跳数值通常是一(1)。当路由器接收到一个路由更新并且所述更新中包含了新的目的地网络条目或是发生变化的目的地网络条目时,所述路由器会为所述更新中指示的量度值加一(1),此外还会在路由表中输入所述网络。而发送方的IP地址则被用作下一个跳点。
参考图2,其中显示的是包含9个字段的IP RIP分组格式。以下描述对图2所述的IP RIP分组的格式字段进行了概述。
命令——该字段表明所述分组是一个请求还是一个响应。请求将会要求路由器发送它的整个路由表或是路由表的一部分。响应则可以是未经请求的常规路由更新或是对请求的应答。所述响应包含了路由表条目。在这里通过使用多个RIP分组来传递源自大型路由表的信息。
版本号——该字段规定了所用RIP版本。这个字段可以表示那些可能不兼容的不同版本。
零——实际上,RFC1058 RIP并未使用这个字段;添加这个字段只是为了提供与RIP的预备标准(pre-standard)种类的向下兼容性。它的名称源自其缺省值零。
地址族标识符(AFI)——该字段规定的是所使用的地址族。RIP旨在传送用于若干种不同协议的路由信息。每一个条目都具有一个用于表示所规定的地址类型的地址族标识符。对IP来说,AFI是2。
地址——该字段规定的是条目的IP地址。
量度——该字段表示的是在前往目的地的行程中遍历的网络跳点(路由器)数目。对一个有效路由来说,这个值介于1和15之间,对不能到达的路由来说,这个值是16。
对在以太网上传送的最大尺寸为1500字节的单个IP RIP分组来说,其内出现了多达25个AFI、地址以及量度字段。在单个RIP分组中,可列出多达25个目的地。
被触发RIP(与请求RIP相反)指的是一个传送被触发更新而不是周期性广播的RIP协议版本。当在局域网(LAN)上运行时,被触发RIP与RIP或RIP-2共用的是相同的基本算法。此外,分组格式、广播频率、被触发更新操作以及数据库超时也是相似的。这些更新只在事件改变了路由数据库时才会发送。并且每个更新都会在得到确认之前重新传送。而在更新中收到的信息则没有超时。此外还对RIP响应的分组格式(具有不同的唯一命令字段)进行了修改,以便包含序列号信息。并且这其中还定义了一个确认分组。
RIP版本2“RIPv2”[RFC1388]主要是通过添加IP子网地址之外的IP子网掩码通告来扩展RIP的。此外它还添加了用于验证RIPv2分组的选项、用于通告不同于RIPv2分组发送方的下一跳路由器的选项以及用于使用IP多播而不是广播通告的选项。
对因特网路由器所使用的常规RIP来说,它可能要花费多达三分钟的时间来识别某个网络因为发送RIP通告的路由器出现故障或是两个路由器之间的两条冗余路径之一不再可用而不再能够到达。出现这种情况是因为缺省地将RIP通告设定成了每隔三十(30)秒才进行一次,并且大多数实施方式都需要在总共丢失了六个通告之后才宣布先前可以到达的网络不再能够到达。在整个持续过程中,数据将会转发到一个发生故障的连接。这样一来,如果将RIP用于诸如基于IP的语音传递之类的高可用性的IP业务量,那么将会出现一个严重缺陷。现有RIP实施方式的另一个问题在于从两个不同路由器接收相同费用的路由的实施方式只会选择其中一个路由器作为“下一个跳点”,当选定的下一跳路由器停止通告时,所述实施方式会在等待三分钟之后才接受来自不同路由器的相同费用的路由。
这种漫长的拓扑变化检测时间是促使业界开发OSPF[RFC1247]、IS-IS[RFC1142]以及BGP[RFC1771]之类的“链路状态”路由协议的一个主要动机。在提供更快路由器以及更快的链路故障检测时间的同时,这类协议的实施和正确配置也变得更为复杂。
因此,本发明旨在解决这样一个问题,即开发一种对具有冗余或备份连接的连接中的故障或是“可到达性”的损失做出快速反应的方法和设备。

发明内容
特别地,本发明是在检测到连接故障时修改所通告的跳数来解决这些和其他问题的,其中所述连接具有一个备份或冗余连接,由此将业务量自动转移到所述冗余或备份连接。
根据本发明的一个示范性实施例,其中通告了一个人为确定的关于指定端口的高跳数,当在与所述端口相关联的连接出现故障或是丧失可到达性时,将会触发一个与指定端口的备份或冗余连接有关的较低跳数的通告,由此导致自动地将业务量重新路由到备份或冗余连接。无论是否修改了与不可到达端口相关联的跳数,这种操作都是可以进行的。
根据另一个示范性实施例,在使用基于策略的路由技术时,人为确定的高跳数的多种状态将被使用。由此既可以满足基于策略的路由目的,也可以为这些重新路由业务量的备份或冗余路由触发较低的被通告跳数,从而避开那些发生故障或是不可到达的链路或连接。


图1描述的是本发明的不同方面所适用的系统的框图。
图2描述的是RIP数据分组的一种分组格式。
图3描述的是依照本发明一个方面来操作接入路由器的处理的示范性实施例。
具体实施例方式
应该注意的是,在这里,任何关于“一个实施例”或“某个实施例”的引用都是指与本发明至少一个实施例中包含的实施例有关的特定特征、结构或特性。在说明书中不同位置出现的词组“在一个实施例中”未必指的是同一实施例。
图1描述的是本发明的不同方面所适用的系统的框图。与因特网4相连的骨干路由器3使用的是经由局域网(LAN)LAN1和LAN2而与接入路由器5相连的冗余连接。接入路由器5为单独的因特网用户执行接入,其中所述用户是通过例如电缆、数字用户回路(DSL)或是借助拨号调制解调器的拨号连接来接入因特网的。
接入路由器5在其用户接入端(在本文中也称为“接入子网6~8”)实施逻辑IP子网。在接入子网内部,所有用户都分配了IP地址。接入路由器5则是借助于路由信息协议(RIP)而将可到达性通告给这些接入子网的。并且本发明适用于RIP版本1以及版本2。
在本文中,从接入子网到因特网的IP业务量称为“上游”业务量,从因特网到接入子网的业务量则称为“下游”业务量。
应该注意的是,LAN1和LAN2通常是由第二层交换机或以太网无源集线器实现的,由此这其中并不存在将接入路由器与骨干路由器相连的直达电缆。这样一来,骨干路由器不能使用简单的链路丢失条件来确定经由LAN1到达接入路由器的前向路径是否仍旧可用。例如,在断开了从LAN1交换机到接入路由器的电缆时,从骨干路由器到LAN1的电缆链路仍旧是完好的,并且骨干路由器不能在针对LAN1接入路由器的下游路由中触发任何变化。它仍然会将下游分组转发到LAN1交换机,然而由于与接入路由器之间的电缆已经断开,因此所述交换机将会丢弃这些分组。对介于接入路由器与骨干网之间并且穿越了LAN1和LAN2的链路来说,由于这些链路是连至公共网络的不同路径,因此在这里将其称为“冗余”链路,其中在图1中将所述公用网络称为“因特网”。
在以常规方式将RIP与如图1所示的冗余连接结合使用的时候,接入路由器会在LAN1和LAN2上为其接入子网通告相同的“跳数”。骨干路由器则随意使用任何一个LAN而将指定到“下游”的分组转发到接入子网内部的用户主机。
然而,在其中一个冗余连接出现故障的时候,常规使用方式将会出现问题。例如,LAN1可以用一个第二层交换机/集线器来实现,处于LAN1集线器与接入路由器之间的电缆可以是断开的。在这种情况下,在通过使用缺省RIP实施方式识别出RIP通告不再来自接入路由器的LAN1之前,骨干路由器仍然会将下游业务量继续发送到LAN1。这种识别将会花费6个之多的30秒广播间隔或是长达3分钟的时间。对实施高可用性的接入路由器、例如用以提供基于IP的语音(VoIP)服务的接入路由器来说,这个时间实在太长。
RIP要花费很长时间来识别拓扑结构改变,这在业界是一个公知的问题,目前已经开发了OSPF和IBGP之类的其他路由协议来解决这个问题。然而与RIP相比,这些协议需要执行更多的配置,并且一般都认为使用和保持这些协议要比RIP更为困难。
RFC2091“Triggered Extensions to RIP to Support DemandCircuits”对更快传播新连接消息的“被触发”RIP的概念进行了介绍,但是所述RFC并未解决在主链路出现故障时通过快速执行重构来使用冗余链路的问题。
根据本发明的一个方面,借助于RIP而在冗余链路上执行的接入路由器通告了人为确定的可到达IP子网的较高RIP费用或量度。例如,源自接入路由器并且直接可以到达的“接入子网”是以一个大小为两跳的跳数而不是通常的一跳来通告的。当从接入路由器上行的冗余链路之一出现故障时,这种状况会在剩余链路上触发一个具有“较好”路由(例如大小为1的跳数)的RIP通告。由此将会导致路由器立即将下游数据路由到剩余链路。
虽然在这里使用了不同的值来表示跳数,但是并不是只能使用这些值。此外也不是必然要将这些值之间的差值局限于这里显示的值。一般而言,跳数被人为设定成一个大小为“n”的高值。然后,如果指定端口变得不可到达(如下文所定义的那样),则将冗余端口的跳数通告成“n-δ”,其中所述“n-δ”是n的变化。通常,这些值(n,δ)都是整数,但是本发明未必需要这个条件,尽管如此,一些协议仍然有可能将这些值限制成整数。
在恢复故障链路的时候,没有必要立即恢复两个冗余链路之间的业务量均衡,由此可以使用常规的RIP通告。
根据本发明的另一个方面,这种技术也可以在使用基于策略的路由的时候应用。然而,当在冗余链路上通过使用基于策略的路由来分发IP业务量负载时,这其中有可能会包含很多的细微差别。在这种情况下,跳数通告是根据特定端口优选与否而变化的。因此,当建立一个人为确定的高跳数时,有必要设立一个附加状态来区分优选端口、默认端口以及冗余端口。下表对这些差别进行了阐述。在正常状态下,通过使用上文的概括性符号,可以将用于优选端口的跳数通告为n,并且将用于非优选端口的跳数通告为“m”。一旦检测到端口不可到达,则将优选端口设定成n-δ,而非优选冗余端口则设定得稍高一些,但是小于m。
这里阐述的不同实施例尤其适合Motorola的DOCSIS电缆路由器。此外,不同的实施例同样也适用于其他电缆路由器。
在冗余链路上触发RIP的发明是使用两个步骤来解决快速地重新路由那些经由可到达LAN的下游业务量的问题的。首先,当一个网络端口休眠(go down)时,冗余链路上的被触发RIP会在剩余网络端口上为接入子网改变RIP通告跳数。其次,即使接入路由器的LAN端口保持接通,接入路由器也会快速检测到关于其下一跳路由器的“可到达性”故障,一旦执行了这个操作,则它立即将被触发RIP的通告发送到其他可以到达的下一跳路由器,以便重定向下游业务量。
如这里所使用的那样,骨干路由器的下一跳可以在其执行如下操作时视为是“可以到达的”及时向ICMP路由器通告发现分组;对来自接入路由器的Ping或ARP作出响应;和/或将数据转发到接入路由器。
对本发明来说,RIP通告中的跳数是由三个因素确定的网络端口的可到达性、下一跳路由器的可到达性以及接入子网源缺省路由的变化。
每一个接入子网都可以用一个“源缺省网关”(在这里将其缩写成SDG)来进行配置,所述网关是一种在转发任何源自接入子网的分组时定义了缺省的下一个跳点的策略路由机制。并且在这里是使用IP源缺省路由而不是常规选择来将分组经由接入路由器的目的地缺省网关(Destination Default Gateway在这里将其缩写为DDG)传递到其目的地的。更具体的说,当在接入路由器的网络端口上定义了接入子网的SDG时,可到达的上游和下游业务量应该经过一个设定了SDG的端口。当SDG休眠时,如果将DDG端口配置成是可以到达的,那么应该将上游和下游业务量切换到DDG端口。如果在接入路由器的网络端口上并未打开接入子网的SDG,则认为没有对SDG进行定义。下表概述了在任何端口P上为接入子网发送的RIP通告跳数。当从诸如SDG和DDG之类的下一跳路由器地址接收到ICMP路由器发现分组或者从路由器对Ping或Arp请求作出响应的时候,可以认为所述地址是“可到达的”。

在第一行中表示了这样一种情况,其中所有端口都可到达,但其中并未定义SDG,因此优选端口P是可以到达的。在这种情况下,对优选端口P来说,所通告的RIP跳数设定为3。
在第二行中表示的情况与第一行相同,只不过其中一些端口现在是不可到达的,换言之,在一个端口/链路上出现了差错或故障,但是优选端口P仍旧是可到达的。在这种情况下,对优选端口P来说,所通告的RIP跳数设定成1。由此可以确保下游业务量是经由优选端口P发送的。
在第三行中表示的是无法到达端口P的情况。在这种情况下,所通告的RIP跳数设定成3。这种处理是端口不可到达时的一般情况。因此,当一个端口不可到达的时候,无论在所述端口上是否定义了SDG或DDG,关于该端口的所通告的RIP跳数都会设定成3。
在第四行中定义了这样一种情况,其中定义了一个SDG并且所述SDG是可以到达的,此外优选端口P也是可以到达的。在这种情况下,对优选端口P来说,所通告的RIP跳数设定为2。无在是否定义了DDG以及是否可以到达所述DDG,上述操作都是成立的。由此确保骨干路由器将下游业务量经由相同优选端口P转发到某个接入子网,其中接入路由器是在所述端口上转发来自接入子网的上游业务量的。
第五行表示的是与第四行相同的情况,只不过端口P不是优选端口但端口P是可以到达的。在这种情况下,对所有可到达的非优选端口来说,所通告的RIP跳数设定成3。因此,优选端口P设定成2(第四行的情况),而非优选端口则设定成3,由此确保为下游业务量优先选择一个优于非优选端口的优选端口。
第六行表示的是第四行的情况,只不过现在SDG是不可到达的,此外在这里并未定义DDG。现在,P不是优选端口,但是P是可以到达的。在这种情况下,所通告的RIP跳数设定成1。由此确保业务量流经非优选端口P,而不是出现故障的优选端口。
第七行表示的是与第六行相同的情况,但是现在则定义了DDG。于是,所有的可到达缺省端口都被设定成一个大小为1的通告跳数。由此在SDG不可到达的情况下提供了可预测性和对称性。在这种情况下,来自具有SDG的网络的上游业务量改为路由到DDG端口,而第七行则规定下游业务量穿越同一个端口。
第八行表示的是与第七行相同的情况,但是其中显示将所有可到达的非缺省端口全都设定成一个大小为三(3)的通告跳数。这样一来,通过与第七行相结合,可以确保在SDG变成不可到达的时候,业务量经由缺省端口而不是非缺省端口发送。
图3显示的是依照本发明一个方面而对接入路由器或其他路由设备进行操作的处理的示范性实施例。一旦路由器以正常状态开始工作,则路由器将会通告人为确定的关于指定的受保护连接及其冗余链路的较高量度(例如跳数)(步骤31)。这些人为确定的高量度(例如跳数)要比那些与受保护连接相关联的实际量度(例如各个互连网络跳点)更高。然后,路由器持续监视受保护链路的可到达性(步骤32)。如果受保护的链路变得不可到达,则路由器提高为冗余链路通告的量度(例如减少所通告的跳数)(步骤33),由此可以假设冗余链路可用。很明显,如果没有冗余链路可用,则需要执行更严格的测量。然而,假如还剩下至少一个可以使用并且可以到达的冗余链路,那么路由器将会为这个冗余链路提高所通告的量度(例如减少所通告的跳数)。所述路由器可以继续监视受保护链路的可到达性(步骤34)。如果受保护链路变得不可到达,那么路由器可以将所通告的量度(例如链路跳数)修改成人为确定的受保护链路与冗余链路的高值。最后一个步骤是可选的,因为没有必要匆忙地将业务量切换回受保护链路。当然,如果需要的话,也可以将受保护链路的量度通告成优于冗余链路,由此可以确保快速地重新配置成初始配置,这样可以提高网络的可预测性,由此更易于对这些不同的故障机制进行测试。
虽然在这里是具体使用跳数作为所预想的量度之一的,但是依照这里所描述的技术,其他量度也可用作业务流量控制。其中某些量度包括费用、延迟、链接吞吐量以及链接负载。
总之,本发明的实施例提供了在链路的不可到达状态中为冗余链路通告一个提高的量度,其中对所述链路状态而言,所述冗余链路是与受保护链路的正常状态中通告的量度有关的冗余或备份(也就是受保护链路)。换句话说,受保护链路的状态对冗余链路的通告量度进行控制。在受保护链路的不可到达状态或故障状态中,为冗余链路通告的量度要优于在受保护链路的正常或可到达状态中为其通告的量度。因此,冗余链路的通告量度是在受保护链路状态改变的时候动态修改的。
虽然在这里对不同实施例进行了具体说明和描述,但是应该了解,上述教导所涵盖的关于本发明的修改和变化全都处于附加权利要求的范围以内,这些修改和变化并未脱离本发明的实质和预定范围。此外,在这里不应将这些实施例解释成是对权利要求所涵盖的针对本发明的修改和变化进行限制,它们只是对可能出现的变化进行描述。
权利要求
1.一种用于在网络中的节点之间路由业务量的方法,包括在路由器的正常状态中,在一个或多个冗余链路上将对应于接入网络可到达性的人为确定的高量度通告给其他路由器;以及一旦在一个或多个冗余链路中的一个链路上检测到下一跳路由器不再是可到达的,则在一个或多个冗余链路中的任何剩余冗余链路上触发一个关于接入网络的被提高量度的通告。
2.根据权利要求1的方法,其中人为确定的高量度包括一个第一值,所述值对应的是与一个或多个冗余链路中的每一个链路相关联的互连网络跳点数目,其中所述第一值要高于与一个或多个冗余链路中的所述每一个链路相关联的互连网络跳点的实际数目。
3.根据权利要求2的方法,其中所提高的量度包括一个第二值,这个值对应的是与一个或多个剩余冗余链路中的每一个链路相关联的互连网络跳点数目,其中所述第二值要低于与一个或多个剩余冗余链路中的所述每一个链路相关联的第一值。
4.一种在网络中用于业务量路由的方法,包括在正常状态中,在与关联于接入网络的链路一样配置的优选链路上通告用于到达接入网络的第一人为确定的高量度;在正常状态中,在缺省链路上通告第二人为确定的高量度,其中至少对所述优选链路来说,所述缺省链路是一个优选的备份链路;以及一旦检测到优选链路不能到达,则通告一个关于缺省链路的第一提高量度,其中所述第一提高量度优于第一和第二人为确定的量度。
5.根据权利要求4的方法,还包括一旦检测到优选链路不可到达,则通告一个关于附加冗余链路的第二提高量度,其中所述附加冗余链路对优选链路来说是冗余的,但它并不是一条用于优选链路的优选备份链路。
6.根据权利要求5的方法,其中所述第二提高量度比第一提高量度较差。
7.根据权利要求4的方法,其中第一人为确定的高量度包括一个第一人为确定的高值,这个值对应于与优选链路相关联的互连网络跳数数目,第二人为确定的高量度包括一个第二人为确定的高值,这个值对应于与优选备份链路相关联的互连网络跳数数目。
8.根据权利要求7的方法,其中第一提高量度包括一个较低的跳数值,这个跳数值对应于与优选备份链路相关联的互连网络跳数数目,其中所述较低跳数值要低于第一和第二人为确定的高值中的任一个,其中所述值分别对应的是与优选链路和优选备份链路相关联的互连网络跳数数目。
9.一种用于操作接入路由器的方法,包括一旦检测到另一条链路上的下一跳路由器不再能够到达,则为冗余链路广播一个提高的量度,其中对所述另一条链路来说,所述冗余链路是备份链路。
10.根据权利要求9的方法,其中当其他链路能够到达的时候,所提高的量度包括一个比先前关联于冗余链路的跳数值低的跳数值,其中对所述其他链路来说,所述冗余链路是一个备份。
11.根据权利要求10的方法,还包括在可以到达其他链路的时候为其他链路广播一个人为确定的高跳数。
12.一种用于操作路由器的方法,包括一旦检测到不能到达第二链路,则修改关于第一链路的通告量度,其中对第二链路来说,所述第一链路是冗余的。
13.根据权利要求12的方法,其中修改步骤包括在能够到达第二链路的时候,提高与先前为第二链路通告的量度有关的通告量度。
14.根据权利要求13的方法,其中所通告的量度包括一个与第一链路相关联的跳数值,所述提高步骤包括在可以到达第二链路的时候,将这个为第一链路通告的跳数值降低到一个低于与第二链路相关联的跳数值的值。
15.根据权利要求14的方法,其中通告的跳数值所降至的值等于或大于实际的互连网络跳点数目。
16.一种用于在网络中路由业务量的方法,包括基于受保护链路的状态来修改冗余链路上的通告路由量度,其中对所述受保护链路来说,所述冗余链路是一个备份。
17.根据权利要求16的方法,还包括在受保护链路的正常状态中通告一个关于受保护链路的人为确定的高量度。
18.根据权利要求17的方法,还包括在受保护链路的正常状态中通告一个关于冗余链路的人为确定的高量度。
19.根据权利要求18的方法,还包括在不可到达受保护链路的状态中通告一个关于冗余链路的更好量度,其中所述更好量度优于在受保护链路的正常状态中与受保护链路及冗余链路相关联的人为确定的高量度。
20.根据权利要求19的方法,其中每一个量度都包括与特定链路相关联的互连网络跳点的数目。
全文摘要
本发明涉及将经过动态修改的量度用于冗余连接的业务网络流量控制。诸如路由信息协议(RIP)之类的距离矢量路由协议是无法快速重新配置,进而使用冗余链路的。在检测到具有冗余或备份连接的连接中出现故障的时候(32),通过修改外发的被通告跳数(31),可以将输入业务量转移到所述冗余或备份连接(33)。在这里为指定端口通告了一个人为确定的高跳数(31),当在与所述端口相关联的连接出现故障或是丧失可到达性的时候(32),在指定端口的备份或冗余连接上将会触发一个较低跳数的通告(33)。由此导致将输入业务量快速地重新路由到备份或冗余链路。
文档编号H04L12/56GK1656740SQ03811822
公开日2005年8月17日 申请日期2003年4月24日 优先权日2002年4月25日
发明者迈克·W·帕特里克, 郭俊晶(音译), 史蒂文·A·弗雷 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1