CN115883631A - 使用路径变化建立会话 - Google Patents

使用路径变化建立会话 Download PDF

Info

Publication number
CN115883631A
CN115883631A CN202111579620.1A CN202111579620A CN115883631A CN 115883631 A CN115883631 A CN 115883631A CN 202111579620 A CN202111579620 A CN 202111579620A CN 115883631 A CN115883631 A CN 115883631A
Authority
CN
China
Prior art keywords
path
packet
session
router
along
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111579620.1A
Other languages
English (en)
Inventor
阿比拉什·梅农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN115883631A publication Critical patent/CN115883631A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/267Flow control; Congestion control using explicit feedback to the source, e.g. choke packets sent by the destination endpoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Abstract

本公开涉及使用路径变化建立会话。如本文所述,路由器通过改变与会话相关联的流量所使用的网络路径,向源装置发信号,以与目的地装置建立新的状态通信会话。在一个示例中,路由器沿着第一路径转发由源装置建立的第一状态路由会话的流量。响应于确定不应该使用第一路径,路由器沿着第二路径转发第一会话的分组。目的地装置识别路径的变化,这使得目的地装置拒绝该分组,这进而使得源装置建立第二状态路由会话。路由器沿着第二路径转发第二状态路由会话的后续流量。

Description

使用路径变化建立会话
本申请要求2021年9月28日提交的美国专利申请号17/449,435的权益。
技术领域
本公开总体上涉及计算机网络,并且更具体地,涉及在计算机网络内路由分组。
背景技术
计算机网络是可以交换数据和共享资源的互连计算装置的集合。示例性计算装置包括在开放系统互连(OSI)参考模型的层2(即数据链路层)中运行的路由器、交换机和其他层2(L2)网络装置以及在OSI参考模型的层3(即网络层)中运行的层3(L3)网络装置。计算机网络内的网络装置通常包括为网络装置提供控制平面功能的控制单元和用于路由或交换数据单元的转发组件。
计算装置可以建立“网络会话”(本文也称为“会话”),以实现计算机网络上的装置之间的通信。会话可以是双向的,即,会话包括在第一装置和第二装置之间双向传输的分组。例如,会话包括源自第一装置并去往第二装置的前向分组流和源自第二装置并去往第一装置的反向分组流。会话的前向和反向分组流彼此相关,即,前向分组流的源地址和源端口与反向分组流的目的地址和目的端口相同,前向分组流的目的地址和目的端口与反向分组流的源地址和源端口相同。为了建立会话,计算装置可以使用一个或多个通信会话协议,包括传输控制协议(TCP)、传输层安全(TLS)、用户数据报协议(UDP)、互联网控制消息协议(ICMP)等。
发明内容
一般而言,本公开描述了用于通过路由器改变在其上转发与状态路由会话相关联的网络流量的网络路径,通过路由器使得源装置与目的地装置建立由源装置建立的新的状态路由会话的技术。在一些示例中,源装置在源装置和目的地装置之间建立状态路由会话。状态路由会话包括源装置和目的地装置之间的前向分组流和反向分组流。在一些示例中,路由器执行与会话相关联的网络流量的基于会话的路由,使得路由器沿着相同的前向路径依次转发前向分组流的每个分组,并且沿着相同的反向路径依次转发反向分组流的每个分组,其中,前向路径和反向路径可以相同也可以不同。
路由器可以沿着源装置和目的地装置之间的第一路径转发状态路由会话的流量。在一些示例中,第一条路径可能会发生故障。虽然传统路由器可以将非状态路由会话的所有流量重新路由到备用路径,但是传统路由器不会将状态路由会话的流量重新路由。例如,多个不同会话的流量可以在同一第一路径上转发。如果第一路径的性能劣化,则第一路径可能不再满足第一服务的软件许可协议(SLA)要求,但仍可能满足第二服务的SLA要求。执行非状态路由的传统路由器可以将所有流量通过第一路径重定向到第二路径(例如,与第一或第二会话相关联的所有流量)。然而,执行状态路由的传统路由器不具有仅将与第一会话相关联的流量迁移到第二路径,同时继续通过满足第二会话的SLA要求的第一路径转发与第二会话相关联的流量的机制。
因此,在传统状态路由系统中的第一路径发生故障的情况下,执行状态路由的传统路由器可能仅在会话超时之后才将与源装置和目的地装置之间的状态路由会话相关联的流量迁移到第二路径。超时发生后,源装置建立新的状态路由会话,并恢复与目标装置交换网络流量。在状态路由会话是状态TCP会话的情况下,超时发生的时间可能相当长,并且源装置会重新发送在第一路径发生故障和会话超时之间的时间内发送的任何流量。此外,在通过互联网协议安全(IPsec)隧道传送状态路由会话的情况下,超时可能永远不会发生,因为IPsec隧道会为其他会话传送流量,这会保持IPsec隧道活动,并导致状态路由会话的流量黑洞,因为源装置会继续尝试重新发送流量,直到管理员重新建立隧道。此外,即使传统路由器在第一路径中检测到这种故障,现有技术也没有为传统路由器提供向源装置发信号以使得源装置可以在不等待会话超时的情况下重新建立会话的机制。
根据本公开的技术,路由器可以通过改变在其上转发与状态路由会话相关联的网络流量的网络路径,使源装置与目的地装置重新建立由源装置建立的状态路由会话。如下文更详细描述的,通过改变状态路由会话的网络路径,路由器可以使得目的地装置无法将从源装置接收的一个或多个分组识别为属于状态路由会话。响应于接收到这样的分组,目的地装置拒绝这些分组。响应于目的地装置拒绝分组,源装置建立新的状态路由会话。因此,路由器可以通过改变在其上转发与状态路由会话相关联的网络流量的网络路径来间接使得源装置建立新的会话,这可以使得源装置能够比要求源装置等待原始状态路由会话超时更快地建立新的状态路由会话。
在一个示例中,路由器沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一转发分组流的分组。第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流。路由器通过沿着相同的第一路径依次转发第一多个分组中的每个分组来执行状态路由。
路由器可确定第一路径不应该用于第一状态路由会话。例如,路由器可以检测到第一路径中的故障,例如,沿着第一路径的装置或链路的故障。替代地或额外地,路由器可以确定第二路径比第一路径提供更高的性能,或者确定第二路径比第一路径具有更高的优先级。
响应于该确定,路由器沿着第二路径转发第一会话的第一转发分组流的至少一个分组。目的地装置识别到路径的变化,这使得目的地装置拒绝至少一个分组。在一些示例中,沿着第一路径的第一网络地址转换(NAT)服务可以应用于沿着第一路径转发的网络流量,而沿着第二路径的第二NAT服务可以应用于沿着第二路径转发的网络流量。当沿着第一路径转发第一转发分组流的分组时,第一NAT服务被应用于分组。然而,当路由器沿着第二路径转发该至少一个分组时,第二NAT服务被应用于该至少一个分组。将第二NAT服务应用于至少一个分组,使得目的地装置拒绝至少一个分组。例如,在会话是TCP会话的情况下,响应于接收到具有不同源地址的中间流分组,目的地装置向源装置发送TCP重置消息。在通过IPsec隧道传输会话的情况下,目的地装置的隧道端点检测到中游分组的源IP已经改变,因此重新开始与源装置的IPsec隧道的协商。
目的地装置对至少一个分组的拒绝进而使得源装置在源装置和目的地装置之间建立第二状态路由会话。路由器可以确保沿着第二路径而不是第一路径转发第二状态路由会话的第二转发流的分组。以这种方式,路由器可以间接使得源装置与目的地装置建立新的状态路由会话,而不必等待第一路径中出现故障时第一状态路由会话超时的全部时间。路由器随后可以沿着第二路径转发第二状态路由会话的第二转发分组流的分组。此外,路由器可以通过沿着相同的第二路径依次转发第二转发分组流的每个分组来执行状态路由。
本公开的技术可以为具有实际应用的计算机网络的计算机相关领域提供具体的改进。例如,本公开的技术提供了一种机制,用于路由器向客户端装置发信号,以重新建立会话,而不需要修改客户端装置来支持消息协议。此外,本公开的技术使得路由器能够在路径故障的情况下使客户端装置重新建立会话,而无需等待TCP会话超时或等待管理员重新建立IPSec隧道的过度延迟(这可能导致流量黑洞)。此外,本公开的技术使得路由器能够将路径特定的状态路由会话从第一路径故障转移到第二路径,即使不同的NAT服务被应用于第一路径和第二路径。本公开的技术还使得路由器能够将客户端和服务器之间的会话从第一路径移动到第二路径,其中,第二路径提供更好的性能或者具有比第一路径更高的优先级。此外,本公开的技术不干扰流量的转发,其中,没有NAT服务被应用于流量。
在一个示例中,本公开描述了一种方法,包括:由路由器沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,转发包括沿着相同的第一路径依次转发第一多个分组中的每个分组;由路由器确定第一路径不应该用于第一状态路由会话;响应于该确定,由路由器沿着第二路径转发第一状态路由会话的第一转发分组流的至少一个分组,其中,沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且由路由器沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,转发包括沿着相同的第二路径依次转发第二多个分组中的每个分组。
在另一示例中,本公开描述了一种包括处理电路的路由器,所述处理电路被配置为:沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,处理电路被配置为沿着相同的第一路径依次转发第一多个分组中的每个分组;确定第一路径不应该用于第一状态路由会话;响应于该确定,沿着第二路径转发第一会话的第一转发分组流的至少一个分组,其中,处理电路被配置为沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝被配置为使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,处理电路被配置为沿着相同的第二路径依次转发第二多个分组中的每个分组。
在另一示例中,本公开描述了一种包括指令的非暂时性计算机可读介质,所述指令在被执行时被配置为使得路由器的处理电路:沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,处理电路被配置为沿着相同的第一路径依次转发第一多个分组中的每个分组;确定第一路径不应该用于第一状态路由会话;响应于该确定,沿着第二路径转发第一会话的第一转发分组流的至少一个分组,其中,处理电路被配置为沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝被配置为使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,处理电路被配置为沿着相同的第二路径依次转发第二多个分组中的每个分组。
在附图和以下描述中阐述本公开的技术的一个或多个示例的细节。从说明书和附图以及权利要求中,本技术的其他特征、目的和优点将变得显而易见。
附图说明
图1是示出根据本公开技术的示例性计算机网络系统的框图;
图2是示出根据本公开的技术的示例性路由器的框图;
图3是示出根据本公开的技术的示例性操作的流程图。
在所有附图和描述中,相同的附图标记指代相同的元件。
具体实施方式
图1是示出根据本公开技术的示例性计算机网络系统2的框图。在图1的示例中,计算机网络系统2包括服务提供商网络150A-150D(统称为“服务提供商网络150”),其被配置为向不同的客户网络140A-140B(“客户网络140”)提供广域网(WAN)连接。服务提供商网络150的路由器110A-110I(统称为“路由器110”)向与客户网络140相关联的客户端装置100和服务器103提供经由客户边缘装置102A-102B(统称为“CE装置102”)对服务提供商网络150的访问。在一些示例中,客户网络140A是企业网络。在一些示例中,客户网络140B是云服务提供商(CSP)网络,其以由服务器103托管的服务实例104的形式向客户端装置100提供网络服务。为了便于说明,客户网络140A被描述为具有单个客户端装置100。典型地,客户网络140A包括许多客户端装置100,每个客户端装置可以访问CSP网络140B,以访问一个或多个网络服务。通信链路16A-16G(统称为链路“16”)可以是以太网、ATM或任何其他合适的网络连接。
在图1的示例中,CE装置102和路由器110被示为路由器。然而,本公开的技术可以使用任何网络装置来实现,例如,交换机、路由器、网关或可以发送和接收网络流量的其他合适的网络装置。例如,客户网络140可以是企业的地理上分离的站点的网络。每个客户网络140可以包括额外的客户装置,例如,一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵预防装置等安全装置、服务器、计算机终端、膝上型电脑、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或图1中未示出的其他路由器。图1所示的计算机网络系统2的配置仅仅是一个示例。例如,计算机网络系统2可以包括任意数量的客户网络140。然而,为了便于描述,图1中仅示出了客户网络140A-140B。
服务提供商网络150表示由一个或多个服务提供商拥有和运营的一个或多个公共可访问的计算机网络。尽管计算机网络系统2在图1的示例中被示为包括多个互连的服务提供商网络150,但是在其他示例中,计算机网络系统2可以替代地包括在客户网络140之间提供连接的单个服务提供商网络。服务提供商通常是大型电信实体或公司。每个服务提供商网络150通常是大型层三(L3)计算机网络,其中,提及的后跟数字的层是指开放系统互连(OSI)模型中的相应层。每个服务提供商网络150都是L3网络,在某种意义上,本地支持如在OSI模型中描述的L3操作。常见的L3操作包括根据L3协议(例如,互联网协议(IP))执行的操作。L3在OSI模型中也被称为“网络层”,并且术语L3在本公开中可以与短语“网络层”互换使用。
虽然未示出,但是每个服务提供商网络150可以耦接到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。因此,客户网络140可以被视为互联网的边缘网络。每个服务提供商网络150可以向客户网络140内的计算装置(例如,客户端装置100和目的地装置103)提供对互联网的访问,并且可以允许客户网络140内的计算装置彼此通信。
尽管为了便于说明,没有示出额外的路由器,但是应当理解,系统2可以包括额外的网络和/或计算装置,例如,一个或多个额外的交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵防御装置等安全装置、服务器、计算机终端、膝上型电脑、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或其他路由器。此外,尽管系统2的元件被示为直接耦接,但是应当理解,沿着任何网络链路16可以包括一个或多个额外网络元件,使得系统2的网络元件不直接耦接。
每个服务提供商网络150通常为客户网络140提供多个住宅和商业服务,包括住宅和商业类数据服务(这些数据服务通常被称为“互联网服务”,因为这些数据服务允许访问被称为互联网的公共可访问网络集合)、住宅和商业类电话和/或语音服务以及住宅和商业类电视服务。
基于会话的路由
在一些示例中,路由器110可以实现状态的、基于会话的路由方案,该方案使得每个路由器110能够独立地执行路径选择和流量工程。基于会话的路由的使用可以使路由器110避免使用集中式控制器,例如,软件定义网络(SDN)控制器,来执行路径选择和流量工程。以这种方式,路由器110对于使用SDN控制器不可行的大型网络来说可能更加有效和可扩展。此外,基于会话的路由的使用可以使路由器110避免使用隧道,从而通过消除在隧道端点处执行封装和解封装的需要来节省大量网络资源。在一些示例中,路由器110将基于会话的路由实现为由Juniper Networks公司提供的安全矢量路由(SVR)。
在图1的示例中,系统2的客户端装置100与服务实例104建立会话40。路由器110通过在客户端装置100和服务实例104之间传输网络流量来促进会话40的建立。在一些示例中,客户端装置100可以被认为是“源”装置,即,客户端装置100在客户端装置100和服务实例104之间发起会话40,例如,客户端装置100是会话的前向流的第一分组的“源”。会话40包括源自客户端装置100并且去往由服务器103托管的服务实例104的前向分组流以及源自服务实例104并且去往客户端装置100的反向分组流。会话40的前向流穿过包括例如客户端装置100、CE装置102A、路由器110A、110D和110E-110I、CE装置102B和服务器103的第一路径。如下文更详细描述的,路由器110可以动态选择在其上转发会话40(在图1中表示为会话40’)的网络流量的第二路径。会话40’的前向流穿过第二路径,该路径包括例如客户端装置100、CE装置102A、路由器110A、110C和110E-110I、CE装置102B和服务器103。如图1的示例所示,第一路径和第二路径的至少一部分是相同的(例如,第一和第二路径都包括路由器110A和110E-110I)。然而,第一路径和第二路径分叉,即,第一路径穿过路由器110D,而第二路径穿过路由器110C。
客户端装置100可以根据包括TCP、TLS、UDP和ICMP等的一个或多个通信会话协议来建立会话40。例如,为了根据TCP建立会话40从而可以根据TCP交换数据,客户端装置100和服务实例104执行三次握手(three-way handshake)。客户端装置100向服务实例104发送包括“SYN”标志的第一分组。服务实例104通过用包括“SYN-ACK”标志的第二分组响应于客户端装置100来确认第一分组的接收。客户端装置100通过用包括“ACK”标志的第三分组响应于服务实例104来确认第二分组的接收。在发送第三分组之后,根据TCP建立会话40,并且客户端装置100和服务实例104可以经由会话40彼此交换数据。关于TCP的额外信息见“TRANSMISSION CONTROL PROTOCOL”,Request for Comments(RFC)793,InternetEngineering Task Force(IETF),1981年9月,可在https://tools.ietf.org/html/rfc793获得。关于TLS的额外信息见“The Transport Layer Security(TLS)Protocol Version1.2”,RFC 5246,IETF,2018年8月,可在https://tools.ietf.org/html/rfc5246获得;以及“The Transport Layer Security(TLS)Protocol Version 1.3”,RFC 8446,IETF,2018年8月,可在https://tools.ietf.org/html/rfc8446获得。关于UDP的额外信息见“UserDatagram Protocol”,RFC 768,IETF,1980年8月28日,可在https://tools.ietf.org/html/rfc768获得。关于ICMP的额外信息见“INTERNET CONTROL MESSAGE PROTOCOL”,RFC792,IETF,1981年9月,可在https://tools.ietf.org/html/rfc792获得。
在图1的示例中,当路由器110A接收到源自客户端装置100并去往服务器103的前向分组流的分组时,路由器110A确定该分组是否属于新会话(例如,是会话40的“第一”分组还是“前导”分组)。在一些示例中,路由器110A确定第一分组的源地址、源端口、目的地址、目的端口和/或协议是否与路由器110A存储的会话信息中的条目匹配。
如果不存在这样的条目,则路由器110A确定该分组属于新的会话,并在会话信息中创建条目。此外,如果分组属于新的会话,路由器110A可以为会话40生成会话标识符。会话标识符可以包括例如客户端装置100的源地址和源端口、服务器103的目的地址和目的端口以及第一分组所使用的协议。路由器110A可以使用会话标识符来识别属于同一会话的后续分组。
在一些示例中,路由器110执行会话40的状态路由。这意味着路由器110依次并沿着相同的前向网络路径转发会话40的前向分组流的每个分组。如本文所述,“相同的”前向路径意味着在发起分组的装置和该分组去往的装置之间形成网络路径的段或至少一部分的相同路由器110(并且不一定是发起分组的装置和该分组去往的装置之间的整个网络路径)。此外,路由器110依次并沿着相同的反向网络路径转发会话40的反向流的每个分组。会话40的前向分组流的前向网络路径和会话40的反向流的反向网络路径可以是相同的路径,或者不同的路径。沿着该路径的每个路由器110可以依次并沿着相同的路径转发该转发分组流的每个分组,从而能够使用状态分组服务,例如,深度分组检测(DPI)或状态防火墙服务。
在图1的示例中,可以从入口路由器110A通过一个或多个中间路由器110C-110H到出口路由器110I建立状态路由会话。在该示例中,路由器110A确定第一分组是未修改的分组,并且是新会话40的第一分组。路由器110A修改第一分组,以包括指定会话标识符(例如,原始源地址、源端口、目的地址、目的端口和/或协议)和/或其他策略和控制参数的元数据。路由器110A替换修改后的第一分组的报头,以指定作为路由器110A的地址的源地址、作为路由器110A经由其向服务器103转发修改后的第一分组的端口的源端口、作为路由器110A向其转发第一分组的下一跳的地址的目的地址(例如,路由器110D的地址)、以及作为路由器110A向其转发第一分组的下一跳的端口的目的端口(例如,路由器110D的端口)。此外,路由器110A存储会话40的会话标识符和为会话40选择的下一跳的指示(例如,路由器110D),使得在接收到会话40的后续分组时,路由器110A可以将后续分组识别为属于相同的会话40,并且沿着与第一分组相同的路径转发后续分组,而无需修改以包括元数据。
路由器110A可以进一步识别与会话40相关联的网络服务。例如,路由器110A可以将会话的源地址、源端口、目的地址和目的端口中的一个或多个与包括服务地址和端口信息的路由器110A的服务信息进行比较,以识别与会话相关联的服务。网络服务的示例包括超文本传输协议(HTTP)、防火墙服务、代理服务、分组监控或度量服务等。例如,路由器110A可以确定会话40的前向分组流指定了分配给服务器103的服务实例104的目的地址和目的端口,该服务实例是特定网络服务的实例。此后,路由器110A可以存储会话40与所识别的网络服务之间的关联。作为另一示例,如果会话40的源端口和/或目的端口是80,路由器110A可以确定会话40与HTTP服务相关联。在其他示例中,路由器110A可以确定会话40的源地址、源端口、目的地址和目的端口中的一个或多个属于指示特定服务与会话40相关联的地址或端口块。
在一些示例中,路由器110A使用为会话40确定的网络服务来选择转发路径,用于将会话40的前向分组流的第一分组和每个后续分组转发到服务器103。以这种方式,路由器110A可以执行服务特定的路径选择,以选择最适合服务要求的网络路径。与使用SDN控制器来执行路径选择的网络拓扑相对照,每个路由器110执行路径选择。此外,基于会话的路由的使用使得每个路由器110能够在服务或应用级别做出路由决定,这与仅能够在流级别做出路由决定的传统路由器形成对比。
路由器110A将修改后的第一分组转发给路由器110D。中间路由器110D接收修改的第一分组,并确定修改的第一分组是否包括指定会话标识符的元数据。响应于确定修改的第一分组包括指定会话标识符的元数据,中间路由器110D确定路由器110D不是入口装置,使得路由器110D不附加指定会话标识符的元数据。
如上关于路由器110A所述,路由器110D通过确定第一分组的源地址、源端口、目的地址、目的端口和协议是否匹配路由器110D存储的会话信息中的条目来确定该分组是否属于新会话(例如,是会话的“第一”分组还是“前导”分组)。如果不存在这样的条目,路由器110D确定该分组属于新的会话,并在路由器110D的会话信息中创建一个条目。此外,如果分组属于新的会话,路由器110D为该会话生成会话标识符。路由器110D用来识别第一分组的会话的会话标识符可以不同于路由器110A用来识别第一分组的相同会话的会话标识符,即,每个路由器110A、110D使用第一分组的报头源地址、源端口、目的地址和目的端口来生成会话标识符,并且当每个路由器110沿着转发路径转发第一分组时,该报头信息可以被每个在前路由器110修改。此外,每个路由器110可以存储该报头信息,以识别前一个路由器110(或“路点”)和下一个路由器110(或“路点”),使得每个路由器110可以为会话的每个后续分组重建相同的前向路径和反向路径。路由器110D可以存储会话的会话标识符和会话的所选下一跳的指示(例如,路由器110E),使得在接收到会话的后续分组时,路由器110D可以将后续分组识别为属于同一会话,并且沿着与第一分组相同的路径转发后续分组,而无需修改以包括元数据。
路由器110D替换修改后的第一分组的报头,以指定作为路由器110D的地址的源地址、作为路由器110D经由其向服务器103转发修改后的第一分组的端口的源端口、作为路由器110D向其转发第一分组的下一跳的地址的目的地址(例如,沿着第一路径的用于会话40的路由器110E的地址)、以及作为路由器110D向其转发第一分组的下一跳的端口的目的端口(例如,路由器110E的端口)。路由器110D将修改后的第一分组转发给路由器110E。
后续中间路由器110E-110H以与路由器110A和110D类似的方式处理修改后的第一分组,使得路由器110沿着与第一分组相同的路径转发会话的后续分组。此外,每个路由器110存储会话的会话标识符,其可以包括沿着网络路径的前一路由器110的标识。因此,每个路由器110可以使用会话标识符沿着相同的网络路径将会话的反向分组流的分组转发回客户端装置100。
可以将会话的前向分组流的分组转发到分组流的目的地的路由器110是出口或“终点”路由器。在前述示例中,路由器110I是终点路由器,即,路由器110I可以将分组转发到CE装置102B,以转发到服务器103。路由器110I接收修改后的第一分组,该第一分组包括指定会话标识符的元数据(例如,原始源地址、源端口、目的地址和目的端口)。路由器110I通过确定在修改的前导分组的元数据中指定的目的地源地址和目的地源端口对应于路由器110I(例如,经由CE装置102B的服务器103)可到达的目的地,将修改的第一分组识别为去往终止于路由器110I的服务。路由器110I通过从修改的第一分组中移除元数据并使用元数据来修改第一分组的报头,以指定原始源地址、源端口、目的地址和目的端口,来恢复原始第一分组。路由器110I将恢复的第一分组转发给CE装置102B,以转发到服务器103。因此,基于会话的路由的使用可以形成由路径“段”(例如,每个路点之间的端到端路由向量)互连的一系列路点(例如,路由器110)。
关于基于会话的路由和SVR的额外信息见2017年8月8日发布的题为“COMPUTERNETWORK PACKET FLOW CONTROLLER”的美国专利号9,729,439;2017年8月8日发布的题为“NETWORK DEVICE AND METHOD FOR PROCESSING A SESSION USING A PACKET SIGNATURE”的美国专利号9,729,682;2017年9月12日发布的题为“NETWORK PACKET FLOW CONTROLLERWITH EXTENDED SESSION MANAGEMENT”的美国专利号9,762,485;2018年1月16日发布的题为“ROUTER WITH OPTIMIZED STATISTICAL FUNCTIONALITY”的美国专利号9,871,748;2018年5月29日发布的题为“NAME-BASED ROUTING SYSTEM AND METHOD”的美国专利号9,985,883;2019年2月5日发布的题为“LINK STATUS MONITORING BASED ON PACKET LOSSDETECTION”的美国专利号10,200,264;2019年4月30日发布的题为“STATEFUL LOADBALANCING IN ASTATELESS NETWORK”的美国专利号10,277,506;2019年10月1日发布的题为“NETWORK PACKET FLOW CONTROLLER WITH EXTENDED SESSION MANAGEMENT”的美国专利号10,432,522;以及2020年12月24日公布的题为“IN-LINE PERFORMANCE MONITORING”的美国专利号2020/0403890。
交换服务和拓扑状态信息
在一些示例中,为了实现基于会话的路由,每个路由器110保持(maintain)用于每个其他路由器110的服务和拓扑状态信息的本地储存库。服务和拓扑状态信息包括从每个路由器110可到达的服务以及从每个路由器到达这些服务的网络拓扑。每个路由器110可以将可从路由器110到达的服务的变化和/或用于从路由器到达服务的网络拓扑的变化传输到中央储存库,例如,服务器。此外,每个路由器110可以从中央储存库接收系统2中的每个其他路由器110的服务和拓扑状态信息。
在前述示例中,路由器110A接收分组,确定包括该分组的前向分组流的会话40,确定与会话40相关联的服务,并选择用于转发该分组的网络路径。路由器110A可以使用其服务的本地副本和每个路由器110的拓扑状态信息来选择用于转发分组的网络路径。例如,路由器110A可以使用与分组相关联的所识别的服务和用于到达所识别的服务的网络拓扑来选择符合服务的软件许可协议(SLA)要求或其他会话性能要求的网络路径。然后,路由器110A可以沿着所选路径转发会话40的前向分组流的分组和后续分组。以这种方式,路由器110A可以执行特定于服务的路径选择,即,路由器110可以使用特定于与分组相关联的服务的标准来选择最适合服务要求的网络路径。
在一些示例中,路由器110的接口可以被分配给一个或多个“邻域(neighborhood)”。“邻域”被定义为应用于路由器110的接口的标签。同一邻域内的路由器110能够彼此形成对等关系。例如,具有应用了邻域标签的接口的每个路由器110可以通过层3网络到达具有应用了相同邻域标签的接口的每个其他路由器110。在一些示例中,一个或多个邻域可以聚集成“区”。区是一个或多个邻域的逻辑组。典型地,自治系统(AS)(本文也称为“当局”)可以被划分成一个或多个区,每个区包括一个或多个邻域。
在一些示例中,每个路由器110仅保持同一邻域内的那些其他路由器110的服务和拓扑状态信息的本地储存库。在一些示例中,每个路由器110仅保持邻域的同一区内的那些其他路由器110的服务和拓扑状态信息的本地储存库。作为示例,每个服务提供商网络150可以被认为是不同的“区”,其中,每个服务提供商网络150内的每个子域可以被认为是该区内的邻域。在该示例中,服务提供商网络150A内的每个路由器110A和110B可以仅保持彼此的服务和拓扑状态信息,而不保持路由器110C-110I的服务和拓扑状态信息。类似地,服务提供商网络150B内的每个路由器110D和110C可以仅保持彼此的服务和拓扑状态信息,而不保持路由器110A-110B或110E-110I的服务和拓扑状态信息。在其他示例中,管理员可以将一个或多个服务提供商网络150分配到适合网络系统2的需求的一个或多个区、一个或多个邻域或区和邻域的组合中。
关于服务和拓扑状态信息交换的额外信息见2020年11月19日公布的题为“CENTRAL AUTHORITY FOR SERVICE AND TOPOLOGY EXCHANGE”的美国专利申请公开号2020/0366590;2020年11月19日公布的题为“SOURCE-BASED ROUTING”的美国专利申请公开号2020/0366599;2020年11月19日公布的题为“SERVICE AND TOPOLOGY EXCHANGEPROTOCOL”的美国专利申请公开号2020/0366598;2020年11月19日公布的题为“ROUTINGUSING SEGMENT-BASED METRICS”的美国专利申请公开号2020/0366589;以及2018年7月31日提交的题为“NETWORK NEIGHBORHOODS FOR ESTABLISHING COMMUNICATIONRELATIONSHIPS BETWEEN COMMUNICATION INTERFACES IN AN ADMINISTRATIVE DOMAIN”的美国专利申请号16/050,722。
使用路径变化重新建立会话
根据本公开的技术,一个路由器110(例如,路由器110A)可以通过由路由器110改变在其上转发与第一状态路由会话40相关联的网络流量的网络路径,使得客户端装置100(例如,源装置)建立与服务器103(例如,目的地装置)第二状态路由会话40’。参照例如入口路由器110A来描述图1的示例。然而,本公开的技术可以由任何路由器110执行,例如,中间路由器110D或出口路由器110I。
如上所述,源装置(例如,客户端装置100)与目的地装置(例如,服务器103)建立第一状态路由会话40。第一状态路由会话40包括源自客户端装置100并去往服务器103的第一前向分组流和源自服务器103并去往客户端装置100的第一反向分组流。
客户端装置100将第一状态路由会话40的第一前向分组流的第一多个分组传输到下一跳,例如,CE装置102A。CE装置102A将第一多个分组转发给路由器110A。路由器110A经由入口接口接收第一多个分组,并且经由第一出口接口沿着第一路径向服务器103转发第一分组流的第一多个分组。关于图1,第一路径包括例如客户端装置100、CE装置102A、路由器110A、110D和110E-110I、CE装置102B和服务器103。
沿着第一路径的每个路由器110执行第一状态路由会话40的状态路由。例如,每个路由器110沿着相同前向路径依次将第一前向分组流的每个分组转发到相同下一跳,并且沿着相同反向路径依次将第一反向分组流的每个分组转发到相同下一跳。然而,第一前向分组流的前向路径和第一反向分组流的反向路径可以是相同路径或不同路径。关于图1的示例,路由器110A沿着相同的第一路径向服务器103依次转发第一前向分组流的每个分组。沿着第一路径的每个路由器110向服务器103转发第一分组流的第一多个分组,并且服务器103接收第一多个分组。
在第一路径中出现故障的情况下,例如,链路16B、16D、16F和路由器110D-110I中的一个出现故障,客户端装置100和服务器103之间的会话40可能超时。在超时发生之后,客户端装置110可以终止会话40,建立新的会话,并经由新的会话恢复与服务器103交换网络流量。在会话40是TCP会话的情况下,超时发生的时间可能相当长,并且客户端装置100可能需要重新发送在第一路径故障和会话40的会话超时之间的时间期间发送的任何流量。此外,在通过IPsec隧道传送会话40的情况下,可能永远不会发生超时,因为IPsec隧道可能为其他会话传送流量。其他会话的流量可能会阻止IPsec隧道超时,从而导致会话40的流量黑洞。这种黑洞可能会持续到管理员重新建立IPsec隧道。即使传统路由器在第一路径中检测到这种故障,现有技术也没有为这种传统路由器提供向客户端装置100通知故障使得客户端装置100可以重新建立会话40并避免等待会话40超时的机制。
根据本公开的技术,路由器110A通过由路由器110改变在其上转发与第一状态路由会话40相关联的网络流量的网络路径,使得客户端装置100(例如,源装置)建立与服务器103(例如,目的地装置)第二状态路由会话40’。在一些示例中,路由器110A确定第一路径不应该用于第一状态路由会话40。例如,响应于检测到第一路径中的故障,路由器110A确定第一路径不应该用于第一状态路由会话40。在一些示例中,第一路径中的故障可能是由于装置(例如,路由器110D)或沿着第一路径的链路(例如,链路16D)造成的。路由器110A可以使用各种不同类型的链路状态监控协议来检测第一路径中的故障。例如,路由器110A可以使用双向转发检测(BFD)来检测第一路径中的故障。关于BFD的额外信息见“双向转发检测(BFD)”征求意见(RFC)5880,互联网工程任务组(IETF),2010年6月,可在https://datatracker.ietf.org/doc/html/rfc5880获得。
在另一示例中,响应于确定第二路径提供比第一路径更高的性能,或者响应于确定第二路径具有比第一路径更高的优先级,路由器110A确定第一路径不应该用于第一状态路由会话40。例如,路由器110A可以实施一个或多个测量协议,例如,单向主动测量协议(OWAMP)、双向主动测量协议(TWAMP)、互联网控制消息协议(ICMP)和/或TCP/UDP的ping等,并确定第二路径比第一路径提供更高的性能。在一些示例中,路由器110A可以确定第二路径比第一路径具有更高的优先级。
在一些示例中,路由器110A可以确定不应该使用跨越宽带网络的第一路径,而是使用跨越长期演进(LTE)无线网络的第二路径,反之亦然。在一些示例中,路由器110A可以确定不应该使用沿着第一路径执行基于会话的网络流量路由的一个或多个路由器110(例如,路由器110D),而是应该使用沿着第二路径不执行基于会话的网络流量路由的一个或多个路由器110(例如,路由器110C),反之亦然。
响应于确定第一路径不应该用于第一状态路由会话40,路由器110A沿着第二路径转发第一状态路由会话40的第一转发分组流的至少一个分组。关于图1的示例,第二路径包括例如客户端装置100、CE装置102A、路由器110A、110C和110E-110I、CE装置102B和服务器103。沿着第二路径的每个路由器110向服务器103转发第一分组流的至少一个分组,并且服务器103接收该至少一个分组。服务实例104识别从使用第一路径到使用第二路径的变化。典型地,当服务实例104检测到会话40的路径变化时,服务实例104要求客户端装置100建立新的会话。因此,通过沿着第二路径转发该至少一个分组,路由器110A可以使得服务器103(经由服务实例104)拒绝该至少一个分组,从而使得客户端装置100终止状态路由会话40并建立新的状态路由会话40’。
在一些示例中,沿着第一路径的第一NAT服务可以应用于沿着第一路径转发的网络流量,而沿着第二路径的第二NAT服务可以应用于沿着第二路径转发的网络流量。在一些示例中,路由器110A的第一出口接口与第一路径相关联,并且路由器110A的第二出口接口与第二路径相关联。在该示例中,路由器110A可以将第一NAT服务应用于经由第一出口接口沿着第一路径转发的分组,并且还可以将第二NAT服务应用于经由第二出口接口沿着第二路径转发的分组。在另一示例中,其他路由器可以提供第一NAT服务和第二NAT服务。例如,路由器110D可以对路由器110D转发的分组应用第一NAT服务,而路由器110C可以对路由器110C转发的分组应用第二NAT服务。
因此,当路由器110A沿着第一路径转发会话40的第一转发分组流的多个分组时,第一NAT服务被应用于多个分组,使得服务器103接收应用了第一NAT服务的分组。此外,应用第一NAT服务的分组可以具有指定与第一NAT服务而不是客户端装置100相关联的源地址和源端口的报头。
相对照地,当路由器110A沿着第二路径转发该至少一个分组时,第二NAT服务而不是第一NAT服务被应用于该至少一个分组。当服务器103接收到应用了第二NAT服务的至少一个分组时,该至少一个分组可以具有指定与第二NAT服务而不是客户端装置100相关联的源地址和源端口的报头。服务器103不识别属于第一状态路由会话40的至少一个分组,使得服务器103拒绝该至少一个分组。也就是说,将第二NAT服务应用于至少一个分组可以使得服务器103接收具有5元组报头的分组,对于该分组,服务器103没有存储相关联的会话。这使得服务器103拒绝该至少一个分组。
响应于服务器103拒绝至少一个分组,客户端装置100终止第一状态路由会话40并建立新的状态路由会话40’。第二状态路由会话40’包括源自客户端装置100并去往服务器103的第二前向分组流和源自服务器103并去往客户端装置100的第二反向分组流。客户端装置100将第二状态路由会话40’的第二前向分组流的第二多个分组传输到下一跳,例如,CE装置102A,CE装置102A进而将第二多个分组转发到路由器110A,以沿着第二分组流的第二路径转发分组。
在一些示例中,可以经由IPsec隧道来传送状态路由会话40。在这些示例中,沿着第二路径转发的至少一个分组可能不符合在客户端装置100和服务器103之间为IPsec隧道建立的协商认证程序。例如,第二NAT服务的应用可以改变至少一个分组的加密,使得服务器103拒绝该至少一个分组,因为其是不可信的。响应于接收到至少一个分组,服务器103可以拒绝该分组,并请求客户端装置100重新协商用于客户端装置100和服务器103之间的通信的认证和/或加密参数。这会具有使客户端装置100终止第一状态路由会话40并与服务器103建立第二状态路由会话40’的效果。例如,在经由第一IPSec隧道传输会话40的情况下,客户端装置100可以终止第一IPSec隧道并建立第二IPSec隧道,用于转发第二状态路由会话40’的网络流量。
作为另一示例,状态路由会话40可以是TCP会话。在该示例中,当服务器103接收到前向分组流的多个分组时,多个分组的源地址可以基于第一NAT服务的应用。当服务器103接收到沿着第二路径转发的至少一个分组时,至少一个分组的源地址可以基于第二NAT服务的应用,使得至少一个分组的源地址不同于转发分组流的多个分组的源地址。因此,服务器103会无法识别该至少一个分组的来源,导致服务器103拒绝该至少一个分组,并向客户端装置100发送TCP重置消息,以关闭会话40。响应于TCP重置消息,客户端装置100终止第一状态路由会话40,并建立新的状态路由会话40’,作为第二TCP会话。
路由器110A可以确保沿着第二路径而不是第一路径转发会话40’的流量,例如,当接收到会话40’的前导分组时,通过使用上述基于会话的路由技术来选择用于传输与第二状态路由会话40’相关联的网络流量的第二路径。以这种方式,路由器110A可以间接使得客户端装置100终止第一状态路由会话40,并与服务器103建立新的状态路由会话40’,而无需等待会话40响应于第一路径中的故障而超时。
路由器110A经由入口接口接收第二多个分组,并且经由第二出口接口沿着第二路径而不是第一路径向服务器103转发第二分组流的第二多个分组。如上所述,在一些示例中,第一路径可以包括路由器110A的第一出口接口的使用,而第二路径可以包括路由器110A的第二出口接口的使用。例如,第一路径可以包括路由器110A的至少一个接口,该接口不同于包括在第二路径内的路由器110A的至少一个接口。作为另一示例,第一路径可以包括至少一个路由器110,该路由器不同于包括在第二路径内的至少一个路由器。
沿着第二路径的每个路由器110执行第二状态路由会话40’的状态路由。例如,沿着第二路径的每个路由器110沿着相同前向路径依次将第二前向分组流的每个分组转发到相同下一跳,并且沿着相同反向路径将第二反向分组流的每个分组转发到相同下一跳。第二前向分组流的前向路径和第二反向分组流的反向路径可以是相同路径或不同路径。关于图1的示例,路由器110A沿着相同的第二路径向服务器103依次转发第二前向分组流的每个分组。沿着第二路径的每个路由器110向服务器103转发第二分组流的第二多个分组,并且服务器103接收第二多个分组。
在路由器110A执行状态路由(例如,本地分支会话)的一些示例中,路由器110A为与服务相关联的每个路径(例如,服务路径)分配路径索引。路由器110A监控服务的一个或多个SLA要求。如果路径的一个或多个性能要求不能满足服务的一个或多个SLA要求,或者如果路径故障,则路由器110A生成路径不满足服务要求的通知。另外,路由器110A可以使用上面公开的技术来移动现有会话,以使用新路径。因此,本文描述的路由器可以基于每个会话来移动流量,从而能够仅迁移与路径不满足SLA要求的会话相关联的流量,同时保留与路径满足SLA要求的会话相关联的流量。
图2是示出根据本公开技术的示例性路由器110的框图。通常,路由器110可以是图1的一个路由器110的示例。在这个示例中,路由器110包括接口卡226A-226N(“IFC 226”),其经由输入链路228A-228N(“输入链路228”)接收分组,并经由输出链路230A-230N(“输出链路230”)发送分组。IFC 226通常经由多个接口端口耦接到链路228、230。路由器110还包括控制单元202,控制单元确定接收到的分组的路由,并相应地经由IFC 226转发分组。
控制单元202可以包括路由引擎204和分组转发引擎222。路由引擎204用作路由器110的控制平面,并且包括操作系统,该操作系统提供多任务操作环境,以执行多个并发进程。路由引擎204与其他路由器(例如,图1的路由器110)通信,以建立和保持计算机网络(例如,图1的计算机网络系统2),用于在一个或多个客户装置之间传输网络流量。路由引擎204的路由协议伺服机(Routing protocol daemon,RPD)208执行软件指令,来实施一个或多个控制平面网络协议212。例如,协议212可以包括一个或多个路由协议,例如,边界网关协议(BGP)220,用于与其他路由装置交换路由信息并更新路由信息库(RIB)206;多协议标签交换(MPLS)协议214和互联网组管理协议(IGMP)221。协议212还可以包括一个或多个通信协议,例如,TCP、UDP、TLS或ICMP。协议212还可以包括故障检测协议,例如,BFD协议。协议212还可以包括测量协议,例如,ping(例如,TCP ping)、路由跟踪(例如,ICMP路由跟踪)、OWAMP、TWAMP等。
RIB 206可以描述路由器110所在的计算机网络的拓扑,并且还可以包括通过计算机网络中的共享树的路由。RIB 206描述了计算机网络中的各种路由以及每条路由的适当的下一跳,即沿着每条路由的相邻路由装置。路由引擎204分析存储在RIB 206中的信息,并为转发引擎222生成转发信息,该转发信息存储在转发信息库(FIB)224中。FIB 224可以将例如网络目的地与特定的下一跳和相应的IFC 226以及输出链路230的物理输出端口相关联。FIB 224可以是编程到专用转发芯片中的基数树、一系列表、复杂数据库、链接列表、基数树、数据库、平面文件或各种其他数据结构。
FIB 224也可以包括查找结构。对于给定的关键字,例如,地址,查找结构可以提供一个或多个值。在一些示例中,一个或多个值可以是一个或多个下一跳。下一跳可以被实现为微码,当执行该微码时,执行一个或多个操作。一个或多个下一跳可以被“链接”,使得一组链接的下一跳在被执行时为各自不同的下一跳执行一组操作。这种操作的示例可以包括将一个或多个服务应用于分组、丢弃分组和/或使用接口和/或由一个或多个下一跳识别的接口转发分组。
会话信息235存储用于识别会话的信息。例如,服务信息232包括指定会话标识符的一个或多个条目。在一些示例中,会话标识符包括与会话的前向流和/或反向流相关联的源地址、源端口、目的地址、目的端口和协议中的一个或多个。如上所述,当路由引擎204接收到图1的源自客户端装置100并去往服务器103的前向分组流的分组时,路由引擎204确定该分组是否属于新会话(例如,是会话40的“第一”分组还是“前导”分组)。为了确定分组是否属于新的会话,路由引擎204确定会话信息235是否包括对应于第一分组的源地址、源端口、目的地址、目的端口和协议的条目。如果存在条目,则该会话不是新会话。如果不存在条目,则该会话是新的,并且路由引擎204为该会话生成会话标识符,并将该会话标识符存储在会话信息235中。此后,路由引擎204可以使用存储在会话信息235中的会话标识符来识别属于同一会话的后续分组。
服务信息232存储路由引擎204可以用来识别与会话相关联的服务的信息。例如,服务信息232包括指定服务标识符以及与服务相关联的源地址、源端口、目的地址、目的端口和协议中的一个或多个的一个或多个条目。在一些示例中,路由引擎204可以使用接收到的分组的源地址、源端口、目的地址、目的端口和会话协议中的一个或多个来执行服务信息232的查找,以确定与会话相关联的服务。例如,路由引擎204可以基于服务信息232中的源地址、源端口、目的地址、目的端口或协议与由会话标识符指定的源地址、源端口、目的地址、目的端口或协议的对应关系来确定服务标识符。路由引擎204基于与分组相关联的服务,检索对应于所识别的服务的一个或多个服务策略234。服务策略可以包括例如路径故障转移策略、动态主机配置协议(DHCP)标记策略、流量工程策略、与会话相关联的网络流量的优先级等。路由引擎204将对应于与分组相关联的服务的一个或多个服务策略234应用于分组。
在一些示例中,控制单元202提供一个或多个NAT服务260。NAT是网络装置(例如,路由器110)将第一IP地址空间映射到第二IP地址空间的过程。通常,控制单元202可以通过在将分组转发到第二网络内的目的地装置之前,修改从第一网络内的源装置接收的分组的IP报头中的IP地址信息来实现NAT。作为示例,控制单元202可以将NAT服务应用于在第一客户网络140A内的客户端装置100和第二客户网络140B内的服务器103之间路由的流量。在一些示例中,客户装置100被分配了客户网络140A内的私有地址。控制单元202从客户端装置100接收分组,并且在将分组转发到客户网络140B之前,将分组报头中指定的客户端装置100的私有地址转换成客户网络140A的公共面向外部的地址。控制单元202可以跟踪关于客户端装置100和服务器103之间的会话40的信息,以使控制单元202能够从服务器103接收包括指定客户网络140A的面向外部的地址的报头的反向分组,将客户网络140A的面向外部的地址转换成客户端装置100的私有地址,并将该分组转发给客户端装置100。因此,控制单元202可以使用NAT来模糊(obfuscate)来自第二客户网络140B的装置的第一客户网络140A内的客户装置100的私有地址。此外,如果第一客户网络140A的公共地址改变,则NAT可用于避免向第一客户网络140A内的每个计算装置分配新地址。NAT也可用于保存互联网协议版本4(IPv4)地址的全局地址空间,使得只有每个子域(例如,专用网络或专用网络组)可能需要唯一的外部IP地址,而不是要求每个装置都具有唯一的外部IP地址。
在一些示例中,控制单元202可以提供多个NAT服务。例如,控制单元202可以将不同的NAT服务与每个IFC 226相关联,使得控制单元202可以在经由第一IFC 226A转发第一网络流量之前将第一NAT服务应用于第一网络流量,并且在经由第二IFC 226B转发第二网络流量之前将第二NAT服务应用于第二网络流量。在一些示例中,第一NAT服务可以将客户端装置100和/或CE装置102A的IP地址和端口映射到分配给IFC226A的第一IP地址和端口,并且第二NAT服务可以将客户端装置100和/或CE装置102A的相同IP地址和端口映射到分配给IFC 226B的与分配给IFC 226A的第一IP地址和端口不同的第二IP地址和端口。
在一个示例中,控制单元202经由IFC 226接收源装置和目的地装置之间的第一状态路由会话40的第一前向流的第一多个分组。关于图1的示例,源装置是客户端装置100,目的地装置是服务器103。第一状态路由会话40包括源自客户端装置100并去往服务器103的第一前向分组流和源自服务器103并去往客户端装置100的第一反向分组流。
控制单元202执行第一状态路由会话40的状态路由。例如,路由引擎204可以对分组转发引擎222进行编程,以沿着相同前向路径依次将第一前向流的第一多个分组中的每个分组转发到相同下一跳,并沿着相同反向路径依次将反向分组流的每个分组转发到相同下一跳。在一些示例中,前向分组流的前向路径和反向流的反向路径可以是相同路径或不同路径。在该示例中,关于图1,路由引擎204将第一NAT服务260应用于第一前向流的第一多个分组的每个分组,并对分组转发引擎222进行编程,以经由IFC 226A沿着第一路径将第一前向流的第一多个分组的每个分组依次转发到相同下一跳,该第一路径包括例如客户端装置100、CE装置102A、路由器110A、110D和110E-110I、CE装置102B和服务器103。
路径评估模块242确定第一路径不应该用于第一状态路由会话40。例如,响应于检测到第一路径中的故障,路径评估模块242确定第一路径不应该用于第一状态路由会话40。在一些示例中,路径评估模块242可以执行软件指令,来实现BFD或其他故障检测机制,以检测第一路径中的故障。在另一示例中,响应于确定第二路径提供比第一路径更高的性能或者第二路径具有比第一路径更高的优先级等,路径评估模块242确定第一路径不应该用于第一状态路由会话40。例如,路径评估模块242可以执行软件指令,来实现一个或多个测量协议,例如,OWAMP、TWAMP、ICMP回声、TCP/UDP ping,或者其他测量协议或机制,以测量路径的性能度量,例如,等待时间、抖动、分组丢失和/或其他性能度量。
响应于路径评估模块242确定第一路径不应该用于第一状态路由会话40,会话建立模块240确定客户端装置100应该终止状态路由会话40并建立新的状态路由会话40’,用于与服务器103交换流量。例如,基于确定第一路径不应该用于第一状态路由会话40,会话建立模块240使得路由引擎204对分组转发引擎222进行编程,以沿着第二路径转发第一状态路由会话40的第一转发分组流的至少一个分组(例如,关于图1的示例,第二路径包括例如客户端装置100、CE装置102A、路由器110A、110C和110E-110I、CE装置102B和服务器103)。关于前述示例,分组转发引擎222被编程为经由IFC 226A转发第一转发分组流的分组。会话建立模块240可以对分组转发引擎222进行编程,以经由IFC 226B转发第一转发分组流的至少一个分组。路由引擎204将第二NAT服务260应用于至少一个分组,并且分组转发引擎222经由IFC 226B沿着第二路径将至少一个分组转发到下一跳。
图1的服务器103可以检测从沿着第一路径转发会话40的分组到沿着第二路径转发会话40的至少一个分组的变化。响应于检测到路径变化,服务器103拒绝该分组。服务器103对至少一个分组的拒绝使得图1的客户端装置100与服务器103建立第二状态路由会话40’。第二状态路由会话40’包括源自客户端装置100并去往服务器103的第二前向分组流和源自服务器103并去往客户端装置100的第二反向分组流。
控制单元202经由IFC 226接收第二状态路由会话40’的第二前向流的第二多个分组。控制单元202执行第二状态路由会话40’的状态路由。例如,路由引擎204可以对分组转发引擎222进行编程,以沿着相同前向路径将第二前向流的第二多个分组中的每个分组依次转发到相同下一跳,并且沿着相同反向路径将第二反向分组流的每个分组依次转发到相同下一跳。在一些示例中,前向分组流的前向路径和反向流的反向路径可以是相同路径或不同路径。在该示例中,关于图1,路由引擎204将第二NAT服务260应用于第二前向流的第二多个分组的每个分组,并且对分组转发引擎222进行编程,以经由IFC 226B沿着第二路径将第二前向流的第二多个分组的每个分组依次转发到相同下一跳。
因此,服务器103对至少一个分组的拒绝使得客户端装置100建立第二状态路由会话40’。路由引擎204对分组转发引擎222进行编程,以沿着第二路径而不是第一路径转发第二状态路由会话40’的第二转发流的分组。因此,使用上述技术,控制单元202可以通过改变分组转发引擎222在其上转发至少一个分组的路径,使得服务器103拒绝会话40的至少一个分组,这可以间接使得客户端装置100终止会话40并与服务器103建立新的状态路由会话40’。因此,本文描述的路由器可以避免要求客户端100等待第一状态路由会话40在第一路径中出现故障时超时所需的全部时间。
在前述示例中,控制单元202作为图1的路由器110A操作,并将第一NAT服务和第二NAT服务应用于会话40的分组。然而,在本文没有明确描述的其他示例中,其他路由器110(例如,路由器110D和110C)可以分别应用第一NAT服务和第二NAT服务。在这个示例中,路由器110A仍然可以通过沿着第二路径转发该至少一个分组,使得客户端装置100终止第一状态路由会话40并建立新的状态路由会话40’,使得路由器110C将第二NAT服务应用于该至少一个分组,从而使得服务器103拒绝该至少一个分组,因为第二NAT服务而不是第一NAT服务已经应用于该至少一个分组。
图3是示出根据本公开的技术的示例性操作的流程图。为了方便,参照图1和图2描述图3。
如图3的示例所示,源装置(例如,客户端装置100)与目的地装置(例如,服务器103)建立第一状态路由会话40(302)。第一状态路由会话40包括源自客户端装置100并去往服务器103的第一前向分组流和源自服务器103并去往客户端装置100的第一反向分组流。
客户端装置100将第一状态路由会话40的第一前向分组流的第一多个分组传输到下一跳,例如,CE装置102A(304)。CE装置102A将第一多个分组转发给路由器110A。路由器110A沿着第一路径向服务器103转发第一分组流的第一多个分组(306)。关于图1,第一路径包括例如客户端装置100、CE装置102A、路由器110A、110D和110E-110I、CE装置102B和服务器103。
路由器110A执行第一状态路由会话40的状态路由。例如,路由器110A沿着相同的前向路径将第一前向分组流的每个分组依次转发到相同的下一跳,并且沿着相同的反向路径将反向分组流的每个分组依次转发到相同的下一跳。然而,前向分组流的前向路径和反向流的反向路径可以是相同路径或不同路径。关于图1的示例,路由器110A沿着相同的第一路径向服务器103依次转发第一转发分组流的每个分组。沿着第一路径的每个路由器110向服务器103转发第一分组流的第一多个分组,并且服务器103接收第一多个分组(308)。
在一些情况下,一个路由器110(例如,路由器110A)确定第一路径不应该用于第一状态路由会话40(310)。例如,响应于检测到第一路径中的故障,路由器110A确定第一路径不应该用于第一状态路由会话40。在一些示例中,第一路径中的故障可能是由于装置(例如,路由器110D)或沿着第一路径的链路(例如,链路16D)造成的。在另一示例中,响应于确定第二路径提供比第一路径更高的性能或者第二路径具有比第一路径更高的优先级等,路由器110A确定第一路径不应该用于第一状态路由会话40。关于图1的示例,第二路径包括例如客户端装置100、CE装置102A、路由器110A、110C和110E-110I、CE装置102B和服务器103。
响应于确定第一路径不应该用于第一状态路由会话40,路由器110A沿着第二路径转发第一状态路由会话40的第一转发分组流的至少一个分组(312)。沿着第二路径的每个路由器110向服务器103转发第一分组流的至少一个分组,并且服务器103接收该至少一个分组。然而,通过沿着第二路径而不是第一路径转发第一转发分组流的至少一个分组,路由器110A使得服务器103拒绝该分组(314)。
对至少一个分组的拒绝使得客户端装置100与服务器103建立第二状态路由会话40’(316)。第二状态路由会话40’包括源自客户端装置100并去往服务器103的第二前向分组流和源自服务器103并去往客户端装置100的第二反向分组流。客户端装置100将第二状态路由会话40’的第二前向分组流的第二多个分组传输到下一跳,例如,CE装置102A(318)。CE装置102A将第二多个分组转发给路由器110A。路由器110A沿着第二路径而不是第一路径向服务器103转发第二分组流的第二多个分组(320)。如上所述,在一些示例中,第一路径可以包括路由器110A的第一出口接口的使用,而第二路径可以包括路由器110A的第二出口接口的使用。作为另一示例,第一路径可以包括至少一个路由器110,其不同于包括在第二路径内的至少一个路由器。
另外,路由器110A沿着相同的前向路径依次转发第二前向分组流的每个分组,并且沿着相同的反向路径依次转发反向分组流的每个分组。然而,前向分组流的前向路径和反向流的反向路径可以是相同路径或不同路径。关于图1的示例,路由器110A沿着相同的第二路径向服务器103依次转发第二转发分组流的每个分组。沿着第二路径的每个路由器110向服务器103转发第二分组流的第二多个分组,并且服务器103接收第二多个分组(322)。
以下示例可以说明本公开的一个或多个方面。
示例1.一种方法,包括:由路由器沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,路由器被配置为沿着相同的第一路径依次转发第一多个分组中的每个分组;由路由器确定第一路径不应该用于第一状态路由会话;响应于该确定,由路由器沿着第二路径转发第一状态路由会话的第一转发分组流的至少一个分组,其中,路由器被配置为沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且由路由器沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,转发包括沿着相同的第二路径依次转发第二多个分组中的每个分组。
示例2.根据示例1所述的方法,其中,路由器包括第一出口接口和第二出口接口,其中,由路由器沿着第一路径转发第一多个分组包括由路由器经由第一出口接口沿着第一路径转发沿着第一路径的第一多个分组,并且其中,由路由器沿着第二路径转发至少一个分组包括由路由器经由第二出口接口沿着第二路径转发至少一个分组。
示例3.根据示例1至2中任一项所述的方法,其中,将第一网络地址转换(NAT)服务应用于沿着第一路径转发的第一前向分组流的第一多个分组,其中,将第二NAT服务应用于沿着第二路径转发的第一前向分组流的至少一个分组,并且其中,将所述第二NAT服务应用于至少一个分组被配置为使得目的地装置拒绝至少一个分组。
示例4.根据示例1至3中任一项所述的方法,其中,确定第一路径不应该用于第一状态路由会话是基于沿着第一路径检测到故障。
示例5.根据示例1至3中任一项所述的方法,其中,确定第一路径不应该用于第一状态路由会话是基于确定第二路径的优先级高于第一路径的优先级。
示例6.根据示例1至5中任一项所述的方法,
其中,第一状态路由会话包括源装置和目的地装置之间的第一互联网协议安全(IPSec)隧道,其中,第二状态路由会话包括源装置和目的地装置之间的第二IPsec隧道,并且其中,沿着第二路径转发至少一个分组使得目的地装置拒绝至少一个分组,所述拒绝使得源装置在源装置和目的地装置之间建立第二IPsec隧道。
示例7.根据示例1至5中任一项所述的方法,其中,第一状态路由会话包括第一客户端装置和第二客户端装置之间的第一传输控制协议(TCP)会话,其中,第二状态路由会话包括所述第一客户端装置和第二客户端装置之间的第二TCP会话,并且其中,沿着第二路径转发至少一个分组,使得目的地装置响应于接收到至少一个分组向源装置发送TCP重置消息,所述TCP重置消息使得源装置在第一客户端装置和第二客户端装置之间建立第二TCP会话。
示例8.根据示例1至7中任一项所述的方法,其中,第一路径和第二路径中的一个包括一个或多个第一路由器,第一路由器至少通过将会话的网络流量的至少第一分组修改为包括指定会话的会话标识符的元数据来执行网络流量的基于会话的路由,并且其中,第一路径和第二路径中的另一个包括不执行网络流量的基于会话的路由的一个或多个第二路由器。
示例9.根据示例1至8中任一项所述的方法,其中,第一路径和第二路径中的一个包括跨越宽带网络的路径,并且其中,第一路径和第二路径中的另一个包括跨越长期演进(LTE)无线网络的路径。
示例10.一种包括处理电路的路由器,所述处理电路被配置为:沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,处理电路被配置为沿着相同的第一路径依次转发第一多个分组中的每个分组;确定第一路径不应该用于第一状态路由会话;响应于该确定,沿着第二路径转发第一会话的第一转发分组流的至少一个分组,其中,所述处理电路被配置为沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝被配置为使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,所述处理电路被配置为沿着相同的第二路径依次转发第二多个分组中的每个分组。
示例11.根据示例10所述的路由器,其中,路由器包括第一出口接口和第二出口接口,其中,为了沿着第一路径转发第一多个分组,处理电路被配置为经由第一出口接口并且沿着第一路径转发沿着第一路径的第一多个分组,并且其中,为了沿着第二路径转发至少一个分组,处理电路被配置为经由第二出口接口并且沿着第二路径转发至少一个分组。
示例12.根据示例10至12中任一项所述的方法,其中,第一网络地址转换(NAT)服务被应用于沿着第一路径转发的第一前向分组流的第一多个分组,其中,第二NAT服务被应用于沿着第二路径转发的第一前向分组流的至少一个分组,并且其中,将第二NAT服务应用于至少一个分组被配置为使得目的地装置拒绝至少一个分组。
示例13.根据示例10至12中任一项所述的路由器,其中,处理电路被配置为基于沿着第一路径检测到故障来确定第一路径不应该用于第一状态路由会话。
示例14.根据示例10至12中任一项所述的路由器,其中,处理电路被配置为基于确定第二路径的优先级高于第一路径的优先级来确定第一路径不应该用于第一状态路由会话。
示例15.根据示例12至14中任一项所述的路由器,其中,第一状态路由会话包括源装置和目的地装置之间的第一互联网协议安全(IPSec)隧道,其中,第二状态路由会话包括源装置和目的地装置之间的第二IPsec隧道,并且其中,处理电路被配置为沿着第二路径转发至少一个分组,以使得目的地装置拒绝至少一个分组,所述拒绝被配置为使得源装置在源装置和目的地装置之间建立第二IPsec隧道。
示例16.根据示例12至14中任一项所述的路由器,其中,第一状态路由会话包括第一客户端装置和第二客户端装置之间的第一传输控制协议(TCP)会话,其中,第二状态路由会话包括第一客户端装置和第二客户端装置之间的第二TCP会话,并且其中,处理电路被配置为沿着第二路径转发至少一个分组,使得目的地装置响应于接收到至少一个分组,向源装置发送TCP重置消息,所述TCP重置消息使得源装置在第一客户端装置和第二客户端装置之间建立第二TCP会话。
示例17.根据示例12至16中任一项所述的路由器,其中,第一路径和第二路径中的一个包括一个或多个第一路由器,第一路由器通过至少将会话的网络流量的第一分组修改为包括指定会话的会话标识符的元数据来执行网络流量的基于会话的路由,并且其中,第一路径和第二路径中的另一个包括不执行网络流量的基于会话的路由的一个或多个第二路由器。
示例18.根据示例12至17中任一项所述的路由器,其中,第一路径和第二路径中的一个包括跨越宽带网络的路径,并且其中,第一路径和第二路径中的另一个包括跨越长期演进(LTE)无线网络的路径。
示例19.一种包括指令的非暂时性计算机可读介质,所述指令在被执行时被配置为使得路由器的处理电路:沿着第一路径转发由源装置在源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,第一状态路由会话包括源装置和目的地装置之间的第一前向分组流和第一反向分组流,并且其中,处理电路被配置为沿着相同的第一路径依次转发第一多个分组中的每个分组;确定第一路径不应该用于第一状态路由会话;响应于该确定,沿着第二路径转发第一会话的第一转发分组流的至少一个分组,其中,处理电路被配置为沿着第二路径转发至少一个分组,使得目的地装置拒绝至少一个分组,所述拒绝被配置为使得源装置在源装置和目的地装置之间建立第二状态路由会话;并且沿着第二路径转发第二状态路由会话的第二前向分组流的第二多个分组,其中,第二状态路由会话包括源装置和目的地装置之间的第二前向分组流和第二反向分组流,并且其中,处理电路被配置为沿着相同的第二路径依次转发第二多个分组中的每个分组。
示例20.根据示例19所述的非暂时性计算机可读介质,其中,第一网络地址转换(NAT)服务被应用于沿着第一路径转发的第一前向分组流的第一多个分组,其中,第二NAT服务被应用于沿着第二路径转发的第一前向分组流的至少一个分组,并且其中,将所述第二NAT服务应用于所述至少一个分组被配置为使得目的地装置拒绝所述至少一个分组。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任意组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器中实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或分立逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路(单独或与其他逻辑电路组合)或任何其他等效电路。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一装置内或在单独的装置内实现,以支持本公开中描述的各种操作和功能。此外,任何描述的单元、模块或组件可以一起或单独实现为分立但可互操作的逻辑装置。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件中。
本公开中描述的技术也可以在包含指令的计算机可读介质中体现或编码,例如,计算机可读存储介质。在计算机可读存储介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

Claims (20)

1.一种方法,包括:
由路由器沿着第一路径转发由源装置在所述源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,所述第一状态路由会话包括所述源装置和所述目的地装置之间的所述第一前向分组流和第一反向分组流,并且其中,所述路由器被配置为沿着相同的第一路径依次转发所述第一多个分组中的每个分组;
由所述路由器确定所述第一路径不应该用于所述第一状态路由会话;
响应于该确定,由所述路由器沿着第二路径转发所述第一状态路由会话的所述第一转发分组流的至少一个分组,其中,所述路由器被配置为沿着所述第二路径转发所述至少一个分组,使得所述目的地装置拒绝所述至少一个分组,所述拒绝使得所述源装置在所述源装置和所述目的地装置之间建立第二状态路由会话;并且
由所述路由器沿着所述第二路径转发所述第二状态路由会话的第二前向分组流的第二多个分组,其中,所述第二状态路由会话包括所述源装置和所述目的地装置之间的所述第二前向分组流和第二反向分组流,并且其中,转发包括沿着相同的第二路径依次转发所述第二多个分组中的每个分组。
2.根据权利要求1所述的方法,
其中,所述路由器包括第一出口接口和第二出口接口,
其中,由所述路由器沿着所述第一路径转发所述第一多个分组包括由所述路由器经由所述第一出口接口沿着所述第一路径转发沿着所述第一路径的所述第一多个分组,并且
其中,由所述路由器沿着所述第二路径转发所述至少一个分组包括由所述路由器经由所述第二出口接口沿着所述第二路径转发所述至少一个分组。
3.根据权利要求1所述的方法,
其中,将第一网络地址转换(NAT)服务应用于沿着所述第一路径转发的所述第一前向分组流的所述第一多个分组,
其中,将第二网络地址转换服务应用于沿着所述第二路径转发的所述第一前向分组流的所述至少一个分组,并且
其中,将所述第二网络地址转换服务应用于所述至少一个分组被配置为使得所述目的地装置拒绝所述至少一个分组。
4.根据权利要求1所述的方法,其中,确定所述第一路径不应该用于所述第一状态路由会话是基于沿着所述第一路径检测到故障。
5.根据权利要求1所述的方法,其中,确定所述第一路径不应该用于所述第一状态路由会话是基于确定所述第二路径的优先级高于所述第一路径的优先级。
6.根据权利要求1至5中任一项所述的方法,
其中,所述第一状态路由会话包括所述源装置和所述目的地装置之间的第一互联网协议安全(IPSec)隧道,
其中,所述第二状态路由会话包括所述源装置和所述目的地装置之间的第二互联网协议安全隧道,并且
其中,沿着所述第二路径转发所述至少一个分组使得所述目的地装置拒绝所述至少一个分组,所述拒绝使得源装置在所述源装置和所述目的地装置之间建立第二互联网协议安全隧道。
7.根据权利要求1至5中任一项所述的方法,
其中,所述第一状态路由会话包括第一客户端装置和第二客户端装置之间的第一传输控制协议(TCP)会话,
其中,所述第二状态路由会话包括所述第一客户端装置和第二客户端装置之间的第二传输控制协议会话,并且
其中,沿着所述第二路径转发所述至少一个分组使得所述目的地装置响应于接收到所述至少一个分组向所述源装置发送传输控制协议重置消息,所述传输控制协议重置消息使得所述源装置在所述第一客户端装置和所述第二客户端装置之间建立所述第二传输控制协议会话。
8.根据权利要求1至5中任一项所述的方法,
其中,所述第一路径和所述第二路径中的一个包括一个或多个第一路由器,所述第一路由器至少通过将会话的网络流量的第一分组修改为包括指定会话的会话标识符的元数据来执行网络流量的基于会话的路由,并且
其中,所述第一路径和所述第二路径中的另一个包括不执行所述网络流量的基于会话的路由的一个或多个第二路由器。
9.根据权利要求1至5中任一项所述的方法,
其中,所述第一路径和所述第二路径中的一个包括跨越宽带网络的路径,并且
其中,所述第一路径和所述第二路径中的另一个包括跨越长期演进(LTE)无线网络的路径。
10.一种包括处理电路的路由器,所述处理电路被配置为:
沿着第一路径转发由源装置在所述源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,所述第一状态路由会话包括所述源装置和所述目的地装置之间的所述第一前向分组流和第一反向分组流,并且其中,所述处理电路被配置为沿着相同的第一路径依次转发所述第一多个分组中的每个分组;
确定所述第一路径不应该用于所述第一状态路由会话;
响应于该确定,沿着第二路径转发所述第一会话的所述第一转发分组流的至少一个分组,其中,所述处理电路被配置为沿着所述第二路径转发所述至少一个分组,使得所述目的地装置拒绝所述至少一个分组,所述拒绝被配置为使得所述源装置在所述源装置和所述目的地装置之间建立第二状态路由会话;并且
沿着所述第二路径转发所述第二状态路由会话的第二前向分组流的第二多个分组,其中,所述第二状态路由会话包括所述源装置和所述目的地装置之间的所述第二前向分组流和第二反向分组流,并且其中,所述处理电路被配置为沿着相同的第二路径依次转发所述第二多个分组中的每个分组。
11.根据权利要求10所述的路由器,
其中,所述路由器包括第一出口接口和第二出口接口,
其中,为了沿着所述第一路径转发所述第一多个分组,所述处理电路被配置为经由所述第一出口接口并且沿着所述第一路径转发沿着所述第一路径的所述第一多个分组,并且
其中,为了沿着所述第二路径转发所述至少一个分组,所述处理电路被配置为经由所述第二出口接口并且沿着所述第二路径转发所述至少一个分组。
12.根据权利要求10所述的路由器,
其中,第一网络地址转换(NAT)服务被应用于沿着所述第一路径转发的所述第一前向分组流的所述第一多个分组,
其中,第二网络地址转换服务被应用于沿着所述第二路径转发的所述第一前向分组流的所述至少一个分组,并且
其中,将所述第二网络地址转换服务应用于所述至少一个分组被配置为使得所述目的地装置拒绝所述至少一个分组。
13.根据权利要求10所述的路由器,其中,所述处理电路被配置为基于沿着所述第一路径检测到故障来确定所述第一路径不应该用于所述第一状态路由会话。
14.根据权利要求10所述的路由器,其中,所述处理电路被配置为基于确定所述第二路径的优先级高于所述第一路径的优先级来确定所述第一路径不应该用于所述第一状态路由会话。
15.根据权利要求10至14中任一项所述的路由器,
其中,所述第一状态路由会话包括所述源装置和所述目的地装置之间的第一互联网协议安全(IPSec)隧道,
其中,所述第二状态路由会话包括所述源装置和所述目的地装置之间的第二互联网协议安全隧道,并且
其中,所述处理电路被配置为沿着所述第二路径转发所述至少一个分组,以使得所述目的地装置拒绝所述至少一个分组,所述拒绝被配置为使得所述源装置在所述源装置和所述目的地装置之间建立第二互联网协议安全隧道。
16.根据权利要求10至14中任一项所述的路由器,
其中,所述第一状态路由会话包括第一客户端装置和第二客户端装置之间的第一传输控制协议(TCP)会话,
其中,所述第二状态路由会话包括所述第一客户端装置和所述第二客户端装置之间的第二传输控制协议会话,并且
其中,所述处理电路被配置为沿着所述第二路径转发所述至少一个分组,使得所述目的地装置响应于接收到所述至少一个分组向所述源装置发送传输控制协议重置消息,所述传输控制协议重置消息使得所述源装置在所述第一客户端装置和所述第二客户端装置之间建立第二传输控制协议会话。
17.根据权利要求10至14中任一项所述的路由器,
其中,所述第一路径和所述第二路径中的一个包括一个或多个第一路由器,所述第一路由器通过至少将所述会话的网络流量的第一分组修改为包括指定所述会话的会话标识符的元数据来执行网络流量的基于会话的路由,并且
其中,所述第一路径和所述第二路径中的另一个包括不执行所述网络流量的基于会话的路由的一个或多个第二路由器。
18.根据权利要求10至14中任一项所述的路由器,
其中,所述第一路径和所述第二路径中的一个包括跨越宽带网络的路径,并且
其中,所述第一路径和所述第二路径中的另一个包括跨越长期演进(LTE)无线网络的路径。
19.一种包括指令的非暂时性计算机可读介质,所述指令在被执行时被配置为使得路由器的处理电路:
沿着第一路径转发由源装置在所述源装置和目的地装置之间建立的第一状态路由会话的第一前向分组流的第一多个分组,其中,所述第一状态路由会话包括所述源装置和所述目的地装置之间的所述第一前向分组流和第一反向分组流,并且其中,所述处理电路被配置为沿着相同的第一路径依次转发所述第一多个分组中的每个分组;
确定所述第一路径不应该用于所述第一状态路由会话;
响应于该确定,沿着所述第二路径转发所述第一会话的所述第一转发分组流的至少一个分组,其中,所述处理电路被配置为沿着所述第二路径转发所述至少一个分组,使得所述目的地装置拒绝所述至少一个分组,所述拒绝被配置为使得所述源装置在所述源装置和所述目的地装置之间建立第二状态路由会话;并且
沿着所述第二路径转发所述第二状态路由会话的第二前向分组流的第二多个分组,其中,所述第二状态路由会话包括所述源装置和所述目的地装置之间的所述第二前向分组流和第二反向分组流,并且其中,所述处理电路被配置为沿着相同的第二路径依次转发所述第二多个分组中的每个分组。
20.根据权利要求19所述的非暂时性计算机可读介质,
其中,第一网络地址转换(NAT)服务被应用于沿着所述第一路径转发的所述第一前向分组流的所述第一多个分组,
其中,第二网络地址转换服务被应用于沿着所述第二路径转发的所述第一前向分组流的至少一个分组,并且
其中,将所述第二网络地址转换服务应用于所述至少一个分组被配置为使得所述目的地装置拒绝所述至少一个分组。
CN202111579620.1A 2021-09-29 2021-12-22 使用路径变化建立会话 Pending CN115883631A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/449,435 2021-09-29
US17/449,435 US11552883B1 (en) 2021-09-29 2021-09-29 Session establishment using path change

Publications (1)

Publication Number Publication Date
CN115883631A true CN115883631A (zh) 2023-03-31

Family

ID=78851108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111579620.1A Pending CN115883631A (zh) 2021-09-29 2021-12-22 使用路径变化建立会话

Country Status (3)

Country Link
US (1) US11552883B1 (zh)
EP (1) EP4161026A1 (zh)
CN (1) CN115883631A (zh)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112660B2 (en) * 2009-02-26 2012-02-07 Cisco Technology, Inc. Router synchronization
US9729439B2 (en) * 2014-09-26 2017-08-08 128 Technology, Inc. Network packet flow controller
US10277506B2 (en) * 2014-12-08 2019-04-30 128 Technology, Inc. Stateful load balancing in a stateless network
US9729682B2 (en) * 2015-05-18 2017-08-08 128 Technology, Inc. Network device and method for processing a session using a packet signature
US9762485B2 (en) * 2015-08-24 2017-09-12 128 Technology, Inc. Network packet flow controller with extended session management
US9871748B2 (en) * 2015-12-09 2018-01-16 128 Technology, Inc. Router with optimized statistical functionality
US9985883B2 (en) * 2016-02-26 2018-05-29 128 Technology, Inc. Name-based routing system and method
US10841206B2 (en) * 2016-05-31 2020-11-17 128 Technology, Inc. Flow modification including shared context
US10200264B2 (en) * 2016-05-31 2019-02-05 128 Technology, Inc. Link status monitoring based on packet loss detection
US9985872B2 (en) * 2016-10-03 2018-05-29 128 Technology, Inc. Router with bilateral TCP session monitoring
US10833980B2 (en) * 2017-03-07 2020-11-10 128 Technology, Inc. Router device using flow duplication
US10432519B2 (en) * 2017-05-26 2019-10-01 128 Technology, Inc. Packet redirecting router
US11165863B1 (en) * 2017-08-04 2021-11-02 128 Technology, Inc. Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain
US10999182B2 (en) * 2019-05-13 2021-05-04 128 Technology, Inc. Routing using segment-based metrics
US11451464B2 (en) * 2019-05-13 2022-09-20 128 Technology, Inc. Central authority for service and topology exchange
US11153202B2 (en) * 2019-05-13 2021-10-19 128 Technology, Inc. Service and topology exchange protocol
US11329912B2 (en) * 2019-05-13 2022-05-10 128 Technology, Inc. Source-based routing
US11075824B2 (en) * 2019-06-19 2021-07-27 128 Technology, Inc. In-line performance monitoring
US20210409322A1 (en) * 2020-06-24 2021-12-30 Juniper Networks, Inc. Point-to-multipoint layer -2 network extension over layer-3 network
US11863352B2 (en) * 2020-07-30 2024-01-02 Vmware, Inc. Hierarchical networking for nested container clusters

Also Published As

Publication number Publication date
US11552883B1 (en) 2023-01-10
EP4161026A1 (en) 2023-04-05

Similar Documents

Publication Publication Date Title
US20230308421A1 (en) Method and system of establishing a virtual private network in a cloud service for branch networking
US20230216774A1 (en) Liveness detection and route convergence in software-defined networking distributed system
US9577909B2 (en) System and method of traffic inspection and stateful connection forwarding among geographically dispersed network appliances organized as clusters
US20220200887A1 (en) Metric-based multi-hop path selection
US11658902B2 (en) Session monitoring using metrics of session establishment
EP4173239B1 (en) Layer-2 network extension over layer-3 network using encapsulation
CN110120916B (zh) Bgp会话的优先级形成
CN111756566B (zh) 支持和不支持issu装置的混合网络中软件升级部署
JP2021525047A (ja) 仮想プライベートネットワークを管理するための方法およびデバイス
CN114650253A (zh) 基于会话状态的网络策略应用
EP4161023A1 (en) Opportunistic mesh for software-defined wide area network (sd-wan)
US11552883B1 (en) Session establishment using path change
US11902146B1 (en) Identifying a maximum segment size (MSS) corresponding to a network path
US11799779B1 (en) Session-based packet capture
EP4161024A1 (en) Metric-based multi-hop path selection
US20230131877A1 (en) Inline security key exchange
CN117178523A (zh) 多上行链路路径质量感知ipsec
Patil et al. Efficient Network Management: A Software Defined Networking Approach

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication