具有数据库削减以及控制速率的状态恢复的基于泛洪的路由协议的制作方法

文档序号:7758010阅读:146来源:国知局
专利名称:具有数据库削减以及控制速率的状态恢复的基于泛洪的路由协议的制作方法
技术领域
本发明涉及计算机网络,更具体地,涉及计算机网络内所使用的路由协议。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于数据包的网络 (例如,因特网)中,计算设备通过将数据分成称作数据包的小块来通信数据,其中通过网络将数据包分别从源设备路由到目的设备。目的设备从数据包中提取数据,并且将数据组合成其原始形式。网络内称作路由器的一些设备使用路由协议来交换和收集描述网络的拓扑信息。 这使得路由器构建其自己的网络路由拓扑图。在接收到输入数据包时,路由器检查数据包内的键控信息,并且根据收集到的拓扑信息转发该数据包。许多路由协议使用基于泛洪的分配机制将拓扑信息通知给网络内的路由器。这些路由协议通常基于要求每个路由器具有同步的路由拓扑信息的路由算法。即,基于泛洪的路由协议要求路由区域中的所有路由器存储根据协议所分配的所有路由信息。以这种方式,路由器能够选择一致且无环路的路线。此外,路由信息的到处存在使得泛洪过程是可靠的、有效的且保证终止。在操作中,每个路由器通常保存内部链路状态数据库,并且以规定的间隔扫描整个数据库以产生和输出链路状态消息,从而使数据库同时存在于路由区域内的邻居路由器。以这种方式,链路状态在整个路由区域中传播,并且完整地存储在区域内的每个路由器中。例如,开放最短路径优先(OSPF)和中间系统到中间系统(IS-IS)路由协议是使用链路状态消息来确保他们的路由拓扑关于可利用的接口、量度(metric)以及与网络链路相关联的其他变量是同步的链路状态协议。OSPF利用链路状态通告(LSA)来交换信息, 而IS-IS使用链路状态协议数据单元(LSP)来交换信息。产生链路状态消息的路由器通常将链路状态消息在整个网络泛洪,使得每个其它的路由器接收到链路状态消息。在路由器以点对点连接方式连接的网络拓扑中,每个路由器将链路状态消息泛洪到每个接口上可到达的路由器以确保同步。在利用多路访问媒体的网络(例如,以太网)中,网络内的路由器将链路状态消息泛洪到所有其它的路由器。在另一情况下,接收路由器利用经由链路状态消息接收到的链路信息构建并保存它们自己的网络拓扑。在“htermediate system to Intermediate system routing information exchange protocol for use in conjunction with the Protocol for providing the Connectionless-mode Network Service(IS0 8473)”,ISO,IS0/IEC 10589 :2002 中具体说明了 IS-IS,其全部内容结合于此作为参考。近来,基于泛洪的路由协议已扩展到在路由器之间传送用于辅助路由控制的重要信息。例如,除了携带拓扑信息之外,路由协议已经扩展到携带实施专用的信息,例如配置数据、硬件清单、附加性能信息以及其它信息。

发明内容
大体上,描述了一种提供用于以路由器对路由器为基础削减链路状态数据库的技术的增强型基于泛洪的路由协议。该技术允许每个路由器独立地且本地地确定其内部链路状态数据库内所需的链路状态信息。每个路由器能够丢弃链路状态数据的任何部分而保留其它部分。该技术提供了实现基于泛洪方案的帮助和保证,然而一旦路由器已将状态信息可靠地泛洪到它的邻居路由器,那么该技术允许每个路由器独立地削减状态信息。此外,本文中所描述的技术允许路由器将路由区域的完整状态数据恢复 (refresh)给新添加至路由区域的、重新启动的、或者以其他方式需要该区域的完整状态的路由器。即,保证新的可利用的路由器经由基于泛洪的路由协议接收先前在路由区域内泛洪的所有链路状态信息,而不管其邻居路由器可能已从他们的链路状态数据库中削减链路状态信息的哪些部分。以这种方式,新的可利用的路由器的任何邻居路由器能够将泛洪区域中聚集的状态的全部传递给新的路由器,可以要求该新的路由器严格遵从某些基于泛洪的路由协议。新的可利用的路由器像其它路由器一样能够选择性地确定要丢弃哪条状态信肩、ο即使在当在整个网络中恢复泛洪状态以支持一个或多个新启动的路由器时的瞬时基础上,关于路由器的本地链路状态数据库所消耗的资源量(例如,内存占用量)是有限的。例如,通过路由区域将整个状态数据刷新给新的可利用的路由器可以以在临时恢复和泛洪状态数据时不会使路由器过载的控制速率的方式执行。即,在一些情况下,每个路由器能够减少或甚至能够临时停止将路由区域的状态数据恢复给新的可利用的路由器所需的基于泛洪的传输。通过实施这种机制,网络内基于泛洪的路由协议的分配机制可实施为负责为新的可利用的路由器进行恢复的各个路由器最终控制状态信息流经网络的猝发速率和平均速率的“拉”模式。因此,根据本文中所描述的原理,基于泛洪的路由区域内的每个路由器可以单独地控制恢复先前削减的链路状态信息时所经历的资源冲突,因此信息根据基于泛洪协议的同步要求可以最终被泛洪到新的可利用的路由器。关于诸如IS-IS的可扩展的基于泛洪的路由协议,可以以反向兼容的方式运用本文中描述的机制。在一个实施方式中,路由设备包括通过层二(U)通信媒体发送和接收数据包的网络接口。路由设备包括耦接至网络接口的控制单元,以及在控制单元的处理器上执行的基于泛洪的链路状态路由协议。链路状态路由协议通过层二(U)通信媒体与对等路由器建立邻接关系。路由设备的数据库包括存储用于链路状态路由协议的泛洪区域的多条链路状态消息的条目,其中,数据库中的至少一个条目存储具有报头部分和含有削减的链路状态数据的净荷的部分链路状态消息。在另一实施方式中,一种方法包括根据基于泛洪的链路状态路由协议通过层二 (L2)通信媒体在第一路由器与第二路由器之间建立链路状态路由邻接。该方法包括使用第一路由设备根据链路状态路由协议接收链路状态消息,其中,链路状态消息包含用于链路状态路由协议的泛洪区域的链路状态数据;以及将链路状态消息存储到第一路由器的数据库中。该方法还包括将链路状态消息从第一路由器泛洪到泛洪区域中的至少第三路由器, 以及在从第三路由器接收到确认之后从存储在数据库内的链路状态消息中至少削减部分链路状态数据,而不是删除整个链路状态消息。在附图和下面的描述中将阐明本发明的一个或多个实施方式的细节。本发明的其它特征、目的以及优点将从描述和附图以及从权利要求中变得显而易见。


图1是示出了根据本发明原理的一个或多个路由器利用增强型链路状态协议的示例性网络系统的框图,其中该增强型链路状态协议采用数据库削减和速率控制恢复。图2是示出了实施本文中所描述的技术的路由器的示例实施方式的框图。图3是示出了图2的示例路由器的进一步细节的框图。图4是由图2的路由器所保存的链路状态数据库内的条目的示例。图5是示出了路由器保存和削减链路状态数据库的示例性操作的流程图。图6是示出了路由器响应于可以触发其链路状态数据库内先前被削减的状态数据的软恢复的事件的示例性操作的流程图。
具体实施例方式图1是示出了根据本发明原理的支持增强型链路状态协议的示例性泛洪区域10 的框图。为了便于描述,将示例性泛洪区域10示为包括使用基础层二(U)通信媒体的不同形式的两个网络12A、12B。例如,网络12A使用其中网络的所有L2通信被发送(S卩,被广播)至耦接至网络的所有路由器14A-14F的“多路访问媒体” 15。广播网络的一个示例是以太网,例如其中以太网帧被通信至网络的所有节点。与之相比,网络12B使用点对点L2 通信媒体,例如光学链路16A-16D。在这种情况下,路由协议更新消息以点对点方式在邻近路由器之间发送,并且由那些路由器处理和终止。在该示例中,路由器14E、14F利用由路由器提供的不同物理接口而物理存在于网络12A和12B中。尽管在图1中没有示出,但是泛洪区域10可以包括其它网络设备,例如交换机和集线器。此外,尽管在图1中没有示出, 但是路由器14中的每一个通常服务于各种用户终端计算设备,例如便携式计算机、台式计算机、工作站、个人数字助理(PDA)及蜂窝电话。尽管为了示例性目的,描述为路由器,但是路由器14可以是除其他集成功能之外还结合有路由功能的其他网络设备。为了便于说明本文所描述的技术,关于利用L2多路访问媒体15和L2点对点媒体16的网络12A、12B示出了泛洪区域10。关于本文中诸如L2和L3的层,指的是开放系统互连(OSI)模型中的相应层。具体地,L2指的是OSI模型内的数据链路层。数据链路层可以提供用以在网络设备之间传送数据以及检测和尽可能地纠正可能发生在物理层中的错误的功能上和程序上的方法。L2通信媒体的示例是以太网。L3指的是OSI模型内的网络层。网络层可以提供用以在保持由更高层要求的服务质量的同时经由一个或多个网络将可变长度数据序列从源传输到目的地的功能上和程序上的方法。L3协议的示例是因特网协议(IP)。关于OSI模型的更多信息可以在1980年4月出版的IEEE Transactionson Communications, vol. 28, no. 4 中由 Hubret Zimmermann 所著的题为 “OSI Reference Model-the ISO Model of Architecture for Open Systems Interconnection,,的IEEE出版物中找到,将其通过引证结合于此,好像在本文中所完整阐述似的。通常,路由器14使用基于泛洪的路由协议来将拓扑信息通告给彼此,并且使由每个路由器所保存的路由拓扑数据库同步。如本文中所描述的,路由器14支持以本文所描述的方式已扩展的增强型链路状态协议(LSP),其中使用拓扑信息的接收路由器能够利用增强型链路状态协议控制通过发送路由器进行的基于泛洪的传输的平均速率和猝发速率。在一个示例中,定义能够由在泛洪区域10内已经使用的各种链路状态消息携带的新的、不透明类型、长度、值(TLV)。TLV可以包括用于携带允许路由器控制另一路由器将信息泛洪给邻接的平均速率的传输信用(transmission credit)的第一字段。此外,TLV可以包括用于携带发送路由器在每个连续数据包传输之间必须延迟的最小时间间隔(例如,微秒)的第二字段。这允许接收路由器控制发送路由器内的策略(Policer),从而以非常低的反向带宽消耗控制数据包猝发速率。通过实施这种机制,用于泛洪区域10内的基于泛洪的路由协议的链路状态消息可被实施为其中各个接收路由器14使用拓扑信息的速率最终控制通过网络系统的数据流的“拉”模式。此外,在2010年8月19日提交的由Katz等所著的题为 “FLOODING-BASED ROUTING PROTOCOL HAVING AVERAGE-RATE AND BURS T-RATE CONTROL” 的美国专利申请第61/375,166号中可以找到增强型链路状态路由协议的示例性细节,其全部内容结合于此作为参考。根据基于泛洪的协议,每个路由器14均保存内部链路状态数据库且输出链路状态消息以在整个泛洪区域10内传播全部链路状态。例如,泛洪区域10内的路由器14通常首先交换链路状态消息以建立邻接关系。例如,路由器14可以交换IS-IS HELLO协议数据单元(PDU)以与其它路由器建立邻接关系。此外,路由器14利用基于泛洪的链路状态消息以将由每个路由器所保存的路由拓扑数据库同步。每条链路状态消息通常在网络上被定期地恢复,并且通过接收路由器确认。例如,路由器14可以利用用于使它们的路由拓扑数据库同步的周期IS-IS链路状态PDU以及利用部分序列号数据包数据单元PDU (PSNP)和完整序列号PDU(CSNP)以确认收到信息。作为一个示例,网络12B内的路由器141通常与作为对等路由器的路由器14G和 14H建立分离的邻接。路由器14G-14I通过链路16定期地交换链路状态消息以确保路由器保存同步的链路状态数据库。例如,路由器14G、14H定期地向泛洪区域输出链路状态消息 18。在接收到链路状态消息18时,路由器141以诸如IS-IS PSNP或CSNP的确认链路状态消息20做出响应。当在广播网络12A内分布链路状态数据时,路由器14A-14F通过诸如交换式以太网媒体的多路访问媒体15将组播链路状态消息泛洪。继续上面的示例,响应于从路由器14G接收到的链路状态消息,路由器14E可以在多路访问媒体15上输出一条或多条组播链路状态消息22以将链路状态数据泛洪到多路访问媒体,并且从路由器14A-14D中的每一个接收确认24。在一个示例中,路由器14E定期地向多路访问媒体15输出链路状态消息22作为IS-IS链路状态PDU,并且以IS-IS CSNP形式接收来自路由器14A-14D中的每一个的确认24,以确认收到信息。这种相互作用继续,使得路由器14被同步为所有的路由器已经被通知到整个泛洪区域10的完整状态数据并且已将完整状态数据通知给他们的邻居路由器。在该处理期间,每个路由器14独立地且本地地确定需要保存在其内部链路状态数据库内的链路状态信息。根据各个确定,一旦路由器已可靠地将状态信息泛洪到其邻居路由器,那么路由器14 从其内部链路状态数据库独立地削减某些链路状态信息。以这种方式,内部链路状态数据库可以具有存储完整链路状态消息和部分链路状态消息的数据库条目,其中在部分链路状态消息中,消息的链路状态数据的一些或全部已被削减。此外,该技术允许路由器14将用于路由区域的全部状态数据恢复给新加入路由区域的、重新启动的、或者以其他方式需要泛洪区域10的完整状态的路由器。例如,该技术保证新的可利用的路由器14J经由基于泛洪的路由协议接收到先前在泛洪区域10内泛洪的所有链路状态信息,而不管其邻居路由器141已从它的链路状态数据库削减了链路状态消息的哪部分。即,邻居路由器141能够将传递泛洪区域10中的全部聚集状态(aggregate state)的链路状态消息17输出到新的路由器14J,可以要求新的路由器14J严格遵从基于泛洪的路由协议。然后,新的可利用的路由器14J同其它路由器14 一样能够选择性地确定要丢弃哪条状态信息。例如,在检测到新的可利用的路由器14J或需要路由器141向路由器14J泛洪链路状态数据的另一事件时,路由器141发起所有“所需的”部分链路状态消息的检索,使得可以从其它邻居路由器检索到相应的完整链路状态消息。此外,在检索削减的链路状态消息期间,路由器141可以利用链路状态协议的确认机制以从泛洪区域的其它路由器中选择性地检索削减的链路状态消息。例如,路由器141可以整理(formulate)并以一条或多条IS-IS PSNP的形式输出作为数据库同步消息的确认消息20,其中数据库同步消息指出用于所需的部分链路状态消息的标识符。在该示例中,路由器141形成PSNP以为所需的链路状态消息指定低于当前序列号的序列号,其中所需的链路状态消息在被邻近的路由器 14G、14H接收到时,通过邻近的路由器14G、14H触发链路状态消息的再泛洪。例如,路由器 141可以为所需的链路状态消息将PSNP中的序列号设定为零。作为另一示例,路由器141 可以以CSNP的形式输出描述路由器141的链路状态数据库的全部内容的确认消息20。在这种情况下,路由器141从CSNP去除链路状态消息的条目以指示路由器14G和14H将丢失的链路状态消息再泛洪到路由器14J。因此,确认消息20被用以触发对先前接收到的但是是削减的链路状态消息的另外的副本的获取,而非仅用作用于先前接收的链路状态消息的确认消息。如果路由器14G、14H具有类似削减的所需的链路状态消息,则路由器可以以确认消息的形式再次输出数据库同步消息以从它们的邻居路由器请求任何所需的链路状态消息。如果泛洪区域10内的任一路由器通过具有完整的链路状态数据库或不具有削减的链路状态消息而具有所需的链路状态消息,那么该路由器通过泛洪区域将所需的链路状态消息泛洪回到路由器141以进行处理和向新的可利用的路由器14J泛洪。在最坏的情况下, 可以通过整个路由区域10转发用于恢复链路状态消息的请求直到请求到达链路状态消息的发起者,其通过区域10再将请求的链路状态消息泛洪回,并且恢复处理终止,在恢复处理终止的点处泛洪区域内的中间路由器可以再次削减链路状态消息。在一些方面,可以以控制速率的方式执行将全部状态数据通过泛洪区域10恢复给新的可利用的路由器14J,该方式在路由器14A-14I临时恢复或泛洪状态数据时不会使路由器14A-14I过载。即,在一些情况下,每个路由器能够减少或甚至临时停止正在发送以将路由区域的状态数据恢复给新的可利用的路由器的基于泛洪的传输。以这种方式,即使在整个泛洪区域10恢复泛洪状态以支持新的可利用的路由器14J时的瞬时基础上,关于每个路由器14由它的部分链路状态数据库消耗的资源量(例如,内存占用量)是有限的。通过实施这种机制,用于泛洪区域10内的基于泛洪的路由协议的分配机制可以实施为其中负责为新的可利用的路由器14J进行恢复的各个路由器14A-14I最终控制状态信息流经网络的猝发速率和平均速率的“拉”模式。因此,根据本文中所描述的原理,基于泛洪的路由区域10内的每个路由器14A-14I可以单独地控制恢复先前削减的链路状态信息时所经历的资源冲突,因此信息可以根据基于泛洪协议的同步要求被最终泛洪到新的可利用的路由器 14J。图2是示出了根据本发明原理构造的示例路由器104的框图。路由器104可以例如代表图1的路由器14的任何一个。在图2示出的示例性实施方式中,路由器104包括使用网络链路112和113发送和接收数据包的一个或多个接口卡(IFC) 106。接口卡106通常经由多个物理接口端口耦接至网络链路112、113。通常,路由器104接收来自网络链路 112的入站数据包,确定所接收到的数据包的目的地,并且根据目的地通过网络链路113输出数据包。以这种方式,网络链路112、113提供用于传输数据包的L2通信媒体。网络链路 112、113中的任何一个可以是诸如以太网的多路访问媒体或诸如光学连接的点对点媒体。通常,路由器104具有提供控制平面103和数据平面105的控制单元108。控制平面103主要负责保存链路状态数据库(DB)IlO以反映泛洪区域的当前链路状态数据。例如,控制单元108为链路状态路由协议112的执行提供操作环境,其中路由器104使用链路状态路由协议112来与对等路由器进行通信以及定期地更新链路状态DB 110以准确地反映路由器104运作所在的泛洪区域(例如,图1的泛洪区域10)的链路状态数据。示例性链路状态路由协议包括路由和标签交换协议,例如IS-IS和0SPF。在一个示例中,链路状态数据库110被构造为存储链路状态消息(例如,OSPF LSA 或ISIS PDU)以及例如以每条链路状态消息为基础提供访问。在诸如OSPF的一些协议中, 链路状态路由协议112可以发起数据库交换过程以交换各条链路状态消息。在诸如IS-IS 的其它示例中,链路状态路由协议112可以通过输出将链路状态数据库110内的每条链路状态消息列出的CSNP来将其完整的链路状态DB 110定期地描述给它的邻居。在这种情况下,链路状态路由协议112可以整理CSPN以包括已被削减且当前不需要被恢复的部分链路状态消息的标识符,从而防止链路状态消息被其它路由器再泛洪。然而,链路状态路由协议 112可以整理CSPN以包括已被削减且当前需要被恢复的部分链路状态消息的标识符,从而通过泛洪区域中的一个或多个其它路由器触发链路状态消息的再泛洪。链路状态路由协议112可以保存链路状态DB 110以存储感兴趣的状态数据的完整链路状态消息和已削减链路状态的全部或部分的削减的链路状态消息。在另一情况下, 链路状态路由协议112操作链路状态DB以存储在泛洪区域内泛洪的每条链路状态消息的条目。对于完整的链路状态消息,每条对应的条目可以存储链路状态报头信息和来自消息的净荷的状态数据。对于削减的链路状态消息,在链路状态消息已泛洪到路由器的所有邻居之后,链路状态路由协议112指示链路状态DB 110削减(例如,删除)净荷数据的全部或部分。链路状态路由协议112将条目标记为存储不完整的链路状态数据,并且该消息被称为“部分”链路状态消息。链路状态路由协议112可以应用对由管理员或部署系统指定
11的策略进行定义的削减规则115,以识别链路状态DB 110内被选择为要削减的链路状态消息。削减规则115可以指定用于匹配的条件或布尔逻辑算符,例如,链路状态消息的报头信息的一部分、链路状态消息的净荷内携带的链路状态数据的一部分、接收链路状态消息所经由的接口或链路、路由器104的当前资源容量(例如,存储量或可利用的存储空间)的阈值或其它标准。根据链路状态DB 110,转发元件114保存与网络目的地相关联的转发信息116或具有特定下一跳和路由器108的输出接口卡106的对应接口端口的其它键控信息。控制平面103通常处理链路状态DB 110以执行路径选择,并且基于所选择的路径生成转发信息 116。以这种方式,转发信息可以编入数据平面105中。控制平面103可以以表格、列表、根树或其它数据结构的形式生成转发信息116。美国专利第7,184,437号提供了关于使用用于路由方案的根树的路由器的示例性实施方式的细节,其全部内容结合于此作为参考。当转发临时数据包时,转发元件114基于数据包的报头内的键控信息检查转发信息116以最终选择数据包要转发至的下一跳和输出接口。基于选择,转发元件114可以将数据包直接输出到输出接口 113,或在高端路由器的多级交换结构的情况下,可以将数据包转发至下一级以交换至正确的输出接口。题为“MULTI-CHASSIS ROUTER WITH MULTIPLEXED OPTICAL INTERCONNECTS”的美国专利申请第2008/0044181号描述了多级交换结构(例如, 3级Clos交换结构)用作高端转发平面来在多机架路由器的多个路由节点之间中继数据包的多机架路由器。美国专利申请第2008/0044181号的全部内容结合于此作为参考。该公开的技术不限于这种结构。在其它实施方式中,可以以各种方式构造路由器104。在一个实施方式中,例如,控制平面103和数据平面105的全部或部分可以复制和直接结合在IFC 106 内。如本文中所描述的,链路状态路由协议112是已经扩展为提供速率被控制的状态恢复的基于泛洪的通信协议。控制平面103包括用于存储由链路状态路由协议112所保存的各个路由邻接的链路状态消息的输出队列120。例如,输出队列120A可以存储第一路由邻接的出站链路状态消息,而输出队列120B可以存储第二路由邻接的出站链路状态消息。 当使输出链路状态消息离队以经由转发元件114传输时,调度器(scheduler) 122基于猝发速率流控制(例如,最小数据包间隔)以及在经由点对点通信媒体邻接是可到达的情况下为邻接指定的平均速率流控制(例如,信用)来控制链路状态消息的传输。数据平面105的转发元件114将入站链路状态消息117通信至入站队列119以投递至链路状态路由协议112。链路状态路由协议112处理入站链路状态消息以通过产生链路状态消息并经由输出队列120将链路状态消息传输来向其他邻居路由器泛洪每条入站链路状态消息。在从所有邻居接收到给定链路状态消息的确认消息时,链路状态路由协议112应用削减规则以确定链路状态消息是否要如本文中所述的从链路状态DB 110中削减。在处理入站链路状态消息时,链路状态路由协议112还更新邻接数据112以保存与另一路由器建立的每个邻接的条目。例如,邻接数据111内的每个条目指出邻接的标识符(例如,IP地址)、由其它路由器为邻接分配的当前信用、由其它路由器为邻接设定的最小数据包间隔以及可到达邻接所经由的L2通信媒体的类型(即,点对点或多路访问)。链路状态路由协议112在接收到给定邻接的入站链路状态消息(例如,IS-IS HELL0、PSNP或CSNP)时更新该邻接的猝发速率和平均速率流控制数据。在这种情况下,链路状态路由协议 112分析由唯一 TLV携带的信用分配和当前的最小数据包间隔,并且更新邻接数据111,从而调节调度器122传输该邻接的输出链路状态消息的速率。可以在邻接数据111内对通过相同的L2通信媒体(S卩,多路访问媒体)可达到的邻接做标记以对邻接记录进行分组。当该组的任一输出链路状态消息离队时,调度器122 基于由任一邻接指定的最长的最小时间间隔控制传输,而不管用于邻接的任何当前传输信用。调度器122保持用于每个邻接或多路访问媒体情况下邻接组的计时器124,并且在已满足给定邻接的最小数据包间隔时仅输出该邻接的链路状态消息。图3是更详细地示出链路状态路由协议112的示例实施方式的框图。在该示例中,链路状态路由协议112包括状态管理器130,其根据规定的状态机运作来处理链路状态消息,并且根据链路状态协议的要求定期地使链路状态DB 110同步到邻居路由器。此外, 如图3所示,状态管理器130包括削减模块132,其在链路状态消息已泛洪到路由器的所有邻居之后削减条目的净荷数据的全部或部分。在削减之后,链路状态路由协议112将条目标记为存储不完整的链路状态数据。削减模块132应用对由管理员或部署系统指定的策略进行定义的削减规则115, 以识别链路状态DB 110内被选择为进行削减的链路状态消息。削减规则115可以指定条件或布尔逻辑算符,以匹配链路状态消息的报头信息的一部分、链路状态消息的净荷内携带的链路状态数据的一部分、接收链路状态消息所经由的接口或链路、路由器104的当前资源容量(例如,存储量或可利用的存储空间)的阈值或其它标准。通常,状态管理器130保存链路状态数据库110以存储用于泛洪区域的全部状态的每条链路状态消息的条目。即,在接收到新的链路状态消息时,状态管理器130可以存储包括报头信息以及来自消息的净荷的状态数据的完整链路状态消息。一旦新的链路状态信息被泛洪到邻居路由器且被确认,则削减模块132应用削减规则115(例如,根据指定的时间间隔),并且可以从链路状态数据库110中削减链路状态消息。例如,削减模块132可以从条目中删除净荷数据,而不是从链路状态消息的条目中去除报头信息的一些或全部,而留下的可被称为“部分”链路状态消息。以这种方式,泛洪区域的状态数据的完整集合内的每条链路状态消息的条目可以保留在链路状态数据库110内,但是与链路状态数据库相关联的存储量和存储需求会减少。此外,在重建模块134需要恢复泛洪区域的全部状态数据的情况下(例如,以传输至新的可利用的路由器),重建模块134通过向邻居路由器请求链路状态消息来重建链路状态数据库110内不完整的链路状态消息的状态数据。以这种方式,新的可利用的路由器能够经由基于泛洪的路由协议接收之前在路由区域内泛洪的所有链路状态信息,而不管链路状态信息的哪部分可能已经从链路状态数据库110中削减。如以下详细描述的,在一个实施方式中,重建模块134利用提取定时器136来触发从泛洪区域内的邻居路由器提取当前需要的任何不完整的(即,部分)链路状态信息。例如,如果在泛洪区域内发生任何需要路由器104将链路状态消息发送到泛洪区域内的另一路由器的动作,则重建模块134确定链路状态消息是否是链路状态数据库110内的当前部分链路状态消息(即,经削减的)。如果是,那么状态管理器130设定标志(例如,“需要” 位)来将部分链路状态消息标记为已被削减的链路状态而需要被恢复。在提取计时器136终止时,重建模块134触发所有“所需的”部分链路状态消息的检索,使得可以从其它邻居路由器检索到相应的完整链路状态消息。如果那些路由器具有类似削减的所需链路状态消息,那么路由器再向它们的邻居路由器请求链路状态消息。如果任何邻居通过具有完整的链路状态数据库或不具有削减的链路状态消息而具有所需的链路状态消息,那么路由器通过泛洪区域将所需的链路状态消息泛洪回到路由器104,以进行处理并潜在地泛洪到新的可利用的路由器。在该重建和恢复过程中,泛洪区域内的路由器根据本文中所指定的猝发速率和平均速率控制运作。例如,向路由器104发送链路状态消息的任何路由器根据由路由器104 指定的猝发速率和平均速率流控制设定传输这些链路状态消息。此外,路由器104根据由那些路由器中的每一个指定的猝发速率和平均速率流控制设定再将已恢复的链路状态消息泛洪到邻居路由器。该处理继续直到已恢复的链路状态消息到达新的可利用的路由器。 以这种方式,该技术允许基于泛洪的路由协议通信机制恢复链路状态数据,而作为其中接收数据的路由器对其通过路由邻接接收数据的速率具有良好的微控制的拉模式。结果,即使在整个泛洪区域内恢复泛洪状态以支持一个或多个新开启的路由器时的瞬时基础上,也可以限制关于路由器的部分链路状态数据库所消耗的资源量(例如,内存占用量)。削减量 (部分和整体)越大,为这种事件所产生的通信量越高。在一些情况下,当首先是路由器变得可利用时,对于要被初始化的路由器,这是相对昂贵的操作,这是因为每条链路状态消息需要尽可能地从发起者恢复。然而,这与泛洪影响完全停留于新路由器的直接邻居以及在每个路由器中存储整个泛洪区域的完整链路状态数据的潜在的巨大负担的传统基于泛洪的协议IS-IS的情况是有差异的。图4是链路状态数据库110内的单条链路状态消息的条目140的示例。在该示例中,存储在数据库中的链路状态消息被示为具有报头145以及链路状态数据的净荷154(可选的)的IS-IS链路状态协议数据单元(PDU)。报头145包括唯一识别泛洪区域内的链路状态消息的链路状态PDU(LSP)标识符 142。可以将LSP ID 142的形式编排成指示链路状态消息的拥有者(即,发起路由器)以及链路状态消息本身。此外,报头145包括序列号143、剩余使用期144、SRM标志146、需要位148、不完整位150以及校验和152。剩余使用期144表示开始于所定义的最大使用期(例如,1200 秒)而消耗至零的链路状态消息的使用期,,在零点上不再认为净荷是泛洪区域的当前链路状态,并且可以从链路状态数据库中完全去除。序列号143表示链路状态消息的当前版本。例如,发信路由器通常用序列号标记链路状态消息以将老副本与新副本区分开。路由器无论何时产生新的链路状态消息来替代过时的版本,链路状态消息的序列号都增加一。现有链路状态消息的新版本通常在路由器的局部环境中发生的变化需要报告给泛洪区域的其他部分时发布。IS-IS路由器定期地发布具有与先前链路状态消息相同的信息的新的链路状态消息以在它终止前恢复链路状态消息。发送路由消息(SRM)标志146是路由器104为链路状态数据库110内的每条链路状态消息定义的内部标志,其中对于每条链路状态消息,条目包含用于路由器的每个接口的SRM标志。当链路状态消息需要在特定链路上发送时,状态管理器130设定用于那个链路的接口的相应SRM标志146。在开始链路状态数据库110的下一扫描时,具有一个或多个 SRM标志146的任何链路状态消息的条目触发状态管理器130整理相应的链路状态消息并在设定有SRM标志的每条链路上输出该相应的链路状态消息。发送序列号(SSN)标志147是用在数据库同步过程中的附加内部标志。如同SRM 标志146 —样,每条链路状态消息对于路由器的IS-IS接口中的每一个具有一个SSN标志。 当设定SSN标志时,其表示链路状态消息要描述在经由关联的接口所发送的PSNP中以执行与用于特定的链路状态消息的链路状态请求类似的功能。当发送描述链路状态消息的PSNP 时清除SSN标志。由削减模块132控制不完整位150以指示净荷IM的全部或部分是否已从数据库条目中清除并去除。由重建模块134控制需要位148以响应于需要恢复泛洪区域的状态数据的事件指示当前是否需要用于部分链路状态消息的完整状态数据。校验和152用于保持存储和泛洪期间链路状态消息的完整性。校验和的值由发信路由器插入到链路状态消息中,并且由接收副本的任一路由器验证。如果校验和与为链路状态消息计算的值不匹配,即,链路状态消息未通过校验和的确认,那么认为链路状态消息被破坏。净荷IM表示由链路状态消息携带的状态数据,并且可以根据削减规则115削减净荷的全部或部分。净荷巧4通常采用一个或多个TLV的形式,每个TLV均可以独立地从数据库条目中被整体削减或部分削减。尽管用于示例性目的而没有示出,但是条目140可以存储由链路状态消息携带的或与之相关联的其它信息。图5是示出了路由器在从用于基于泛洪的路由协议的其内部链路状态数据库处理和削减链路状态消息时的示例性操作的流程图。尽管关于路由器104进行了描述,但是可以在利用基于泛洪的协议参与状态数据的交换的任何路由器或其它设备(例如,图1的路由器14中的任一个)中可以实施该示例性操作。首先,路由器104与其邻居路由器中的每一个交换会话建立消息以建立用于基于泛洪的路由协议的相应邻接(160)。例如,路由器可以交换IS-ISHELLO PDU以创建邻接。 这时,路由器可以在其传输的IS-IS HELLO PDU内包括TLV以指定初始的猝发速率和平均速率流控制参数,以在发送其携带数据的路由协议数据包时被其它路由器使用。会话建立消息中的猝发速率和平均速率控制信息用于建立用于控制初始传输和来自邻居的状态数据的恢复的初始信用和数据包间隔。在建立基于泛洪的路由协议邻接之后,路由器利用泛洪的链路状态消息定期地同步它们的路由拓扑数据库。在该处理期间,路由器104定期地整理一个或多个链路状态消息(诸如IS-IS链路状态PDU)并将其排队以进行传输、以将链路状态消息恢复给其它路由器(16 。这时,路由器104根据从其它路由器接收到的当期猝发速率和平均速率流控制参数以控制速率的方式传输出站链路状态消息。响应,路由器104接收确认接收到被泛洪至邻接的链路状态更新消息的链路状态确认消息(166)。例如,路由器104可以接收部分序列号PDU或完整序列号PDU以确认信息的接收。这时,链路状态路由协议112分析每个PDU以提取传达当前最小数据包间隔和由其它路由器(即,从其接收特定确认的路由器)分配给邻接的任何信用的TLV。以这种方11/12 页
式,该技术允许基于泛洪的路由协议通信机制更可能地运作为其中接收数据的路由器对其通过路由邻接接收数据的速率具有良好的微控制的基于拉的模式。在接收到给定链路状态消息条目140的所有确认(168的是)时,削减模块132应用削减规则115以确定是否要从链路状态DB 110中削减链路状态消息的净荷154的全部或部分(170)。如果是,那么削减模块132根据削减规则115去除净荷154的全部或部分 (174)。图6是示出了路由器104响应于对请求路由器104恢复链路状态数据库110内先前削减的链路状态数据以将链路状态数据的整个和完整版本泛洪给泛洪区域(180)的事件进行的识别的示例性操作的流程图。作为这种事件的一个示例,状态管理器130可以确定已经从另一路由器接收到入站LSP,其中入站LSP与链路状态数据库110内的条目140匹配,但是具有比条目内存储的序列号更旧的序列号。类似地,状态管理器130可以确定已接收到用于LSP的PSNP确认,但是指出用于LSP的序列号比链路状态数据库110中的序列号更旧。作为另一示例,状态管理器可以确定已接收到用于邻接的CNSP,但是指定的LSP没有列在CNSP中。在这些情况的每一种情况下,状态管理器130确定链路状态消息的当前版本需要被泛洪至触发事件的接口(180的是)。作为触发事件的另一示例,状态管理器130可以确定在接口上检测到新的点对点邻接并且泛洪区域的所有状态数据(即,所有LSP)需要被泛洪至邻接。响应于触发事件,状态管理器130确定需要被泛洪的每个LSP是否如链路状态数据库110的相应条目140内的不完整位150的状态所指示的当前已被削减(181)。如果要被泛洪的LSP已被削减而使得当前仅存储部分链路状态消息,那么重建模块134发起用于恢复链路状态消息的数据库同步消息的输出(183),而不是设定SRM标志146来触发链路状态消息的输出。例如,重建模块可以将条目140内的序列号143设定为零,设定需要位148, 为该LSP在所有接口上设定SSN标志147,并且启动提取计时器136 (182)。SSN标志147的设定可以使状态机130整理并输出一个或多个用于部分链路状态消息的PSNP,其中PSNP为 LSP指定序列号零。作为另一示例,通过整理和输出已去除用于部分链路状态消息的条目的 CSNP, SSN标志147的设定可以使状态机130在下一数据库扫描期间以不同的方式运作。在接收到入站链路状态消息(184)时,路由器104根据链路状态协议处理每条消息以更新链路状态数据库110。如果链路状态消息包括之前未被路由器104注意到的链路状态消息标识符142,那么状态管理器130在链路状态数据库110内创建新的条目140,并且存储泛洪的消息。然而,如果入站链路状态消息是所需要的LSP的副本,并且已经响应于由路由器104发送的一个PSNP被接收,那么接收到的LSP的LSP标识符与存储部分LSP的现有条目不匹配,并且接收到的链路状态消息的序列号超过条目的已被设定为零的序列号 143。结果,状态管理器130更新条目的净荷154以包括所提取的链路状态消息的状态数据的完整版本。这时,状态管理器130重置条目的需要位148以指示链路状态信息已被接收并且重置不完整的位150以指示条目现在存储LSP的状态数据的全部。状态管理器130设定用于新创建的或新更新的条目的SRM标志146以在下一数据库扫描期间触发链路状态消息的泛洪(186)。这时,路由器104再次根据与特定邻接相关联的当前猝发速率和平均速率流控制参数以控制速率的方式传输出站链路状态消息。在提取定时器136终止的情况下(187),重建模块134扫描链路状态拓扑数据库
16110以识别仍设定有需要位148的部分LSP (189)。如果附加的部分LSP存在且被指定为需要进行恢复(191),那么重建模块重新启动提取计时器(193),并且设定SSN标志147以触发另一批PSNP的输出以请求所需的链路状态消息(183)。提取定时器136可以被设定为足够高的值以避免不必要的PSNP产生,从而为穿过网络并返回的潜在的最大距离行程留出充足的时间,但是足够低使得在丢失PSNP的情况下相当快地复原。该处理继续直到所有所需的但被削减的链路状态消息已由链路状态路由协议112 接收,并且已为需要的邻接恢复(191的否)。以这种方式,所有“所需的”部分链路状态消息将被其它邻近的路由器检索到的相应的完整链路状态消息替代。如果那些路由器具有类似被削减的所需的链路状态消息,那么路由器再向它们的邻居路由器请求链路状态消息。一旦已接收到所需要的链路状态消息,向邻接泛洪并已被确认,则削减模块132会再次如参照图5的流程图所描述的削减链路状态消息。已经描述了本发明的多个实施方式。这些以及其它实施方式落在所附权利要求的范围内。
权利要求
1.一种方法,包括根据基于泛洪的链路状态路由协议通过层二(U)通信媒体在第一路由器与第二路由器之间建立链路状态路由邻接;通过所述第一路由器根据所述链路状态路由协议接收链路状态消息,其中所述链路状态消息包含用于所述链路状态路由协议的泛洪区域的链路状态数据;将所述链路状态消息存储到所述第一路由器的数据库中;将所述链路状态消息从所述第一路由器泛洪到所述泛洪区域中的至少第三路由器;以及在从所述第三路由器接收到确认之后,从存储在所述数据库内的所述链路状态消息削减至少部分所述链路状态数据,而不是删除整个所述链路状态消息。
2.根据权利要求1所述的方法,还包括识别要求所述第一路由器将含有削减的链路状态数据的所述链路状态消息泛洪到所述泛洪区域的事件;从所述第一路由器输出数据库同步消息,以指示所述第二路由器将所述链路状态消息再泛洪到所述第一路由器;从所述第二路由器接收所述链路状态消息的副本,其中所述链路状态消息的所述副本包含所述链路状态数据;以及将所述链路状态消息的所述副本从所述第一路由器泛洪到所述泛洪区域。
3.根据权利要求2所述的方法,还包括在接收到所述链路状态消息的所述副本之后,更新所述数据库以存储复制的所述链路状态消息;以及在接收到所述链路状态消息的所述副本的确认之后,从存储在所述数据库内的所述链路状态消息的所述副本削减至少部分所述链路状态数据。
4.根据权利要求2所述的方法,其中,输出数据库同步消息包括输出指定所述链路状态消息的部分序列号数据包数据单元(PSNP),其中所述第一路由器形成PNSP以为所述链路状态消息指定低于与所述链路状态消息相关联的当前序列号的序列号,以指示所述第二路由器将所述链路状态消息再泛洪到所述第一路由器。
5.根据权利要求2所述的方法,其中,输出数据库同步消息包括向所述第二路由器输出描述所述数据库的全部内容的完整序列号数据包数据单元(CSNP),其中,所述第一路由器从CSNP去除所述链路状态消息的条目以指示所述第二路由器将所述链路状态消息再泛洪到所述第一路由器。
6.根据权利要求3所述的方法,其中,将所述链路状态消息存储到所述第一路由器的数据库包括创建条目以存储所述链路状态消息的报头的至少一部分和包含所述链路状态数据的所述链路状态消息的净荷, 以及其中,从存储在所述数据库内的所述链路状态消息削减至少部分所述链路状态数据包括从所述链路状态数据库内的所述条目去除所述净荷的至少部分所述链路状态数据,而不是从所述条目中删除所述报头。
7.根据权利要求6所述的方法,其中,更新所述数据库以存储复制的所述链路状态消息包括将来自所述链路状态消息的所述副本的所述链路状态数据重写入存储在所述数据库的所述条目内的所述净荷。
8.根据权利要求2所述的方法,还包括在识别到要求所述第一路由器向所述泛洪区域泛洪所述链路状态消息的事件时,更新所述数据库以将所述链路状态消息的所述链路状态数据标记为需要恢复; 启动提取计时器以触发所述链路状态数据的检索;以及根据链路状态时间定期地从所述第一路由器输出所述数据库同步消息直至接收到所述链路状态消息的所述副本。
9.根据权利要求2所述的方法,其中,在所述第一路由器与所述第二路由器之间建立所述链路状态路由邻接包括向所述第二路由器发送指定所述路由邻接的最小数据包间隔的消息;以及其中,从所述第二路由器接收所述链路状态消息的所述副本包括通过L2通信媒体接收从所述第二路由器向所述第一路由器泛洪的多条链路状态消息,其中以至少保持每条所述链路状态消息间的指定的最小数据包间隔的速率接收泛洪的链路状态消息。
10.根据权利要求9所述的方法,其中,接收从所述第二路由器泛洪的多条所述链路状态消息包括通过所述第一路由器接收多条所述链路状态消息的子集直至达到由所述第一路由器分配的数据包信用;使用所述第一路由器为所述邻接分配附加数据包信用; 将所述附加的数据包信用通信给所述第二路由器;以及接收多条所述链路状态消息的剩余部分。
11.根据权利要求10所述的方法,其中,所述数据包信用指定为所述路由协议邻接分配的多个数据包或多个字节中的一个。
12.根据权利要求9所述的方法,其中,向所述泛洪区域泛洪所述链路状态消息的所述副本包括从所述第一路由器向所述第三路由器泛洪所述链路状态消息的所述副本作为多条所述链路状态消息中的一条所述链路状态消息,以及其中,当泛洪多条所述链路状态消息满足或超过由所述第三路由器指定的最小数据包间隔时,所述第一路由器保持多条所述链路状态消息中的各条所述链路状态消息间的间隔。
13.根据权利要求12所述的方法,其中,从所述第一路由器向所述第三路由器泛洪所述链路状态消息的所述副本而作为多条所述链路状态消息中的一条所述链路状态消息包括,使用所述第一路由器泛洪多条所述链路状态消息的子集直至达到分配的数据包信用以及在泛洪多条所述链路状态消息的剩余部分之前等待直到从所述第三路由器接收到附加信用。
14.根据权利要求13所述的方法,其中,在所述第一路由器与所述第二路由器之间建立所述链路状态路由邻接包括交换包括用以指定所述邻接的最小数据包间隔的第一子字段和用以指定分配给所述邻接的数据包信用的第二子字段的类型、长度以及值(TLV)。
15.根据权利要求1所述的方法,其中,从所述链路状态消息削减至少部分所述链路状态数据包括对所述链路状态消息的净荷应用一组削减规则并削减满足由所述规则指定的标准的净荷的一个或多个部分。
16.一种路由设备,包括网络接口,用以通过层二(U)通信媒体发送和接收数据包;控制单元,耦接至所述网络接口 ;基于泛洪的链路状态路由协议,在所述控制单元的处理器上执行,其中所述链路状态路由协议通过所述层二(U)通信媒体与对等路由器建立邻接;以及数据库,具有存储用于所述链路状态路由协议的泛洪区域的多条链路状态消息的条目,其中所述数据库中的至少一个所述条目存储具有报头部分和链路状态数据已被削减的净荷的部分链路状态消息。
17.根据权利要求16所述的路由设备,其中,所述链路状态路由协议从所述泛洪区域的第二路由器接收所述链路状态消息,以及其中,所述链路状态路由协议将所述链路状态消息存储到所述第一路由器的所述数据库的所述条目,将所述链路状态消息泛洪到所述泛洪区域的第三路由器,并且在接收到来自所述第三路由器的确认之后,从存储在所述数据库内的所述链路状态消息中的至少一条所述链路状态消息削减至少部分所述链路状态数据而不删除整个所述链路状态消息,以形成所述部分链路状态消息。
18.根据权利要求16所述的路由设备,还包括一组削减规则,指定用于识别要从所述数据库削减的链路状态数据的标准;以及在所述控制单元上执行的削减模块,对所述数据库内的所述条目应用所述削减规则, 并且从存储在所述数据库内且满足标准的任一条所述链路状态消息中削减至少部分所述链路状态数据,而不是从所述条目中删除所述链路状态消息的所述报头部分。
19.根据权利要求16所述的路由设备,还包括重建模块,在所述控制单元上执行,以确认要求从所述数据库削减的至少一些所述链路状态数据需要被泛洪至所述泛洪区域的事件,其中,所述重建模块输出对指示所述第二路由器将所述部分链路状态消息的完整版本再泛洪进行描述的数据库同步消息。
20.根据权利要求19所述的路由设备,其中,所述数据库同步消息包括为所述部分链路状态消息指定标识符的部分序列号数据包数据单元(PSNP)和为所述链路状态消息指定低于记录在所述数据库内用于所述部分链路消息的当前序列号的序列号,以指示所述第二路由器再泛洪所述部分链路状态消息的完整版本。
21.根据权利要求19所述的路由设备,其中,所述数据库同步消息包括对所述第二路由器的所述数据库的全部内容进行描述的完整序列号数据包数据单元(CSNP),其中所述第一路由器从CSNP去除所述链路状态消息的条目以指示所述第二路由器再泛洪所述部分链路状态消息的完整版本。
22.根据权利要求19所述的路由设备,其中,在接收到由所述第二路由器再泛洪的所述链路状态消息的完整版本时,所述链路状态路由协议向所述泛洪区域泛洪所述链路状态消息。
23.根据权利要求19所述的路由设备,还包括用于触发削减的链路状态数据的检索的提取计时器,其中,所述数据库的每个所述条目包括用于将所述链路状态数据标记为需要恢复的标志,以及其中,在识别到所述事件时,所述重建模块更新所述数据库以将所述部分链路状态消息的所述链路状态数据标记为需要恢复,启动提取,并且根据链路状态时间定期地从所述第一路由器输出所述数据库同步消息直至接收到所述链路状态消息的所述副本。
24.根据权利要求16所述的路由设备,还包括数据库,存储由所述泛洪区域内的对等路由器指定的最小数据包间隔;出站数据包队列,存储由所述链路状态路由协议产生的多条链路状态消息以通过所述 L2通信媒体泛洪到所述对等路由器;以及调度器,使所述链路状态消息从所述出站数据包队列离队,并且将每条所述链路状态消息泛洪到所述L2通信媒体,其中,在将多条所述链路状态消息泛洪到所述L2通信媒体时,所述调度器至少保持多条所述链路状态消息中的各条间的指定最小数据包间隔。
25.根据权利要求M所述的路由设备,其中,所述数据库包括用于所述对等路由器的记录,每条所述记录指定由各个路由器指定的最小数据包间隔,以将所述链路状态消息泛洪到所述路由器,其中,当所述L2通信媒体包括点对点通信媒体时,所述调度器运行在所述调度器以连续链路状态消息间的时间间隔将多条所述链路状态消息泛洪到所述L2通信媒体的第一模式下,其中所述时间间隔超出由对等路由器指定的所述最小数据包间隔,以及其中,当所述L2通信媒体包括多路访问通信媒体时,所述调度器运行在第二模式下, 其中所述调度器(a)通过所述L2通信媒体访问所述数据库以识别由具有邻接关系的所述多个路由器中的任一个指定的最长的最小数据包间隔,以及(b)以连续链路状态消息间的时间间隔将多条所述链路状态消息泛洪到所述L2通信媒体,其中所述时间间隔超出为多个所述路由器所识别的最小数据包间隔。
全文摘要
记载了一种增强型基于泛洪的链路状态路由协议,其提供链路状态数据的削减以及需要时从泛洪区域的其它路由器提供削减的链路状态数据的速率控制恢复。路由设备包括通过层二(L2)通信媒体发送和接收数据包的网络接口。路由设备包括耦接至网络接口的控制单元,以及在控制单元的处理器上执行的基于泛洪的链路状态路由协议。链路状态路由协议与对等路由器建立邻接关系。路由设备的数据库包括存储用于链路状态路由协议的泛洪区域的多条链路状态消息的条目,其中,数据库中的至少一个条目存储具有报头部分和含有削减的链路状态数据的净荷的部分链路状态消息。
文档编号H04L12/56GK102387065SQ20111024023
公开日2012年3月21日 申请日期2011年8月19日 优先权日2010年8月19日
发明者戴维·M·卡特兹, 戴维·沃德 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1