掌桥专利:专业的专利平台
掌桥专利
首页

在密钥交换期间选择互联网协议安全隧道的系统和方法

文献发布时间:2023-07-07 06:30:04


在密钥交换期间选择互联网协议安全隧道的系统和方法

技术领域

本公开的实施例涉及互联网协议安全。

背景技术

互联网协议安全(IPsec)是用于安全互联网协议(IP)通信的协议套件,该协议套件通过对通信会话的每个IP分组进行认证和加密来工作。IPsec包括用于在会话开始时在代理之间建立相互认证和协商要在会话期间使用的密码密钥的协议。IPsec能够用于保护一对主机(主机到主机)之间、一对安全网关(网络到网络)之间或安全网关与主机(网络到主机)之间的数据流。IPsec可以包括在互联网协议套件的互联网层中运行的端到端安全方案。IPsec可以不同于其他互联网安全系统(诸如传输层安全(TLS)和安全外壳(SSH)),不同之处在于TLS和SSH可以在传输层(TLS)和应用层(SSH)处的上层中运行。因而,IPsec保护IP网络上的所有应用业务。

发明内容

本文中所描述的一些实现涉及一种方法。该方法可以包括:由第一端点设备将第一度量指派给第一互联网协议安全(IPsec)隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道。该方法可以包括:由第一端点设备基于第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道。该方法可以包括:由第一端点设备经由所选择的IPsec隧道朝向第二端点设备传输数据。

本文中所描述的一些实现涉及一种第一端点设备。该第一端点设备可以包括一个或多个存储器和一个或多个处理器。一个或多个处理器可以被配置为将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道。一个或多个处理器可以被配置为基于比较第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道。一个或多个处理器可以被配置为经由所选择的IPsec隧道朝向第二端点设备传输数据。

本文中所描述的一些实现涉及一种存储用于第一端点设备的指令集的非瞬态计算机可读介质。指令集在由第一端点设备的一个或多个处理器执行时可以使第一端点设备将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道。指令集在被第一端点设备的一个或多个处理器执行时可以使第一端点设备基于比较第一度量的第一值和第二度量的第二值来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道。指令集在被第一端点设备的一个或多个处理器执行时可以使第一端点设备经由所选择的IPsec隧道朝向第二端点设备传输数据。

附图说明

图1A到图1F是本文中所描述的示例实现的示图。

图2是可以实现本文中所描述的系统和/或方法的示例环境的示图。

图3是图2的一个或多个设备的示例组件的示图。

图4是与在基于度量的互联网密钥交换(IKE)期间选择互联网协议安全(IPsec)隧道相关的示例进程的流程图。

具体实施方式

示例实现的以下详细描述参考附图。不同图式中的相同附图标号可以识别相同或类似元件。

在一些情况下,实体(例如企业、公司或个人以及其他示例)使用多个互联网服务提供方(ISP)来维持不同位置之间的连接性(例如维持位于不同地理区域中的办事处之间的连接性)。

每个ISP可以使用不同网络路径或不同自主系统来维持不同位置之间的连接性。在一些情况下,实体可以使用互联网协议安全(IPsec)来进行不同位置之间的安全互联网协议(IP)通信。例如,实体可以利用互联网密钥交换(IKE)进程经由第一ISP的网络在第一位置处的端点设备(例如用户设备、服务器设备或网络设备以及其他示例)与第二位置处的端点设备之间建立第一IPsec隧道,并且经由第二ISP的网络在第一位置处的端点设备与第二位置处的端点设备之间建立第二IPsec隧道。实体可以利用多个ISP来降低由于网络中断(例如由于网络路径或自主系统出现故障)而导致在第一位置和第二位置处的端点设备之间失去连接性的风险。进一步地,网络中断可以导致从检测到网络中断一直到建立新IPsec隧道为止的时间延迟,这可以导致在该时间延迟期间的业务损失。因此,代替在网络中具有遵循一条路径的单条IPsec隧道,实体可以在端点设备之间具有两条或更多条IPsec隧道。每条IPsec隧道可以遵循不同网络路径并且可以由不同ISP支持以实现冗余。因此,每条隧道将遵循不同路径以到达对等层。

作为示例,与第一ISP相关联的网络中断可以导致经由第一ISP的网络在两个端点设备之间的IPsec隧道的故障。端点设备可以利用失效对端检测(DPD)或任何其他类似方法来检测网络中断。基于检测到网络中断,端点设备可以关闭经由第一ISP的网络建立的IPsec隧道并且可以尝试重新协商新IPsec隧道。例如,端点设备可以使用通往另一端点设备的路径来重新协商新IPsec隧道,该另一端点设备绕过故障网络路径或利用另一ISP的网络。

然而,端点设备可能无法在用于向另一端点设备传输业务的不同IPsec隧道之间进行选择。例如,如果经由第一ISP的网络建立的第一IPsec隧道相对于在端点设备之间建立的其他IPsec隧道具有更好的服务质量(QoS),那么,在服务中断或QoS降低之前一直选择第一IPsec隧道以用于在端点设备之间传输业务可以是有益的。如果服务中断或QoS降低,那么端点设备应基于相对于其余IPsec隧道具有更好的QoS的第二IPsec隧道来利用经由第二ISP的网络建立的第二IPsec隧道。然而,当使用静态路由时,不存在可用于针对用于正向相同目的地(例如在相同端点设备之间)传输的业务在IPSec隧道之间选择/切换的机制。

本文中所描述的一些实现使得端点设备能够从在端点设备与另一端点设备之间建立的多条IPsec隧道中选择IPsec隧道以用于向另一端点设备传输业务。在一些实现中,相应度量值可以由端点设备和另一端点设备针对每条IPsec隧道协商,并且端点设备可以基于针对IPsec隧道协商的相应度量值来选择IPSec隧道。在一些实现中,IPsec隧道的度量值可以指示与IPsec隧道相关联的QoS,并且端点设备可以基于IPsec隧道与度量相关联来选择IPsec隧道,该度量表示相对于另一IPsec隧道的QoS的更好的QoS。以这种方式,端点设备可以优化在端点设备与另一端点设备之间传输的业务的通信,这可以导致相对于用于经由具有较低QoS的IPsec隧道在端点设备与另一端点设备之间传送业务的计算资源节省了计算资源(例如处理资源、存储器资源或通信资源以及其他示例)。

图1A到图1F是与在基于度量的IKE期间选择IPsec隧道相关联的示例实现100的示图。如图1A到图1F中所示出,示例实现100包括第一端点设备105和第二端点设备110。下文结合图2和图3更详细地描述了这些设备。

如在图1A中利用附图标号115所示出,第一端点设备105可以在第一端点设备105与第二端点设备110之间建立多条IPsec隧道。例如,第一端点设备105可以建立多条IPsec隧道(例如N条IPsec隧道,其中N是大于2的整数,如图1A中所示出)以用于在第一端点设备105与第二端点设备105之间传送业务。

在一些实现中,可以经由与一个或多个ISP相关联的一个或多个网络建立多条IPsec隧道。例如,可以经由第一ISP的网络建立第一IPsec隧道(例如IPsec隧道1,如所示出),可以经由第二ISP的网络建立第二IPsec隧道(例如IPsec隧道2,如所示出),并且可以经由第三ISP的网络建立第三IPsec隧道(例如IPsec隧道N,如所示出)。

在一些实现中,第一ISP可以与第二ISP相同或不同。在一些实现中,第三ISP可以与第一ISP和/或第二ISP相同或不同。

在一些实现中,多条IPsec隧道中的每条IPsec隧道可以相对于多条IPsec隧道中的其他IPsec隧道包括第一端点设备105与第二端点设备110之间的不同网络路径。例如,第一IPsec隧道可以包括第一端点设备105与第二端点设备110之间的第一网络路径,并且第二IPsec隧道可以包括第一端点设备105与第二端点设备110之间的第二网络路径,该第二网络路径与第一网络路径不同(例如经由第二网络路径传输的业务是经由未被包括在第一网络路径上的一个或多个网络设备传输的)。

如在图1B中利用附图标号120所示出,第一端点设备105可以确定与多条IPsec隧道中的每条IPsec隧道相关联的相应度量。度量可以指示多条IPsec隧道中相对于经由其他IPsec隧道传输业务的经由IPsec隧道传输业务的偏好。

在一些实现中,度量指示与IPsec隧道相关联的QoS。在一些实现中,QoS可以是由服务水平协议指示的QoS,该服务水平协议位于与第一端点设备105相关联的实体与同网络相关联的ISP之间,经由该网络建立IPsec隧道。例如,第一端点设备105可以从另一设备(例如与第一端点设备105相关联的客户端设备、服务器设备或网络设备以及其他示例)、第一端点设备105的存储器或经由用户输入端以及其他示例接收指示了由服务水平协议指示的QoS的信息。

在一些实现中,QoS是由第一端点设备确定的QoS。例如,第一端点设备105可以确定带宽、延时、抖动和/或沿着网络路径(其包括IPsec隧道以及其他示例)包括的网络设备的数量。第一端点设备105可以基于带宽、延时、抖动和/或网络设备的数量来确定QoS。第一端点设备105可以基于所确定的QoS来确定度量。

在一些实现中,度量指示与IPsec隧道相关联的权重。在一些实现中,权重可以指示与IPsec隧道相关联的优先级。在一些实现中,权重可以指示向第二端点设备110传输的所有业务的特定百分比(例如向第二端点设备110传输的所有业务的70%、80%或90%以及其他示例)将经由IPsec隧道进行传输。

在一些实现中,可以基于与IPsec隧道相关联的一个或多个特点来确定权重。例如,可以基于与IPsec隧道相关联的QoS、与IPsec隧道相关联的带宽、与IPsec隧道相关联的延时或与IPsec隧道相关联的抖动以及其他示例来确定权重。

在一些实现中,度量是用户配置的度量。例如,用户可以输入信息,该信息指示了由服务水平协议指示的QoS、要经由IPsec隧道传输的业务的权重或百分比和/或指示了IPsec隧道相对于其他IPsec隧道的优先级的度量以及其他示例。

如利用附图标号125所示出,第一端点设备105可以将指示所确定的度量的配置有效负载提供给第二端点设备110。在一些实现中,第一端点设备105可以提供指示了为每条IPsec隧道确定的相应度量的配置有效负载。

在一些实现中,第一端点设备105可以提供用于多条IPsec隧道中的每条IPsec隧道的单独配置有效负载。在一些实现中,用于多条IPsec隧道中的每条IPsec隧道的每个单独配置有效负载可以指示为由配置有效负载指示的IPsec隧道确定的度量。

在一些实现中,第一端点设备105可以提供配置有效负载作为用于协商与IPsec隧道相关联的度量的进程的一部分。在一些实现中,第一端点设备105可以提供配置有效负载以在用于在第一端点设备105与第二端点设备110之间建立IPsec隧道的进程期间协商度量。例如,在用于在第一端点设备105与第二端点设备110之间建立IPsec隧道的进程期间,第一端点设备105可以传输指示了为IPsec隧道确定的度量的请求消息。

在一些实现中,第一端点设备105可以在初始交换之后提供配置有效负载作为INFORMATIONAL交换的一部分。在一些实现中,第一端点设备105可以提供配置有效负载以在用于在第一端点设备105与第二端点设备110之间建立IPsec隧道的进程之后协商度量。例如,在用于在第一端点设备105与第二端点设备110之间建立IPsec隧道的进程之后,第一端点设备105可以传输指示了为IPsec隧道确定的度量的INFORMATIONATIONAL交换请求消息。

在一些实现中,配置有效负载包括用于IKE交换消息的新配置有效负载类型(例如与IKE_AUTH或CREATE_CHILD_SA或INFORMATIONAL交换消息相关联的配置有效负载类型)。在一些实现中,配置有效负载的形式可以对应于:

CP(CFG_SET)=IPSEC_TUNNEL_METRIC(x),

其中x是为IPsec隧道确定的度量。在一些实现中,“CFG_SET”和“CFG_ACK”可以允许第一端点设备105交换度量值。在一些实现中,属性类型“IPSEC_TUNNEL_METRIC”可以包括IKEv2配置有效负载属性类型。在一些实现中,属性类型“IPSEC_TUNNEL_METRIC”可以具有预先配置的属性类型。例如,属性类型“IPSEC_TUNNEL_METRIC”可以具有由用户输入或适用通信标准以及其他示例定义的属性值。

在一些实现中,第二端点设备10可以接收配置有效负载并且可以生成对配置有效负载的响应。对配置有效负载的响应可以指示接受配置有效负载中所指示的度量、拒绝配置有效负载中所指示的度量和/或配置有效负载中所指示的IPsec隧道的新度量。

在一些实现中,第二端点设备10可以确定与配置有效负载中所指示的IPsec隧道相关联的度量。在一些实现中,第二端点设备10可以以与上文所描述的方式类似的方式确定与配置有效负载中所指示的IPsec隧道相关联的度量。第二端点设备110可以比较配置有效负载中所指示的度量和由第二端点设备110确定的度量。第二端点设备110可以基于比较来选择配置有效负载中所指示的度量或由第二端点设备110确定的度量中的一个。第二端点设备10可以生成对指示所选择的度量的配置有效负载的响应。

作为示例,第二端点设备110可以比较配置有效负载中所指示的度量和由第二端点设备110确定的度量。第二端点设备110可以基于比较来确定由第二端点设备110确定的度量是否小于(或大于)配置有效负载中所指示的度量。当由第二端点设备110确定的度量小于(或大于)配置有效负载中所指示的度量时,第二端点设备110可以生成指示由第二端点设备110确定的度量的响应。当由第二端点设备110确定的度量大于(或小于)配置有效负载中所指示的度量时,第二端点设备110可以生成指示响应中所指示的度量的响应。

在一些实现中,第一端点设备105可以不发送指示了为IPsec隧道确定的度量的配置有效负载。例如,第一端点设备105和第二端点设备110可以基于用户输入来确定IPsec隧道的度量。在一些实现中,用户输入可以指示第二端点设备110基于用户输入确定了IPsec隧道的度量,并且第一端点设备105可以不基于第二端点设备110基于用户输入确定了IPsec隧道的度量来将配置有效负载提供给第二端点设备110。

如在图1C中利用附图标号130所示出,第一端点设备105可以从第二端点设备110接收对配置有效负载的响应。在一些实现中,该响应可以与单条IPsec隧道相关联并且可以指示接受由第一端点设备105为IPsec隧道确定的度量、拒绝由第一端点设备105为IPsec隧道确定的度量和/或IPsec隧道的新度量。

在一些实现中,第一端点设备105可以接收针对每条IPsec隧道的单独响应,针对每条IPsec隧道传输了配置有效负载。每个单独响应可以指示接受由第一端点设备105确定的度量、拒绝由第一端点设备105确定的度量和/或每条IPsec隧道的新度量,针对每条IPsec隧道,向第二端点设备110传输了配置有效负载。

如利用附图标号135所示出,第一端点设备105可以基于响应来将相应度量指派给多条IPsec隧道中的每条IPsec隧道。在一些实现中,响应可以指示接受由第一端点设备105为IPsec隧道确定的度量。第一端点设备105可以基于指示接受度量的响应来将由第一端点设备105确定的度量指派给IPsec隧道。

在一些实现中,响应可以指示拒绝由第一端点设备105为IPsec隧道确定的度量。第一端点设备105可以基于指示拒绝度量的响应来指派除了由第一端点设备105为IPsec隧道确定的度量以外的度量。

在一些实现中,第一端点设备105确定IPsec隧道的新度量并且基于指示拒绝该度量的响应来将新度量指派给IPsec隧道。例如,第一端点设备105可以确定IPsec隧道的新度量,可以向第二端点设备110传输指示新度量的新配置有效负载和/或可以以与上文所描述的方式类似的方式接收对新配置有效负载的新响应。新响应可以指示接受新度量,并且第一端点设备105可以基于指示接受新度量的响应来将新度量指派给IPsec隧道。

在一些实现中,响应指示由第二端点设备110确定的度量。由第二端点设备110确定的度量可以与由第一端点设备105为IPsec隧道确定的度量相同或不同。第一端点设备105可以基于响应中所指示的度量来将响应中所指示的度量指派给IPsec隧道。

如利用附图标号140所示出,第一端点设备105可以基于指派给每条IPsec隧道的相应度量来对多条IPsec隧道进行排名(例如优先化)。例如,第一端点设备105可以识别相对于指派给多条IPsec隧道中的其他IPsec隧道的度量而指派了最低(或最高)度量的IPsec隧道。第一端点设备105可以基于相对于指派给其他IPsec隧道的度量而被指派最低(或最高)度量的IPsec隧道来首先对IPsec隧道进行排名(例如将IPsec隧道与最高排名相关联)。第一端点设备105可以以类似方式基于指派给其余IPsec隧道的相应度量来对其余IPsec隧道进行排名,以生成IPsec隧道的排名列表。

如在图1D中利用附图标号145所示出,第一端点设备105可以接收要向第二端点设备110传输的数据。例如,第一端点设备105可以接收对访问服务器设备的请求,该服务器设备与来自客户端设备的第二端点设备110相关联。

如利用附图标号150所示出,第一端点设备105可以基于对多条IPsec隧道进行了排名来从多条IPsec隧道中选择IPsec隧道。例如,第一端点设备105可以基于由第一端点设备105生成的IPsec隧道的排名列表来选择与相对于其他IPsec隧道排名最高相关联的IPsec隧道。如利用附图标号155所示出,第一端点设备105可以经由所选择的IPsec隧道向第二端点设备110传输数据。

如在图1E中利用附图标号160所示出,第一端点设备105可以确定与所选择的IPsec隧道相关联的问题。例如,在向第二端点设备110传输数据之后,第一端点设备105可以确定与网络相关联的网络中断(经由该网络建立所选择的IPsec隧道)、与所选择的IPsec隧道相关联的QoS降低或与IPsec隧道相关联的网络设备的故障以及其他示例。

如利用附图标号165所示出,第一端点设备105可以基于与所选择的IPsec隧道相关联的问题来确定与除了所选择的IPsec隧道以外的另一IPsec隧道相关联的经修改的度量。在一些实现中,第一端点设备105可以以上文相对于第一端点设备105确定IPsec隧道的度量所描述的方式类似的方式确定经修改的度量。

如利用附图标号170所示出,第一端点设备105可以将指示与另一IPsec隧道相关联的经修改的度量的配置有效负载提供给第二端点设备110。在一些实现中,配置有效负载可以指示经修改的度量小于(或大于)为多条IPsec隧道中的另一IPsec隧道确定的度量。在一些实现中,指示经修改的度量的配置有效负载可以被包括在IKEINFORMATIONAL交换消息中。在一些实现中,第一端点设备105可以以与上文所描述的方式类似的方式将指示经修改的度量的配置有效负载提供给第二端点设备110。在一些实现中,第一端点设备105可以从第二端点设备110接收对指示经修改的度量的配置有效负载的响应。在一些实现中,响应可以指示接受经修改的度量、拒绝经修改的度量和/或IPsec隧道的新的经修改的度量。第一端点设备105可以基于响应将经修改的度量或新的经修改的度量指派给另一IPsec隧道。在一些实现中,第一端点设备105可以以与上文所描述的方式类似的方式将经修改的度量或新的经修改的度量指派给另一IPsec隧道。

如在图1F中利用附图标号175所示出,第一端点设备105可以基于与除了所选择的IPsec隧道以外的另一IPsec隧道相关联的经修改的度量来对多条IPsec隧道进行重新排名。例如,第一端点设备105可以基于将经修改的度量或新的经修改的度量指派给另一IPsec隧道来生成IPsec隧道的新排名列表。在一些实现中,第一端点设备105可以以与上文所描述的方式类似的方式生成IPsec隧道的新排名列表。

如利用附图标号180所示出,第一端点设备105可以基于对多条IPsec隧道进行重新排名来从多条IPsec隧道中选择新IPsec隧道以用于在第一端点设备105与第二端点设备110之间传输业务。例如,第一端点设备105可以接收要向第二端点设备110传输的新数据。第一端点设备105可以基于IPsec隧道的新排名列表来选择多条IPsec隧道中的排名最高的IPsec隧道。在一些实现中,第一端点设备105可以以与上文所描述的方式类似的方式基于IPsec隧道的新排名列表来选择排名最高的IPsec隧道。第一端点设备105可以经由所选择的IPsec隧道向第二端点设备110传输新数据。

如上文所指示,图1A至图1F被提供作为示例。其他示例可以不同于针对图1A到图1F所描述的内容。图1A到图1F中所示出的设备的数量和布置被提供作为示例。实际上,与图1A到图1F中所示出的设备相比,可以存在附加设备、更少的设备、不同的设备或以不同方式布置的设备。此外,图1A到图1F中所示出的两个或更多个设备可以被实现在单个设备内,或图1A到图1F中所示出的单个设备可以被实现为多个分布式设备。附加地或备选地,图1A到图1F中所示出的设备集合(例如一个或多个设备)可以进行被描述为由图1A到图1F中所示出的另一设备集合进行的一个或多个功能。

图2是可以实现本文中所描述的系统和/或方法的示例环境200的示图。如图2中所示出,环境200可以包括端点设备210、一组网络设备220(被示出为网络设备220-1到网络设备220-N)和网络230。环境200的设备可以经由有线连接、无线连接或有线连接与无线连接的组合来互连。

端点设备210包括能够接收、生成、存储、处理和/或提供信息(诸如本文中所描述的信息)的一个或多个设备。例如,端点设备210可以包括移动电话(例如智能电话或无线电话)、膝上型计算机、平板计算机、桌上型计算机、手持式计算机、游戏设备、可穿戴通信设备(例如智能手表、一副智能眼镜、心率监测器、健身追踪器、智能服装、智能珠宝或头戴式显示器)、网络设备或类似类型的设备。在一些实现中,端点设备210可以经由网络230(例如通过将网络设备220用作中间件来路由分组)从其他端点设备210接收网络业务和/或可以将网络业务提供给其他端点设备210。在一些实现中,端点设备210可以与第一端点设备105和/或第二端点设备100对应。

在一些实现中,端点设备210包括服务器设备。服务器设备可以包括能够接收、生成、存储、处理和/或提供信息(诸如本文中所描述的信息)的一个或多个设备。例如,服务器设备可以包括与多播业务相关联的膝上型计算机、平板计算机、桌上型计算机、一组服务器设备或类似类型的设备。在一些实现中,服务器设备可以经由网络230(例如通过将网络设备220用作中间件来路由分组)从端点设备210接收信息(例如多播业务)和/或向端点设备210传输信息(例如多播业务)。在一些实现中,端点设备210包括网络设备220。

网络设备220包括能够以本文中所描述的方式接收、处理、存储、路由和/或提供业务(例如分组或其他信息或元数据)的一个或多个设备。例如,网络设备220可以包括路由器,诸如标签切换路由器(LSR)、标签边缘路由器(LER)、入口路由器、出口路由器、提供方路由器(例如提供方边缘路由器或提供方核心路由器)、虚拟路由器或另一种类型的路由器。附加地或备选地,网络设备220可以包括网关、交换机、防火墙、集线器、网桥、反向代理、服务器(例如代理服务器、云服务器或数据中心服务器)、负载平衡器和/或类似设备。在一些实现中,网络设备220可以是在壳体(诸如机架)内实现的物理设备。在一些实现中,网络设备220可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。在一些实现中,一组网络设备220可以是用于通过网络230路由业务流的一组数据中心节点。

网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括分组切换网络、蜂窝网络(例如第五代(5G)网络、第四代(4G)网络(诸如长期演进(LTE)网络)、第三代(3G)网络、码分多址(CDMA)网络、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如公共切换电话网(PSTN))、私有网络、自组织网络、内联网、互联网、基于光纤的网络、云计算网络等)和/或这些或其他类型的网络的组合。

图2中所示出的设备和网络的数量和布置被提供作为示例。实际上,与图2中所示出的设备和/或网络相比,可以存在附加设备和/或网络、更少的设备和/或网络、不同的设备和/或网络或以不同方式布置的设备和/或网络。此外,图2中所示出的两个或更多个设备可以被实现在单个设备内,或图2中所示出的单个设备可以被实现为多个分布式设备。附加地或备选地,环境200的设备集合(例如一个或多个设备)可以进行被描述为由环境200的另一设备集合进行的一个或多个功能。

图3是设备300的示例组件的示图,该示例组件可以与端点设备210和/或网络设备220对应。在一些实现中,端点设备210和/或网络设备220包括一个或多个设备300和/或设备300的一个或多个组件。如图3中所示出,设备300可以包括总线310、处理器320、存储器330、输入组件340、输出组件350和通信组件360。

总线310包括在设备300的组件之间实现有线和/或无线通信的一个或多个组件。总线310可以诸如经由操作耦合、通信耦合、电子耦合和/或电耦合将图3的两个或更多个组件耦合在一起。处理器320包括中央处理单元、图形处理单元、微处理器、控制器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和/或另一种类型的处理组件。处理器320被实现在硬件、固件或硬件与软件的组合中。在一些实现中,处理器320包括能够被编程为进行本文中的其他地方所描述的一个或多个操作或进程的一个或多个处理器。

存储器330包括易失性和/或非易失性存储器。例如,存储器330可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器和/或另一种类型的存储器(例如闪速存储器、磁存储器和/或光学存储器)。存储器330可以包括内部存储器(例如RAM、ROM或硬盘驱动器)和/或可移除存储器(例如经由通用串行总线连接可移除)。存储器330可以是非瞬态计算机可读介质。存储器330存储与设备300的操作相关的信息、指令和/或软件(例如一个或多个软件应用)。在一些实现中,存储器330包括诸如经由总线310耦合到一个或多个处理器(例如处理器320)的一个或多个存储器。

输入组件340使得设备300能够接收输入,诸如用户输入和/或感测到的输入。例如,输入组件340可以包括触摸屏、键盘、小键盘、鼠标、按钮、麦克风、交换机、传感器、全球定位系统传感器、加速度计、陀螺仪和/或致动器。输出组件350使得设备300能够诸如经由显示器、扬声器和/或发光二极管提供输出。通信组件360使得设备300能够经由有线连接和/或无线连接与其他设备通信。例如,通信组件360可以包括接收器、传输器、收发器、调制解调器、网络接口卡和/或天线。

设备300可以进行本文中所描述的一个或多个操作或进程。例如,非瞬态计算机可读介质(例如存储器330)可以存储供处理器320执行的指令集(例如一个或多个指令或代码)。处理器320可以执行指令集以进行本文中所描述的一个或多个操作或进程。在一些实现中,由一个或多个处理器320执行指令集使一个或多个处理器320和/或设备300进行本文中所描述的一个或多个操作或进程。在一些实现中,代替指令和结合指令使用硬连线电路系统来进行本文中所描述的一个或多个操作或进程。附加地或备选地,处理器320可以被配置为进行本文中所描述的一个或多个操作或进程。因此,本文中所描述的实现不限于硬件电路系统与软件的任何特定组合。

图3中所示出的组件的数量和布置被提供作为示例。与图3中所示出的组件相比,设备300可以包括附加组件、更少的组件、不同的组件或以不同方式布置的组件。附加地或备选地,设备300的组件集合(例如一个或多个组件)可以进行被描述为由设备300的另一组件集合进行的一个或多个功能。

图4是与用于在基于度量的IKE期间选择IPsec隧道的系统和方法相关联的示例进程400的示意图。在一些实现中,图4的一个或多个进程框由第一端点设备(例如第一端点设备105)进行。在一些实现中,图4的一个或多个进程框由与第一端点设备(诸如另一端点设备(例如第二端点设备110)和/或网络设备(例如网络设备220))分开或包括该第一端点设备的另一设备或一组设备进行。附加地或备选地,图4的一个或多个进程框可以由设备300的一个或多个组件(诸如处理器320、存储器330、输入组件340、输出组件350和/或通信组件360)进行。

如图4中所示出,进程400可以包括将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道(框410)。例如,如上文所描述,第一端点设备可以将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道。

如图4中进一步示出的,进程400可以包括基于第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道(框420)。例如,如上文所描述,第一端点设备可以基于第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道。

如图4中进一步示出的,进程400可以包括经由所选择的IPsec隧道朝向第二端点设备传输数据。例如,如上文所描述,第一端点设备可以经由所选择的IPsec隧道朝向第二端点设备传输数据。

如图4中进一步示出的,进程400可以包括确定与所选择的IPsec隧道相关联的问题(框440)。例如,如上文所描述,第一端点设备可以确定与所选择的IPsec隧道相关联的问题。

如图4中进一步示出的,进程400可以包括基于问题来确定其余IPsec隧道的经修改的度量,该其余IPsec隧道不与所选择的IPsec隧道对应(框450)。例如,如上文所描述,第一端点设备可以基于问题来确定其余IPsec隧道的经修改的度量,该其余IPsec隧道不与所选择的IPsec隧道对应。

如图4中进一步示出的,进程400可以包括将指示经修改的度量的配置有效负载提供给第二端点设备(框460)。例如,如上文所描述,第一端点设备可以将指示经修改的度量的配置有效负载提供给第二端点设备。第二端点设备可以提供响应,该响应指示接受经修改的度量、拒绝经修改的度量和/或IPsec隧道的新的经修改的度量。第一端点设备可以将经修改的度量或新的经修改的度量指派给IPsec隧道。

如图4中进一步示出的,进程400可以包括基于与其余IPsec隧道相关联的经修改的度量来对第一IPsec隧道或第二IPsec隧道进行重新排名(框470)。例如,第一端点设备可以基于对第一IPsec隧道或第二IPsec隧道进行重新排名来选择排名最高的IPsec隧道。

如图4中进一步示出的,进程400可以包括经由所选择的IPsec隧道朝向第二端点设备传输新数据(框480)。例如,第一端点设备可以经由所选择的IPsec隧道向第二端点设备传输新数据。

进程400可以包括附加实现,诸如下文和/或结合本文中的其他地方所描述的一个或多个其他进程所描述的任何单种实现或实现的任何组合。

在第一实现中,第一端点设备选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的新的所选择的IPsec隧道,该方法还包括基于与第一IPsec隧道或第二IPsec隧道相关联的经修改的度量进行选择。

在第二实现中,单独地或结合第一实现,配置有效负载被包括在IKEINFORMATIONAL交换消息中。

在第三实现中,单独地或结合第一实现和第二实现中的一种或多种,将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道包括:确定与第一IPsec隧道相关联的第一服务质量;基于第一服务质量来将第一度量指派给第一IPsec隧道;确定与第二IPsec隧道相关联的第二服务质量;基于第二服务质量来将第二度量指派给第二IPsec隧道;以及向第二端点设备传输配置有效负载,该配置有效负载指示第一度量和第二度量。

在第四实现中,单独地或结合第一实现到第三实现中的一种或多种,第一度量包括第一权重并且第二度量包括第二权重,该方法还包括经由第一IPsec隧道朝向第二端点设备传输第一百分比的数据,其中第一百分比是基于第一权重而被确定的,并且经由第二IPsec隧道朝向第二端点设备传输第二百分比的数据,其中第二百分比是基于第二权重的。

在第五实现中,单独地或结合第一实现到第四实现中的一种或多种,进程400包括基于与第一IPsec隧道相关联的第一带宽来确定第一权重,并且基于与第二IPsec隧道相关联的第二带宽来确定第二权重。

尽管图4示出了进程400的示例框,但在一些实现中,与图4中所描绘的框相比,进程400包括附加框、更少的框、不同的框或以不同方式布置的框。附加地或备选地,可以并行地进行进程400的框中的两个或更多个框。

根据一些实现,公开了以下示例。

示例1.一种方法,包括:由第一端点设备将第一度量指派给第一互联网协议安全IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道;由第一端点设备基于第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道;以及由第一端点设备经由所选择的IPsec隧道朝向第二端点设备传输数据。

示例2.根据示例1的方法,其中第一端点设备选择第一IPsec隧道作为所选择的IPsec隧道,方法还包括:确定与第一IPsec隧道相关联的问题;基于与第一IPsec隧道相关联的问题来修改第二度量以生成经修改的第二度量;以及基于第一度量和经修改的第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的新的所选择的IPsec隧道。

示例3.根据示例2的方法,还包括:向第二端点设备传输指示经修改的第二度量的配置有效负载。

示例4.根据示例3的方法,其中配置有效负载包括互联网密钥交换配置有效负载。

示例5.根据示例1的方法,其中将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道包括:确定与第一IPsec隧道相关联的第一服务质量;基于第一服务质量来将第一度量指派给第一IPsec隧道;确定与第二IPsec隧道相关联的第二服务质量;基于第二服务质量来将第二度量指派给第二IPsec隧道;以及向第二端点设备传输第一配置有效负载和第二配置有效负载,第一配置有效负载用于第一IPsec隧道并且指示第一度量,第二配置有效负载用于第二IPsec隧道并且指示第二度量。

示例6.根据示例1的方法,其中第一度量包括第一权重并且第二度量包括第二权重,方法还包括:经由第一IPsec隧道朝向第二端点设备传输第一百分比的数据,其中第一百分比是基于第一权重而被确定的;以及经由第二IPsec隧道朝向第二端点设备传输第二百分比的数据,其中第二百分比是基于第二权重的。

示例7.根据示例6的方法,还包括:基于与第一IPsec隧道相关联的第一带宽来确定第一权重;以及基于与第二IPsec隧道相关联的第二带宽来确定第二权重。

示例8.一种第一端点设备,包括:一个或多个存储器;以及一个或多个处理器,用以:将第一度量指派给第一互联网协议安全IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道;基于比较第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道;以及经由所选择的IPsec隧道朝向第二端点设备传输数据。

示例9.根据示例8的第一端点设备,其中第一端点设备选择第一IPsec隧道作为所选择的IPsec隧道,并且其中一个或多个处理器还用以:确定与第一IPsec隧道相关联的问题;基于与第一IPsec隧道相关联的问题来修改第二度量以生成经修改的第二度量;以及基于比较第一度量和第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的新的所选择的IPsec隧道。

示例10.根据示例8的第一端点设备,其中为了将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,一个或多个处理器用以:确定与第一IPsec隧道相关联的第一服务质量;基于第一服务质量来将第一度量指派给第一IPsec隧道;确定与第二IPsec隧道相关联的第二服务质量;以及基于第二服务质量来将第二度量指派给第二IPsec隧道。

示例11.根据示例8的第一端点设备,其中一个或多个处理器还用以:向第二端点设备传输用于第一IPsec隧道的第一配置有效负载和用于第二IPsec隧道的第二配置有效负载,第一配置有效负载指示第一度量,第二配置有效负载指示第二度量。

示例12.根据示例8的第一端点设备,其中第一度量包括第一权重并且第二度量包括第二权重,并且其中一个或多个处理器还用以:经由第一IPsec隧道朝向第二端点设备传输第一百分比的数据,其中第一百分比是基于第一权重而被确定的;以及经由第二IPsec隧道朝向第二端点设备传输第二百分比的数据,其中第二百分比是基于第二权重的。

示例13.根据示例12的第一端点设备,其中一个或多个处理器还用以:基于与第一IPsec隧道相关联的第一带宽来确定第一权重;以及基于与第二IPsec隧道相关联的第二带宽来确定第二权重。

示例14.根据示例8的第一端点设备,其中为了将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道,一个或多个处理器用以:向第二端点设备传输用于第一IPsec隧道的第一配置有效负载和用于第二IPsec隧道的第二配置有效负载,第一配置有效负载指示第一度量,第二配置有效负载指示第二度量;接收对第一配置有效负载的响应,其中响应指示与第一IPsec隧道相关联的新的第一度量;以及将新的第一度量指派给第一IPsec隧道。

示例15.一种存储指令集的非瞬态计算机可读介质,指令集包括:一个或多个指令,一个或多个指令在由第一端点设备的一个或多个处理器执行时使第一端点设备:将第一度量指派给第一互联网协议安全IPsec隧道并且将第二度量指派给第二IPsec隧道,其中第一IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第一通信信道,并且第二IPsec隧道是用于在第一端点设备与第二端点设备之间传输数据的第二通信信道;基于比较第一度量的第一值和第二度量的第二值来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的所选择的IPsec隧道;以及经由所选择的IPsec隧道朝向第二端点设备传输数据。

示例16.根据示例15的非瞬态计算机可读介质,其中一个或多个指令还使第一端点设备:确定与第一IPsec隧道相关联的问题;基于与第一IPsec隧道相关联的问题来修改第二度量以生成经修改的第二度量;以及基于比较第一度量的值和经修改的第二度量来选择第一IPsec隧道或第二IPsec隧道作为用于朝向第二端点设备传输数据的新的所选择的IPsec隧道。

示例17.根据示例16的非瞬态计算机可读介质,其中一个或多个指令还使第一端点设备:向第二端点设备传输指示经修改的第二度量的配置有效负载。

示例18.根据示例15的非瞬态计算机可读介质,其中使第一端点设备将第一度量指派给第一IPsec隧道并且将第二度量指派给第二IPsec隧道的一个或多个指令使第一端点设备:确定与第一IPsec隧道相关联的第一服务质量;基于第一服务质量来将第一度量指派给第一IPsec隧道;确定与第二IPsec隧道相关联的第二服务质量;基于第二服务质量来将第二度量指派给第二IPsec隧道;以及向第二端点设备传输用于第一IPsec隧道的第一配置有效负载和用于第二IPsec隧道的第二配置有效负载,第一配置有效负载指示第一度量,第二配置有效负载指示第二度量。

示例19.根据示例15的非瞬态计算机可读介质,其中第一度量包括第一权重并且第二度量包括第二权重,并且其中一个或多个指令还使第一端点设备:经由第一IPsec隧道朝向第二端点设备传输第一百分比的数据,其中第一百分比是基于第一权重而被确定的;以及经由第二IPsec隧道朝向第二端点设备传输第二百分比的数据,其中第二百分比是基于第二权重的。

示例20.根据示例19的非瞬态计算机可读介质,其中一个或多个指令还使第一端点设备:基于与第一IPsec隧道相关联的第一带宽来确定第一权重;以及基于与第二IPsec隧道相关联的第二带宽来确定第二权重。

前述公开提供了说明和描述,但并不旨在作为详尽的或将实现限制为所公开的精确形式。可以鉴于以上公开进行修改和变型,或可以根据实现的实践来获取修改和变型。

如本文中所使用的,业务或内容可以包括分组集合。分组可以是指用于传送信息的通信结构,诸如协议数据单元(PDU)、服务数据单元(SDU)、网络分组、数据报、段、消息、框、框架(例如以太网框架)、以上中的任一者的一部分和/或能够经由网络传输的另一种类型的格式化或非格式化数据单元。

如本文中所使用的,术语“组件”旨在被广义地解释为硬件、固件或硬件与软件的组合。应明显的是,本文中所描述的系统和/或方法可以以硬件、固件和/或硬件与软件的组合的不同形式实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实现。因此,本文中在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为——应理解,能够基于本文中的描述使用软件和硬件来实现系统和/或方法。

即使在权利要求书中叙述了特征的特定组合和/或在说明书中公开了特征的特定组合,这些组合也不旨在限制各种实现的公开。实际上,这些特征中的许多特征可以以在权利要求书中未具体叙述和/或说明书中未公开的方式进行组合。尽管下文所列出的每项从属权利要求可以仅直接取决于一项权利要求,但各种实现的公开包括结合权利要求集合中的每项其他权利要求的每项从属权利要求。如本文中所使用的,指项目列表“中的至少一个项目”的短语是指那些项目的任何组合,包括单个成员。作为示例,“以下至少一项:a、b或c”旨在涵盖a、b、c、a-b、a-c、b-c和a-b-c以及与相同项目中的多个项目的任何组合。

因而,除非明确描述,否则本文中所使用的任何元件、动作或指令都不应被解释为关键的或必要的。此外,如本文中所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换地使用。进一步地,如本文中所使用的,冠词“该”旨在包括结合冠词“该”引用的一个或多个项目,并且可以与“一个或多个”互换地使用。此外,如本文中所使用的,术语“集合”旨在包括一个或多个项目(例如相关项目、不相关项目或相关项目与不相关项目的组合),并且可以与“一个或多个”互换地使用。在仅预期一个项目的情况下,使用了短语“仅一个”或类似语言。此外,如本文中所使用的,术语“具有(has/have/having)”等旨在作为开放式术语。进一步地,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。此外,如本文中所使用的,除非另有明确说明(例如在结合“中的任一者”或“中的仅一者”使用的情况下),否则术语“或”在串行使用时旨在作为包括性的,并且可以与“和/或”互换地使用。

技术分类

06120116029872