一种边界网关协议讲者受控失效切换的恢复方法

文档序号:6123081阅读:209来源:国知局
专利名称:一种边界网关协议讲者受控失效切换的恢复方法
技术领域
本发明总体上涉及从网络部件上BGP讲者的受控失效切换中恢复。
背景技术
可以实现在该部分中描述的方法,但并不一定是先前已经设想出或者 实现了的方法。因此,除非在此另有说明,否则在此描述的方法对于本申 请中的权利要求而言不是现有技术,并且也不因为包含于此而承认是现有 技术。
边界网关协议(BGP)是用于自治系统间路由选择的路径矢量路由协 议。BGP使能的网络部件(BGP主机或对等方)的功能是与其它BGP使 能的网络部件交换网络可达性信息。最一般实现的BGP版本是BGP—4, BGP—4在FC/777 (由因特网工程任务组(IETF)在1995年3月出版) 中定义。
为了交换路由信息,两个BGP主机首先通过交换BGP OPEN消息来 建立BGP对等会话。这些BGP主机然后交换它们全部路由表。在这个初 始交换之后,每个BGP主机在一个或更多BGP UPDATE消息中仅向它的 一个或多个BGP对等方为新的、更改的和不可获得的或撤销的路由发送增 量更新。路由被定义为将网络目的地与到该目的地的网络路径属性组合成 对的信息单元。该网络路径的属性特别包括沿该路径的计算机系统网络地 址(还称作地址前缀或仅称作前缀)。
BGP主机存储路由选择信息库(RIB)中BGP主机已知的路由的信 息。根据BGP的特定软件实现,可以由一个或更多路由表来代表RIB。当 多个路由表代表RIB时,这些路由表可以是存储在相同物理存储空间中的 信息的逻辑子集,或者这些路由表可以存储在物理上分隔的存储空间中。
随着网络渐渐变得更加复杂从而由特定网络部件维护的BGP路由数目增加,BGP主机装置或BGP主机装置上执行的BGP处理变得不起作用的 结果变得更加严峻。例如,在一些场景中,当BGP主机失效时,该BGP 主机丢失所有由失效BGP主机维护的路由。因此,失效BGP主机的恢复 可能需要重传大量来自其它BGP主机的路由信息,并且由恢复的BGP主 机重新计算大量网络可达性信息。在重传的期间,失效的BGP主机不能路 由网络业务。所以,网络设备的供应商和它们的客户希望以高可用性方式 来配置BGP。
以高可用性方式配置BGP的一种方法称作"满状态切换器"或 SSO。 SSO典型地由具有双路由处理器的网络部件来实现,每个路由处理 器可以容宿(host)不同软件应用的独立但重复的实例。认为一个路由处 理器是在用的(Active)而认为另一个是备用的(Standby)。在SSO的一 个实现中,进程(process)或"讲者"从在用BGP讲者到备用BGP讲者 周期地传递(在称作"检查点"的处理中)来自一个或多个路由表的大量 数据副本。以这种方式,当该在用BGP讲者变得不起作用时,备用BGP 讲者可以使用与在用BGP讲者先前使用的路由相同的路由来工作。因此, 在备用BGP讲者可以开始处理BGP UPDATE消息或执行其它实质BGP功 能之前,必须传递所有由在用BGP讲者积累的数据到备用BGP讲者。
然而,这个大批数据传递方法效率低且不随在用BGP讲者维护的路由 量按比例增加。例如,为了进程间通信的目的,必须转换传递的数据结构 为消息。所以,不得不平面化所有数据结构,即,不能以指针的形式发送 数据结构中存在的指针。此外,由于数据结构在软件版本间变化,所以新 消息和转换功能对于提供不同版本间的SSO支持是必需的。
一些BGP SSO的实现试图通过如下方式来限制单次从在用BGP讲者 向备用BGP讲者传递的数据量 一旦在用BGP讲者发生改变,就从在用 BGP讲者向备用BGP讲者传递指示数据,被传递的指示数据指示对在用 BGP讲者进行的改变。然而,由于必须与在用BGP讲者的RIB同步更新 备用BGP讲者的RIB,所以这样的方法在更新在用BGP讲者的RIB中需 要大量开销。
以高可用性方式设置BGP的一种其它方法称作"平稳重启"。平稳重启方法例如包括两个不同的BGP主机,下文指示这两个BGP主机为主机 A和主机B。根据平稳重启方法,如果主机A确定主机B可能已经变得不 起作用了,那么主机A启动第一定时器,该第一定时器反映在主机A断定 主机B变得不起作用之前主机A必须在此时间内从主机B接收通信的时 间量。如果在第一定时器到期之前主机A没有接收到来自主机B的通信, 那么主机A启动第二定时器,该第二定时器反映在此时间内主机B必须向 主机A发送所有BGP UPDATE消息的时间量。在另一方面,如果在第一 定时器到期之前主机A没有接收到来自主机B的通信,那么主机A更新 其维护的RIB来反映主机B无法到达。
遗憾的是,由于每个BGP讲者通过交换BGP UPDATE消息更新RIB 包括的时间,在主机A和主机B之一恢复在线之后更新主机A和主机B 两者之前平稳重启方法需要几分钟或更多。此外,由于如果主机B故障那 么主机B不能与主机A通信任何BGP UPDATE消息,所以可能主机A不 会被通知网络中的拓扑变化。
因此,对于从网络部件上BGP讲者失效切换恢复的改进技术存在明确 的需求,该改进技术不经历上文讨论的劣势。


本发明通过在附图中的图所示的实施例进行举例说明,但并不用于限 制,并且其中同样的附图标记是指同一部件;其中
图1是说明可以用于实现实施例的网络部件概览的框图2是说明由实施例执行的功能性步骤的流程图3是根据几个实施例的传递路由选择数据的不同方式的图示;并且
图4是说明在其上可以实现实施例的计算机系统的框图。
具体实施例方式
为了说明的目的,在下列描述中,为了提供对本发明的全面理解提出 了许多具体细节。然而,显然地可以不带有这些具体细节来执行本发明。
在其它情况中,以框图形式示出已知结构和装置以便避免不必要的使本发明变得晦涩。
功能性概览
这些实施例至少部分地在下列认同(recognition)下工作当BGP的 失效切换是受控事件的结果时,可以减少从边界网关协议(BGP)讲者的 失效切换恢复所需的时间量。受控事件涉及需要关闭BGP讲者的任何由用 户发起的事件,该受控事件包括但不局限于硬件升级、软件升级或开启需 要重启由BGP讲者维护的BGP会话的特征。这些实施例提供从BGP讲者 的受控失效切换恢复的机制。这样的恢复可以由用户通过如下方式执行 向网络部件发送命令来中止向网络部件传送BGP消息;向备用BGP讲者 传递在用BGP讲者的BGP状态和传送状态;指导备用BGP讲者变为在用 BGP讲者;且其后继续向网络部件传送BGP消息。以这种方式,可以按 受控方式关闭在用BGP讲者,且备用BGP讲者可以与在用BGP讲者同 步,同时最小化网络部件不处理来自对等方的BGP消息的时间。
更具体地,在一个实施例中,用户可以向网络部件发送请求来从第一 BGP讲者到第二 BGP讲者转换网络部件的在用BGP讲者的指定。响应于 该接收请求,该网络部件中止传送BGP的操作。例如,TCP可以用于传 送,但网络部件可以决定不提高向对等方发送TCP段的窗口大小。在对等 方向网络部件发送了大小达到由窗口大小指示的数据量之后,在网络部件 告知正的窗口大小之前,对等方将不向网络单元发送另外的TCP段。以这 种方式,网络部件可以使得对等方停止向网络部件发送承载BGP消息的 TCP段。还可以使用其它用于中止BGP传送操作的技术。
向第二 BGP讲者传递由第一 BGP讲者维护的路由选择数据,该路由 选择数据描述第一路由选择信息库(RIB)的状态。可以使用几种传递方 法中的任何传递方法。由于传递该路由选择数据,由第二BGP讲者维护的 第二 RIB变得与第一 RIB同步。在第二 RIB与第一 RIB同步之后,第一 BGP讲者可以指导第二 BGP讲者变为在用BGP讲者。在第二 BGP讲者变 为在用BGP讲者之后,第二 BGP讲者继续BGP传送的操作。
已描述了一个实施例的高级概览,下文将描述另一个实施例的结构概见。
体系结构概览
图1是说明可以用于实现实施例的系统10的框图。图1描述网络部件 100和150以及控制台120。网络部件涉及任何例如路由器或交换机的驻 留于网络的机器。网络部件100和150可以彼此通过通信链路152交换通 信。例如网络部件100和150可以交换承载BGP消息的TCP段。通信链 路152可以由任何可供网络部件100和150之间迸行数据交换的媒介或机 构实现。
管理员可能希望配置特定的网络部件,例如网络部件100。在该操作 中,管理员可以使用控制台120来向网络部件IOO发布命令。控制台120 可以由任何允许用户通过通信链路122向特定的网络部件传输数据的机器 实现,例如控制台120可以由功能性地(operationally)与网络部件100相 连的计算机或间接与网络部件100耦接的网页浏览器实现。通信链路122 可以由任何可供控制台120和网络部件150之间进行数据交换的媒介或机 构实现。通信链路122和152的实例包括但不局限于例如局域网 (LAN)、广域网(WAN)、以太网或因特网的网络,或者一个或多个 地面、卫星或无线链路。
网络部件100包含操作系统102。操作系统102是软件,该软件被设 计为控制网络部件100的硬件以便允许用户和应用程序使用网络部件100 的硬件。例如,操作系统102可以通过通信链路122接收控制台120的命 令,其后向在网络装置IOO上执行的软件应用发送命令以用于处理。
在一个实施例中,网络部件100是双路由处理器网络部件,该网络部 件参与数据包交换网络。网络部件100的双路由处理器的每个可以容宿涉 及数据包路由或转发的不同软件应用的独立但重复的实例。为了说明,如 图1所示,标识网络部件100的双路由处理器之一及其支持的应用和数据 为路由处理器IIOA,且标识另一个双路由处理器及其支持的应用和数据 为路由处理器110B。
在一个实施例中,路由处理器IIOA容宿TCP模块120A,该TCP模块120A运行或控制TCP高可用性(HA)进程140A和BGP应用130A。 路由处理器110B容宿TCP模块120B、 BGP应用130B和TCP HA进程 140B。 TCP模块120A、 120B和TCP HA进程140A、 140B提供传送控制 协议功能。BGP应用130A和130B提供边界网关协议功能。在没有在图1 中描述的替代实施例中,路由处理器IIOA和路由处理器IIOB可以容宿其 它协议和应用。例如,SCTP可以用于传送。因此,仅仅作为实例而不是 作为必需来示出TCP模块120A、 120B, TCP HA进程140A、 140B和 BGP应用130A、 130B。
BGP应用130A和130B的每个分别包含转换逻辑132A和132B。转 换逻辑132A和132B负责从BGP讲者的受控失效切换恢复。下文参照图 2和3将更详细地描述转换逻辑132A和132B的操作。
可以在冗余的或容错配置中设置路由处理器110A和路由处理器 IIOB。为了说明,可以最初指定路由处理器110A为"在用"路由处理 器。因此,将相应地指定BGP应用130A为"在用"BGP讲者。相似 地,可以最初指定路由处理器110B为"备用"路由处理器。因此,将相 应地指定BGP应用130B为"备用"BGP讲者。当路由处理器IIOA是在 用的,且路由处理器IIOB是备用的时,由路由处理器IIOA执行网络部件 100上所有BGP功能,并且在路由处理器110A变得不起作用的情形中 (对于受控事件或意外事件),路由处理器110B承担在用路由处理器的 位置,因此执行网络部件100上的所有BGP功能。
路由处理器IIOA和路由处理器IIOB的每个分别包含路由选择信息库 (RIB) 160A和160B。 RIB 160A存储所有BGP应用130A已知的路由, 且RIB 160B存储所有BGP应用130B已知的路由。
进程间通信(IPC)服务104连接在路由处理器110A和路由处理器 IIOB之间。该IPC 104提供路由处理器IIOA和路由处理器IIOB交换数 据和指令的手段。
图1的设置仅代表应用在此描述的方法的一个可能的情境。这里的方 法通常可应用于任何其它的网络部件所支持的BGP服务具有双处理器的情 形。已描述了实施例的体系结构概览,下文描述从BGP讲者的受控失效切
换恢复的方法。
从BGP讲者的受控失效切换的恢复
下文参照图2描述根据实施例的从BGP讲者的受控失效切换恢复的处 理。为了说明一个清楚的实例的目的,而不是作为一种限制,使得对图2 的步骤的说明参照图1的系统10。虽然以特定的顺序来描述图2的步骤, 但是图2中描述的步骤的顺序仅仅是有利于说明本发明的实施例。在其它 实施例中,从BGP讲者的受控失效切换恢复的歩骤的顺序可以与图2中描 述的那些步骤不同。例如,如下文说明的,在一些实施例中,可以与图2 中描述的一个或更多其它步骤来并行地执行传递路由选择数据的歩骤(步 骤230)。
最初,在步骤210中,接收用于将在用边界网关协议(BGP)讲者的 指定从第一 BGP讲者转换到第二 BGP讲者的请求。例如,可以当前指定 路由处理器110A为在用路由处理器。步骤210的请求可以是用于将在用 路由处理器的指定从路由处理器110A转换到路由处理器110B的请求。为 了方便说明,下文描述的图2的步骤假定步骤210的请求是用于将在用路 由处理器的指定从路由处理器110A转换到路由处理器110B的请求。
转换在用路由处理器的指定相应地转换在用BGP讲者的指定。为了说 明,如果步骤210的请求是用于将在用路由处理器的指定从路由处理器 110A转换到路由处理器110B的请求,那么BGP应用130B变为在用BGP 讲者。换言之,在用BGP讲者是在用路由处理器的BGP讲者,所以一个 请求可以通过请求从路由处理器IIOA到路由处理器IIOB转换在用路由处 理器的指定来请求转换在用BGP讲者的指定。其它实施例可以明确地请求 将在用BGP讲者的指定从一个特定的BGP讲者(例如BGP应用130A) 转换到另一个特定的BGP讲者(例如BGP应用130B)。
用户(例如管理员)可以使用控制台120发布步骤210的转换请求。 例如,可以将步骤210的请求实现为关闭路由处理器IIOA和使路由处理 器110B变为在用路由处理器的命令。在一个实施例中,该命令可以是用户通过控制台120发布的命令行接口 (CLI)命令。可以通过通信链路122 发送该命令,随后通过网络部件IOO的操作系统102接收该命令。操作系 统102在接收到该命令的时候向与在用BGP讲者相关联的转换逻辑传送该 命令。例如,如果BGP应用130A是在用BGP讲者,那么操作系统102 在接收到该命令时向转换逻辑132A传送该命令。在接收用于转换在用 BGP讲者指定的请求之后,继续处理步骤220。可替代地,程序或进程可 以发布请求210。
在步骤220中,中止向网络部件IOO传送BGP的操作。可以使用多个 不同的方法来中止向网络部件IOO传送BGP的操作。尽管本发明的实施例 可以应用任何用于中止向网络部件IOO传送BGP的操作的任何方法,然而 在此将讨论三个这样的方法。为了方便说明,尽管可以按任意数目的网络 部件IOO的对等方来使用下文用于中止BGP传送操作的技术,然而下文可 以关于中止从网络部件150到网络部件100的BGP传送操作来说明步骤 220的实施。
在一个实施例中,可以使用传送层协议来中止BGP传送操作。网络使 用传送层协议来控制数据包在网络部件(例如网络部件100和150)之间 的迁移。传输控制协议("TCP")是提供传送层服务的基础协议。TCP 在互联网工程任务组(IETF)意见请求(RFC) 793中定义。TCP可以用 于承载BGP对等方之间的BGP消息。TCP的一种软件实现通常称为TCP 栈。可以在路由器、交换机或其它网络基础设施的网络部件中,或者在个 人计算机、服务器、工作站或其它终端站装置中实现TCP栈。术语"主 机"包含网络部件和终端站装置两者。具有各自TCP栈且根据TCP通信 的两个装置通常称作TCP对等方或对等主机。TCP下通信的基本单元是 段,当IP是网络层协议时封装所述段到因特网协议(IP)数据包。
数据通信协议(例如TCP)通常提供一种接收主机向发送主机发送接 收主机例如由于接收主机的接收缓存区为满而不能再接受数据的信号的方 式。为提供这样的信号,TCP定义叫做窗口大小的段属性。当接收主机接 收数据段但其后不能再接收数据时,该接收主机发送包含窗口大小的值为 零的确认TCP段("ACK段")。发送主机在接收的窗口大小值为零的时候了解到接收主机不能接收更多数据了,所以发送主机不能再向接收主 机发送任何数据。
然而,发送主机需要一种方式来随后确定接收主机再次准备好接收数 据的时候。在一种方法中,发送主机发送包含一个字节附加数据的探查 段。探查段的目的是促使接收主机发回另一个包含更新窗口大小的值的 ACK段。如果接收主机确实不能接收更多数据,那么探査段中的一个字节 的数据可能丢失,且将请求重传。
根据中止向网络部件100传送BGP的操作的第一个方法("根据消耗 关闭窗"的方法),网络部件100可以停止提高由TCP段告知的窗口大 小,该TCP段被从网络部件100向对等方(例如网络部件150)发送。换 言之,当从网络部件150接收到数据时减小告知的窗口大小,并且不再根 据变得可用于接收数据的网络部件100的能力来增加窗口大小。随着网络 部件150向网络部件100发送数据的时间的过去,从网络部件100向网络 部件150发送的告知的TCP段窗口大小将减少,直到该窗口大小縮减到 零。向主机发送与来自该主机的窗口大小告知的数据量相等的数据量的过 程称作"消耗"窗口大小。
在网络部件150消耗了窗口大小之后,网络部件IOO将在向网络150 发送的TCP段中告知窗口大小为零。网络部件150对告知窗口大小为零的 TCP段的接收将使得网络部件150停止向网络部件IOO传输TCP段。实质 上,网络部件150将变得"流阻塞",或不能向网络部件IOO发送另外的 TCP段。通过流阻塞网络部件150,网络部件IOO可以中止从网络部件 150到网络部件100的BGP传送操作。
中止向网络部件100传送BGP操作的第二个方法("不确认TCP 段"方法)包括网络部件IOO停止确认从网络部件150接收的TCP段。在 "不确认TCP段"方法中,网络部件150将持续重传未被确认的TCP 段。如下文所说明的,在网络部件IOO的备用BGP讲者变为网络部件100 的在用BGP讲者之后,网络部件100的在用BGP讲者将再继续确认来自 网络部件150的TCP段。
根据中止向网络部件100传送BGP操作的第三个方法("消息方法"),网络部件IOO的转换逻辑132A可以向网络部件150发送消息。 由网络部件150接收的该消息可以通告网络部件150:网络部件100不能 再从网络部件150接收任何BGP消息或传送段。网络部件100还可以在步 骤220向其他对等方发送其他消息用以中止从其他对等方向网络部件100 传送BGP的操作。
为了说明,在利用消息方法的一个实施例中,从网络部件100向网络 部件150发送TCP段,该TCP段告知窗口大小为零。此外,网络部件IOO 不向网络部件150发送任何ACK段来响应网络部件150向网络部件100 发送的任何探査段。网络部件150接收到告知窗口大小为零的TCP段将使 得网络部件150变为流阻塞。该消息方法与根据消耗关闭窗的方法的不同 在于在消息方法中,不管先前告知的在先的窗口大小而立即发送消息, 而不是消耗。
在一个实施例中,与在用BGP讲者相关联的转换逻辑可以指导在用路 由处理器的TCP模块向网络部件150发送告知窗口大小为零的TCP段。 例如,在一个实施例中,转换逻辑132A可以指导TCP模块120A来向网 络部件150发送告知窗口大小为零的TCP段。此外,在BGP传送被中止 的同时,转换逻辑132A可以指导TCP HA进程140不向网络部件150发 送任何ACK段。
在一些情景中,如果先前告知了一个对等方还没有消耗的较大的窗, 那么可能不期望告知的窗口大小为零(或称为"拒绝(reneging)窗口大 小")。例如,对于窗口大小的拒绝可能使对等方放弃连接。在向对等方 发送中止BGP传送操作的消息之后,继续处理步骤230。
在步骤230中,从第一 BGP讲者向第二 BGP讲者传送描述第一路由 选择信息库(RIB)状态的路由选择数据。例如,可以从路由处理器110A 向路由处理器IIOB传送描述RIB 160A当前状态的路由选择数据。在路由 处理器IIOB处接收到的路由选择数据可以用来更新RIB 160B。因此,在 步骤230传送所有路由选择数据之后,RIB 160B变为与RIB 160A同步。
本发明的这些实施例可能以不同的方式执行步骤230。下文参照图3 将讨论执行230步骤的几种方法。本发明的一些实施例可以在步骤210之前或与图3描述的其它步骤并行地传送路由选择数据。
在一个实施例中,在步骤230期间,还可以传送描述由第一BGP讲者 维护的TCP连接的状态的TCP连接数据。TCP连接数据的非限制实例包 括TCP会话的套接字号、文件描述符和与对等方的TCP会话状态。在一 个实施例中,当从路由处理器110A向路由处理器110B传送TCP连接数 据时,TCP状态在路由处理器IIOA处被冻结(即,状态不再变化)。更 新TCP HA进程140B来反映向路由处理器IIOB传送的TCP连接数据。 以这种方式, 一旦路由处理器110B被指导变为在用路由处理器,那么路 由处理器110B可以使用传送的连接数据向网络部件100的对等方传输 TCP段。
在转换逻辑132A确定所有路由选择数据已经被传送到路由处理器 110B之后(换言之,RIB 160B与RIB 160A同步),那么继续处理步骤 240。
在步骤240中,指导备用BGP讲者变为在用BGP讲者。可以执行步 骤240如下通过转换逻辑132A指导转换逻辑132B使得BGP应用130B 变为在用BGP讲者。转换逻辑132A可以通过IPC 104指导转换逻辑 132B。
如上文所说明的,在用BGP讲者的标识对应于在用路由处理器,因此 在一个实施例中,可以通过转换逻辑B2指导路由处理器IIOB使路由处 理器110B变为在用路由处理器来执行步骤240的实施。
在一个实施例中,在BGP应用130B接收到来自BGP应用130A的变 为在用BGP讲者的指令后,BGP应用130B变为在用BGP讲者。BGP应 用130B向BGP应用130A发送BGP应用130B准备变为在用BGP讲者的 确认。
在一个实施例中,在BGP应用130A接收到来自BGP应用130B的确 认后,BGP应用130A关闭。此外,在其他的实施例中,除了 BGP应用 130A响应于接收到的应答而关闭之外,路由处理器IIOA的其他应用或路 由处理器110A自身也可能关闭。在路由处理器IIOA或路由处理器110A 支持的任何应用关闭之后,用户可以在路由处理器IIOA上进行活动,例如安装新硬件或软件。在步骤240的实施之后,继续处理歩骤250。
在步骤250中,继续向网络部件100传送BGP的操作。与步骤220中 的一样,可以使用多种不同方法来执行步骤250。自然地,在步骤220中 用于中止执行BGP传送操作的具体方法将影响在步骤250的实施中怎样继 续传送BGP的操作。
在利用根据消耗关闭窗方法或消息方法的实施例中,可以通过网络部 件110向网络部件150传输包括更新窗口大小为正值的TCP ACK段来执 行步骤250的实施。该更新的正的窗口大小值反映了第二 BGP讲者能够从 等对方接收的数据量。由于网络部件150接收告知正的窗口大小的TCP 段,因此网络部件150将继续依照更新的窗口大小向网络部件100发送 TCP段。
在利用"不确认TCP段"方法的实施例中,可以通过网络部件100的 在用BGP讲者确认来自网络部件150的TCP段在步骤250中继续传送 BGP的操作。
有利的是,这些实施例允许用户向网络部件IOO提交请求使得以下列 方式使在用BGP讲者从路由处理器110A向路由处理器IIOB转换,所述 方式是使网络部件IOO和150的BGP处理的中断最小化。此外,在这些实 施例中,可以按秒计将在用BGP讲者从路由处理器110A向路由处理器 IIOB转换,而不是现有方法中典型的数分钟。此外,本文所述的方法适合 (scale for)与存储大量路由的RIB —起使用。
传递路由选择数据
实施例可以按多种方式执行步骤230。图3是根据几个实施例的传递 路由选择数据的不同选择的图示。 一个实施例可通过执行图3中所示选择 中的任一个来传递图2的步骤230中的路由选择数据。图3的选择并不意 味着描绘了其中实施例可以从一个BGP讲者向另一个BGP讲者传递路由 选择数据的所有方式,因为可以利用图3中未描绘的其他方式。此外,如 下所述,图3中的选择并不意味着相互排斥,例如步骤340的实施也可以 包括步骤310或步骤330的实施。根据选择310,通过路由处理器间的直接存储器传递来传递路由选择 数据。例如,路由处理器110A可以通过直接存储器传递将路由选择数据
传递到路由处理器110B来执行选择310。
根据选择320,通过将TCP段中承载的接收到的BGP消息多播到第 一 BGP讲者和第二 BGP讲者,从而传递路由选择数据。在这样的实施例 中,BGP应用130A和BGP应用130B均可监听(listen to) TCP HA进程 140A的相同套接字。因此,实际上,由TCP HA进程140A接收到的每个 TCP段被发往BGP应用130A以及发往BGP应用130B,从而允许RIB 160A和160B被同时更新。
根据选择330,在BGP对等会话中传递路由选择数据。实际上,BGP 应用130A可以使用BGP对等会话与BGP应用130B交互,仿佛BGP应 用130B位于因特网的远端一样。在一个实施例中,可以使用常规的BGP UPDATE消息在BGP对等会话中传递路由选择数据。
根据选择340,在执行步骤210之前传递一部分路由选择数据。在接 收到步骤210的请求之前,可以在称为"惰性传递"(lazy transfer)的进 程中将第一部分路由选择数据从BGP应用130A传递到BGP应用130B。 在惰性传递中,每当处理器110A具有未被另外利用的可用处理资源时, 传递路由选择数据。可以通过直接存储器传递(如在选择310中)或者使 用BGP对等会话(如在选择330中)执行惰性传递。以这种方式,每当路 由选择数据以惰性传递被传递给BGP应用130B时,BGP应用130B可以 更新RIB 160B。
当网络部件100接收到步骤210的请求时,第二部分路由选择数据被 传递给BGP应用130B,该第二部分路由选择数据对应于尚未以惰性传递 被传递的RIB 160A的所有路由。也可以使用直接存储器传递或者在BGP 对等会话中传递该第二部分路由选择数据。 一旦BGP应用130B接收到该 第二部分的路由选择数据,BGP应用130B便更新RIB 160B以变为与RIB 160A同步。
向对等方传送BGP KEEP ALIVE消息在一个实施例中,在发送和传递步骤期间,在用BGP讲者继续将一个
或多个BGP KEEPALIVE消息发往BGP对等方。例如,在一个实施例 中,BGP应用130A在步骤320和330期间持续将一个或多个BGP KEEPALIVE消息发往网络部件150。
在这样的实施例中,在TCP连接数据从第一路由处理器传递到第二路 由处理器之后,向特定的对等方发送BGP KEEPALIVE消息,所述TCP 连接数据描述与特定对等方的TCP连接的状态。由于当从路由处理器 110A向路由处理器110B传递TCP连接数据时TCP状态在路由处理器 110A处被冻结,因此在传递关于对等方的TCP连接数据之后,只可以向 该对等方发送BGP KEEPALIVE消息。为了说明,在步骤230中在从 BGP应用130A向BGP应用130B传递与网络部件150相关的TCP会话的 TCP连接数据之后,网络部件100可以向网络部件150发送BGP KEEPALIVE消息。
以这种方式,网络部件150可以被通告网络部件100仍在运行。因 此,当网络部件150接收到来自网络部件100的BGP KEEPALIVE消息 时,在网络部件100的备用路由处理器重新开始作为网络部件100的在用 路由处理器时的过程中,网络部件150保持与网络部件IOO的BGP连接。
实现机制
在一个实施例中,可以在计算机系统上实现网络部件100和150以及 控制台120。图4是说明在其上可以实现实施例的计算机系统的框图。计 算机系统400包括总线402或用于传达信息的其它通信机构,以及与总线 402相连接用于处理信息的处理器404。计算机系统400还包括主存储器 406,例如随机存取存储器(RAM)或其它动态存储装置,该主存储器与 总线402相连接用以存储有待被处理器404执行的信息和指令。主存储器 406还可以在有待被处理器404执行的指令的执行期间用于存储临时变量 或其它中间信息。计算机系统400还包括只读存储器(ROM) 408或其 它静态存储装置,这些静态存储装置与总线402相连用以存储处理器404 的静态信息和指令。提供诸如磁盘或光盘的存储装置410并使其与总线402相连用以存储信息和指令。
计算机系统400可以通过总线402与显示器412相连,所述显示器例 如是阴极射线管(CRT),用以向计算机用户显示信息。输入装置414 (包括字母数字和其它键)与总线402相连用以向处理器404传达信息和 命令选择。另一种用户输入装置是光标控制416例如鼠标、轨迹球或光标 方向键,用以向处理器404传达方向信息和命令选择以及用以控制光标在 显示器412上的移动。这种输入装置典型具有两个轴上的两个自由度,第 一轴(例如x)和第二轴(例如y),其允许该装置在平面上定位。
本发明涉及计算机系统400在实现本文所述技术中的用途。根据本发 明的一个实施例,计算机系统400响应于处理器404执行包含在主存储器 406中的一个或多个指令的一个或多个序列来执行这些技术。这些指令可 以由其它机器可读介质(例如存储装置410)读取到主存储器406中。包 含在主存储器406中的指令序列的实施使得处理器404进行本文所述的处 理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令来实 现本发明或者与之结合。因此,本发明的实施例不局限于硬件电路系统和 软件的任何具体结合。
本文所用的术语"机器可读介质"是指参与提供使得机器以特定方式 运行的数据的任何介质。在使用计算机系统400实现的实施例中,在例如 向处理器404提供指令用以执行中涉及多种机器可读介质。这样的机制可 以为许多形式,包括但不限于,非易失性介质、易失性介质和传输介质。 非易失性介质包括,例如光盘或磁盘,例如存储装置410。易失性介质包 括动态存储器,例如主存储器406。传输介质包括同轴电缆、铜线和光 纤,包括含总线402的导线。传输介质还可以为声、光或电磁波的形式, 例如在无线电波和红外数据通信中产生的那些。所有这些介质必须能够使 由该介质承载的指令被物理机构检测到,所述物理机构将这些指令读取到 机器中。
机器可读介质的常见形式包括,例如软盘、柔性盘、硬盘、磁带、或 任何其它磁性介质、CD-ROM、任何其它光学介质、穿孔卡片、纸带、具 有孔图案的任何其它物理介质、RAM、 PROM、 EPROM、 FLASH-EPROM、任何其它存储器芯片或卡式磁带(cartridge)、下文所述的载 波、或者计算机可从中读取的任何其它介质。
多种形式的计算机可读介质可用于承载有待被处理器404执行的一个 或多个指令的一个或多个系列。例如,这些指令可最初被承载在远程计算 机的磁盘上。该远程计算机可将这些指令加载到其动态存储器中并使用调 制解调器通过电话线发送这些指令。计算机系统400本地的调制解调器能 够在电话线上接收数据并使用红外发射器将数据转换成红外信号。红外检 测器能够接收该红外信号中承载的数据并且适当的电路系统能够将数据置 于总线402上。总线402将数据承载到主存储器406,处理器404可由该 主存储器检索并执行指令。在处理器404执行之前或者之后,可选将主存 储器406接收到的指令存储在存储装置410上。
计算机系统400还包括与总线402相连的通信接口 418。通信接口 418提供与网络链路420连接的双路数据通信,所述网络链路420与本地 网422连接。例如,通信接口 418可以是综合数字服务网(ISDN)卡或调 制解调器用以提供与对应类型的电话线的数字通信连接。作为另一个例 子,通信接口 418可以是局域网(LAN)卡用以提供与兼容LAN的数字 通信连接。还可以实现无线链路。在任何这些实现中,通信接口 418发送 和接收承载代表各种类型信息的数字数据流的电、电磁或光信号。
网络链路420典型提供通过一个或多个网络与其它数据装置的数据通 信。例如,网络链路420可以提供通过本地网与主计算机424或者与因特 网服务提供商(ISP) 426操作的数据设备的连接。ISP 426进而通过环球 数据包数据通信网络(现在被称为"因特网")428提供数据通信服务。 本地网422和因特网428均使用承载数字数据流的电、电磁或光信号。通 过多种网络的信号以及网络链路420上并且通过通信接口 418的信号承载 前往和来自计算机系统400的数字数据,这些信号典型是传输信息的载波 形式。
计算机系统400能够通过(一个或多个)网络、网络链路420和通信 接口 418发送消息和接收数据(包括程序代码)。在因特网的例子中,服 务器430可以通过因特网428、 ISP 426、本地网422和通信接口 418发送应用程序的请求代码。
接收到的代码在其被接收到时可以被处理器404执行,和/或存储在存
储装置410或者其它非易失性存储装置中以便随后执行。以这种方式,计 算机系统400可以获得载波形式的应用代码。
在前述的说明书中,已参照许多具体细节描述了本发明的实施例,这 些细节可能随实施方式而变化。因此,本发明以及发明人所期望作为发明 的唯一且排他性的指标是从本申请提出的权利要求集合,所述指标的具体 形式为这些权利要求所述并且包括任何随后的修正。本文明确所述的对这 些权利要求中包含的术语的任何定义,将决定用于这些权利要求中的这些 术语的含义。因此,权利要求中未明确记载的限制、部件、性质、特征、 优点或属性不应以任何方式限制这些权利要求的范围。因此说明书和附图 应被视为说明性而非限制性的。
权利要求
1.一种方法,该方法包含接收用于将网络部件的在用第一边界网关协议(BGP)讲者的指定从该网络部件的第一BGP讲者向该网络部件的第二BGP讲者转换的请求,其中该在用BGP讲者处理在所述网络部件处接收的所有BGP消息;响应于对所述请求的接收,中止向所述网络部件的BGP的传送操作;从所述第一BGP讲者向所述第二BGP讲者传递路由选择数据,所述路由选择数据描述第一路由选择信息库(RIB)的状态,其中由所述第二BGP讲者维护的第二路由选择信息库(RIB)变为与所述第一路由选择信息库(RIB)同步;指导所述第二BGP讲者变为在用BGP讲者;并且在所述第二BGP讲者变为在用BGP讲者之后,继续向所述网络部件的传送操作。
2. 权利要求l的方法,其中所述第一BGP讲者响应于该第一BGP讲 者从所述第二 BGP讲者接收的消息而关闭,所述消息指示所述第二 BGP 讲者变为在用BGP讲者。
3. 权利要求1的方法,其中所述路由选择数据通过直接存储器传递 来传递。
4. 权利要求l的方法,其中传递路由选择数据包含 在接收所述请求之前,当所述第一 BGP讲者具有不被以另外方式使用的可用处理资源时,向所述第二BGP讲者传递第一数据,该第一数据标 识所述第一路由选择信息库(RIB)中的路由的第一部分;并且在接收所述请求之后,在BGP对等会话中向所述第二 BGP讲者传递 第二数据,该第二数据标识所述第一路由选择信息库(RIB)中没有在所 述第一数据中被识别的所有剩余路由。
5. 权利要求1的方法,其中通过将TCP段中承载的接收到的BGP消 息多播到所述第一 BGP讲者和所述第二 BGP讲者,从而传递所述路由选择数据。
6. 权利要求l的方法,其中在所述第一BGP讲者和所述第二BGP讲 者之间建立的BGP对等会话中至少部分地执行传递路由选择数据的步骤。
7. 权利要求l的方法,其中所述第一BGP讲者和所述第二BGP讲者 中的每个与所述网络部件的不同处理器相关联。
8. 权利要求l的方法,该方法还包括从所述第一 BGP讲者向所述第二 BGP讲者传递TCP连接数据,该 TCP连接数据描述由所述第一 BGP讲者维护的TCP连接的状态。
9. 权利要求8的方法,其中在中止所述BGP传送的操作和传递所述 路由选择数据的步骤期间,在用BGP讲者向对等方持续地发送一个或多个 BGP KEEPALIVE消息。
10. 权利要求9的方法,其中在将TCP连接数据从所述第一路由处理 器传递到所述第二路由处理器之后,所述一个或多个BGP KEEPALIVE消 息的每个BGP KEEPALIVE消息被发往特定的对等方,所述TCP连接数 据描述与所述特定对等方的TCP连接的状态。
11. 权利要求1的方法,其中中止传送操作的步骤包含停止提高由从 所述网络部件向对等方发送的TCP段告知的窗口大小。
12. 权利要求1的方法,其中中止传送操作的步骤包含停止确认由所 述网络部件从对等方接收的TCP段。
13. 权利要求1的方法,其中继续传送操作的步骤包含确认由所述网 络部件从对等方接收的TCP段。
14. 权利要求1的方法,其中中止传送操作的步骤包含向对等方发送 告知窗口大小为零的TCP段。
15. 权利要求1的方法,其中继续传送操作的步骤包含向对等方发送 告知正的窗口大小的TCP段,所述窗口大小反映了所述第二 BGP讲者能 够从对等方接收的数据量。
16. —种设备,该设备包含用于接收如下请求的装置将网络部件的在用第一边界网关协议(BGP)讲者的指定从该网络部件的第一 BGP讲者向该网络部件的第二BGP讲者转换,其中该在用BGP讲者处理在所述网络部件处接收的所有BGP消息;用于响应于对所述请求的接收,中止向所述网络部件的BGP的传送 操作的装置;用于从所述第一 BGP讲者向所述第二 BGP讲者传递路由选择数据的 装置,所述路由选择数据描述第一路由选择信息库(RIB)的状态,其中 由所述第二 BGP讲者维护的第二路由选择信息库(RIB)变为与所述第一 路由选择信息库(RIB)同步;用于指导所述第二BGP讲者变为在用BGP讲者的装置;以及 用于在所述第二 BGP讲者变为在用BGP讲者之后,继续向所述网络 部件的传送操作的装置。
17. 权利要求16的设备,其中所述第一BGP讲者响应于该第一BGP 讲者从所述第二 BGP讲者接收的消息而关闭,所述消息指示所述第二 BGP讲者变为在用BGP讲者。
18. 权利要求16的设备,其中所述路由选择数据通过直接存储器传 递来传递。
19. 权利要求16的设备,其中用于传递路由选择数据的装置包含 用于在接收所述请求之前,当所述第一 BGP讲者具有不被以另外方式使用的可用处理资源时,向所述第二BGP讲者传递第一数据的装置,该 第一数据标识所述第一路由选择信息库(RIB)中的路由的第一部分;以 及用于在接收所述请求之后,在BGP对等会话中向所述第二 BGP讲者 传递第二数据的装置,该第二数据标识所述第一路由选择信息库(RIB) 中没有在所述第一数据中被识别的所有剩余路由。
20. 权利要求16的设备,其中用于传输路由选择数据的装置包含用 于向所述第一 BGP讲者和所述第二 BGP讲者多播接收的TCP段中承载的 BGP消息的装置。
21. 权利要求16的设备,其中用于传输路由选择数据的装置包含在 所述第一 BGP讲者和所述第二 BGP讲者之间建立的BGP对等会话中传递路由选择数据的装置。
22. 权利要求16的设备,其中所述第一BGP讲者和所述第二BGP讲 者中的每个与所述网络部件的不同处理器相关联。
23. 权利要求16的设备,该设备还包括用于从所述第一 BGP讲者向所述第二 BGP讲者传递TCP连接数据的 装置,该TCP连接数据描述由所述第一 BGP讲者维护的TCP连接的状 态。
24. 权利要求23的设备,该设备还包含用于在中止传送操作和传递 路由选择数据的同时,在用BGP讲者向对等方持续地发送一个或多个 BGP KEEP ALIVE消息的装置。
25. 权利要求24的设备,其中在将TCP连接数据从所述第一路由处 理器传递到所述第二路由处理器之后,所述一个或多个BGP KEEPALIVE 消息的每个BGP KEEPALIVE消息被发往特定的对等方,所述TCP连接 数据描述与所述特定对等方的TCP连接的状态。
26. 权利要求16的设备,其中用于中止传送操作的装置包含停止提 高由从所述网络部件向对等方发送的TCP段告知的窗口大小的装置。
27. 权利要求16的设备,其中用于中止传送操作的装置包含停止确 认由所述网络部件从对等方接收的TCP段的装置。
28. 权利要求16的设备,其中用于继续传送操作的装置包含确认由 所述网络部件从对等方接收的TCP段的装置。
29. 权利要求16的设备,其中用于中止传送操作的装置包含向对等 方发送告知窗口大小为零的TCP段的装置。
30. 权利要求16的设备,其中用于继续传送操作的装置包含向对等 方发送告知正的窗口大小的TCP段的装置,所述窗口大小反映了所述第二 BGP讲者能够从对等方接收的数据量。
31. —种设备,该设备包含网络接口,该网络接口与数据网络相连接用于从该数据网络接收一个 或多个数据包流; 处理器;和承载一个或多个被存储的指令序列的计算机可读介质,当所述指令序 列被所述处理器执行时,使得所述处理器实现权利要求l-15任何一个中所 述的步骤。
全文摘要
提供用于从BGP讲者的受控失效切换恢复的方法和设备。用户向网络部件发送如下请求从网络部件的第一边界网关协议(BGP)讲者向网络部件的第二BGP讲者转换网络部件的在用BGP讲者的指定。在接收该请求之后,网络部件中止传送BGP的操作。从第一BGP讲者向第二BGP讲者传递路由选择数据,所述路由选择数据描述由在用BGP讲者维护的第一路由选择信息库(RIB)的状态。其后,第一BGP讲者可以指导第二BGP讲者变为在用BGP讲者。在第二BGP讲者变为在用BGP讲者之后,第二BGP讲者继续BGP传送的操作。
文档编号G01R31/08GK101292167SQ200680038701
公开日2008年10月22日 申请日期2006年10月5日 优先权日2005年10月17日
发明者戴维·D·沃德, 约翰·斯卡德 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1