首页 / 专利库 / 计算机网络 / 对等网络 / N:1有状态应用网关冗余模型

N:1有状态应用网关冗余模型

阅读:331发布:2020-05-11

专利汇可以提供N:1有状态应用网关冗余模型专利检索,专利查询,专利分析的服务。并且本 申请 公开了N:1有状态应用网关冗余模型。配置信息定义服务网关上的服务处理单元,并且将第一冗余集和第二冗余集与服务处理单元相关联,其中,第一和第二冗余集包括主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义在发生与相应冗余集相关联的冗余事件时要采取的动作的至少一个冗余策略。响应于检测到第一冗余集的关键事件,服务网关将第一冗余集从备用冗余状态转换到主冗余状态,将与第一冗余集相关联的第一 信号 路由添加到路由信息库(RIB),并将第一信号路由通告给路由协议 对等网络 装置。,下面是N:1有状态应用网关冗余模型专利的具体信息内容。

1.一种方法,包括:
在具有服务冗余管理器和多个服务处理核心的服务网关接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与所述服务处理单元相关联,所述第一冗余集和所述第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;
使用在所述服务处理单元配置信息中分配的所述服务网关资源在所述服务网关中建立所述服务处理单元;
在所述服务网关接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;
将所述第一冗余集和所述第二冗余集置于所述备用冗余状态;
定义第一信号路由,所述第一信号路由用于触发与所述第一冗余集相关的动作;
监控所述关键事件;以及
响应于检测到所述关键事件:
经由所述服务冗余管理器在所述服务网关上将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态;
将所述第一信号路由添加到路由信息库RIB;以及
向路由协议对等网络装置通告第一信号路由,其中,通告的所述第一信号路由促使所述路由协议对等网络装置将与所述第一冗余集相关联的流量路由到一个或多个其他服务网关。
2.根据权利要求1所述的方法,其中,将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态包括实施在与所述相应冗余集相关联的冗余事件发生时要采取的动作。
3.根据权利要求1所述的方法,其中,将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态包括修改与所述第一冗余集相关联的服务。
4.根据权利要求1所述的方法,其中,每个服务处理单元包括定义所述服务处理单元的输入和输出的服务下一跳对,并且其中,在所述服务网关中建立所述服务处理单元包括经由下一服务处理单元的跳对将所述服务处理单元连接到其他服务处理单元。
5.根据权利要求1所述的方法,其中,在所述服务网关上将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态包括:当所述第一冗余集工作在所述主冗余状态时,在所述服务处理单元上执行先前由分配有所述第一冗余集的服务网关的服务处理单元执行的功能。
6.根据权利要求1所述的方法,其中,所述关键事件是当前处于所述第一冗余集的所述主冗余状态的服务处理单元未正确操作的指示。
7.根据权利要求1所述的方法,其中,所述关键事件是在不同服务网关上的所述第一冗余集的所述服务处理单元未按预期执行的指示。
8.根据权利要求1所述的方法,其中,所述关键事件是与所述第一冗余集相关联的服务未按预期执行的指示。
9.根据权利要求1至8中任一项所述的方法,其中,将所述第一冗余集和所述第二冗余集置于所述备用冗余状态包括:在所述服务冗余管理器内跟踪与所述服务网关相关联的每个冗余集的冗余状态。
10.根据权利要求1至8中任一项所述的方法,其中,所述一个或多个冗余事件包括当先前将所述服务网关的所述第一冗余集从所述主冗余状态转换到所述备用冗余状态的服务网关确定其准备再次在所述第一冗余集中呈现主冗余状态时触发的冗余事件。
11.根据权利要求1至8中任一项所述的方法,其中,所述方法还包括:
在所述服务网关接收定义所述第二冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在所述第二冗余集中启动从主冗余状态到备用冗余状态的转换;
将所述第一冗余集和所述第二冗余集置于所述备用冗余状态;
定义第二信号路由,所述第二信号路由用于触发与所述第二冗余集相关的动作;
监控所述第二冗余集的关键事件;以及
响应于检测到所述第二冗余集的关键事件:
经由所述服务冗余管理器,在所述服务网关上将所述第二冗余集从所述备用冗余状态转换到所述主冗余状态;
将所述第二信号路由添加到所述RIB;以及
向路由协议对等网络装置通告所述第二信号路由,其中,通告的所述第二信号路由促使所述路由协议对等网络装置将与所述第二冗余集相关联的流量路由到其他服务网关。
12.一种系统,包括:
网络;
N个冗余集,其中,N大于1,其中,所述N个冗余集中的每个冗余集具有主冗余状态、备用冗余状态和一个或多个冗余策略,其中,所述一个或多个冗余策略包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;以及
多个服务网关,连接到所述网络,其中,每个服务网关包括服务冗余管理器和多个服务处理核心,其中,所述服务冗余管理器跟踪分配给所述服务冗余管理器的所述服务网关的冗余集的冗余状态;
其中,所述多个服务网关中的一个是备用服务网关,其中,所述备用服务网关将一个或多个服务处理核心分配给第一服务处理单元,并将所述N个冗余集分配给所述第一服务处理单元,
其中,所述多个服务网关中的一个或多个托管第二服务处理单元,其中,托管包括将一个或多个服务处理核心分配给每个第二服务处理单元,并将所述N个冗余集中的一个分配给每个第二服务处理单元,其中,所述N个冗余集中的每一个分被配给不同的第二服务处理单元,
其中,当所述备用服务网关的所述服务冗余管理器检测到与所述N个冗余集中的特定冗余集相关联的冗余事件时,所述备用服务网关的所述服务冗余管理器在所述备用服务网关上将所述特定冗余集从备用所述冗余状态转换到所述主冗余状态,以及其中,当具有与所述特定冗余集相关联的第二服务处理单元的服务网关的服务冗余管理器检测到所述冗余事件时,所述服务冗余管理器将所述服务网关中的所述特定冗余集从所述主冗余状态转换到所述备用冗余状态。
13.根据权利要求12所述的系统,其中,每个服务冗余管理器跟踪服务网关服务处理单元分配到的冗余集的冗余状态。
14.根据权利要求12至13中任一项所述的系统,其中,第一信号路由用于在冗余事件发生时触发与第一冗余集相关的动作;以及
其中,当所述备用服务网关的服务冗余管理器在备用服务网关上将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态时,所述服务网关将所述第一信号路由添加到路由信息库RIB,并且向路由协议对等网络装置通告所述第一信号路由,其中,通告的所述第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
15.一种服务网关,包括:
网络接口
服务平面,具有连接到所述网络接口的多个服务处理核心;以及
路由平面,连接到所述网络接口,所述路由平面包括存储器和连接到所述存储器的一个或多个处理器,其中,所述存储器包括指令,当所述指令被所述一个或多个处理器执行时,促使所述处理器:
建立服务冗余守护程序;
接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与所述服务处理单元相关联,所述第一冗余集和所述第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;
使用在所述服务处理单元配置信息中分配的所述服务网关资源在服务网关中建立所述服务处理单元;
在所述服务网关接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在所述第一冗余集中启动从所述主冗余状态到所述备用冗余状态的转换;
将所述第一冗余集和所述第二冗余集置于所述备用冗余状态;
定义第一信号路由,所述第一信号路由用于触发与所述第一冗余集相关的动作;
监控所述关键事件;以及
响应于检测到所述关键事件:
经由服务冗余管理器在所述服务网关上将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态;
将所述第一信号路由添加到路由信息库RIB;以及
向路由协议对等网络装置通告所述第一信号路由,其中,通告的所述第一信号路由促使所述路由协议对等网络装置将与所述第一冗余集相关联的流量路由到一个或多个其他服务网关。
16.根据权利要求15所述的服务网关,其中,当由所述一个或多个处理器执行时,促使所述处理器将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态的指令包括当由所述一个或多个处理器执行时,促使所述处理器实施在与相应冗余集相关联的冗余事件发生时要采取的动作的指令。
17.根据权利要求15至16中任一项所述的服务网关,其中,当由所述一个或多个处理器执行时,促使所述处理器将所述第一冗余集从所述备用冗余状态转换到所述主冗余状态的指令包括当由所述一个或多个处理器执行时,修改与所述第一冗余集相关联的服务的指令。
18.根据权利要求15至16中任一项所述的服务网关,其中,所述存储器还包括指令,当所述指令由所述一个或多个处理器执行时,促使所述处理器在所述服务冗余管理器内跟踪与所述服务网关相关联的每个冗余集的冗余状态。
19.一种计算机可读介质,具有指令,当由一个或多个处理器执行时,所述指令促使所述一个或多个处理器执行根据权利要求1至11中任一项所述的方法。

说明书全文

N:1有状态应用网关冗余模型

技术领域

[0001] 本公开的技术涉及计算机网络,更具体地,涉及在计算机网络中提供高可用性。

背景技术

[0002] 计算机网络是能够交换数据和共享资源的互连计算装置的集合。在基于数据包的网络中,计算装置通过将数据分成称为数据包的小来传送数据,这些小块通过网络从源装置单独路由到目的装置。目的装置从数据包中提取数据,并将数据组装成原始形式。将数据分成数据包,使源装置能够仅重新发送在传输过程中可能丢失的那些单独数据包。
[0003] 某些称为路由器的装置维护描述通过网络的路由的路由信息。“路由”通常可以定义为网络上两个位置之间的路径。路由器包括控制平面和转发平面,控制平面有时称为管理平面,维护路由信息,转发平面根据路由信息转发接收到的数据包。
[0004] 高可用性计算机网络环境的目标是为用户和其他实体提供“始终在线”服务。即,高可用性计算机网络环境应该提供可靠、连续的操作服务。为此,高可用性环境中的网络装置执行错误检测,并针对检测到的错误实现可恢复性。遗憾的是,网络装置偶尔会出现故障。
[0005] 当网络装置发生故障时,流经故障网络装置的所有网络流量可能会停止。对于依赖于这种网络流量的企业,这可能是不可接受的,即使这种故障发生的时间很短。为了将导致所有网络流量停止的故障可能性降至最低,可以安装冗余硬件,例如,备用控制器或单独的备用网络装置。当主控制器发生故障时,该主控制器(也可以称为“主控制器”)可以切换(或者换言之,故障切换)到备用控制器。同样,当主网络装置发生故障时,该主网络装置(也可以称为“主网络装置”)可以切换(或者换言之,故障切换)到备用网络装置。在故障切换或切换到备用装置之后,备用装置成为主装置。
[0006] 跨越两个或更多机框延伸的装置或控制器中的冗余提供了增强的可靠性。然而,当前的机框间冗余解决方案旨在跨同一网络中的两个同构机框提供冗余。然而,典型的网络不是同构机框的集合。发明内容
[0007] 通常,描述了一种用于应用感知的机框间冗余的架构,该架构具有对两个或更多网络元件组之间的应用故障切换组的精细控制。这些技术提供的架构可用于定义用户接口结构,所述用户接口结构利用路由协议来促进冗余相关动作,例如,在服务网关之间重定向流量。网络元件可以是同构的或异构的(物理的或虚拟的),并且可以跨不同的网络或地理区域分布。冗余机制提供了与底层网络协议无关的流量重定向,并提供了基于服务组的健康状态触发、防止和恢复服务组的手动和自动切换的选项。
[0008] 例如,描述了一种方法,包括:在具有服务冗余管理器和多个服务处理核心的服务网关处接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0009] 在另一示例中,描述了一种系统,包括:网络;N个冗余集,其中,N大于1,其中,所述N个冗余集中的每个冗余集具有主冗余状态、备用冗余状态和一个或多个冗余策略,其中,所述一个或多个冗余策略包括至少一个冗余策略,所述至少一个冗余策略定义了在与相应冗余集相关联的冗余事件发生时要采取的动作;以及多个服务网关,其连接到网络,其中,每个服务网关包括服务冗余管理器和多个服务处理核心,其中,所述服务冗余管理器跟踪分配给服务冗余管理器的服务网关的冗余集的冗余状态。所述多个服务网关中的一个是备用服务网关,其中,所述备用服务网关将一个或多个服务处理核心分配给第一服务处理单元,并将所述N个冗余集分配给第一服务处理单元。所述多个服务网关中的一个或多个托管第二服务处理单元,其中,托管包括将一个或多个服务处理核心分配给每个第二服务处理单元,并将所述N个冗余集中的一个分配给每个第二服务处理单元,其中,所述N个冗余集中的每一个分配给不同的第二服务处理单元。当所述备用服务网关的服务冗余管理器检测到与N个冗余集中的特定一个相关联的冗余事件时,所述备用服务网关的服务冗余管理器在备用服务网关上将特定冗余集从备用冗余状态转换到主冗余状态,并且当具有与特定冗余集相关联的第二服务处理单元的服务网关的服务冗余管理器检测到冗余事件时,所述服务冗余管理器将服务网关中的特定冗余集从主冗余状态转换到备用冗余状态。
[0010] 在另一示例中,一种服务网关包括:网络接口;服务平面,其具有连接到网络接口的多个服务处理核心;以及路由平面,其连接到所述网络接口,所述路由平面包括存储器和连接到所述存储器的一个或多个处理器,其中,所述存储器包括指令,当所述指令被所述一个或多个处理器执行时,促使所述处理器:建立服务冗余守护程序;接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0011] 在又一示例中,描述了一种计算机可读介质,包括指令,当由一个或多个处理器执行时,所述指令促使所述一个或多个处理器:建立服务冗余守护程序;接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0012] 在附图和以下描述中阐述这些技术的一个或多个实施例的细节。通过说明书和附图以及权利要求,这些技术的其他特征、目的和优点将变得显而易见。

附图说明

[0013] 图1是示出根据本文描述的技术操作的示例性冗余服务网关系统的框图
[0014] 图2A和图2B是示出根据本文描述的技术的应用覆盖网络的框图,该应用覆盖网络具有在三个单独机框上托管的三个服务网关;
[0015] 图3A是示出根据本公开中描述的技术的示例服务网关的框图;
[0016] 图3B是示出根据本公开中描述的技术的具有从各种服务卡分配的服务处理核心的服务处理单元的框图;
[0017] 图4是示出根据本文描述的技术的服务的一组示例服务链的框图;
[0018] 图5是示出跨服务网关的主和备用关系的框图;
[0019] 图6是示出图1的网络系统中网关之间的通信的框图;
[0020] 图7是示出根据本文描述的技术的到对等体的主控权转换的框图;
[0021] 图8A是示出图1的冗余服务网关系统中的应用节点之间的通信的框图;
[0022] 图8B是根据本文描述的技术的代表性信号路由向量;
[0023] 图9是示出通过使用as-path-prepend命令来通告信号路由的存在与否的示图;
[0024] 图10是示出通过使用本地优选值来通告信号路由的存在与否的示图;
[0025] 图11是示出根据本文描述的技术的到对等体的服务切换的流程图
[0026] 图12是示出根据本文描述的技术的在主状态和备用状态之间移动的冗余集状态机的框图;
[0027] 图13是示出根据本文描述的技术的在切换到对等体期间作为信号路由变化的函数的服务变化的流程图;
[0028] 图14是示出根据本文描述的技术的一个或多个方面的服务的一组示例服务链的框图;
[0029] 图15是示出根据本公开中描述的技术的一个或多个方面的另一示例服务网关的框图;
[0030] 图16是示出根据本公开中描述的技术的一个或多个方面的又一示例服务网关的框图;
[0031] 图17是示出根据本公开中描述的技术的一个或多个方面的使用信号路由来改变服务相关配置(例如,业务流方向)的框图;
[0032] 图18是示出根据本文描述的技术的一个或多个方面的在切换到对等体期间作为信号路由变化的函数的服务的示例配置的流程图。

具体实施方式

[0033] 跨两个或多个机框扩展装置或控制器中的冗余会是有利的。机框间冗余解决方案提高了可靠性,但是当机框、装置或控制器不同构时,难以实施。
[0034] 描述了一种用于应用感知的机框间冗余的架构,该架构具有对两个或更多网络元件组之间的应用故障切换组的精细控制。这些技术可用于定义用户接口结构,所述用户接口结构利用路由协议来促进冗余相关动作,例如,在服务网关之间重定向流量。受控的网络元件可以是同构的或异构的(物理的或虚拟的),并且可以跨不同的网络或地理区域分布。冗余机制提供了与底层网络协议无关的流量重定向,并提供了基于服务组的健康状态触发、防止和恢复服务组的手动和自动切换的选项。
[0035] 在一个示例方法中,协议和网络不可知机制用于设置在主状态下运行的N个有状态应用服务网关,所述网关由在备用状态下运行的单个公共有状态应用服务网关备份。该技术提供了一种灵活而稳固的机制来实现N:1有状态应用网关冗余。如果通信协议使用的信令机制独立于通信协议的规范,则通信机制称为网络或协议不可知。
[0036] 图1是示出根据本文描述的技术操作的示例性冗余服务网关系统4的框图。在图1所示的示例方法中,冗余服务网关系统4包括服务网关(在此处,网关8A.1至8A.n和8B,统称为“网关8”),所述服务网关跨两个或多个机框分布,但逻辑上关联为冗余服务传送系统27。在一个示例方法中,图1的冗余服务网关系统4包括连接到服务提供商核心网7并通过服务提供商核心网7连接到公共网络12的用户接入网6。在一个示例方法中,服务提供商核心网7作为专用网络运行,以跨用户接入网络6向用户装置16A-16N(统称为“用户装置16”)提供基于数据包的网络服务。在一个这样的示例方法中,服务提供商核心网7为用户装置16提供网络接入的认证和建立,使得用户装置可以开始与公共网络12交换数据包,公共网络12可以是内部或外部基于数据包的网络,例如,互联网。
[0037] 在图1的示例中,用户接入网6经由服务提供商核心网7和网关8提供到公共网络12的连接。在一个示例方法中,服务提供商核心网7和公共网络12提供基于数据包的服务,这些服务可用于供用户装置16请求和使用。作为示例,核心网7和/或公共网络12可以提供例如批量数据传送、基于互联网协议的语音(VoIP)、互联网协议电视(IPTV)、短消息服务(SMS)、无线应用协议(WAP)服务或客户特定的应用服务。公共网络12可以包括例如局域网(LAN)、广域网(WAN)、互联网、虚拟LAN(VLAN)、企业LAN、第三层虚拟专用网(VPN)、由操作用户接入网6的服务提供商操作的互联网协议(IP)内部网、企业IP网或其某种组合。在各种示例方法中,公共网络12连接到公共WAN、互联网或其他网络。在一些这样的示例中,公共网络12执行一个或多个数据包数据协议(PDP),例如,IP(IPv4和/或IPv6)、X.25或点对点协议(PPP),以实现公共网络12服务的基于数据包的传输。
[0038] 在图1所示的示例中,冗余服务传送系统被配置为N:1有状态应用网关冗余模型。在一个示例方法中,每个服务网关8A包括一个或多个服务处理单元(SPU)30,并通过其相关联的SPU 30提供一组服务10。在一些示例方法中,网关8经由在每个网关8内的服务平面中操作的一个或多个SPU 30提供这些服务10。在图1所示的示例中,服务网关8A.1到8A.N均处于按配置提供其相应的服务10.1-10.N(“服务10”)的主状态,而服务网关8B处于支持每个主服务网关8A.1-8A.N的备用状态。在一个示例方法中,当网关8A遇到严重错误时,备用服务网关8B自动接管一个或多个网关8A的主控权,确保每个故障网关8A的不间断应用服务。
这种方法的潜在优势是提高了备用服务网关8B的利用率(μ)。
[0039] 在一个示例方法中,每个服务处理单元30接收在输入接口上接收的网络流量。在一个这样的示例方法中,每个SPU 30充当两个或多个主网关8A的备用节点。从SPU的度来看,这样的模型有助于实现主动:主动模型。尽管出于示例的目的描述了服务网关8B是备用的,但是在一些示例中,任何服务网关8可以作为一个或多个服务的主网关和一个或多个其他服务的备用网关来运行,例如,基于每个服务或基于每个SPU具有不同的角色。
[0040] 用户装置16经由用户接入网6连接到网关8的服务处理接口,以接收到用户装置16托管的应用程序的用户服务的连接。用户可以表示例如企业、住宅用户或移动用户。用户装置16可以包括例如个人计算机、膝上型计算机或与用户相关联的其他类型的计算装置。此外,用户装置16可以包括经由无线接入网(RAN)9接入冗余服务网关系统2的数据服务的移动装置。示例移动用户装置包括移动电话、具有例如3G无线卡的膝上型或台式计算机、支持无线的上网本、视频游戏装置、寻呼机、智能电话、个人数据助理(PDA)等。每个用户装置16可以运行各种软件应用,例如,文字处理和其他办公室支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议和电子邮件等。在一些示例方法中,用户装置16经由包括有线和/或无线通信链路的接入链路5连接到用户接入网6。本文使用的术语“通信链路”包括任何形式的有线或无线传输介质,并且可以包括中间节点,例如,网络装置。每个接入链路5可以包括例如不对称DSL网络、WiMAX、T-1线路、综合业务数字网(ISDN)、有线以太网或蜂窝无线链路的方面。
[0041] 在一些示例方法中,网络服务提供商操作或者在一些情况下租赁用户接入网6的元件,以在用户装置16和网关8之间提供数据包传输。用户接入网6表示聚集来自一个或多个用户装置16的数据流量的网络,用于向/从服务提供商的服务提供商核心网7传输。在一些示例方法中,用户接入网6包括网络节点,这些网络节点执行通信协议,来传输控制和用户数据,以促进用户装置16和网关8之间的通信。用户接入网6可以包括宽带接入网、网络、无线LAN、公共交换电话网(PSTN)或其他类型的接入网,并且可以包括蜂窝接入网或以其他方式为蜂窝接入网提供连接,例如,图1的无线接入网(RAN)9。无线电接入网络9的示例包括符合通用移动电信系统(UMTS)架构的网络、称为长期演进(LTE)的UMTS演进、由互联网工程任务组(IETF)标准化的移动IP、以及由第三代合作伙伴项目(3GPP)、第三代合作伙伴项目2(3GGP/2)和全球微波接入互操作性(WiMAX)论坛提出的其他标准。
[0042] 服务提供商核心网7(以下称为“核心网7”)向连接到用户接入网6的用户装置16提供基于数据包的连接,用于接入公共网络12。核心网7可以表示由服务提供商拥有和运营的公共网络,以互连多个网络,这些网络可以包括用户接入网络6。核心网7可以实现多协议标签交换(MPLS)转发,并且在这种情况下可以称为MPLS网络或MPLS骨干网。在一些情况下,核心网7表示多个互连的自治系统,例如,互联网,其提供来自一个或多个服务提供商的服务。公共网络12可以表示例如通过客户边缘装置(例如,客户边缘交换机或路由器)耦接到核心网7的边缘网络。公共网络12可以包括数据中心
[0043] 在包括有线/宽带接入网(例如,用户接入网6)的服务网关系统4的示例中,例如,每个网关8可以表示宽带网络网关(BNG)、宽带远程接入服务器(BRAS)、MPLS提供商边缘(PE)路由器、核心路由器或网关、或电缆调制解调器终端系统(CMTS)。在包括蜂窝接入网(例如,用户接入网6)的服务网关系统4的示例中,每个网关8可以表示移动网关,例如,网关通用数据包无线服务(GPRS)服务节点(GGSN)、接入网关(aGW)或数据包数据网(PDN)网关(PGW)。在其他示例中,关于每个网关8描述的功能可以在交换机、服务卡或其他网络元件或组件中实现。
[0044] 网络服务提供商管理服务网关系统4的至少一部分,通常向与接入服务网关系统4的装置(例如,用户装置16)相关联的用户提供服务。所提供的服务可以包括例如传统互联网接入、互联网语音协议(VoIP)、视频和多媒体服务以及安全服务。如上面关于用户接入网6所述,服务提供商核心网7可以支持多种类型的用户接入网6基础设施,其连接到服务提供商网络接入网关,以提供对所提供的服务的接入。在一些情况下,服务网关系统4可以包括连接到具有不同架构的多个不同接入网络6的用户装置16。
[0045] 通常,在一个或多个用户装置16上执行的应用程序可以通过向一个或多个服务网关8发送会话请求来请求授权和数据服务。反过来,服务网关8通常访问认证、授权和计费(AAA)服务器11,以认证请求网络接入的用户装置。在一些示例中,服务网关8查询策略控制服务器14和/或AAA服务器11,以确定来自用户装置16的数据包流的用户特定服务需求。
[0046] 一旦认证,任何用户装置16可以向服务提供商核心网7发送用户数据流量,以便访问和接收公共网络12提供的服务。这种数据包穿过服务网关8,作为至少一个数据包流的一部分。术语“数据包流”、“业务流”或简单的“流”是指源自特定源装置并发送到特定目的装置的一组数据包。在上游(由一个用户装置16发起)或下游(去往一个用户装置16)方向上的单个数据包流可以通过例如5元组来识别:<源网络地址、目的网络地址、源端口、目的端口、协议>。这个5元组通常标识接收到的数据包对应的数据包流。n元组是指从5元组中抽取的任何n个项目。例如,数据包的二元组可以指数据包的<源网络地址、目的网络地址>或<源网络地址、源端口>的组合。此外,用户装置可以在向服务提供商核心网7认证并建立用于接收数据服务的通信会话时发起多个数据包流。路径26示出了由一个或多个网关8定义的从用户装置到公共网络12并且返回的数据路由。
[0047] 如本文所述,在服务网关8内运行的服务处理单元30向一些或所有网络流量提供服务10。作为示例,一个或多个SPU 30中的服务10可以应用防火墙和安全服务、网络地址转换(NAT)或运营商级网络地址转换(CG-NAT)、媒体优化(语音/视频)、IP Sec/VPN服务、深度数据包检查(DPI)、会话边界控制器(SBC)、虚拟设备、虚拟高速缓存、网络流量加速、服务质量(QoS)、访问控制、超文本传输协议(HTTP)过滤、计数、计费、计费和负载平衡数据包流或应用于网络流量的其他类型的服务。在一些示例中,由SPU 30提供的服务可以是由两个或多个服务组成的复合服务,并且可以形成对用户16的单个外部可见服务。作为一个示例,服务10可以是由NAT服务和防火墙服务组成的复合服务。
[0048] 在一些示例中,SPU 30可以在由服务网关8提供的虚拟计算环境中或者在其他执行环境中作为虚拟机运行。例如,尽管本文描述为由服务网关8内的计算刀片提供,但是SPU 30的计算环境可以替代地或另外地由通用计算装置的可扩展集群提供,例如,基于x86处理器的服务器。作为另一示例,SPU 30可以驻留在通用计算装置和专用设备的组合上。SPU 30还可以托管虚拟化的单个网络服务,这些服务通过虚拟化存储器的分配、处理器利用率、存储和网络策略并且通过添加额外的负载平衡虚拟机来像在现代数据中心一样扩展。
[0049] 在一个示例方法中,SPU 30引导单独的用户数据包流通过由服务10提供的定义的服务集。即,每个用户数据包流可以通过由特定SPU 30内的服务10提供的服务的特定有序组合来转发,每个有序集在本文称为“服务链”。此外,给定的服务链可以包括由网关8访问的独立计算环境或其组合在服务传送网关8内“箱上”或“箱下”提供的网络服务。以这种方式,当数据包根据服务提供商配置的服务链在用户接入网6和公共网络12之间流动时,用户流可以由SPU 30处理。在2013年9月30日提交的题为“Session-Aware Service Chaining Within Computer Networks”的美国专利申请No.14/042,685中描述了实现这一点的一些技术,其描述通过引用结合于此。
[0050] 一旦在服务链的终端节点处处理,即,应用于沿着特定服务路径流动的数据包的最后一个服务,SPU 30可以将流量引导回网关8的转发平面,用于进一步处理和/或转发到公共网络12。
[0051] 尽管“服务链”定义了以特定顺序应用的一个或多个服务,以提供复合服务,用于响应于绑定到服务链的数据包流,但是“服务隧道”或“服务路径”是指由服务链处理的数据包流采用的逻辑和/或物理路径以及根据服务链顺序转发数据包流的转发状态。每个服务链可以与相应的服务隧道相关联,并且与每个用户装置16相关联的数据包流根据与相应用户相关联的服务配置文件沿着服务隧道流动。网关8在为用户认证和建立接入会话之后,可以确定每个用户装置16的配置文件要求流量在服务隧道上发送到一个或多个业务节点13,以应用业务,并且沿着每个网关8内的适当服务隧道为用户引导数据包流,从而促使服务10(例如,提供服务的服务节点13)为给定用户应用必要的有序服务。
[0052] 例如,服务10可以表示一个或多个服务节点,这些服务节点使用内部配置的转发状态来实现服务链,该转发状态沿着服务链引导数据包流的数据包,以便根据所识别的一组服务10进行处理。这种转发状态可以使用网络隧道(例如,互联网协议(IP)或通用路由封装(GRE)隧道)或者通过使用虚拟局域网(VLAN)、多协议标签交换(MPLS)技术等来指定隧道接口,用于在服务10之间具有隧道。在一些情况下,互连服务10的真实或虚拟交换机、路由器或其他网络元件可以被配置为根据服务链将数据包流引导到服务10。
[0053] 如上所述,跨两个或多个机框扩展的装置或控制器中的冗余提供了增强的可靠性。然而,当前的机框间冗余解决方案旨在跨同一网络中的两个同构机框提供冗余。然而,典型的网络不是同构机框的集合。为了补偿,如本文所述,服务网关8可以提供用户接口,其被编程为支持语义和命令,这些语义和命令允许用户相对于应用于服务网关系统4内数据包流的服务10更有效地定义和管理主动-主动或主动-备用冗余。在一个示例方法中,用户接口允许管理员或网络管理系统容易地指定配置数据,该配置数据定义了用于管理冗余服务网关集群的冗余机制。本文描述的技术将应用层冗余机制与装置之间的底层通信机制分离,从而允许抽象的冗余机制容易地利用协议,例如,路由协议和机框间通信协议。本公开的技术还可以允许管理员在每服务和/或每复合服务粒度级别上容易地配置网关8上的冗余设置。
[0054] 此外,本公开的技术提供了管理接口表达性,即,语法,其利用了可以跨不同类型的网关使用的抽象来隐藏底层硬件。这种管理接口表达性对于系统管理员可能更有用,并且也可以更有效地驱动服务提供商核心网7和服务网关8的行为。
[0055] 以这种方式,在一个示例中,由这些技术提供的架构可以容易地用于定义用户接口结构,所述用户接口结构利用路由协议来促进冗余相关动作,例如,使得服务提供商核心网7的网络装置将流量从作为应用服务主装置运行的一个或多个服务网关8重定向到作为主装置的公共备用装置运行的单个服务网关8。
[0056] 在一个示例方法中,通过添加或删除用于触发与冗余机制相关的动作的“信号路由”来配置应用层服务,例如,将网关主装置转换为备用装置。在一个示例方法中,信号路由是应用程序使用下面描述的服务冗余过程来发出应用程序主状态变化的信号,同时驱动路由策略变化的路由。在一个这样的示例方法中,“信号路由”是由服务网关操纵的静态路由,以影响路由策略,从而在冗余服务网关之间切换主控权,并将流量重定向到新的主服务网关。
[0057] 在一个示例中,本文描述的技术提供了允许用户定义和指定冗余服务传送系统(例如,图1的冗余服务传送系统27)的逻辑结构的用户接口(UI)构建块。UI构建块包括对语法的支持,允许用户定义触发从服务的网关主控权切换到该服务的备用状态的关键事件(“冗余事件”)。在一个示例方法中,冗余事件(RE)是触发在一个服务网关8中操作的服务冗余(SR)守护程序的事件,以将网关主控权从配置为主装置的一个服务网关8切换到配置为备用服务网关的服务网关8。例如,用户可以根据服务10的性能下降来定义冗余事件,使得服务节点不再能够提供由与一个用户装置16相关联的服务级别协议(SLA)支付的服务。
[0058] 在一个示例方法中,UI构建块包括对允许用户定义策略(“冗余策略(RP)”)的语法的支持,该策略定义冗余事件如何与在冗余事件定义的事件发生时要采取的动作相关联。在一些这样的方法中,冗余策略是详述在一个或多个底层关键事件发生时要采取的动作的策略。在一些示例中,这些动作可以指定服务网关8A的服务冗余过程更新由服务网关8A维护的路由信息,提示在服务网关8A上执行的路由协议向服务提供商核心网7内的路由对等体(未示出)发布路由协议更新。
[0059] 在一个示例方法中,UI构建块包括支持允许用户将一个或多个冗余策略分组为一组(称为“冗余集(RS)”)的语法以及允许用户将一个或多个冗余集分组为一组(称为“冗余组(RG)”)的语法。以这种方式,服务网关8包括相应的用户接口,其支持允许用户定义一个或多个冗余事件、冗余策略、冗余集和冗余组的语法,如下面进一步详细解释的。例如,创建冗余集和冗余组的能可以允许跨同一组服务网关机框定义多个冗余组。
[0060] 根据本公开的技术,每个服务网关8的服务冗余过程监控服务10的性能平。在监控组件检测到满足冗余事件的定义的任何服务10的预设服务级别的故障或退化的情况下,服务冗余过程触发预定义的冗余策略的应用。例如,在一些方面,服务冗余过程可以与服务10交互,以收集统计数据、执行握手或者对服务10的功能进行其他检查。
[0061] 服务10的性能水平独立于服务网关网络装置8的整体操作状态。换言之,在检测到配置的冗余事件时,在一些示例方法中,服务网关8可以触发服务10的冗余相关动作。例如,这可以包括将与冗余集或冗余组相关联的主/备用角色从服务网关8A改变到服务网关8B,即使服务网关8A和/或用于受影响服务10的应用的现有服务节点保持可操作。在不中断接收服务10的用户16的情况下,发生需要特定服务10的网络流量的切换。在2018年5月29日发布的题为“ROUTE SIGNALLING BASED RESILLIENT APPLICATION OVERLY NETWORK”的美国专利No.9,985,875、2015年9月30日提交的题为“ROUTE SIGNALLING BASED RESILLIENT APPLICATION OVERLY NETWORK的”美国专利申请No.14/871,492以及2016年12月13日提交的题为“APPLICATION AWARE INTER-CHASSIS REDUNDANCY的”美国专利申请No.15/377,777中,描述有状态应用网关冗余机制。
[0062] 图2A和图2B是示出了根据本文描述的技术的具有在三个单独的机框3(显示为机框3.1-3.3)上托管的三个服务网关8.1-8.3的应用覆盖网络28的框图。每个服务网关8包括一个或多个服务处理单元(SPU)30(显示为SPU 30.1-30.3)和路由引擎(RE)34(显示为RE 34.1-34.3)。每个路由引擎34可以通告与其服务网关8相关联的信号路由的变化。在某些情况下,这是在成为冗余集的主服务网关时完成的。在其他情况下,这是在成为冗余集的备用服务网关时完成的。当在任何主服务网关上出现严重故障时,备用服务网关自动接管主服务,确保不间断的应用服务时,应用覆盖网络28称为是弹性的。
[0063] 在图2A和图2B所示的示例中,每个服务处理单元30从服务网关8的入口转发组件接收数据包,并且使用入口转发组件的数据包转发引擎(PFE)将数据包发送到一个或多个服务处理单元30。在图2A和2B的示例方法中,服务处理单元30.1和服务处理单元30.3是冗余集(RS)1的一部分,而服务处理单元30.2和服务处理单元30.3是RS 2的一部分。在所示的示例中,在图2A中,SPU 30.1和30.2分别是RS 1和RS 2的主SPU,而SPU 30.3用作RS 1和RS 2的备用SPU。在一些示例方法中,服务处理单元30绑一个或多个服务处理接口,以包括一个或多个服务(例如,网络地址转换(NAT))。
[0064] 如上所述,在图2A和图2B的示例方法中,对于给定的服务,服务网关8.1和8.2是主服务网关,而服务网关8.3是公共备用服务网关。在一个示例方法中,主/备用状态存储在与服务相关联的SPU 30中。即,每个SPU 30跟踪其被分配到的冗余集的当前主/备用状态。在N:1有状态应用网关冗余方法中,用作N个主装置的备用装置的SPU 30可能需要跟踪多达N个不同的冗余状态。
[0065] 在另一示例方法中,独立于SPU 30运行的服务冗余管理器跟踪在其控制下的SPU被分配到的每个RS的主/备用状态。在网关8中,网关8包括在N:1有状态应用网关冗余应用中从当备用的一个SPU 30和在M:1有状态应用间服务网关冗余应用中充当备用的一个SPU 30,网关8的服务冗余管理器可能必须跟踪多达N+M个不同的冗余状态。在一个示例方法中,服务冗余管理器将状态存储为向量,该向量具有用于跟踪N+M个不同状态中的每一个的比特。在一个示例方法中,服务冗余管理器跟踪在网关级别分配给网关的冗余集的冗余状态。
这意味着关系集在每个网关8上只能以一种状态存在。在另一示例方法中,服务冗余管理器跟踪SPU级别的状态。这意味着关系集可以在每个网关8上作为主装置和备用装置执行。
[0066] 服务处理单元30可以包括一个或多个服务处理核心。在一些示例方法中,服务处理核心包括一个或多个中央处理单元(CPU)。在一些示例方法中,服务处理核心包括一个或多个虚拟中央处理单元(vCPU)。在其他示例方法中,服务处理核心包括一个或多个网络处理单元(NPU)。在其他示例方法中,服务处理核心包括一个或多个虚拟NPU(vNPU)。在又一示例方法中,服务处理核心包括来自服务处理核心的选择中的两个或更多核心,所述服务处理核心包括核心、CPU、vCPU、NPU和vNPU。在一个示例方法中,每个服务处理单元30可以包括从例如CPU、vCPU、NPU和vNPU中选择的服务处理核心。
[0067] 在图2A和图2B的示例方法中,应用覆盖网络28被配置为N:1有状态应用间服务网关,其中,N=2。即,两个主节点(服务网关8.1和8.2)由单个备份节点(服务网关8.3)支持。每个主服务网关8都与冗余集相关联。每个冗余集(RS)包括指定为主网关的服务网关和指定为备用网关的服务网关。在图2A和图2B所示的示例中,冗余集1(RS 1)包括作为主网关的服务网关8.1和作为备用网关的服务网关8.3,而冗余集2(RS 2)包括作为主网关的服务网关8.2和作为备用网关的服务网关8.3。
[0068] 在该示例中,RS 1和RS 2均保持自己的主备状态。服务网关1托管RS 1,服务网关2托管RS 2,但是服务网关3托管RS 1和RS 2。通过在每个冗余集中包含状态并在单个SPU(0)上托管两个冗余集,服务网关3能够充当服务网关1和服务网关2的备用服务网关。
[0069] 在图2B所示的示例中,服务网关8.2上的SPU 30.2出现故障,并将RS 2主控权切换到该冗余集的备用SPU,即,服务网关8.3的SPU 30.3。从图2B可以看出,服务网关8.3的SPU 30.3成为RS 2的主服务网关,但仍然是RS 1的备用服务网关。
[0070] 在一个示例方法中,每个SPU 30被配置为支持两个或更多冗余集,每个冗余集可以处于不同的状态。最后,每个路由引擎(RE)34被配置为支持多个冗余集,每个冗余集可以处于不同的状态。这种系统的一个潜在优势是提高备用服务网关的利用率(μ)。从SPU的角度来看,这个模型有助于实现主动:主动模型。因此,应用覆盖网络28展示了协议和网络不可知机制,用于建立由在备用状态下运行的单个有状态应用服务网关备份的在主状态下运行的N个有状态应用服务网关。该技术提供了一种灵活而稳固的机制来实现N:1有状态应用网关冗余。
[0071] 在一个示例方法中,服务网关8.1、8.2和8.3形成由一个或多个服务冗余(SR)守护程序24控制的冗余服务传送系统27。在一种这样的方法中,用户接口(UI)构建块用于定义事件(冗余事件),定义用于对这种事件作出反应的冗余策略(冗余策略),并将冗余策略分组为集(冗余集)。冗余策略详细说明了发生定义的冗余事件时要采取的动作。
[0072] 在一个示例方法中,冗余集不仅将一个或多个冗余策略分组成一个集,而且还将状态分配给该集。在一种这样的方法中,每个冗余集包括主状态和至少一个备用状态;UI构建块包括用于定义导致状态变化的关键事件的技术。在一个示例方法中,每个冗余集因此根据冗余策略及其底层冗余事件,建立了驱动主/备用状态变化的条件的粒度。在一个示例方法中,冗余集还绑定一个或多个服务集,以驱动与这些服务集相关的状态同步状态,其中,基于冗余集在服务网关之间同步状态,用于冗余集的潜在故障切换。
[0073] 在一个示例方法中,本文描述的UI构建块包括用于将两个或多个冗余集分组为“冗余组(RG)”的技术。在一个这样的示例方法中,冗余组是一个或多个冗余集的集合;可以为每个服务网关8定义冗余组。
[0074] 本文定义的UI架构提供了跨机框为不同的组、事件和动作扩展服务冗余的能力。该架构允许管理员定义可用作切换触发器的自定义事件以及包括切换所采取的动作的自定义冗余策略。组成冗余组的机框可以是同构或异构机框,可以通过L2或L3网络连接,并且可以在地理上分开。
[0075] 图3A是示出根据本公开中描述的技术的示例服务网关的框图。在图3A的示例中,服务网关网络装置(服务网关8)包括转发平面130、路由平面132和服务平面134。转发平面130可以由通常与网络路由器的高端路由和转发组件相关联的专用转发集成电路来提供。
2011年11月1日发布的题为“MULTI-CHASSIS ROUTER WITH MULTIPLEXED OPTICAL INTERCONNECTS”的美国专利No.8,050,559描述了多机框路由器,其中,多级交换结构(例如,3级Clos交换结构)用作在多机框路由器的多个路由节点之间中继数据包的高端转发平面,其描述通过引用结合于此。
[0076] 服务网关8可以利用共享转发平面130的方式集成路由平面132和服务平面134。转发平面130可以表示丰富和动态的共享转发平面,在某些情况下,分布在多机框路由器上。此外,如上所述,转发平面130可以由通常与网络路由器的高端路由组件相关联的专用转发集成电路提供,使得路由平面132和转发平面130作为高端路由器操作。在一个示例方法中,服务平面134可以紧密集成在服务网关8内(例如,通过服务卡136),以便以共享、协作的方式使用路由组件的转发平面130。关于这种路由的细节,见2012年12月25日发布的题为“STREAMLINED PACKET FORWARDING USING DYNAMIC FILTERS FOR ROUTING AND SECURITY IN A SHARED FORWARDING PLANE”的美国专利No.8,339,959,其描述通过引用结合于此。
[0077] 如图3A所示,路由平面132提供路由组件138,路由组件138主要负责维护路由信息库(RIB)140,以反映服务网关8所连接的网络和其他网络实体的当前拓扑。例如,路由组件138为路由协议进程(例如,路由协议守护程序142(RPd))执行路由协议提供操作环境。示例协议包括路由和标签交换协议,例如,边界网关协议(BGP)、开放最短路径优先(OSPF)、中间系统到中间系统(ISIS)路由协议、资源预留协议(RSVP)、具有流量工程扩展的RSVP(RSVP-TE)、内部网关协议(IGP)、链路状态协议和标签分发协议(LDP)。路由协议守护程序142可以表示与对等路由器通信并定期更新RIB 140以准确反映网络和其他网络实体的拓扑的软件组件或模块。虽然被描述为由路由组件138执行的守护程序或软件模块,但是路由协议守护程序142可以被实现为硬件模块或者硬件和软件的组合。
[0078] 路由组件138可以经由路由协议守护程序142接收该路由信息,并且更新或维护RIB 140,以反映核心网7的当前拓扑。这种拓扑可以提供通过核心网7到达任何给定用户装置16的多条不同路径。在图1的示例中,存在从公共网络12通过每个服务网关8到用户装置16的路径。在一些情况下,在一个网关8中的路由组件138可以选择用于将用户装置16连接到公共网络12的路径。
[0079] 在图3A所示的示例中,管理员145可以经由用户接口(UI)模块146与路由组件138接合,该模块146可以表示用户或供应系统可以通过其与路由组件138接合的模块。UI模块146可以例如包括命令行接口(CLI),其可以接受命令和/或脚本形式的输入,或者可以包括图形用户接口(GUI)。管理员145可以与UI模块146接合,以配置各种组件服务网关8,包括路由组件138。一旦被配置,路由组件138然后可以解析RIB 140,以生成转发信息。路由组件
138然后可以与转发平面130接合,以将该转发信息安装到转发信息库(FIB)148中。
[0080] 入口转发组件150A和出口转发组件150B(“转发组件150”)可以表示转发网络流量的软件和/或硬件组件,例如,一个或多个接口卡(未示出)。在一个示例方法中,转发组件150A维护FIB 148,FIB 148将网络目的地与服务网关8的输出接口卡的特定下一跳和相应接口端口相关联。在一些这样的示例方法中,路由组件138以具有表示网络7内目的地的叶节点的基树的形式生成FIB 148。2007年2月27日发布的美国专利No.7,184,437提供了利用基数树进行路由解析的路由器的示例方法的细节,其描述通过引用结合于此。
[0081] 在一个这样的示例方法中,当转发数据包时,转发组件150A基于数据包报头内的信息穿过基树,进入叶节点,以最终选择数据包转发到的下一跳和输出接口。基于该选择,转发组件可以将数据包直接输出到输出接口,或者在高端路由器的多级交换结构的情况下,可以将数据包转发到后续级,以切换到适当的输出接口。
[0082] 如图3A所示,服务平面134表示使用服务卡136提供一个或多个服务的逻辑或物理平面。服务卡136A和136B(统称为“服务卡136”)可以表示物理卡,这些物理卡被配置为插入服务网关8中,并经由背板、交换结构或其他通信介质耦接到转发平面130和路由平面132。通常,服务卡136可以包括直接耦接到交换结构的卡。服务卡136可以从服务网关8移除。管理员145可以与UI模块146接合,以与路由组件138接合,以指定哪些数据包流将由一个或多个服务卡136进行服务处理。
[0083] 在一个示例方法中,每个服务卡136包括两个或多个服务处理核心31。在一个这样的示例方法中,服务处理核心分配给服务处理单元30,允许每个服务卡136具有一个以上的SPU 30。将每个服务卡136分成两个或多个SPU 30,可以增加每个服务卡136支持的冗余集的数量,并且确实在资源分配中提供了更精细的粒度。
[0084] 在指定流之后,路由组件138可以更新RIB 140,以反映这些流将经历服务处理,使得当解析FIB 148时,转发信息可以指示各种流将经历服务处理。通常,该转发信息可以通过为这些流指定下一跳来指定这些流需要服务处理,该下一跳将这些流的数据包引导到一个服务卡136(其中,该下一跳可以称为“内部下一跳”),如下面进一步详细描述的。可以指定服务网关8外部的额外下一跳,在该示例中,外部下一跳可以指定将在哪个路径上转发数据包。内部下一跳可以链接到外部下一跳,在该示例中,服务网关8可以为任何给定流维护两个下一跳(并且可能更多)。
[0085] 服务卡136可以均表示能够应用一个或多个服务的卡。尽管出于示例的目的针对服务卡进行了描述,但是在一些示例中,服务卡136可以是针对图2A-2B的服务处理单元30描述的任何示例。服务卡136可以包括控制单元151,控制单元151可以表示执行软件指令的一个或多个通用处理器,例如,用于定义软件或计算机程序的那些处理器,软件指令存储到非暂时性计算机可读介质,例如,存储装置(例如,磁盘驱动器光驱)、或存储器(例如,闪存、随机存取存储器或RAM)或任何其他类型的易失性或非易失性存储器,其存储使一个或多个处理器执行本文描述的技术的指令。或者,控制单元151可以表示专用硬件,例如,一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用处理器(ASSP)、一个或多个现场可编程阵列(FPGA)或专用硬件的一个或多个前述示例的任意组合,用于执行本文描述的技术。在一些情况下,控制单元151可以称为处理器。
[0086] 控制单元151可以从一个或多个服务处理核心31实现SPU 30。每个SPU 30可以表示将一个或多个服务应用于数据包、数据包流和/或数据包会话的模块或单元(其中,会话是指从源到目的地的流和从相同目的地到相同源的流的组合)。SPU 30可以包括软件和/或硬件组件,其根据由服务策略(未示出)存储的策略配置数据定义的服务策略规则来应用服务。例如,服务策略可以由管理员145经由UI模块146配置,并由管理守护程序160编程。每个SPU 30可以执行任何类型的服务,包括上面和下面列出的服务。出于说明的目的,SPU 30可以实现修改、编辑或更新数据包中的信息的服务,该服务通常用于执行路径选择或以其他方式做出转发决定。修改、编辑或更新该信息的示例服务可以包括NAT服务和隧道服务。
[0087] 在图3A的示例中,转发组件150A接收数据包149,并且充当入口转发组件,调用流控制单元154。流控制单元154表示有选择地将数据包引导到服务平面134进行处理的模块。在一些示例方法中,服务平面134是虚拟机。流控制单元154可以访问FIB 148,以确定数据包149发送到内部下一跳,例如,与服务平面134的服务卡136相关联的一个SPU 30,或者经由充当数据包149对应的流的出口转发组件(例如,出口转发组件150B)的另一转发组件发送到外部下一跳。虽然称为入口转发组件150A和出口转发组件150B,但是转发组件150A、
150B中的每一个在底层硬件和/或逻辑方面可以彼此相同或相似。即,转发组件150A、150B的入口和出口指定仅仅表示转发组件150A充当数据包149对应的数据包流的入口转发组件,转发组件150B充当数据包149对应的数据包流的出口转发组件。此外,转发平面130可以包括两个以上的转发组件,其中,为了便于说明,在图3A的示例中没有示出这些额外的转发组件。
[0088] 在图3A所示的示例中,控制单元151将三个核心31(31.1-31.3)分配给SPU 30。在一个示例方法中,SPU 30从入口转发组件150A接收流量,经由核心31.1-31.3应用所需的服务,并将结果返回到入口转发组件150A。在一个示例方法中,控制单元151负载平衡分布在SPU 30的核心31.1-31.3上的流量。
[0089] 在一个示例方法中,流控制单元154可以确定数据包149将传输到服务卡136。响应于确定数据包149将传输到服务卡136,使得服务卡136上的SPU 30可以将服务应用到数据包149,在一些示例中,入口转发组件150A的流控制单元154可以附加内部服务数据包报头(其也可以称为“服务甜饼(service cookie)”)。流控制单元154可以指定该内部服务数据包报头包括存储识别转发组件150A的入口标识符的字段。流控制单元154可以将该内部服务数据包报头附加到数据包149,以生成更新的数据包156。流控制单元154然后可以将数据包156引导到服务平面134的服务卡136。在一个示例方法中,服务卡136可以接收该数据包并移除内部服务数据包报头,从内部服务数据包报头解析入口标识符。服务卡136的控制单元151然后可以调用一个或多个SPU 30,其将每个SPU 30的服务应用于更新的数据包156,生成服务数据包158。假设服务数据包158与数据包149和156的不同之处在于,在做出转发决策或执行路径选择时使用的服务数据包158的至少一个方面不同于数据包149和156(例如,服务数据包158的五元组的至少一个方面不同于数据包149和数据包156的五元组)。在这方面,服务卡136经由SPU 30将服务应用于更新数据包156,以生成服务数据包158,使得服务数据包158的五元组不同于更新的数据包156的五元组。
[0090] 然后,服务卡136或在服务卡136上执行的SPU 30可以使用先前从内部服务数据包报头解析的入口标识符将服务数据包158传输回流控制单元154,以便在服务网关8的转发组件上维持数据包流的负载平衡。即,服务卡136可以主动识别最初接收数据包149的转发组件150A、150B中的一个(以及为了便于说明,在图3A的示例中未示出的任何其他转发组件),该转发组件充当所谓的入口转发组件,和/或保持数据包149对应的流的单点接触。结果,服务卡136将服务数据包158传输到由入口标识符识别的入口转发组件150A,而不对服务数据包158的至少一部分应用散列函数来识别入口转发组件150A,和/或不确定服务数据包158要转发到的下一跳。此外,服务卡136将服务数据包158传输到入口转发组件150A,使得入口转发组件150A接收该数据包,就好像已经由入口转发组件150A经由与耦接到另一网络装置的入口转发组件150A相关联的接口(在图3A的示例中未示出)接收到该数据包一样,而不是经由将服务卡136耦接到入口转发组件150A的交换结构。通过选择入口转发组件150A,服务卡136保持上游路由器根据加权等成本多路径(WECMP)决定的(接收路由器的)链路/转发组件上的数据包流的负载平衡。
[0091] 流控制单元154接收该服务包158,并使用服务包158的五元组访问FIB 148,以便检索指定服务包158对应的流的下一跳的条目。换言之,流控制单元154基于服务包158的五元组来确定将服务包158转发到的下一跳。假设流控制单元154识别涉及经由与出口转发组件150B相关联的接口转发服务数据包158的下一跳,流控制单元154将该数据包158转发到出口转发组件150B,出口转发组件150B又将数据包158转发到下一跳。
[0092] 如图3A所示,路由平面132包括耦接到用户接口模块146和配置数据库162的管理守护程序160。管理守护程序160从用户接口模块146接收配置信息,并将配置信息存储在配置数据库162中。在一些示例中,路由平面132还包括服务冗余守护程序(SRd)164(本文也称为服务冗余过程),其作为服务冗余管理器结合路由策略数据库166来操作,以配置和控制冗余服务传送系统27。SRd 164还与服务平面134接合,例如,允许管理守护程序160在服务卡136A、136B内配置SPU 30。SRd 164可以表示基于配置数据库162和路由策略数据库166更新RIB 140的软件模块。尽管被描述为由路由组件138执行的守护程序、软件过程或软件模块,SRd164可以被实现为硬件模块或硬件和软件的组合。
[0093] 如上所述,在一个示例方法中,在每个服务处理单元30中保持主/备用状态。在一个这样的示例方法中,该状态被存储为信号路由向量70,其中,向量70的每个比特与主/备用对相关联。在一个这样的示例方法中,每个服务处理单元30从SRd 164接收信息或命令,通知SPU 30保持或改变状态。
[0094] 用户接口模块146可以表示软件和/或硬件模块,其呈现了管理员或由“ADMIN”145表示的管理装置可以与之交互以指定服务网关8的某些操作特性的接口。响应于管理员145的调用,用户接口模块146与服务网关8的其他组件交互,例如,检索、配置、复制和/或删除存储在路由策略数据库166中的策略配置数据,经由SRd 164更新服务平面143的服务数据,并且执行其他管理相关功能。在一个示例方法中,管理员145可以与用户接口模块146交互,以输入SRd 164的配置信息,例如,定义冗余事件、冗余策略、冗余集和冗余组的配置信息,并且该配置信息也存储在配置数据库162中。
[0095] 图3B是示出根据本公开中描述的技术的具有从各种服务卡分配的服务处理核心的服务处理单元的框图。在图3B的示例中,来自四个不同服务处理节点的服务处理核心31分配给SPU 30。分配给SPU 30的核心在图3B中用阴影表示。在一个示例方法中,服务处理核心31经由以下语法分配给SPU 30:
[0096]
[0097]
[0098]
[0099] 在上面的示例中,“mams”表示服务处理核心31,mams 9、mams 10、mams 11和mams 12分别表示服务卡136A-136D。第二个数字表示服务卡136上的服务处理核心31的号码。例如,Mams 10/4/0表示服务卡136B上的核心31.4。AMS 10是分配给SPU 30的名称。
[0100] 在上面所示的示例语法中,SPU 30在每个核心31上应用负载平衡。此外,在所示的示例中,进入SPU 30的流量经由接口799接收,分布到分配给AMS 10的核心31,并经由接口800返回。
[0101] 接下来将讨论冗余集。在一个示例方法中,每个冗余集30包括处于主状态的节点和处于备用状态的一个或多个节点。如上所述,处于主状态的节点可以共享处于备用状态的节点。共享单个公共备用服务网关的主服务网关在上面讨论的N:1有状态应用网关冗余配置中。同样,共享两个备用公共服务网关的主服务网关在N:2状态应用程序间服务网关冗余配置中。
[0102] 在一个示例方法中,服务网关基于例如应用程序的健康状况被选为主网关。在服务传送网关8的操作期间,每个服务网关8中的一个或多个服务冗余进程(例如,服务冗余守护程序164)可以持续监控应用程序组的健康状态,并在所有相关机框上交换该信息。例如,图3A中的SRd 164可以检测应用程序(例如,服务卡136A的SPU 30提供的服务,例如,防火墙服务)中的故障或退化,并且可以通知机框间控制协议(ICCP)模块155,该模块155将关于受影响的应用程序的信息发送到在一个或多个其他机框上执行的相应对应ICCP模块。
[0103] SRd 164可以监控组成备用SPU的一个或多个SPU 30的性能。此外,如上所述,服务平面134可以提供用于在一个或多个处理器30上运行一个或多个应用程序的操作环境。在一些方面,并行运行的SPU 30可以均公开应用编程接口(API),SRd 164通过该接口检查相应服务的性能数据(例如,加载级别)。或者,SRd 164可以公开通用接口,每个SPU 30可以调用该通用接口来传送当前性能数据。作为另一示例,服务网关8中的SRd 164可以周期性地向服务网关8中的每个SPU 30发送指令,或者可以监控来自服务网关8的SPU 30所提供的每个服务的输出通信或者由分配给服务网关8的SPU 30的每个服务消耗的操作系统级资源。在一些示例中,SRd 164可以监控与SPU 30相关联的各种参数中的任何一个,这些参数可以经由服务传送网关网络装置8的管理平面来定义,例如,经由用户接口模块146和管理守护程序160来定义。
[0104] 在一个示例方法中,SRd 164监控与SPU 30相关联的参数,例如,每个进程的中央处理单元(CPU)使用、存储器使用、输出速率、可用连接的数量或者用于检测是否根据预期水平执行SPU 30的其他这样的参数。例如,如果期望SPU 30以阈值速率提供输出,则SRd 164可用于检测实际输出速率何时低于阈值速率。管理员145可以经由用户接口模块146配置性能水平阈值,例如,当应用程序或其他服务最初部署在服务网关8的SPU 30上时。性能水平阈值可以存储在配置数据库162中。例如,可以相对于SLA要求选择性能水平阈值,以在性能水平下降到用户16要求的水平以下时触发动作。
[0105] 在一些示例方法中,SRd 164持续监控网关8的系统事件,例如,接口关闭事件、物理接口卡(PIC)重启、灵活PIC集中器(FPC)重启、RPD中止/重启以及对等网关事件。例如,SRd 164可以与转发平面130中的双向转发检测(BFD)模块157和/或ICCP模块155通信,以获得用于检测系统事件发生的信息。在一个示例方法中,用户接口模块146还支持语法,该语法为用户提供定义定制“虚拟”冗余事件的能力,该冗余事件可用于手动暂停切换或强制切换,而与应用程序的健康状态无关。
[0106] 在一些示例方法中,在根据其主节点状态,检测到冗余事件(包括应用程序相关事件或关键系统事件)的发生时,SRd 164以协议不可知的方式与网络层通信,以将流量重定向到被选为主节点的下一个备用节点。例如,响应于SRd 164检测到冗余事件,并且根据先前由管理员145定义的路由策略数据库166,SRd 164可以更新RIB 140中的信号路由,这进而触发由路由协议守护程序142执行的一个或多个路由协议,以向路由协议对等网络装置通告更新的信号路由,从而使得网络装置以不同的方式路由流量,并且将需要受影响的服务的网络流量发送到不同的服务网关8。此外,响应于SRd 164检测到冗余事件,SRd 164可以更新指定状态同步角色的数据,该数据可以存储在例如服务平面134中。状态同步是指由根据状态同步角色在网关8的一个或多个服务卡136A、136B上执行的SPU 30维护的会话级冗余状态,这允许主服务卡和备用服务卡上的必要会话级状态同步,以实现从主服务卡到备用服务卡的无缝转换。这一过程称为切换,确保终端用户获得不间断的应用服务。由于在组的所有成员上的消息交换,本公开的技术允许在机框上的连续、全自动的应用切换。
[0107] 作为一个示例,由一个SPU 30提供的网络地址转换(NAT)功能可以支持多个连接。管理员145可以配置阈值数量的连接,NAT服务对于预期的性能水平不应该下降到该阈值数量之下,并且可以使用本文描述的语法来定义表示阈值数量的连接的冗余事件(经由用户接口模块146)。管理员145还可以使用本文描述的语法来定义冗余策略(经由UI模块146),该冗余策略指定在检测到定义的冗余事件时要发生的动作,例如,修改存储在RIB 140中的信号路由,以使得路由协议守护程序142通告更新的信号路由。管理员145可以使用本文描述的语法来进一步定义一个或多个冗余集和冗余组。管理守护程序160配置配置数据库162来存储冗余事件、冗余策略、冗余集和冗余组。SRd 164可以连续地或周期性地监控NAT服务支持的连接数量,并且如果SRd 164检测到NAT服务可用的连接数量低于阈值数量的连接,则SRd 164检测冗余事件的发生,并且应用冗余策略来触发用于提供NAT服务的新主机的指定,如本文所述。
[0108] 本文描述的技术使用独立于协议的机制与网络层通信,将应用冗余决策与底层网络通信机制分离。允许触发自定义事件来模拟故障事件,以手动诱导切换或转回。
[0109] 此外,如本文所述,这些技术提供了应用程序能够使用预先指定的路由以协议不可知的方式发信号通知网络协议的机制。应用程序可以使用例如信号路由向量,该向量是一组称为信号路由的预先指定的路由,每个路由映射到主状态和备用状态,由应用层在发生预定义事件(严重故障和用户发起的转换)时更新这些状态。
[0110] 图4是示出根据本文描述的技术的服务的一组示例服务链的框图。在一个示例方法中,图4示出了由服务网关8支持的一组服务链34A-34E。服务链34表示由服务10在一个或多个服务网关8内部或外部提供的一组示例服务链。
[0111] 在这个示例中,沿着第一服务链34A引导一个或多个用户数据包流36A,以接收网络地址转换(NAT)服务38。类似地,沿着第二服务链34B引导一个或多个用户数据包流36B,用于应用HTTP过滤服务40、NAT服务42和会话边界控制器(SBC)服务43,用于IP语音(VoIP)处理和控制。在服务链34C中,数据包流36C仅引导到防火墙服务48。在服务链34D中,数据包流36D引导到HTTP过滤器46,随后引导到防火墙服务48。作为另一示例,沿着服务链34E引导数据包流36E,用于应用HTTP过滤器50、NAT52和入侵检测和预防(IDP)(例如,深度数据包检查)服务54。
[0112] 如上所述,当前机框间冗余解决方案旨在跨同一网络中的两个或多个同构机框提供冗余。本文公开的技术提供了一种架构,用于具有粒度控制的应用感知机框间冗余,以在两个或更多网络元件的组之间故障切换应用组。网络元件可以是同构的或异构的(物理的或虚拟的),并且可以跨不同的网络或地理区域分布。冗余机制将流量重定向到与底层网络协议无关的新主节点,并根据服务组的健康状态提供触发、防止和恢复服务组手动和自动切换的选项;将在下面图5的讨论中进一步讨论冗余机制。
[0113] 图5是示出冗余服务传送系统27中跨服务网关8的冗余集20中的主冗余和备用冗余状态的框图。在图5所示的示例方法中,系统27包括服务网关8.1-8.3。网关8.1-8.3位于标记的单独机框中,并经由通信信道22连接。每个服务网关8包括一个或多个SPU 30。每个SPU 30分配给一个或多个冗余集20。
[0114] 图5中的每个冗余集20被示为处于主状态或备用状态。例如,网关8.2中的RS 2处于主冗余状态,而网关8.3中的RS 2处于备用冗余状态。同时,网关8.1中的RS 3处于主冗余状态,而网关8.3中的RS 3处于备用冗余状态。服务网关8.3中的单个SPU 30分配给冗余集RS 2和RS 3。因此,RS 2和RS 3以2:1N:1有状态应用网关冗余关系建立,在网关8.3中共享SPU 30,作为备用节点。
[0115] 上述架构建立了一组构建模块,能够跨多个机框为不同的组、事件和操作扩展服务冗余。该架构允许用户为每个应用程序定义可用作切换到其他机框的触发器的自定义事件以及包括为了切换而采取的动作的自定义冗余策略。组成多组SPU 30的机框可以是同构或异构机框,可以通过L2或L3网络连接,并且可以在地理上分离。在一些示例中,每个冗余集具有基于与该冗余集20相关联的应用程序的健康状况选择的主装置和一个或多个备用装置。
[0116] 图5示出了两个或更多个服务网关8如何通过将主控权分配给一个服务网关8上的冗余集20以及将备用冗余状态分配给不同服务网关8上的相同冗余集20来以“主动-主动”模式操作。例如,参考图4,网络地址转换(NAT)服务38、入侵检测和预防(例如,深度数据包检查)服务54以及会话边界控制器(SBC)服务43的健康监控可以由分配给冗余集3的SPU 30来执行,而HTTP过滤服务40的健康监控可以由分配给冗余集2的SPU 30来执行。由于冗余集2的主控权被显示为驻留在网关8.2的机框中,所以RS 2的所有上述服务由网关8.2上的SPU 
30执行。同样,由于冗余集3的主控权被显示为驻留在网关8.1的机框中,所以RS 3的所有上述服务由网关8.1上的SPU 30执行。对于这个示例,NAT服务38在网关8.1的SPU 30上执行。
[0117] 如果网关8.1中的NAT服务38将经历关键事件(例如,向分配给RS 3的SPU 30提供服务处理核心的服务网关8.1的服务卡136B的故障),则冗余集3发生冗余事件,网关8.1上的RS 3转换到备用冗余状态,而网关8.3上的RS 3转换到主冗余状态。如图5所示,分配给网关8.3上的冗余集2和3的SPU 30然后接管网关8.3上冗余集3的所有服务的执行。这导致网关8.1、8.2和8.3之间服务的“主动-主动”细分。在该示例中,流(例如,流36B、36D和36E)现在将通过网关8.2和8.3路由,而流36A可以仅通过网关8.3路由,并且流36C保持在网关8.2内。
[0118] 在操作期间,在每个网关8内执行的服务冗余守护程序164持续监控应用组的健康状态,并通过通信信道22将该信息交换给冗余组中的所有机框。每个服务冗余守护程序164还持续监控冗余事件,例如,关键系统和应用程序故障。在出现这种故障时,根据其主控权状态,服务冗余守护程序164以协议不可知的方式与网络层通信,以将流量重定向到预期被选择为主节点的下一个备用节点。这一过程称为切换,确保为最终用户提供不间断的应用服务。如上所述,在一个示例方法中,ICCP提供对等冗余组之间的连接。在图6中更详细地示出这种方法。
[0119] 图6是示出图1的网络系统中网关之间的通信的框图。在图6所示的示例中,冗余组经由机框间控制过程(例如,机框间控制协议守护程序(ICCPd)31)进行通信。在一个这样的示例方法中,服务冗余守护程序164建立与ICCP的Unix(进程间通信(IPC),用于通过通信信道22的传输和通知服务。图6还示出了用于配置ICCP的配置信息32。
[0120] 在图6所示的示例中,构成冗余服务传送系统27的网关8之间的通信信道22在网关之间交换信息。在一些这样的示例中,机框间控制协议(ICCP)提供到对等网关8的连接。在一种方法中,如下建立ICCP:
[0121]
[0122] 在一些示例方法中,除了ICCP之外,还使用双向转发检测(BFD)来检测故障。BFD 157在网关装置8的转发平面130中提供非常快速的故障检测。BFD 157还为这种检测提供了独立于媒体、路由协议和数据协议的单一机制。在一个示例方法中,BFD 157在入口转发组件150A的数据包转发引擎(PFE)中执行。这种方法确保远程对等体对于控制平面切换是透明的,例如,如果配置了不间断转发。
[0123] 由于在组的所有成员之间的消息交换,本文描述的技术允许跨机框的连续、全自动的应用切换。甚至为用户提供了暂停切换或强制切换的能力,覆盖了应用程序的健康状态。这些技术使用独立于协议的机制与网络层通信,将应用冗余决策与底层网络通信机制分离。允许触发自定义事件来模拟故障事件,以手动诱导切换或转回。
[0124] 在一个示例方法中,管理守护程序160呈现用户接口模块146,管理员145(“ADMIN”)可以通过用户接口模块146输入命令来配置网关8和服务处理单元30。在一些示例中,用户接口模块146可以被配置为接收基于文本的命令。根据本发明的技术,管理守护程序160支持命令语法,该命令语法允许管理员145定义冗余事件和路由策略,指定网关8如何响应于冗余事件。管理守护程序160可以将从管理员145接收的配置输入作为配置数据存储在配置数据库162中,配置数据库162可以采用文本文件的形式,例如,ASCII文件。或者,管理守护程序160可以处理配置输入并以多种形式中的任何一种生成配置数据,例如,一个或多个数据库、表、数据结构等。配置数据可以采取用于向网关8的当前配置添加新设置的一个或多个命令、用于删除或修改当前配置的现有设置的命令或其组合的形式。网关8可以进一步解析来自管理员145的配置数据和输入,并解析引用,以适当配置网关8。
[0125] 具体地,管理员145向用户接口模块146输入命令,以配置服务冗余守护程序164的路由策略,如下面进一步详细描述的。管理守护程序160然后将路由策略存储在路由策略数据库166中。
[0126] 在一个示例方法中,管理员145还可以向用户接口模块146输入命令来配置网关8的其他方面。例如,控制单元151中的服务冗余守护程序164可以用从管理员接收的配置数据来编程与服务卡136相关联的SPU 30,该配置数据定义防火墙区域和关于物理接口的策略,使得服务引擎152的SPU 30识别所定义的区域,并在处理来自数据平面流控制单元154的数据包时应用安全策略。
[0127] 如上所述,冗余事件(RE)是触发SR守护程序164将网关8的主控权切换到备用网关8的关键事件。在一个示例方法中,关键事件包括接口关闭事件、FPC/PIC重启、路由协议守护程序(RPd)中止或重启以及对等网关事件。在一个示例中,每个网关8经由UI模块146被配置为监控由管理员145选择的关键事件,这些关键事件促使一个网关8中的服务传送守护程序164释放主控权,并且使得另一网关8中的服务传送守护程序164占据冗余组的主控权。
[0128] 在一个示例方法中,管理员145定义冗余事件RELS_MSHIP_CRIT_EV,并列出作为该冗余事件成员的关键事件。在一个这样的示例中,可以通过显示命令显示冗余事件RELS_MSHIP_CRIT_EV的当前配置:
[0129] root@SG1#show event-options redundancy-event RELS_MSHIP_CRIT_EV[0130] 并且,在一个示例方法中,为网关8的冗余事件RELS_MSHIP_CRIT_EV显示的结果是:
[0131]
[0132]
[0133] 其中,ams10是特定服务处理单元30,ams10.100是ams10的输入。
[0134] 在上面的示例中,当例如发生接口关闭事件时,触发链接关闭事件。当路由协议守护程序164(RPd)重启时,发生进程事件。在该示例中,链路关闭事件或RPd重启事件足以触发网关主控权从该网关8转移。
[0135] 以上只是一些关键事件的示例。其他关键事件可以定义为与特定服务或服务链相关联。例如,由服务卡136上的一个或多个SPU 30提供的服务中的故障或退化可以用作关键事件,可用于在网关8之间或网关8和另一网络装置之间通信的一个通信机制中的故障或退化也可以用作关键事件。
[0136] 如上所述,冗余策略是将冗余事件与发生这些关键事件时要采取的一个或多个动作相关联的策略。在一个示例中,管理员可以通过如下显示命令请求显示冗余策略REL_MSHIP_POL的内容:
[0137] root@SG1#show policy-options redundancy-policy RELS_MSHIP_POL[0138] 并且在一个示例中,网关8的冗余策略RELS_MSHIP_POL的结果显示为:
[0139]
[0140]
[0141] 即,如果RELS_MSHIP_CRIT_EV由指定的关键事件触发,或者管理员145使用冗余事件RELS_MSHIP_MANUAL_EV手动触发主控权切换,则主控权转移到最高等级的备用网关8。
[0142] 在另一示例中,管理员可以通过如下显示命令请求显示冗余策略ACQU_MSHIP_POL的内容:
[0143] root@SG1#show policy-options redundancy-policy ACQU_MSHIP_POL[0144] 并且在一个示例中,网关8的冗余策略ACQU_MSHIP_POL的结果显示为:
[0145]
[0146] 在一个示例方法中,管理员可以通过如下显示命令请求显示冗余策略WARN_POL的内容:
[0147] root@SG1#show policy-options redundancy-policy ACQU_MSHIP_POL[0148] 并且在一个示例中,网关8的冗余策略ACQU_MSHIP_POL的结果显示为:
[0149]
[0150] 一种用于设置网关8来触发主控权变化的方法如下:
[0151] root@SG1>request services redundancy-set id 1trigger redundancy-event ACQU_MSHIP_MANUAL_EV{force mastership acquisition}
[0152] root@SG1>request services redundancy-set id 1trigger redundancy-event RELS_MSHIP_MANUAL_EV{force mastership release}
[0153] 如上所述,冗余集建立由冗余策略驱动的主/备用状态的粒度。在一个示例方法中,冗余集还可以绑定一个或多个服务集,以驱动与服务集相关的有状态同步状态。在一个示例中,为网关8定义第一冗余集(冗余集),并且可以通过如下显示命令来显示:
[0154] root@SG1#show services redundancy-set
[0155] 并且一个示例冗余集的结果显示为:
[0156]
[0157]
[0158] 冗余组(RG)是冗余集的集合,定义了一组网关8上的公共对等属性。RG允许相同对等体之间的不同对等设置。在一个示例中,第一冗余组(冗余组1)被定义用于网关8,并且可以通过用于冗余集的相同的显示命令来显示,并且实现相同的结果:
[0159] root@SG1#show services redundancy-group
[0160] 并且一个示例冗余组1的结果显示为:
[0161]
[0162]
[0163] 其中,在一些示例中,保持时间是在实施冗余策略之前采取的延迟。
[0164] 图7是示出根据本文描述的技术的到对等体的主控权转换的框图。在一些示例中,对等事件被定义为在SRd对等体之间交换的一种冗余事件。与对等事件相关联的冗余策略允许本地SRd对等体基于远程SRd对等体报告的对等事件来运行,如图7所示。在图7的示例中,冗余事件发生在服务网关8A上,并且SG1向在服务网关8B上执行的SG2释放主控权。在一个示例方法中,从SG1经由ICCP向SG2发送消息,通知SG2接管主控权。在一个这样的示例中,为网关8定义一组对等事件。在一些这样的示例中,关键对等事件组的成员可以通过如下显示命令来显示:
[0165] root@SG2#show event-options redundancy-events PEER_MSHIP_RELS_EV[0166] 结果显示如下:
[0167]
[0168] 并且
[0169]
[0170]
[0171] 同样,ams10是服务处理单元30,ams10.100是ams10的输入。
[0172] 上面讨论的用户接口和冗余架构的一个潜在优势可能是能够为跨越两个或更多机框的一个或更多应用组提供冗余,而与底层网络协议无关。通过使用冗余事件、冗余策略和冗余组的系统,该架构具有高度的可扩展性,使得容易包含新的事件和动作,以支持基于网络功能虚拟化(NFV)的用例。冗余架构可以提供不间断的服务可用性(称为应用程序的不间断服务)。通过将服务主控权分为跨同一组机框的多个冗余组,冗余架构还允许一组两个或多个机框在“主动-主动”模式下运行。本文描述的方法也是路由协议不可知的,因为语法允许管理员以独立于路由器最终用于传送主控权变化的底层路由协议的方式来表达冗余事件和冗余策略。
[0173] 在一个示例方法中,SRd 164还可以用于同步冗余集中所有对等体上的配置。考虑经由冗余集RS 1和RS 2与服务处理接口ams10.799和ams10.800相关联的防火墙配置。在所示示例中,冗余集1(RS 1)定义为:
[0174]
[0175] 而冗余集2(RS 2)被定义用于相同的服务处理单元ams10:
[0176]
[0177] SRd 164可以通过其确保与RS 1相关联的服务集MX1_SFW4_AMS10的内容与作为RS 1一部分的所有节点同步,并且与RS 2相关联的服务集MX2_SFW4_AMS 10的内容与作为RS 2一部分的所有节点同步。由于RS  1和RS  2都与同一个服务处理接口(ams10.799和ams10.800)相关联,所以底层服务处理单元30现在由两个冗余集或两个服务集共享。在一个示例方法中,每个SPU 30保持其分配到的冗余集的状态。例如,在一个N:1有状态应用网关冗余模型中,被分配为备用节点的SPU 30必须保持其分配到的所有N个冗余集的状态。在另一示例方法中,SRd 164在其网关8中维护每个SPU 30的状态。例如,在一个N:1有状态应用网关冗余模型中,托管备用节点的服务网关8的SRD 164必须保持被分配为备用节点的SPU 30分配到的所有N个冗余集的状态。
[0178] 在一个示例方法中,使用上面介绍的语法将资源分配给SPU 30。例如,在本示例中的ams10如下分配有资源:
[0179]
[0180]
[0181] 在该示例中,ams10是由来自单个服务卡136的三个服务处理核心31组成的服务处理单元。进入ams10的流量经由单元799(ams10.799),而离开ams10的流量经由单元800(ams10.800)。在一个示例方法中,ams10.799和ams10.800组成服务下一跳对,该服务下一跳对可用于将SPU 30串在一起,作为下一跳链。
[0182] 在一个示例方法中,服务下一跳可以用于串联或并联连接SPU 30。例如,在一个示例方法中,第二SPU可以使用ams10的定义来配置,但是具有不同的服务下一跳对:
[0183]
[0184]
[0185] 指向ams10.799的网络流量将发送到第一SPU,而指向ams10.699的网络流量将发送到第一SPU。
[0186] 同时,可以使用ams10的定义配置第二SPU,但输入接口不同,输出接口相同,如下所示:
[0187]
[0188] 指向ams10.799的网络流量将发送到第一SPU,而指向ams10.699的网络流量将发送到第一SPU。然而,两者的结果将发送到与ams10.800相连的SPU。
[0189] 路由器或网关中的任何事件都可以映射为冗余事件,并用于触发冗余集状态的转换。在一个示例方法中,通用操作系统事件(例如,通用系统JUNOS事件)如下被配置为冗余事件(RE):
[0190]
[0191]
[0192] 图8A是示出图1的冗余服务网关系统中的应用节点之间的通信的框图。在图8A的示例中,三个网络元件(网络节点60A-60C)通过通信信道22通信。应用服务节点62A至62C分别与网络元件60A至60C相关联,并且以N:1主/备用关系排列,其中,应用服务主节点62A和62B共享单个应用服务备用节点62C。在一个示例方法中,图8A所示和本文所述的通信机制允许在冗余服务传送系统27中的应用节点之间以协议和网络不可知的方式进行通信。在一个示例方法中,应用服务节点62使用预先指定的路由以协议不可知的方式发信号通知网络协议。
[0193] 图8B是示出用于存储每个冗余集的状态的信号路由向量70的框图。从图8B所示的示例中可以看出,信号路由向量70是一组称为信号路由的预先指定的路由,每个路由映射到特定冗余集或特定服务集的主状态和备用状态。在图8B所示的示例中,信号路由向量70包括组织成信号路由/信号路由状态对的一个或多个信号路由72和一个或多个信号路由状态74。在一些示例方法中,当与信号路由72相关联的SPU 30处于备用状态时,状态74为零,而当信号路由72处于主状态时,状态74为1。在其他示例方法中,当与信号路由72相关联的SPU 30处于主状态时,状态74为零,而当信号路由72处于备用状态时,状态74为1。在一个示例方法中,每个SPU 30为其分配到的每个冗余集维护信号路由状态74的副本。在另一示例方法中,每个网关的SRd 164为网关的SPU 30分配到的每个冗余集维护信号路由状态74的副本。
[0194] 在一些方法中,应用层中执行的应用程序在发生冗余事件(例如,严重故障)时更新信号路由。不要求组成信号路由向量70的路由所表示的目的地是可到达的,因为这些路由仅用于应用程序和网络层之间信令。驱动路由协议的路由策略与这些路由的存在与否相关联。一旦应用层(例如,SRd 164)从RIB 140添加或移除这些信号路由,就涉及路由策略,导致流量重定向到新的主服务网关8。在一个示例方法中,备用节点同步主节点的状态,以便每当主节点出现故障时,下一个最佳备用节点可以接管主控权。接管应用主控权的应用服务节点62开始在网络流量上执行一个或多个应用服务,例如,移动服务、状态防火墙、CGNAT、NAT、IDP、代理服务、应用加速等。
[0195] 这种方法的一个潜在优势是能够通过与支持路由跟踪的L2协议(例如,虚拟路由器冗余协议(VRRP))通信,确保除L3网络之外的L2网络的弹性。实际上,由于SRd与路由器操作系统的L3、L2和状态同步组件交互,因此可以使用相应的调试命令来排除SRd交互的故障。每个服务网关8上的SRd还可以为状态变化生成简单网络管理协议(SNMP)陷阱。例如,SNMP陷阱可用于通知另一装置在一个冗余服务网关上执行的一个应用程序的状态变化。SNMP陷阱通过向另一台装置发送称为事件陷阱的消息来实现这一点。
[0196] 在一个示例方法中,if-route-exists条件检测信号路由是否存在。在一个这样的示例方法中,使用as-path-prepend值来通告特定信号路由是否存在的变化。在一个这样的示例方法中,使用不同的本地优选值来通告特定信号路由是否存在的变化。
[0197] 这种方法的另一潜在优势是应用程序能够以协议不可知的方式在L2和L3网络上驱动应用覆盖网络的弹性。所描述的技术可以允许应用程序创建对等体的覆盖网络,并允许应用程序62驱动和调整底层网络上的路由。还支持地理冗余机框间冗余解决方案。在实际应用中,该方法将路由收敛时间缩短了95%(收敛时间约为一秒钟),确保覆盖网络上数百万个应用会话的不间断故障切换,实现99.999%的高可用性。
[0198] 在一个示例中,信号路由是由服务网关8的SRds基于主控权状态变化操纵的静态路由。添加静态路由的一个示例是:
[0199] root@SG2#show policy-options redundancy-policy ACQU_MSHIP_POL[0200] 结果是:
[0201]
[0202] 其中,路由协议守护程序142在10.45.45.0/24添加新的静态路由。
[0203] 在一些示例方法中,路由策略基于信号路由的存在与否来通告路由。在一个这样的示例方法中,路由策略被预先配置为使用if-route-exists条件基于信号路由的存在与否来通告路由。图9是示出通过使用as-path-prepend命令来通告信号路由的存在与否的示图。在图9的示例中,
[0204]
[0205]
[0206] 并且
[0207]
[0208] 在本示例中,在前缀列表中进行检查,以确定路由10.45.45.0/24是否存在,如果路由不存在,则SRd使用as-path-prepend命令增加路由的成本。自治系统(AS)路径前置可用于告诉系统4中的其他路由实体路由到具有较低路由成本的网关装置,该网关装置也是下一个排队承担主控权的网关装置。BGP更喜欢到达目的地的最短AS路径。BGP将选择到达目的地的路径可以使用AS路径前置来操作。AS路径前置允许人工延长BGP通告给邻居的AS路径。
[0209] 在另一示例方法中,通过使用本地优选值来通告信号路由的存在与否。图10是示出通过使用本地优选值来通告信号路由的存在与否的示图。本地优选值是BGP会话用来指示外部路由的优选程度的度量。具有最高本地优选值的路由是优选的。本地优选属性用于入站路由策略,并通告给内部BGP对等体和相邻联盟。在一种这样的方法中,服务网关主装置将其本地优选值默认为例如400,而备用装置默认为350。如果主控权转换到备用网关,则其本地优选值可以例如提高到450,而前一主装置保留其本地优选值400。
[0210] 在一些示例中,SRd经由VRRP路线跟踪驱动L2连通性。VRRP是第二层(交换)协议,不同于前面解释的路由协议。VRRP路线跟踪是VRRP特征,其跟踪信号路线的可达性,以便动态地改变VRRP优先级。在一个示例方法中,VRRP路线跟踪用于帮助通告路线切换,信令主控权的变化。在一个这样的示例中,如下配置VRRP路线跟踪:
[0211]
[0212] 图11是示出根据本文描述的技术的到对等体的服务切换的流程图。在图11所示的示例中,SRd 164假设冗余集的主控权(200),并开始监控冗余事件配置所定义的关键事件(202)。如果SRd 164检测到关键事件发生,则SRd 164基于相关路由策略添加或移除路由(204)。在一个示例方法中(例如,SRd 164在不再是主网关的网关上执行),SRd 164还通知优选备用网关8将接管主控权。在一个这样的示例方法中,SRd 164使用ICCP向SRd 164通知优选备用网关8A。
[0213] 网关8然后通告路由的变化,导致路由信息库140的变化(206)。在一个示例方法中,VRRP用于传送一条或多条路由的通告优先级。网络中的路由器接收通告,并基于通告的路由,开始将网络流量转发到下一个优选备用网关8,以应用服务(208)。
[0214] 在一个示例方法中,路由引擎上的每个SR守护程序164持续监控预配置的冗余事件。冗余事件发生时,SRd 164a)按照冗余策略中的规定从RIB 140添加或删除信号路由,b)相应地更新状态同步角色。状态同步是指网关8的服务卡136A、136B的SPU 30上提供的会话级冗余。在一种这样的方法中,每个服务10维护其自己的应用状态,并与备用网关8中的对应方共享该应用状态。在一些示例中,SRd 164维护与每个服务10相关联的应用状态,并共享该应用状态。
[0215] 在一个示例方法中,SRd 164添加或移除信号路由,导致路由协议守护程序142向路由协议对等体发送路由协议更新消息,以通告路由的变化。在一个这样的示例方法中,这包括经由例如上面讨论的as-path-prepend命令来改变路由的成本。
[0216] 在一些示例方法中,路线变化也对跟踪该路线的VRRP配置有影响,导致如上所述的不同的VRRP优先级通告。新通告的路由和改变的VRRP优先级将流量重定向到下一个优选备用网关8,SRd 164将服务主控权切换到该网关8。在一些这样的示例方法中,VRRP还用于向另一网关8中的SRd 164传送对主控权转换的需求。
[0217] 在一个示例方法中,SRd 164是SPU 30的服务冗余守护程序,SPU 30充当N:1有状态应用网关冗余应用中的备用节点。因此,SRd 164必须跟踪冗余应用中的N个主节点中的每一个的状态。在一个这样的示例方法中,当与先前是N:1有状态应用网关冗余应用中的主节点的节点相关联的SPU 30恢复在线时,触发与现在充当主节点的备用节点相关联的SRd 164中的关键事件。然后,与备用节点相关联的SRd 164将主控权转换回先前的主节点,如图
11中详细描述的。在另一这样的示例方法中,当添加SPU 30来替换先前是N:1有状态应用网关冗余应用中的主节点的节点,恢复在线时,该动作触发与现在充当主节点的备用节点相关联的SRd 164中的关键事件。然后,与备用节点相关联的SRd 164将主控权转移到新的主节点,如图11中详细描述的。
[0218] 图12是示出根据本文描述的技术的在主状态和备用状态之间移动的冗余集状态机的框图。图12的状态机示出了监控系统27中网关8的服务处理单元30的服务冗余守护程序164的实例的状态。从图12中可以看出,SRd 164引导到初始化状态(220),并保持该状态,直到SRd 164接收到健康检查成功或失败。在一个示例方法中,分配有三个冗余集的网关的服务处理单元30维护图12所示的状态机的三个实例。在一个这样的示例方法中,每个状态机彼此独立地操作。
[0219] 在健康检查成功时,控制移动到备用就绪状态(222),并保持在该状态,直到发生关键事件或主事件。在健康检查失败时,控制移动到备用警告状态(224),并保持在该状态,直到发生健康检查成功或发生强制主控权事件。
[0220] 在关键事件中,控制从状态222移动到备用警告状态224。在主控权事件中,控制从状态222移动到主状态226。
[0221] 一旦处于主状态226,网关8的服务处理单元30保持在主状态(226),直到发生关键事件。如果发生关键事件,则网关8的服务处理单元30移动到备用警告状态(224)。
[0222] 一旦处于备用警告状态(224),网关8的服务处理单元30保持在该状态,直到强制主控权获取事件迫使其返回到主状态(226),或者健康检查成功将其移回到备用就绪状态(222)。在一些示例方法中,SRd 164在网关8的服务处理单元30上设置定时器,进入备用警告状态(224)。当定时器超时时,SRd 164检查,以确定服务处理单元30是否已经从事件中恢复。如果恢复了,则控制移回备用就绪状态(222)。在一些这样的示例方法中,控制保持在备用警告状态224,直到被初始化或者已经接收到健康检查成功。在一些这样的示例方法中,每次计时器超时时都会进行检查,以查看关键事件是否已经解决。可以添加其他备用状态,以反映中间备用状态。
[0223] 上述技术可以扩展到网络中其他服务和装置的控制。由于主和备用状态的变化驱动路由的添加和删除,所以路由的变化可以用于例如将防火墙的操作改变为例如特定主装置、特定备用装置或备用装置的特定组合所需的方法。在一个示例方法中,路由变化用于动态地改变诸如防火墙过滤器等服务的操作,以例如反映当前主装置的需求或配置。这种变化可以与禁用过滤器一样简单,也可以涉及许多不同装置和各种协议的配置。在一个示例方法中,主状态和备用状态变化驱动例如防火墙过滤器的启用和禁用,也可以将流量重定向到对等网关。
[0224] 图13是示出根据本文描述的技术的在切换到对等体期间作为信号路由变化的函数的服务变化的流程图。在图13所示的示例中,SRd 164承当冗余集的主控权(250),并开始监控冗余事件配置所定义的关键事件(252)。如果SRd 164检测到发生关键事件,则SRd 164基于相关路由策略添加或移除路由(254)。在一个示例方法中(例如,SRd 164在不再是主网关的网关上执行),SRd 164还通知优选备用网关8将接管主控权。在一个这样的示例方法中,SRd 164使用ICCP向SRd 164通知优选备用网关8A。
[0225] 网关8然后通告路由的变化,导致路由信息库140的变化(256)。在一个示例方法中,VRRP用于传送一条或多条路由的通告优先级。在一个示例方法中,服务提供商核心网7中的装置接收通告并修改其提供的服务,以反映信号路由的变化(258)。网络中的路由器接收通告,并基于通告的路由,开始将网络流量转发到下一个优选备用网关8,以应用服务(260)。
[0226] 在一个示例方法中,路由引擎上的每个SR守护程序164持续监控预配置的冗余事件。在发生冗余事件时,SRd 164a)按照冗余策略中的规定从RIB 140添加或删除信号路由,b)相应地更新状态同步角色。状态同步是指网关8的服务卡136A、136B的SPU 30上提供的会话级冗余。在一种这样的方法中,每个服务10维护其自己的应用状态,并与备用网关8中的对应方共享该应用状态。在一些示例中,SRd 164维护与每个服务10相关联的应用状态,并共享该应用状态。
[0227] 在一个示例方法中,SRd 164添加或移除信号路由,导致路由协议守护程序142向路由协议对等体发送路由协议更新消息,以通告路由的变化。在一个这样的示例方法中,这包括经由例如上面讨论的as-path-prepend命令来改变路由的成本。
[0228] 在一些示例方法中,路线变化也对跟踪该路线的VRRP配置有影响,导致如上所述的不同的VRRP优先级通告。新通告的路由和改变的VRRP优先级将流量重定向到下一个优选备用网关8,SRd 164将服务主控权切换到该网关8。在一些这样的示例方法中,VRRP还用于向另一网关8中的SRd 164传送对主控权转换的需求。最后,这些通告用于改变一个或多个服务的配置,这将在下面讨论。
[0229] 如以上在图11的讨论中所指出的,在一个示例方法中,SRd 164可以是SPU 30的服务冗余守护程序,SPU 30充当N:1有状态应用网关冗余应用中的备用节点。在这种情况下,SRd 164可以跟踪冗余应用中的N个主节点中的每一个的状态。在一个这样的示例方法中,当与先前是N:1有状态应用网关冗余应用中的主节点的节点相关联的SPU 30恢复在线时,触发与现在充当主节点的备用节点相关联的SRd 164中的关键事件。然后,与备用节点相关联的SRd 164将主控权转换回先前的主节点,如图13中详细描述的。在另一这样的示例方法中,当添加SPU 30来替换先前是N:1有状态应用网关冗余应用中的主节点的节点,恢复在线时,该动作触发与现在充当主节点的备用节点相关联的SRd 164中的关键事件。然后,与备用节点相关联的SRd 164将主控权转移到新的主节点,如图13中详细描述的。
[0230] 图14至图18示出了使用信号路由来配置由网络装置(例如,服务网关8)提供的服务的操作的示例,并且接下来进行描述。
[0231] 图14是示出根据本文描述的技术的一个或多个方面的服务的一组示例服务链的框图。在图14的示例中,服务网关网络装置(服务网关8)包括转发平面130、路由平面132和服务平面134。转发平面130可以由通常与网络路由器的高端路由和转发组件相关联的专用转发集成电路来提供。
[0232] 服务网关8可以利用共享转发平面130的方式集成路由平面132和服务平面134。如同在图3A的服务网关8中一样,转发平面130可以表示丰富和动态的共享转发平面,在某些情况下,分布在多机框路由器上。此外,如上所述,转发平面130可以由通常与网络路由器的高端路由组件相关联的专用转发集成电路提供,使得路由平面132和转发平面130作为高端路由器操作。在一个示例方法中,服务平面134可以紧密集成在服务网关8内(例如,通过服务卡136的SPU 30),以便以共享、协作的方式使用路由组件的转发平面130。
[0233] 如图14所示,路由平面132提供路由组件138,路由组件138主要负责维护路由信息库(RIB)140,以反映服务网关8所连接的网络和其他网络实体的当前拓扑。例如,如上所述,路由组件138为路由协议进程(例如,路由协议守护程序142(RPd))执行路由协议提供操作环境。路由协议守护程序142可以表示与对等路由器通信并定期更新RIB 140以准确反映网络和其他网络实体的拓扑的软件组件或模块。虽然被描述为由路由组件138执行的守护程序或软件模块,但是路由协议守护程序142可以被实现为硬件模块或者硬件和软件的组合。
[0234] 路由组件138可以经由路由协议守护程序142接收该路由信息,并且更新或维护RIB 140,以反映核心网7的当前拓扑。这种拓扑可以提供通过核心网7到达任何给定用户装置16的多条不同路径。在图1的示例中,存在从公共网络12通过每个服务网关8到用户装置16的路径。在一些情况下,在一个网关8中的路由组件138可以选择用于将用户装置16连接到公共网络12的路径。
[0235] 在图14所示的示例中,管理员145可以经由用户接口(UI)模块146与路由组件138接合,该模块146可以表示用户或供应系统可以通过其与路由组件138接合的模块。UI模块146可以例如包括命令行接口(CLI),其可以接受命令和/或脚本形式的输入,或者可以包括图形用户接口(GUI)。管理员145(“管理员145”)可以与UI模块146接合,以配置各种组件服务网关8,包括路由组件138。一旦被配置,路由组件138然后可以解析RIB 140,以生成转发信息。路由组件138然后可以与转发平面130接合,以将该转发信息安装到转发信息库(FIB)
148中。
[0236] 入口转发组件150A和出口转发组件150B(“转发组件150”)可以表示转发网络流量的软件和/或硬件组件,例如,一个或多个接口卡(未示出)。术语“入口”和“出口”是指进入服务网关8的数据包149的数据包流向的相对术语,如图14所示。在一个示例方法中,转发组件150A维护FIB148,FIB 148将网络目的地与服务网关8的输出接口卡的特定下一跳和相应接口端口相关联。在一些这样的示例方法中,路由组件138以具有表示网络7内目的地的叶节点的基树的形式生成FIB 148。
[0237] 如图3A、图14和图15所示,服务平面134可以表示使用服务卡136上定义的SPU 30提供一个或多个服务的逻辑或物理平面。服务卡136A和136B(统称为“服务卡136”)可以表示物理卡,这些物理卡被配置为插入服务网关8中,并经由背板、交换结构或其他通信介质耦接到转发平面130和路由平面132。例如,服务卡136可以包括直接耦接到交换结构的卡。服务卡136可以从服务网关8移除。服务卡136可以具有一个或多个服务处理核心31。如上所述,服务处理核心31可以聚集到服务处理单元30中,并且每个SPU 30可以分配给一个或多个冗余集20。
[0238] 管理员145可以与UI模块146接合,以与路由组件138接合,以指定哪些数据包流将由一个或多个服务卡136进行服务处理。在指定流之后,路由组件138可以更新RIB 140,以反映这些流将经历服务处理,使得当解析FIB 148时,转发信息可以指示各种流将经历服务处理。通常,该转发信息可以通过为这些流指定下一跳来指定这些流需要服务处理,该下一跳将这些流的数据包引导到一个服务卡136的一个SPU 30(其中,该下一跳可以称为“内部下一跳”),如下面进一步详细描述的。可以指定服务网关8外部的额外下一跳,在该示例中,外部下一跳可以指定将在哪个路径上转发数据包。内部下一跳可以链接到外部下一跳,在该示例中,服务网关8可以为任何给定流维护两个下一跳(并且可能更多)。在一个示例方法中,经由为每个SPU定义的服务下一跳对来定义SPU 30之间的下一跳。图4和16的示例示出了利用这些内部和外部跳向数据包、数据包流或会话应用一系列服务的服务链。
[0239] 如上所述,服务卡136可以包括一个或多个SPU 30;每个SPU 30能够应用一个或多个服务。在图14所示的示例中,服务卡136A经由实现防火墙引擎153和防火墙策略存储159的SPU 30提供防火墙服务。在一些示例中,防火墙引擎153接收防火墙规则(例如,经由UI模块146),并将防火墙规则存储在防火墙策略存储器139中,以由防火墙引擎153应用。在一些示例中,路由组件138在路由平面132或转发平面130中存储防火墙策略。
[0240] 服务卡136可以包括控制单元151,控制单元151可以表示执行软件指令的一个或多个通用处理器,例如,用于定义软件或计算机程序的那些处理器,软件指令存储到非暂时性计算机可读介质,例如,存储装置(例如,磁盘驱动器或光驱)、或存储器(例如,闪存、随机存取存储器或RAM)或任何其他类型的易失性或非易失性存储器,其存储使一个或多个处理器执行本文描述的技术的指令。或者,控制单元151可以表示如上所述的专用硬件。在一些情况下,控制单元151可以称为处理器。
[0241] 在图14的示例中,转发组件150A接收数据包249,并且充当入口转发组件,调用流控制单元154。流控制单元154表示有选择地将数据包引导到服务平面134进行处理的模块。在一些示例方法中,服务平面134是虚拟机。流控制单元154可以访问FIB 148,以确定数据包249发送到内部下一跳,例如,服务平面134的一个SPU 30,或者经由充当数据包249对应的流的出口转发组件(例如,出口转发组件150B)的另一转发组件发送到外部下一跳。
[0242] 在任何情况下,流控制单元154可以确定数据包249将传输到服务卡136A的SPU 30,以供防火墙引擎153应用存储在防火墙策略存储器139中的防火墙规则。响应于确定数据包249将传输到服务卡136,使得服务卡136的SPU 30可以将服务应用到数据包249,在一些示例中,入口转发组件150A的流控制单元154可以在将数据包156引导到服务平面134的服务卡136A的SPU 30之前附加内部服务数据包报头(其也可以称为“服务甜饼”)。服务卡
136A或服务卡136A的SPU 30可以接收该数据包并移除内部服务数据包报头,从内部服务数据包报头解析入口标识符。服务卡136的控制单元151然后可以经由SPU 30调用服务引擎,例如,防火墙引擎153,其将防火墙策略规则应用于更新的数据包156,生成已经应用了服务的服务数据包158。
[0243] SPU 30然后可以确定沿着服务链将服务数据包158转发到的内部下一跳。在图14的示例中,SPU 30将服务数据包158发送回流控制单元154,在该示例中,流控制单元154将服务数据包158转发到出口转发组件150B。出口转发组件150B又查找要转发数据包158的下一跳,将数据包158转发到下一跳。
[0244] 在一些示例方法中,防火墙服务可以替代地或另外在入口转发组件150A和出口转发组件150B中的一个或多个中实现。在一些示例方法中,与服务网关8A和8B分离的防火墙网络装置(例如,图1中的服务节点13)提供防火墙服务。
[0245] 在一些示例方法中,管理员可以配置防火墙过滤器,以1)基于其来源、协议和应用来限制去往路由引擎的流量,2)限制去往路由引擎的数据包的流量速率,以防止泛洪或拒绝服务(DoS)攻击,以及3)处理去往路由引擎的碎片数据包。在一些这样的方法中,管理员可以定义无状态防火墙过滤器。在一些示例方法中,防火墙引擎153包括无状态防火墙过滤器,用于通过使用包过滤来增强安全性。数据包过滤使防火墙引擎153能够检查输入或输出数据包的组件,然后对与指定的标准匹配的数据包执行指定的动作。无状态防火墙过滤器的典型用途是保护路由引擎进程和资源免受恶意或不可信数据包的攻击。
[0246] 在一些示例防火墙引擎153中,管理员在服务网关8上配置过滤器,以过滤通过网关8的数据包。在一种这样的方法中,管理员通过将源前缀和目的前缀分组到定义为源类别和目的地类别的不相交集合中来配置防火墙引擎153。在一种这样的方法中,源类使用(SCU)根据互联网协议(IP)源地址或IP源地址和IP目的地址过滤数据包。因此,SCU使得可以跟踪和/或过滤源自例如服务提供商核心网7上的特定前缀到客户边缘上的特定前缀的数据包流量。
[0247] 另一方面,目的地类别使用(DCU)通过查找IP目的地地址来过滤来自客户的数据包。因此,DCU可以跟踪和/或过滤源自客户边缘并去往服务提供商核心路由器网络7上的特定前缀的流量。
[0248] 在一个示例方法中,防火墙引擎153可以被配置为保护服务网关8免受通过路由器进入网络目的地的过多流量或去往路由引擎的流量的影响。控制本地数据包的防火墙过滤器也可以保护服务网关8免受外部事件(例如,拒绝服务攻击)的影响。
[0249] 在一个示例方法中,管理员可以配置防火墙引擎153来控制物理接口上接受和从其中传输的数据包。在一个这样的示例方法中,管理员还可以控制从物理接口传输到路由组件138的本地数据包。在一种本地数据包过滤方法中,管理员在环回接口(路由组件138的接口)上应用防火墙过滤器来控制本地数据包。
[0250] 图15是示出根据本公开中描述的技术的又一示例服务网关的框图。在图15所示的示例中,防火墙服务由入口转发组件150A中的防火墙策略存储159A和/或防火墙引擎153A以及出口转发组件150B中的防火墙策略存储159B和防火墙引擎153B提供。在一些示例方法中,入口转发组件150A中的防火墙策略存储159A和防火墙引擎153A提供服务网关8中的所有防火墙服务,而在其他示例方法中,出口转发组件150B中的防火墙策略存储159B和防火墙引擎153B提供网关8中的所有防火墙服务。在又一些示例方法中,服务网关将数据包转发到单独的防火墙网络装置(诸如图1中的服务节点13),其中,防火墙网络装置在将数据包传回网关8之前应用期望的防火墙服务。
[0251] 图16是示出根据本文描述的技术的一个或多个方面的服务的一组示例服务链的框图。在一个示例方法中,图16示出了由服务网关8支持的一组服务链302A-302D。服务链302表示由一个或多个服务网关8内或外部的计算机安全服务300提供的一组示例服务链。
[0252] 在该示例中,服务网关8沿着第一服务链302A引导一个或多个用户数据包流304A,以接收由服务网关8内的SPU 30执行的防火墙服务310。类似地,服务网关8沿着第二服务链302B引导一个或多个用户数据包流304B,用于防火墙服务312以及入侵检测和预防(例如,深度数据包检查)服务314的应用。在一个示例方法中,在网关4的单个SPU 30内执行防火墙服务312和入侵检测和预防服务314。在另一示例方法中,防火墙服务312和入侵检测和预防服务314由网关4的两个不同的SPU 30执行,这两个SPU经由其服务下一跳对连接成链。在又一示例方法中,防火墙服务312和入侵检测和预防服务314由位于不同机框上的两个不同的SPU 30执行,或者由防火墙153A、153B和SPU 30中的两个或多个的组合执行。在服务链302C中,服务网关8将数据包流304C引导到HTTP过滤器316和防火墙服务318。在服务链302D中,服务网关8将数据包流304D引导到HTTP过滤器320、防火墙服务322以及入侵检测和预防(例如,深度数据包检查)服务324。同样,每个链302可以在单个SPU 30上实现,或者分布在两个或多个SPU 30上。
[0253] 在一个示例方法中,服务网关8接收信号路由变化的通知,并使用信号路由的变化来动态改变服务的操作,例如,防火墙服务312和入侵检测和预防(例如,深度数据包检查)服务314。这种变化可以与禁用过滤器一样简单,也可以涉及许多不同装置和各种协议的配置。在一个示例方法中,主状态和备用状态变化驱动例如防火墙过滤器的启用和禁用,也可以将流量从以前的主网关重定向到新的主网关。这种改变装置(例如,防火墙)的操作和其他服务的能力将在防火墙配置的上下文中描述,但是可以扩展到对数据包操作的其他装置,例如,HTTP过滤器316和入侵检测和预防服务314。
[0254] 如图14和图15所示,路由平面132包括耦接到用户接口模块146和配置数据库162的管理守护程序160。管理守护程序160从用户接口模块146接收配置信息,并将配置信息存储在配置数据库162中。路由平面132还包括服务冗余守护程序(SRd)164(本文也称为服务冗余过程),其结合路由策略数据库166和信号路由向量70来操作,以配置和控制冗余服务传送系统27。SRd 164还与服务平面134接合,以便允许管理守护程序160配置服务卡136A、136B。SRd 164可以表示基于配置数据库162和路由策略数据库166更新RIB 140的软件模块。尽管被描述为由路由组件138执行的守护程序、软件过程或软件模块,但是SRd 164可以被实现为硬件模块或硬件和软件的组合。
[0255] 用户接口模块146可以表示软件和/或硬件模块,其呈现了管理员或由“ADMIN”145表示的管理装置可以与之交互以指定服务网关8的某些操作特性的接口。响应于管理员145的调用,用户接口模块146与服务网关8的其他组件交互,例如,检索、配置、复制和/或删除存储在路由策略数据库166中的策略配置数据,经由SRd 164更新服务平面143的服务数据,并且执行其他管理相关功能。在一个示例方法中,管理员145可以与用户接口模块146交互,以输入SRd 164的配置信息,例如,定义冗余事件、冗余策略、冗余集和冗余组的配置信息;该配置信息也存储在配置数据库162中。
[0256] 在一个这样的示例方法中,在假设主控权的情况下,服务网关8中的服务冗余守护程序164开始监控由其每个SPU 30的冗余事件配置所定义的关键事件。如果SRd 164检测到发生关键事件,则SRd 164基于存储在路由策略数据库166中的相关路由策略从RIB 140添加或移除路由。在一些示例方法中,SRd 164实现路由策略,该路由策略被配置为使用如上所述的if-route-exists条件,基于信号路由的存在与否来通告路由。
[0257] 在一个示例方法中(例如,SRd 164在不再是主网关的网关上执行),SRd 164还通知优选备用网关8将接管主控权。在一个这样的示例方法中,SRd 164使用ICCP向优选备用网关8A的服务冗余守护程序164通知该变化。
[0258] 如上所述,网关8可以使用信号路由变化来动态地改变服务的操作,例如,防火墙过滤器,以例如反映当前主服务网关的需求或配置。这种变化可以与禁用过滤器一样简单,也可以涉及许多不同网络装置和服务卡以及各种协议的配置。在一种这样的方法中,主状态和备用状态的变化驱动信号路由的添加和删除,并且这些变化可以用于改变防火墙引擎153的操作。
[0259] 在一个示例方法中,在网关8上执行的SRd 164检测事件并执行存储在路由策略数据库166中的服务冗余策略。在一种这样的方法中,服务冗余策略定义了对在一个或多个服务卡136上的SPU 30上执行的服务的变化。例如,SRd 164可以通过将从服务冗余策略读取的防火墙配置位写入防火墙策略存储器159或防火墙引擎153中的寄存器来改变防火墙引擎153的配置。在某些情况下,防火墙配置位可以改变某些数据包流量的数据速率,可以丢弃某些数据包流量,或者可以对这些流量执行其他服务。在某些方法中,流量按照服务冗余策略中的定义进行分组,防火墙动作(也在服务冗余策略中定义)按组定义并应用于特定组。
[0260] 在另一示例方法中,服务冗余策略使用如上所述的if-route-exists条件,基于信号路由的存在与否来定义一个或多个服务的变化。在一种这样的方法中,服务冗余策略定义了在一个或多个服务卡136的SPU 30上执行的服务的变化。例如,SRd 164可以通过如上所述写入防火墙配置位来改变防火墙引擎153的配置。在某些情况下,防火墙配置位可以改变某些数据包流量的数据速率,可以丢弃某些数据包流量,或者可以对这些流量执行其他服务。在某些方法中,流量按照服务冗余策略中的定义进行分组,防火墙动作(也在服务冗余策略中定义)按组定义并应用于特定组。
[0261] 图17是示出根据本公开中描述的技术的一个或多个方面的使用信号路由来改变服务相关配置(例如,业务流方向)的框图。在一个示例方法中,SRd 164检测与应用程序350使用的冗余集351相关联的冗余事件,并基于冗余事件更新信号路由向量70中的适当信号路由352,以反映主控权的变化。响应于信号路由352的变化,RPd 142改变路由通告,导致RIB 140的变化。在一个示例方法中,RIB 140的变化调用冗余策略354中的策略语句,以例如将网络流量的流引导到新的主服务网关。在一些示例方法中,冗余策略还可以改变应用于引导到新的主服务网关的网络流量的过程的参数。
[0262] 例如,在一种方法中,RIB 140的变化调用冗余策略354中的策略语句,以例如改变防火墙策略中的类别标记(例如,SCU或DCU标记)。在另一示例方法中,RIB 140中的变化调用冗余策略354中的策略语句,以例如改变与类别不相关联的标记。然后,在SPU 30上实现的一个或多个防火墙153的防火墙策略改变,以反映新的标记。在又一示例方法中,RIB 140的变化调用服务冗余策略354中的策略语句来修改一个或多个SPU 30上的服务,例如,防火墙或其他安全相关服务,如图13中详细描述的。
[0263] 图18是示出根据本文描述的技术的在切换到对等体期间作为信号路由变化的函数的服务的示例配置的流程图。出于示例的目的,根据服务网关(例如,图15或16的服务网关8)的示例操作来描述图18。在图18所示的示例中,服务网关8接收定义冗余事件的配置数据(400)。例如,服务网关8接收由管理员145定义的配置数据。在一个这样的示例中,管理员145定义冗余事件ACQU_MSHIP_MANUAL_EV,并配置冗余事件,以监视链路中断事件,例如,经由以下示例输入:
[0264]
[0265]
[0266] 在402,服务网关8接收定义冗余策略的配置数据。冗余策略详细说明了在服务网关8中执行的应用程序在冗余事件ACQU_MSHIP_MANUAL_EV监控的任何链路中断情况下应该采取的动作。冗余事件ACQU_MSHIP_MANUAL_EV的示例冗余策略如下:
[0267]
[0268] 在图18所示的示例中,路由组件138的SRd 164承担主控权(404),并开始监控关键事件,例如,由ACQU_MSHIP_MANUAL_EV定义的事件(406)。如果SRd 164检测到关键事件已经发生,则SRd 164基于存储在路由策略数据库166中的相关路由策略添加或移除路由(408)(例如,基于上述ACQU_MSHIP_POL定义的路由策略)。在一个示例方法中(例如,SRd 164在不再是主网关的网关上执行),SRd 164还通知优选备用网关8将接管主控权。在一个这样的示例方法中,SRd 164使用ICCP向SRd 164通知优选备用网关8B。
[0269] SRD 164然后以存储在例如路线策略数据库166中的路线策略中定义的方式通告路线的变化(410)。在一个示例方法中,SRd 164执行存储在路由策略数据库166中的路由策略,以经由VRRP传送一条或多条路由的通告优先级。
[0270] 在一个示例方法中,在信号路由向量70中示出每个信号路由的状态,如图8B所示。在图8B所示的示例中,信号路由向量70包括组织成信号路由/信号路由状态对的一个或多个信号路由72和一个或多个信号路由状态74。在一些示例中,特定信号路由72的状态可以如下确定:
[0271]
[0272] SRd 164然后执行与服务或装置相关联的冗余策略。在图18的示例方法中,SRd 164基于与冗余事件相关联的服务冗余策略来配置防火墙(412)。防火墙可以基于如图14和
15所示的防火墙引擎153,或者可以是单独的联网防火墙装置。例如,在防火墙过滤器示例中,SRd 164从路由策略数据库166中检索服务冗余策略,并将服务冗余策略应用于图14的防火墙引擎153SPU 30,以改变防火墙引擎153的操作。网络中的路由器也接收通告,并且基于通告的路由,开始将网络流量转发到下一个优选备用网关8,以应用服务(412)。
[0273] 在一个示例方法中,服务网关8中的每个SPU 30可以查询SRd 164,以确定是特定冗余集的主节点还是备用节点。在N:1有状态应用网关冗余应用中,SRd 164可能需要仅跟踪该SPU的多达N种不同冗余状态。
[0274] 服务冗余策略可以定义要在存储在防火墙策略存储器159中的规则中添加、删除或修改的规则或者写入防火墙策略存储器159或防火墙引擎153中的寄存器以改变防火墙引擎153的操作的配置位。以类似的方式,SRd 164从路由策略数据库166中检索服务冗余策略,并且应用服务冗余策略,以改变图15的防火墙引擎153A和/或防火墙引擎153B的过滤参数,或者添加、删除或修改存储在防火墙策略存储器159A或159B中的规则。在一个示例方法中,基于类别的过滤匹配条件用于基于源地址或目的地址或源地址或目的地址的范围过滤或改变数据包流量的数据速率。基于类别的过滤条件基于源类别(例如,经由SCU)或目的地类别(例如,经由DCU)与数据包字段匹配。源类别是一组源前缀,这些源前缀组合在一起并具有类名。目的地类别是一组目的地前缀,这些目的地前缀组合在一起并具有类名。
[0275] 在一个示例方法中,SRd 164执行存储在服务网关8的路由策略数据库166中的服务冗余策略,该策略通过在防火墙引擎153使用的寄存器中标记源类别使用(SCU)位来修改防火墙过滤器参数。在另一示例方法中,管理员通过在防火墙引擎153使用的寄存器中标记目的地类别使用(DCU)位来修改防火墙过滤器参数。SRd 164可以例如配置图14的防火墙引擎153或图15的防火墙引擎153A,以改变丢弃第二SCU或第二DCU类别中的所有流量的第一SCU类别或第一DCU类别中的数据包的数据速率。在一种这样的方法中,该配置可以包括将配置位写入防火墙引擎153,并将修改的规则写入防火墙策略数据库159。在又一示例方法中,SRd 164从存储在路由策略数据库166中的服务冗余策略中检索配置位和防火墙策略规则的组合,并且配置防火墙引擎153和防火墙策略存储159,以例如当存在或不存在给定的信号路由时,使防火墙引擎153丢弃数据包片段
[0276] 在一个示例方法中,服务网关8基于如下的if-route-exists条件,对防火墙引擎153、防火墙引擎153A或防火墙引擎153B提供的防火墙服务进行修改:
[0277]
[0278] 具有基于所选SCU位的匹配条件的防火墙过滤器过滤与条件匹配的数据包。在一个示例方法中,过滤后的流量流向备用服务网关8B。网络装置(例如,防火墙和入侵检测和预防(IDP)装置)可以以类似的方式配置。
[0279] 在一个示例方法中,基于类别的过滤器匹配条件可以用于基于源或目的地地址进行过滤。在一个这样的示例方法中,管理员可以用以下方式指定源类别:
[0280]
[0281] 类似地,管理员可以指定目的地类别:
[0282]
[0283] 在一个示例方法中,在防火墙策略存储159中存储的规则的控制下,在防火墙引擎153中执行防火墙动作。例如,防火墙策略可以定义防火墙引擎153可以执行终止动作,例如,“接受”或“丢弃”,以分别接受接收到的数据包或丢弃接收到的数据包。基于防火墙策略,防火墙引擎153可替换地或另外执行一个或多个非终止动作,例如,递增计数器、记录关于数据包报头的信息、采样数据包数据、使用系统日志功能向远程主机发送信息、将数据包转发到下一跳以及将策略器应用于速率限制流量。防火墙引擎153可以替代地或另外对数据包执行流控制动作。防火墙引擎153可以实现标准的防火墙动作(例如,深度数据包检查)和检测或减轻分布式拒绝服务(DDOS)攻击的动作。
[0284] 在一个示例方法中,如上所述,防火墙是与服务网关分离的网络装置。在一种这样的方法中,防火墙包括许多规则,这些规则定义了防火墙如何对数据包流量起作用。在一个这样的示例方法中,一个或多个规则包括if-route-exists条件,当路由存在时,该条件选择性地应用防火墙规则。例如,防火墙可以被配置为当服务网关8A为主网关时执行数据包的深度数据包检查,但是当服务网关8B或8C为主网关时不执行。在一个这样的示例方法中,防火墙读取路由信号向量70的内容,以确定地址是否存在。在另一这样的示例中,检测到事件的SRd 164使用存储在路由策略数据库166中的服务冗余策略,路由策略数据库166向防火墙发送新的配置数据和/或防火墙策略规则。类似的路由策略也可以用于配置服务网关8中的其他服务以及其他网络装置中的服务。
[0285] 上述技术可以提供优于先前网关间冗余方法的优点。路由组件138上的SR守护程序164可以连续监控预先配置的冗余事件。在发生冗余事件时,SR守护程序164添加或删除冗余策略中指定的信号路由,并适当更新状态同步角色。由此产生的路由变化会影响连接到该路由的路由策略,并导致网关上执行的路由协议以不同方式通告路由。如果使用VRRP,则对该路线的VRRP配置跟踪会产生不同的VRRP优先级通告。新通告的路由和VRRP优先级促使路由对等体将流量重定向到备用网关8,SRd 164将服务主控权切换到备用网关8。在一个示例方法中,如上所述,VRRP还可以用于通知另一网关8上的SRd 164将接管冗余集的主控权。
[0286] 此外,上述技术可以在配置网络装置以反映主控权的变化方面提供优势。例如,在一种这样的方法中,主控权的变化用于实现服务的变化或防火墙策略的变化。
[0287] 在一个示例方法中,一种方法包括:在具有服务冗余管理器和多个服务处理核心的服务网关处接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0288] 在另一示例方法中,一种系统包括:网络;N个冗余集,其中,N大于1,其中,所述N个冗余集中的每个冗余集具有主冗余状态、备用冗余状态和一个或多个冗余策略,其中,所述一个或多个冗余策略包括至少一个冗余策略,所述至少一个冗余策略定义了在与相应冗余集相关联的冗余事件发生时要采取的动作;以及多个服务网关,连接到网络,其中,每个服务网关包括服务冗余管理器和多个服务处理核心,其中,所述服务冗余管理器跟踪分配给服务冗余管理器的服务网关的冗余集的冗余状态。所述多个服务网关中的一个是备用服务网关,其中,所述备用服务网关将一个或多个服务处理核心分配给第一服务处理单元,并将所述N个冗余集分配给第一服务处理单元。所述多个服务网关中的一个或多个托管第二服务处理单元,其中,托管包括将一个或多个服务处理核心分配给每个第二服务处理单元,并将所述N个冗余集中的一个分配给每个第二服务处理单元,其中,所述N个冗余集中的每一个分配给不同的第二服务处理单元。当所述备用服务网关的服务冗余管理器检测到与N个冗余集中的特定一个相关联的冗余事件时,所述备用服务网关的服务冗余管理器在备用服务网关上将特定冗余集从备用冗余状态转换到主冗余状态,并且当具有与特定冗余集相关联的第二服务处理单元的服务网关的服务冗余管理器检测到冗余事件时,所述服务冗余管理器将服务网关中的特定冗余集从主冗余状态转换到备用冗余状态。
[0289] 在一个这样的示例方法中,每个服务冗余管理器跟踪服务网关服务处理单元分配到的冗余集的冗余状态。
[0290] 在另一这样的示例方法中,第一信号路由用于在冗余事件发生时触发系统中与第一冗余集相关的动作。当所述备用服务网关的服务冗余管理器在备用服务网关上将第一冗余集从备用冗余状态转换到主冗余状态时,所述服务网关将第一信号路由添加到路由信息库(RIB),并且向路由协议对等网络装置通告第一信号路由,其中,所述通告的第一信号路由促使路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0291] 在另一示例方法中,一种服务网关包括:网络接口;服务平面,其具有连接到网络接口的多个服务处理核心;以及路由平面,其连接到所述网络接口,所述路由平面包括存储器和连接到所述存储器的一个或多个处理器,其中,所述存储器包括指令,当所述指令被所述一个或多个处理器执行时,促使所述处理器:建立服务冗余守护程序;接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0292] 在一个这样的示例方法中,当由所述一个或多个处理器执行时,促使所述处理器将所述第一冗余集从备用冗余状态转换到主冗余状态的指令包括当由所述一个或多个处理器执行时,促使所述处理器实施在与相应冗余集相关联的冗余事件发生时要采取的动作的指令。
[0293] 在另一这样的示例方法中,当由所述一个或多个处理器执行时,促使所述处理器将第一冗余集从备用冗余状态转换到主冗余状态的指令包括当由所述一个或多个处理器执行时,修改与所述第一冗余集相关联的服务的指令。
[0294] 在又一个这样的示例方法中,所述存储器还包括指令,当所述指令由所述一个或多个处理器执行时,促使所述处理器在所述服务冗余管理器内跟踪与所述服务网关相关联的每个冗余集的冗余状态。
[0295] 在另一示例方法中,一种计算机可读介质包括指令,当由一个或多个处理器执行时,所述指令促使所述一个或多个处理器:建立服务冗余守护程序;接收服务处理单元配置信息,所述服务处理单元配置信息定义服务处理单元,将包括一个或多个网关服务处理核心的服务网关资源分配给所述服务处理单元,并将第一冗余集和第二冗余集与服务处理单元相关联,所述第一和第二冗余集中的每一个都具有主冗余状态、备用冗余状态和一个或多个冗余策略,包括定义了在与相应冗余集相关联的冗余事件发生时要采取的动作的至少一个冗余策略;使用在服务处理单元配置信息中分配的服务网关资源在服务网关中建立服务处理单元;在所述服务网关处接收定义所述第一冗余集的一个或多个冗余事件的配置信息,其中,所述一个或多个冗余事件包括关键事件,当检测到所述关键事件时,所述关键事件在第一冗余集中启动从主冗余状态到备用冗余状态的转换;将第一和第二冗余集置于备用冗余状态;定义第一信号路由,所述第一信号路由用于触发与第一冗余集相关的动作;监控关键事件;并且响应于检测到关键事件:经由服务冗余管理器在服务网关上将第一冗余集从备用冗余状态转换到主冗余状态;将第一信号路由添加到路由信息库(RIB);并且向路由协议对等网络装置通告第一信号路由,其中,通告的第一信号路由促使所述路由协议对等网络装置将与第一冗余集相关联的流量路由到一个或多个其他服务网关。
[0296] 在一个这样的示例方法中,计算机可读介质还包括指令,当由一个或多个处理器执行时,这些指令促使处理器在服务冗余管理器内跟踪与服务网关相关联的每个冗余集的冗余状态。
[0297] 本文描述的技术可以硬件、软件、固件或其任意组合来实现。被描述为模块、单元或组件的各种特征可以一起在集成逻辑装置中实现,或者单独实现为分立但可互操作的逻辑装置或其他硬件装置。在一些情况下,电子电路的各种特征可以实现为一个或多个集成电路装置,例如,集成电路芯片或芯片组
[0298] 如果以硬件实现,则本公开可以涉及诸如处理器或集成电路装置之类的装置,例如,集成电路芯片或芯片组。替代地或另外,如果以软件或固件实现,则这些技术可以至少部分地由包括指令的计算机可读数据存储介质实现,这些指令在被执行时促使处理器执行上述一种或多种方法。例如,计算机可读数据存储介质可以存储这样的指令,以供处理器执行。
[0299] 计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括计算机数据存储介质,例如,随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
[0300] 在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以表示存储介质不在载波或传播信号中体现。在某些示例中,非暂时性存储介质可以存储随时间变化的数据(例如,在RAM或高速缓存中)。
[0301] 代码或指令可以是由处理电路执行的软件和/或固件,该处理电路包括一个或多个处理器,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。此外,在一些方面,可以在软件模块或硬件模块内提供本公开中描述的功能。
[0302] 已经描述了各种示例方法。这些和其他方法在以下权利要求的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈