基于dns路由网络流量

文档序号:1652327 发布日期:2019-12-24 浏览:13次 >En<

阅读说明:本技术 基于dns路由网络流量 (Routing network traffic based on DNS ) 是由 罗宾·詹姆斯 米森·艾耶 赫曼舒·沙 于 2018-05-03 设计创作,主要内容包括:一种方法可以包括:在网络设备处接收域名系统(DNS)查询,其中,DNS查询可以与被标识用于通过利用替代网络设备的替代路径而不是默认路径来进行重新路由的流量流相关联。该方法还可以包括重写DNS查询,使得DNS查询沿着替代路径被路由通过替代网络设备,并且被路由到与替代路径相关联的DNS服务器。该方法可以另外包括接收来自DNS服务器的DNS响应,其中,在DNS响应中标识的资源可以基于经过替代网络设备的DNS查询。(A method may include: a Domain Name System (DNS) query is received at a network device, where the DNS query can be associated with a traffic flow identified for rerouting by utilizing an alternate path of an alternate network device instead of a default path. The method may also include rewriting the DNS query such that the DNS query is routed through the alternative network device along the alternative path and to a DNS server associated with the alternative path. The method can additionally include receiving a DNS response from the DNS server, wherein the resource identified in the DNS response can be based on the DNS query passing through the alternative network device.)

基于DNS路由网络流量

技术领域

本公开中讨论的实施例涉及路由网络流量。

背景技术

网络的使用是允许不同计算设备之间进行通信的有用工具。尽管计算机以及计算机进行通信的网络激增,但是对于当前的网络技术仍然存在各种限制。

本公开中要求保护的主题不限于解决任何缺点或仅在例如上述环境中操作的实施例。相反,仅提供此背景技术来说明可以实践本公开中描述的一些实施例的一个示例技术领域。

发明内容

本公开的一个或多个实施例可以包括一种路由网络流量的方法。该方法可以包括沿第一路径通过远程网络位置将流量从本地网络设备路由到第三方网络资源。该方法还可以包括:确定第一路径的第一排名;以及确定沿着第二路径从本地网络设备到第三方网络资源的第二路径的第二排名,该第二路径不包括该远程网络位置。该方法可以另外包括:基于第二排名超过第一排名阈值量,沿着第二路径重新路由流量。

本公开的一个或多个实施例可以包括一种方法,该方法包括:在网络设备处接收域名系统(DNS)查询,其中,DNS查询可以与被标识用于通过利用替代网络设备的替代路径而不是默认路径来进行重新路由的流量流相关联。该方法还可以包括重写DNS查询,使得DNS查询沿着替代路径被路由通过替代网络设备,并且被路由到与替代路径相关联的DNS服务器。该方法可以另外包括接收来自DNS服务器的DNS响应,其中,在DNS响应中标识的资源可以基于经过替代网络设备的DNS查询。

本公开的一个或多个实施例可以包括一种方法,该方法包括标识与网络设备相关联的流量流的分组内的地址。该方法还可以包括将分组内的地址与所存储的地址进行比较,所存储的地址与用于替代流量路径的路由相关联,其中,替代流量路径可以与通过网络设备的默认流量路由不同。该方法可以另外包括:基于与所存储的地址相匹配的分组内的地址,沿着替代流量路径而不是默认流量路由来路由该分组。

本公开的一个或多个实施例可以包括一种方法,该方法包括:在第一网络域之外的第二网络域中选择流量流的目的地,以及确定从流量流的起点到该目的地的多个路径,其中,该多个路径中的每一个可以包括通过第一网络域的第一网络域路径和通过第二网络域的第二网络域路径。该方法还可包括针对该多个路径中的每一个,将第一网络域路径的第一性能分数与第二网络域路径的第二性能分数进行组合。该方法可以另外包括:选择该多个路径中具有低于阈值的经组合的第一和第二性能分数的一个路径;以及沿着该多个路径中的所选择的一个路径来路由流量流。

本公开的一个或多个实施例可以另外包括用于促进这种方法的执行的系统和/或非暂态计算机可读介质。

实施例的目的和优点将至少通过权利要求中特别指出的要素、特征和组合来实现和完成。

应当理解,前面的一般描述和下面的详细描述都仅仅是示例和解释性的,并且不限制如所要求保护的本发明。

附图说明

通过使用附图来以额外的特性和细节描述和说明示实施例,在附图中:

图1示出了实现软件定义网络的网络组件的示例系统;

图2示出了实现软件定义网络的另一示例系统;

图3示出了作为软件定义网络的一部分的另一示例系统;

图4示出了实现软件定义网络的另一示例系统;

图5示出了在软件定义网络内路由网络流量的示例方法的流程图;

图6示出了重新路由域名系统(DNS)请求的示例方法的流程图;

图7示出了路由流量的另一示例方法的流程图;

图8示出了获取地址的示例方法的流程图;

图9示出了获取地址的另一示例方法的流程图;

图10示出了路由选择的示例方法的流程图;以及

图11示出了示例计算系统。

具体实施方式

本公开的一些实施例涉及对网络的操作以及网络流量的路由的改进。例如,用于组织的软件定义网络内的默认路径可以在将组织的网络流量路由到组织的内部网络域的外部之前,将流量路由到核心位置,例如,数据中心。然而,除了通过核心位置的默认路径之外,组织还可以包括一个或多个替代路径以访问内部网络域的外部。此外,沿着这样的替代路径路由流量可以允许流量流以更高效的方式访问第三方资源。例如,如果数据中心位于马萨诸塞州的波士顿,而第三方资源的流量流的起点位于华盛顿州的斯波坎,则沿默认路径的数据请求可能会访问马萨诸塞州的波士顿的数据中心附近(而不是华盛顿州的斯波坎的起点附近)的第三方资源。本公开的实施例可以促进使用具有优异性能的路径(例如,通过来自华盛顿州的斯波坎的起点附近(而不是马萨诸塞州的波士顿附近)的内部网络域的替代出口)。

本公开的一些实施例监测离开内部网络域的各个路径,并且可以沿着具有优于默认路径的性能的路径来路由被指定为重新路由流的流。例如,访问内部网络域的外部的第三方资源的一些应用可以被指定为重新路由应用,并且可以沿着具有优异性能的路径来路由该应用的流量流。

本公开的一个或多个实施例可以包括针对与在内部网络域内重新路由流量流相关联的问题的解决方案。一个这样的问题是基于重新路由路径而不是默认路径来对域名系统(DNS)查询进行重新路由。例如,组织可以操作组织的专用DNS服务器和/或计算系统,可以期望DNS响应来自该专用DNS服务器。然而,专用DNS服务器可能位于数据中心。本公开的一个或多个实施例可以监测重新路由应用的DNS查询,并且可以重写DNS查询,使得目的地地址在沿着重新路由的路径离开内部网络域之后是针对DNS服务器(例如,公共DNS服务器),而不是专用DNS服务器。本公开的一个或多个实施例可以可选地重写相应的DNS响应,使得该DNS响应表现为来自专用DNS服务器而不是公共DNS服务器。

本公开的一个或多个实施例可以解决与内部网络域的网络地址转换(NAT)出口点相关联的问题。例如,如果沿着默认路径建立了传输控制协议(TCP)会话,并然后在建立会话之后,将流量流标识为重新路由流并沿着重新路由路径进行重新路由,则目的地处的分组可能会被拒绝,因为这些分组可能开始来自具有不同源IP地址的不同NAT出口点。在本公开的一个或多个实施例中,联网设备可以存储用于重新路由流的目的地的IP地址,使得当试图建立新的TCP会话时,如果它是用于重新路由流,则将沿着重新路由路径来建立TCP会话,使得分组将来自重新路由路径的NAT出口点。

本公开的一个或多个实施例可以促进标识哪个路径应当被用作重新路由路径。例如,内部网络域内的路径的性能可以与内部网络域的外部的路径的性能相组合,从而可以确定潜在的重新路由路径的端到端路径性能。基于组合性能,网络设备可以选择可沿着哪个路径来路由重新路由流。

本公开的实施例可以提供对计算机网络和计算机本身的操作的改进。例如,使用本公开的一个或多个实施例,网络流量可以以提高的性能流动,保留有价值的网络资源(例如,带宽)并提供增加的响应时间。另外,可以减少流过内部网络域的流量,从而为内部网络域提供卓越的性能。作为另一示例,可以保证对于重新路由路径的路径可用性,这可以提高重要应用的可靠性。作为附加示例,可以提高利用第三方资源的应用的性能,因为可以将具有最佳性能或改进性能的路径用于该应用,这允许响应时间增加、每单位时间的数据吞吐量增加等。

参考附图说明本公开的实施例。

图1示出了根据本公开的一个或多个实施例的实现软件定义网络的网络组件的示例系统100。系统100可以包括内部网络域105和一个或多个外部网络域。系统100可以包括一个或多个边缘网络设备110(例如,边缘网络设备110a-11d)、控制设备120、通信网络130、以及外部网络设备140和141(例如,外部网络设备140a-140d和141a-141d)。

系统100可以实现软件定义网络。软件定义网络可以包括由软件管理的而不是由硬件控制的网络。这样,软件定义网络可以支持多种类型的连接,例如,互联网、多协议标签交换(MPLS)连接、和/或蜂窝连接(例如,长期演进(LTE)、LTE高级、微波访问全球互操作性(WiMAX)、4G等)。另外,软件定义网络可以支持各种连接之间的负载平衡或负载共享。此外,由于网络的分布式性质,软件定义网络可以支持虚拟专用网(VPN)、防火墙、以及其他安全服务。例如,在软件定义网络中,控制平面可以在功能上与物理拓扑分离。在一些实施例中,软件定义网络可以将网络的控制平面(将通过软件来管理)与网络的数据平面(在网络的硬件上操作)分离。如本文所使用的,术语控制平面可以指在网络本身的控制和管理(而不是可能在数据平面发生的通过网络的数据传输)中使用的通信和连接。如本文所使用的,术语数据平面可以指在数据通过网络的发送和接收中使用的通信和连接。例如,控制平面可以包括定向到网络内的网络设备的管理流量,而数据平面可以包括通过网络内的网络设备的流量。

在一些实施例中,软件定义网络可以被实现为软件定义的广域网(SD-WAN)、局域网(LAN)、城域网(MAN)等。尽管可以在SD-WAN的背景下描述本公开的一个或多个实施例,但是这样的实施例还可以在任何软件定义网络中实现。

在一些实施例中,控制设备120可以被配置为通过指导边缘网络设备110的操作的一个或多个方面来管理内部网络域105的控制平面。例如,控制设备120可以生成策略和/或将策略分发到边缘网络设备110中的一个或多个。策略可以包括与网络流量的处理(例如,路由、优先级、媒体等)有关的一个规则或一组规则。内部网络域105可以用作具有特定功能和/或协议的安全和受控域。在一些实施例中,边缘网络设备110可以基于由控制设备120创建和/或传播的一个或多个策略来操作。在这些和其他实施例中,边缘网络设备110可以基于由控制设备120创建和/或传播的策略来在内部网络域105内路由数据流量。

在一些实施例中,控制设备120可以与每个边缘网络设备110形成控制平面连接。控制平面连接可以促进边缘网络设备110与控制设备120之间的管理数据的交换,以管理和控制内部网络域105。控制平面连接可以用作通过通信网络130的隧道,例如,数据报传输层安全性(DTLS)隧道。在一些实施例中,通过控制平面连接传送的数据可以促进控制设备120确定通信网络130的拓扑。例如,控制设备120可以与边缘网络设备110通信,以确定通信网络130中的边缘网络设备110之间以及之中存在什么物理连接。另外地或替代地,通过控制平面连接传送的数据可以促进控制设备120确定边缘网络设备110之间以及之中的通信网络130上的最优或期望路径。另外地或替代地,控制设备120可以通过控制平面连接将路由信息传送给边缘网络设备110。在这些和其他实施例中,控制平面连接可以包括控制设备120与边缘网络设备110之间的永久连接,使得如果控制设备120与给定边缘网络设备110之间的连接断开,则边缘网络设备110可能无法或以其他方式不允许通过内部网络域105进行通信。

在一些实施例中,控制设备120可以维护中央路由表,该中央路由表存储内部网络域105内的路由信息。例如,控制设备120可以与各个边缘网络设备110通信以确定通过通信网络130可用于边缘网络设备110的物理连接。在一些实施例中,边缘网络设备110可以包括到彼此的一个或多个物理连接。在这些和其他实施例中,控制设备120可以结合中央路由表生成和/或更新一个或多个策略以确定通过内部网络域105的数据流量路由,并且可以将这些数据流量路由传送到边缘网络设备110。在至少一个实施例中,控制设备120可以向边缘网络设备110提供与流量流有关的策略和其他分类规则,而不是涉及通过内部网络域105的每个单独的流。

在这些和其他实施例中,边缘网络设备110可能尚未存储整个系统100的拓扑和/或路由路径。边缘网络设备110中的每一个可能不需要各自单独地查询以确定可达性。相反,控制设备120可以将这种信息提供给边缘网络设备110。另外地或替代地,可例如基于控制设备120的一个或多个策略来将可达性和/或基础设施信息的子集提供给边缘网络设备110。在这些和其他实施例中,控制设备120可以基于控制设备120的一个或多个其他策略来通过最直接的路径、或通过某一其他路径来路由流量。

在一些实施例中,一个或多个策略可以包括关于确定下一跳指令的指导。例如,特定策略可以指示针对特定分类、类别或组的流量流来接下来路由流量的特定边缘网络设备110,而不是为流量提供完整的端到端路由。例如,边缘网络设备110a可以从外部网络设备140a接收指向外部网络设备141c的地址的数据。边缘网络设备110a可能已经存储第一策略,该第一策略包括来自控制设备120的第一流量数据路由,其指示去往外部网络设备141c的地址的网络流量的“下一跳”将被路由到边缘网络设备110d。第一流量数据路由可以指示边缘网络设备110a可以使用何种一个或多个连接来将流量路由到边缘网络设备110d。边缘网络设备110d可能已经存储第二策略,该第二策略包括来自控制设备120的第二流量数据路由,其指示去往外部网络设备141c的地址的网络流量的“下一跳”可被路由到边缘网络设备110c。第二流量数据路由可以指示边缘网络设备110d可以使用何种一个或多个连接来将流量路由到边缘网络设备110c。边缘网络设备110c可以接收数据,并且可以在使用或不使用到达该路由决策的策略的情况下将数据路由到外部网络设备141c。

除了生成用于指导边缘网络设备110做出路由决策的策略之外,控制设备120还可以生成边缘网络设备110将遵循的策略。在一些实施例中,控制设备120可以生成策略以使得内部网络域105内的某些网络流量流通过某些类型的连接(例如,LTE、MPLS)和/或通过某些边缘网络设备110被路由。例如,控制设备120可以检查中央路由表并且确定在边缘网络设备110a和边缘网络设备110c之间存在直接连接。不同于允许在边缘网络设备110a和边缘网络设备110c之间直接路由数据,控制设备120可以生成策略以替代地使数据通过边缘网络设备110d被路由。例如,可能出于各种原因来通过边缘网络设备110d路由数据,例如,因为边缘网络设备110d可能包括防火墙、数据过滤器、安全性特征、数据丢失防止(DLP)特征、出口控制、或政府合规性特征等。作为另一示例,控制设备120可以生成策略以使得一个或多个边缘网络设备110通过与数据中心相关联的边缘网络设备110来路由流量,例如,因为数据中心包括防火墙、数据过滤器等。使用这种方法,可以基于由控制设备120传播到边缘网络设备110的策略和流量路由来容易地控制和引导内部网络域105内的流量流。

在一些实施例中,控制设备120可以从用于通过数据平面传送数据的边缘网络设备110接收一个或多个密钥。例如,在从一个边缘网络设备110向另一边缘网络设备110发送数据时,一个或多个数据分组可以采用一个或多个密钥以用于安全目的。在这些和其他实施例中,控制设备120可以基于中央路由表和/或由控制设备120实现的策略将接收到的密钥反映到可能在流量流中的一个或多个其他边缘网络设备110。例如,控制设备120可以从给定边缘网络设备110接收密钥,并且可以将密钥重新广播或以其他方式发送到另一边缘网络设备110。在这些和其他实施例中,给定边缘网络设备110可以生成对称密钥以促进边缘网络设备之间的安全通信。在这些和其他实施例中,对称密钥可以由给定边缘网络设备110生成,一个副本由给定边缘网络设备110保留,并且另一副本被提供给控制设备120,使得控制设备120可以将对称密钥分发到与给定边缘网络设备110通信的其他边缘网络设备。以这种方式,基于控制设备120的策略与给定边缘网络设备110通信的每个边缘网络设备都可以接收对称密钥。

在一些实施例中,内部网络域105内的流量可以用诸如各种加密标准或密钥之类的加密方案来加密。例如,内部网络域105可以采用双向认证,该双向认证使用与证书一起发送的公共密钥。这样的方法可以利用RSA-2048或Diffie-Hellman。作为另一示例,边缘网络设备110之间的数据报传输层安全性(DTLS)和/或传输层安全性(TLS)连接可以使用具有256位长度密钥的高级加密标准(AES)来加密。

在一些实施例中,控制设备120可以存储内部网络域105内的一个或多个(或全部)边缘网络设备110的认证信息。在这些和其他实施例中,可以防止设备在内部网络域105内通信,除非该设备具有与控制设备120的所存储的认证信息相匹配或以其他方式相对应的认证信息。在一些实施例中,可以在边缘网络设备110首次上线以建立控制平面连接时使用认证信息,并且可以防止与控制设备120没有控制平面连接的任何设备在内部网络域105内通信。

边缘网络设备110可以在内部网络域105的边界上操作。边缘网络设备110可以包括可以在内部网络域105内操作的一个或多个物理和/或逻辑连接。这样的连接可以被图示为通信网络130的一部分。另外地或替代地,边缘网络设备110可包括在内部网络域105的外部操作的一个或多个物理和/或逻辑连接。例如,边缘网络设备110可以连接到(一个或多个)外部网络设备140和/或141。

在一些实施例中,边缘网络设备110可操作来将流量从相关联的外部网络设备140和141路由到内部网络域105中。附加地或替代地,边缘网络设备110可以操作来将流量从内部网络域105路由到相关联的外部网络设备140和141。在一些实施例中,边缘网络设备110可以使用诸如开放式最短路径优先(OSPF)、边界网关协议(BGP)、虚拟路由器冗余协议(VRRP)和双向转发检测(BFD)等之类的典型通信协议与相关联的外部网络设备140和141通信。附加地或替代地,边缘网络设备110可以支持其他网络功能,例如,虚拟局域网(VLAN)标记、服务质量(QoS)监测、服务水平协议(SLA)、互联网协议(IP)转发、互联网协议安全性(IPsec)、访问控制列表(ACL)等。

例如,利用VLAN标记,边缘网络设备110可以被配置为将VLAN标记***分组头部中。这样的VLAN标记可以标识多个VLAN中网络流量分组所属的一个VLAN。基于VLAN标记,边缘网络设备110可以将网络流量分组路由到与VLAN相关联的一个或多个端口。

作为另一示例,利用QoS监测,边缘网络设备110可以提供可被监测的一个或多个QoS度量,例如,抖动、带宽、错误率、比特率、吞吐量等。

作为附加示例,利用SLA,边缘网络设备110可以包括针对一个或多个QoS度量(例如,带宽、可用性、抖动等)的商定阈值水平。在这些和其他实施例中,给定边缘网络设备110可被配置为调整或以其他方式修改给定边缘网络设备110如何处理或路由流量的一个或多个属性,以更好地符合一个或多个SLA。例如,一个应用的流量流可以被节流,使得另一应用的流量流可以符合相应的SLA。

作为另一示例,利用IP转发,边缘网络设备110可以包括可被用来在IP网络中路由分组的一个或多个协议。例如,这样的协议可以考虑诸如分组大小、由头部指定的服务、到网络中的其他路由器的潜在链路的特性等之类的因素。利用这些因素,边缘网络设备110可以基于诸如最短路径之类的所选算法来转发分组。

作为附加示例,利用IPsec,边缘网络设备110可以利用IPsec来认证和/或加密网络流量。例如,给定边缘网络设备110可以认证一个或多个计算设备以与给定边缘网络设备110通信和/或加密在计算设备与给定边缘网络设备110之间传送的一个或多个分组。

作为另一示例,利用ACL,边缘网络设备110可以包括一组规则,其指示可以被允许使用给定端口的一个或多个地址、主机和/或网络。在这些和其他实施例中,边缘网络设备110可以包括适用于入站流量、出站流量或两者的ACL。

在一些实施例中,边缘网络设备110可以本地维护一个或多个本地路由表。在一些实施例中,边缘网络设备110可以基于从控制设备120发送的一个或多个策略来调整或修改本地路由表。例如,边缘网络设备110可以基于一个或多个策略将一个或多个条目去除、丢弃或以其他方式不添加到本地路由表。在一些实施例中,边缘网络设备110可以包括基于边缘网络设备110所处理的流量来更新、修改和/或生成本地路由表的逻辑。一个或多个本地路由表可以由边缘网络设备110基于直接接口路由、静态路由、和/或使用诸如BGP和/或OSPF之类的一种或多种网络协议学习的动态路由来自动填充。在一些实施例中,内部网络域105的外部的数据的路由决策可以由特定边缘网络设备110执行,而无需来自控制设备120的特定指示、输入或控制。例如,特定边缘网络设备110可基于特定边缘网络设备110已从控制设备120接收到的一个或多个策略和/或参考特定边缘网络设备110的本地路由表来计算路由决策。

在一些实施例中,通过将针对内部网络域105的外部的数据的路由决策与内部网络域105内的数据的路由决策分开,系统100可以包括可基于来自控制设备120的策略来处理的多个段。在这些和其他实施例中,多个段可以对应于可以使用同一内部网络域105单独处理的多个VPN。例如,会计部门可包括一个VPN,并且组织的其余部分可能在另一VPN上。作为另一示例,原始商业实体可以在一个VPN上,并且由原始商业实体新获取的商业实体可以在单独的VPN上。例如,外部网络设备140a-140d可以在具有第一前缀的第一VPN中,该第一前缀可以标识与第一VPN相关联的数据分组,并且外部网络设备141a-141d可以在具有第二前缀的第二VPN中,该第二前缀与第二VPN相关联。在这些和其他实施例中,给定边缘网络设备110可以将给定边缘网络设备110获知的任何前缀提供给控制设备120。例如,边缘网络设备110a可以查询、学习或以其他方式获得与外部网络设备140a相关联的第一VPN的第一前缀以及与外部网络设备141a相关联的第二VPN的第二前缀。边缘网络设备110a可以将第一和第二前缀发送到控制设备120。在这些和其他实施例中,控制设备120可以将接收到的前缀提供给边缘网络设备110中的一个或多个。例如,从边缘网络设备110a接收的前缀可以从控制设备120被传送到边缘网络设备110b-110d。

在一些实施例中,边缘网络设备110和/或控制设备120中的一个或多个可以被实现为在一个或多个物理计算设备上操作的一个或多个虚拟机。附加地或替代地,边缘网络设备110和/或控制设备120可各自包括单独的独立计算设备。

在不脱离本公开的范围的情况下,可以对图1进行修改、增加或省略。例如,尽管被示为包括四个边缘网络设备110和一个控制设备120,但系统100可以包括任何数量的边缘网络设备110和控制设备120,例如,成千上万的边缘网络设备110以及多于五个的控制设备120。作为另一示例,如示为单个通信网络130,通信网络130可以包括多种类型的通信连接。

图2示出了根据本公开的一个或多个实施例的实现软件定义网络的网络组件的另一示例系统200。系统200可以包括一个或多个边缘网络设备210(例如,边缘网络设备210a-210o)、一个或多个控制设备220(例如,控制设备220a、220b和220c)、以及一个或多个通信网络230(例如,通信网络230a、230b和230c)。边缘网络设备210可以与图1的边缘网络设备110相似或类似,控制设备220可以与图1的控制设备120相似或类似,并且通信网络230可以与图1的通信网络130相似或类似。系统200可以是与图1的系统100相似或类似的系统,但扩展为包括附加的网络组件和附加的外部网络域。

系统200可以以与关于图1的系统100所描述的相似或类似方式包括边缘网络设备210之内和之间的内部网络域205。系统200另外可以包括多个外部网络域。例如,数据中心240可以代表第一外部网络域,园区250可以代表第二外部网络域,分支260可以代表第三外部网络域,并且远程站点270可以代表第四外部网络域。在这些和其他实施例中,每个外部网络域可以包括一个或多个边缘网络设备210,它们用作内部网络域205和给定外部网络域之间的桥梁。附加地或替代地,一个或多个外部网络域在功能上可用作可从其他外部网络域访问,就像在单个网络中通过内部网络域205通信地耦合。

在一些实施例中,系统200可以包括一个或多个外部资源280(例如,外部资源280a-280c)。外部资源280可以由与操作内部网络域205的实体或组织相同的实体或组织来操作,或者可以由不同的实体来操作。在这些和其他实施例中,系统200可以包括可以与特定外部资源280相关联的边缘网络设备210。例如,系统200可以包括位于区域共址设施内的边缘网络设备210。区域共址设施可以包括具有对互联网或给定物理位置处的其他通信协议的定向或保证访问的位置。在一些实施例中,区域共址设施可包括与一个或多个外部资源280的优先或改进连接。在一些实施例中,区域共址设施可以位于可物理上靠近一个或多个外部网络域的指定地理位置处。例如,数据中心240可以位于纽约,分支260可以位于德克萨斯州的达拉斯,并且边缘网络设备210n可以位于德克萨斯州休斯敦的区域共址设施。

外部资源280可以包括可用于系统200消费的任何计算服务。例如,外部资源280可以包括基于云的服务,例如,软件订阅或软件即服务(SaaS)(例如,MicrosoftGoogle Amazon 等)、媒体服务(例如,等)等。在这些和其他实施例中,外部资源280可以包括第三方网络以促进利用各个地理位置处的一个或多个接入点来访问外部资源280。例如,SaaS可包括德克萨斯州奥斯汀、加利福尼亚州帕洛阿尔托、以及纽约州纽约的访问服务器以访问第三方网络。

在一些实施例中,系统200可以是地理分布的。例如,数据中心240可位于明尼苏达州圣保罗;园区250可以位于爱荷华州得梅因;可能存在华盛顿州西雅图、加利福尼亚州洛杉矶、佐治亚州亚特兰大、以及佛罗里达州奥兰多的分支260;以及可能存在英国伦敦、德国柏林、以及韩国首尔的远程站点270。在这些和其他实施例中,系统200可以利用通信网络230和内部网络域205来促进所有这些分布式物理位置之间的通信作为单个网络。

在一些实施例中,一个或多个外部网络域可以使用具有数据中心240中的资源的一个或多个应用,例如,Microsoft Oracle e-Business等。例如,在园区250处运行的工作站可以运行Microsoft 应用的操作可以包括从工作站到园区250的外部网络域中的边缘网络设备210e的数据流。数据流可以通过内部网络域205从边缘网络设备210e到达与数据中心240相关联的边缘网络设备210b、210c和/或210d之一。边缘网络设备210b、210c和/或210d之一可以将流量路由到数据中心240的外部网络域中的Microsoft 服务器。附加地或替代地,应用的操作可以包括与从Microsoft 服务器到工作站的数据流相反的数据流。

在一些实施例中,系统200可以包括网络管理设备290,其可以通过管理网络232与控制设备220通信。网络管理设备290可以提供对与内部网络域205相关联的一个或多个设备的管理和控制,包括边缘网络设备210、控制设备220等。例如,网络管理设备290可以提供图形用户界面(GUI),该图形用户界面向网络管理员提供访问以控制或观察内部网络域205的操作。在一些实施例中,网络管理员可以经由网络管理设备290输入策略,该策略可以被传送至控制设备220以经由边缘网络设备210来实施。在一些实施例中,网络管理设备290可以向GUI面板提供内部网络域205的一个或多个属性的视觉和/或文本描述,例如,边缘网络设备210的数量和/或状态和/或状况、控制设备220的数量和/或状态、重新启动的数量和/或最后时间、传输状况(例如,丢失、延迟和/或抖动)、正在运行或未运行的站点的数量、网络资源的应用消耗、应用路由等。

在一些实施例中,网络管理设备290可以被配置为识别经核准的边缘网络设备210和/或控制设备220。例如,网络管理设备290可以维护边缘网络设备210和/或控制设备220的序列号、MAC地址、或其他唯一标识信息的列表。在这些和其他实施例中,内部网络域205中的通信可以限于具有由网络管理设备290维护的列表上的标识信息的边缘网络设备210和/或控制设备220。

在一些实施例中,网络管理设备290可以被配置为生成和/或存储一个或多个边缘网络设备210和/或控制设备220的配置。例如,网络管理员可以使用网络管理设备290来配置特定边缘网络设备210,并且可以将该配置存储为可以应用于未来的边缘网络设备的模板。附加地或替代地,用于边缘网络设备210的模板可以由第三方提供并且被应用于新的边缘网络设备210。在这些和其他实施例中,用于控制设备220的模板可以被生成、存储、和/或应用于新的控制设备220。附加地或可替代地,这种模板可以用于自动配置新部署的边缘网络设备210。例如,可以使新部署的边缘网络设备210在线并连接到相应的控制设备220。相应的控制设备220可以与网络管理设备290一起验证边缘网络设备210的序列号,并且可以从网络管理设备290获得用于边缘网络设备210的模板。控制设备220可以将模板发送到边缘网络设备210以被自动安装,以根据该模板来配置边缘网络设备210。

在一些实施例中,网络管理设备290可以被实现为物理设备或虚拟机。在这些和其他实施例中,网络管理设备290可以在物理上位于例如数据中心240内或园区250处的中心位置附近。

在不脱离本公开的范围的情况下,可以对图2进行修改、增加或省略。例如,尽管被示为包括一定数量的边缘网络设备210和外部网络域,但是系统200可以包括任意数量的边缘网络设备210和外部网络域。

图3示出了根据本公开的一个或多个实施例的另一示例系统300。图3示出了边缘网络设备310a,该边缘网络设备310a可以包括多个潜在的连接,用于通过内部网络域305与另一边缘网络设备310b进行通信。例如,边缘网络设备310a可以使用互联网360、MPLS网络370和/或LTE网络380通过内部网络域305通信。边缘网络设备310a和310b可以与图1的边缘网络设备110和/或图2的边缘网络设备210a-210o类似或相似。系统300可以另外包括外部本地设备350,其可以通过外部网络域通信地耦合到边缘网络设备310a。

在一些实施例中,边缘网络设备310a可以包括互联网连接320、MPLS连接330和LTE连接340。如LTE连接340下方的省略号所示,还可以包括任何数量的附加的或其他潜在的连接。在这些和其他实施例中,边缘网络设备310a可以包括用于连接到一个或多个潜在连接的多个电路。例如,边缘网络设备310a可以包括用于互联网连接320的电路A 322和电路B324、用于MPLS连接330的电路A 332和电路B 334、以及用于LTE连接340的电路A 342和电路B 344。在这些和其他实施例中,边缘网络设备310a可以被配置为基于由边缘网络设备310a存储的一个或多个策略来沿着一个或多个电路路由流量。

在一些实施例中,边缘网络设备310a可以被配置为监测各种连接的一个或多个属性。例如,边缘网络设备310a可以监测从边缘网络设备310a到边缘网络设备310b的各种通信链路的抖动、延迟、丢失和/或带宽。在这些和其他实施例中,边缘网络设备310a还可以监测和/或存储各种通信链路的安全属性。例如,可以将互联网360上的链路362和364视为第一安全级别,并将MPLS网络370上的链路372和374视为高于第一安全级别的第二安全级别。

在一些实施例中,边缘网络设备310a可以基于一种或多种策略和/或基于各种连接的一种或多种属性,将用于一个或多个应用的流量路由到特定电路。例如,视频应用可能特别容易受到抖动的影响。边缘网络设备310a可以确定视频流量可以以10ms的抖动在链路382上传输,并且可以确定链路362可能具有4ms的抖动。由于较低的抖动,边缘网络设备310a可以将视频应用的流量转移到链路362而不是链路382。在一些实施例中,从链路382到链路362的转移可以基于基于抖动的SLA。作为另一示例,边缘网络设备310a可以接收用于安全敏感应用(例如,会计应用)的数据流,并且可以具有以下策略:用于该应用的数据将沿着MPLS链路372和/或374之一被路由,即使其他流量可以沿着互联网链路362被路由。作为附加示例,边缘网络设备310a可以包括给定应用具有可用于该应用的10MB/s的带宽的SLA。边缘网络设备310a可以使互联网360上的链路362可用于应用,但是链路362可以提供5MB/s的带宽。边缘网络设备310a还可以向应用提供链路382和384,使得链路362、382和384的整体组合带宽超过SLA的带宽协议。在这些和其他实施例中,边缘网络设备310a可以被配置为基于在正在进行的数据流期间初始接收到数据流、基于数据流的触发事件等或它们的组合来执行这种路由。附加地或替代地,这种路由可以组合多种类型的连接的多个链路以在路由流量流时用于单个流。

在一些实施例中,边缘网络设备310a可以被配置为基于流量的来源将流量路由到各个链路。例如,一个或多个策略可以指示来自企业的一个公司部门的流量沿着MPLS连接330被路由,而用于另一公司部门的流量可以沿着任何链路被路由。

在一些实施例中,边缘网络设备310a可以被实现为计算系统,例如,图11所示的计算系统1100。

在不脱离本公开的范围的情况下,可以对图3进行修改、增加或省略。例如,尽管被示为包括一定数量的边缘网络设备310,但是系统300可以包括任意数量的边缘网络设备310。作为另一示例,尽管被示出为包括三个通信网络(互联网360、基于MPLS的网络370和LTE网络380),但是可以利用任何数量的通信网络。

图4示出了根据本公开的一个或多个实施例的实现软件定义网络的另一示例系统400。系统400可以包括一个或多个边缘网络设备410(例如,边缘网络设备410a-410f),其可以与图1的边缘网络设备110、图2的边缘网络设备210、和/或图3的边缘网络设备310类似或相似。在一些实施例中,边缘网络设备410中的一个或多个可以被集群,例如,边缘网络设备410a和410b。系统400还可以包括一个或多个控制设备420,其可以与图1的控制设备120和/或图2的控制设备220类似或相似。系统400可以另外包括一个或多个通信网络430和/或432(例如,通信网络432a-432c),其可以与图1的通信网络130、图2的通信网络230,和/或图3的互联网360、MPLS网络370和LTE网络380中任一个的组合类似或相似。该系统可以另外包括数据中心440,其可以与图2的数据中心240类似或相似。该系统还可以包括一个或多个第三方资源480(例如,第三方资源480a-480c),其可以与图2的第三方资源280a-c类似或相似。为了讨论图4的目的,第三方资源480a-480c可以服务于同一第三方资源并且可以代表用于访问第三方资源的不同服务器。例如,第三方资源480a可以包括用于访问华盛顿州西雅图的基于云的服务的服务器,第三方资源480b可以包括用于访问加利福尼亚州洛杉矶的基于云的服务的服务器,并且第三方资源480c可以包括用于访问纽约州纽约的基于云的服务的服务器。

在这些和其他实施例中,系统400可以包括本地计算设备450、通过内部网络域405的一个或多个路径(例如,路径461-468)、通过外部网络域的一个或多个路径(例如,路径491-493)、以及一个或多个DNS服务器470(例如,DNS服务器470a和470b)。在一些实施例中,DNS服务器470b可以包括与数据中心440相关联的内部DNS服务器,或者可以包括公共DNS服务器。

在操作中,系统400可以包括例如边缘网络设备410之间和之中的内部网络域405(与参考图1-3描述的内部网络域105、205和/或305类似或相似),并且包括控制设备420。在一些实施例中,系统400可以利用默认路径,使得流量从内部网络域405内部路由到内部网络域405的外部,这样的流量可以被路由通过数据中心440。例如,控制设备420可以包括策略或其他路由指令,该策略或其他路由指令指示默认情况下将退出到外部网络域(例如,互联网)的内部网络域405中的流量将被路由通过数据中心。例如,来自本地计算设备450的数据可以通过路径461-464之一路由到边缘网络设备410e和/或410f之一并路由到数据中心440。在这些和其他实施例中,本地计算设备450可以位于距数据中心440的一定物理距离处。例如,本地计算设备450可以位于华盛顿州斯波坎的分支中,而数据中心440可以位于马萨诸塞州波士顿。

在一些实施例中,系统400可以在与本地计算设备450物理上更接近的位置处包括一个或多个边缘网络设备410。例如,边缘网络设备410c可以在华盛顿州西雅图的主机托管设施处,并且边缘网络设备410d可以在加利福尼亚州圣何塞的主机托管设施处。

在一些实施例中,系统400可以包括多个路径,本地计算设备450可以通过该多个路径访问第三方资源480之一。例如,这样的路径可以包括461+491、462+491、463+491、464+491、465+493、466+492、467+493和468+492的路径组合。每个路径可具有不同的性能和性能指标,例如,抖动、延迟、丢失和/或带宽。

在一些实施例中,控制设备420可以将一个或多个应用标识为重新路由应用。重新路由应用可以包括利用第三方资源的应用程序,并且其流量可以沿着与默认路径不同的路径被路由,以基于去往和来自第三方资源的路径的性能来改善应用的性能。例如,一些应用可能容易受到来自抖动、延迟、丢失和/或带宽中的一项或多项的低性能度量的性能下降的影响。在这些和其他实施例中,重新路由应用的流量可以或可以不被重新路由。

在一些实施例中,可以基于通过系统400的各种路径的性能度量来重新路由用于重新路由应用的流量。例如,本地计算设备450可以基于路径466+492包括与默认路径461+491相比提高的性能来重新路由来自路径461+491的默认路径的流量,以替代地沿路径466+492路由流量。

在一些实施例中,尝试执行这样的重新路由可能强加由本公开的一个或多个实施例解决的特定技术问题。例如,如果流量流被重新路由以使得流量流来自不同的原始地址,则与该流相关联的会话可以被中断。例如,流的目的地服务器可拒绝来自不同的原始IP地址的分组。在这些和其他实施例中,这种重新路由可能会中断会话(例如,TCP会话),使得可能需要创建新的会话。作为另一示例,如果已经针对默认路径执行了DNS查询,则标识与替代路径关联的DNS服务器可能是困难的。在这些和其他实施例中,针对这种问题的解决方案可通过保留网络资源、减少冗余流量、以及减少响应时间以使计算机更快地运行,从而使计算机更高效地执行。

DNS查询。在一些实施例中,本地计算设备450可以包括使用第三方资源480的一个或多个资源的应用。在标识访问第三方资源480的路径时,本地计算设备450可以提交DNS查询。DNS查询可以包括URL以及接收与URL相关联的IP地址的请求,使得本地计算设备450可以将请求路由到该IP地址。例如,DNS查询可以被路由到确定哪个IP地址与第三方资源480的URL相关联的DNS服务器。本地计算设备450可以使用该IP地址来访问第三方资源480。例如,使用通过数据中心440的默认路径,DNS查询可以被路由到与DNS服务器470a相比在物理上相对接近数据中心440的DNS服务器470b。例如,DNS服务器470b可以位于纽约州纽约,并且DNS服务器470a可以位于华盛顿州西雅图。在这些和其他实施例中,沿着其中本地计算设备450经由马萨诸塞州波士顿的数据中心440访问互联网的默认路径,DNS查询可以被路由到位于纽约州纽约的DNS服务器470b。在这些和其他实施例中,DNS响应可以基于与DNS服务器470b的物理接近度来包括纽约州纽约的第三方资源480c的IP地址。距本地计算设备450的这种物理距离可能导致抖动、延迟、丢失和/或带宽中的一个或多个性能度量的降低。

在一些实施例中,如果本地计算设备450对第三方资源480的DNS查询通过边缘网络设备410到来,则边缘网络设备410a可以确定与DNS查询相关联的应用是重新路由应用。例如,边缘网络设备410a可以将DNS查询的URL与被指定为重新路由应用的应用的URL的列表、数据库等进行比较。基于与重新路由应用相关联的DNS查询,边缘网络设备410a可以通过重新路由路径发送DNS查询。例如,不是沿路径461将DNS查询发送到DNS服务器470b,而是可以沿路径466将DNS查询路由到DNS服务器470a。在这些和其他实施例中,基于在DNS服务器470a而非DNS服务器470b处接收到DNS查询,DNS响应可以指示流量将被路由到华盛顿州西雅图的第三方资源480a,而不是纽约州纽约的第三方资源480c。在这样的实施例中,第三方资源480a可以比第三方资源480c在物理上更接近本地计算设备450。这样的物理接近度可以改善本地计算设备450和第三方资源480c之间的路径的一个或多个性能度量。

在一些实施例中,边缘网络设备410a可以基于包括与重新路由应用相关联的统一资源定位符(URL)的DNS查询来标识将被重新路由的DNS查询。例如,控制设备420可以将与重新路由应用相关联的URL的列表发送到边缘网络设备410a。当接收到DNS查询时,边缘网络设备410a可以将DNS查询的URL与和装置重新路由应用相关联的URL的列表进行比较。在一些实施例中,响应于确定DNS查询的URL与重新路由应用相关联,边缘网络设备410a可以确定重新路由路径。附加地或替代地,边缘网络设备410a可以在接收与应用相关联的DNS查询之前,确定用于重新路由应用的重新路由路径。

在一些实施例中,第三方资源的一个或多个提供商,例如,提供第三方资源480的第三方,可以向控制设备420和/或与控制设备420相关联的实体周期性地提供与第三方资源相关联的URL的列表。在这些和其他实施例中,控制设备420可以向边缘网络设备410周期性地提供与重新路由应用的第三方资源相关联的URL的更新列表。例如,在周期性(例如,每周、每两周、每月等)周期上,边缘网络设备410可以获得URL的更新列表。附加地或替代地,可以以不规则的间隔而不是周期性地、或其任何组合执行这样的URL更新。

在一些实施例中,边缘网络设备410a可以重写DNS查询,使得DNS查询可以根据重新路由路径被路由通过内部网络域405。例如,边缘网络设备410a可以修改DNS查询的分组的头部、有效载荷或其他部分,使得DNS查询沿着重新路由路径而非默认路径被路由通过内部网络域405。例如,如果DNS服务器470b是与数据中心440相关联的内部DNS服务器(例如,由托管和/或操作内部网络域405的组织或实体托管和/或操作的DNS服务器),则边缘网络设备410a可以将头部中的目的地IP地址重写为公共DNS服务器(例如,DNS服务器470a)而非内部DNS服务器470b的公共IP地址。作为另一示例,如果DNS服务器470b是外部DNS服务器但是位于数据中心440附近(和/或由内部网络域405默认用于解析DNS查询),则边缘网络设备410a可以重写DNS查询的头部中的目的地IP地址为,以针对公共DNS服务器470a而非DNS服务器470b。

在一些实施例中,边缘网络设备410a可以监测与重新路由的DNS查询相关的DNS响应。例如,边缘网络设备410a可以监测包括与DNS查询的事务标识号相似、相同或以其他方式相关的事务标识号的DNS响应。在这些和其他实施例中,边缘网络设备410a可以重写DNS响应。例如,可以修改DNS响应,使得DNS响应表现为已经沿着默认路径被路由和/或DNS响应表现为已经从DNS服务器470b而不是从DNS服务器470a被发送。在这些和其他实施例中,边缘网络设备410a可以通过修改DNS响应分组的头部、有效载荷或其他字段来重写DNS响应。例如,边缘网络设备410a可以重写DNS响应中的返回路由信息,使得DNS响应表现为已经从DNS服务器470b被发送。作为另一示例,可以修改生存时间(TTL)字段以引起更频繁的DNS查询。

在一些实施例中,通过监测和修改DNS查询和/或响应,诸如本地计算设备450和/或DNS服务器470b之类的客户端可能不知道DNS查询和响应的重新路由。

在一些实施例中,可以对任何DNS查询重新路由采用类似方法。例如,在其中组织具有多个DNS服务器、VPN、代理情况、用于跨不同域的查找的不同DNS服务器等的情况下,可以根据本公开来重新路由DNS查询。

NAT出口路由。在一些实施例中,与重新路由应用相关联的流量可以被路由通过特定NAT出口点。例如,参考图4,当数据流从本地计算设备450去往第三方资源480c时,数据中心440可以提供NAT服务并且用作来自操作内部网络域405的实体的NAT出口点。例如,数据中心440可以修改从本地计算设备450到第三方资源480c的数据流的分组,使得分组中的源IP地址从本地计算设备450的IP地址改变为全局唯一IP地址。附加地或替代地,边缘网络设备410中的一个或多个可以用作NAT出口点,例如,边缘网络设备410c和/或410d。

在将从本地计算设备450流向第三方资源480的流量从默认路径(例如,通过数据中心440)重新路由到重新路由路径(例如,通过边缘网络设备410c或410d)时,NAT出口点可以例如从数据中心440改变为边缘网络设备410c。在进行这种转换时,在流中可能会遇到中断,因为第三方资源480可能开始接收具有不同源IP地址的分组(例如,具有来自边缘网络设备410c的全局IP地址而不是数据中心440的全局IP地址的分组),并丢弃这样的分组。在这些和其他实施例中,可以沿着重新路由路径(例如,通过边缘网络设备410c作为NAT出口点)而不是默认路径(例如,通过数据中心440作为NAT出口点)建立新的TCP连接。

在这些和其他实施例中,一个或多个边缘网络设备410可以包括存储装置(例如,缓存或其他存储器设备),该存储装置存储与重新路由应用相关联的一个或多个地址。例如,当边缘网络设备410a接收到与给定IP地址形成TCP连接的请求时,边缘网络设备410可以将IP地址与所存储的地址进行比较。如果用于TCP连接的地址与所存储的地址之一匹配,则边缘网络设备410可以沿着重新路由路径来路由分组以形成TCP连接。例如,边缘网络设备410a可以接收分组以与第三方资源480形成TCP连接,并且IP地址可以由边缘网络设备410a存储,指示IP地址与重新路由应用相关联以利用边缘网络设备410c作为NAT出口点。基于IP地址与所存储的IP地址相匹配,边缘网络设备410a可以路由分组以形成TCP连接,以遵循通过边缘网络设备410c到达第三方资源480a的路径。通过经由与重新路由路径相关联的NAT出口点路由分组,边缘网络设备410a可以促进本地计算设备450与第三方资源480之间的持续通信。

在一些实施例中,边缘网络设备410a可以利用诸如深度分组检查引擎之类的流量流分析器来确定流量流是否与重新路由应用相关联。流量流分析器可以包括网络设备的一个或多个软件或硬件元件,其被配置为在流量流通过网络设备时检查流量流的分组。流量流分析器可以分析数据流中的分组的头部、有效载荷、或两者。这样的流量流分析器可以被配置为基于流量流的分组的内容来标识与流量流相关联的应用。如果流量流与重新路由应用相关联,则边缘网络设备410a可以将第三方资源480的目的地IP地址存储为与重新路由应用相关联的地址。在这些和其他实施例中,可以使用所存储的地址来比较未来流量流,使得如果通过边缘网络设备410a的未来流量流被定向到所存储的IP地址,则可以将未来流量流标识为与来自第一分组的重新路由应用相关联。

在一些实施例中,边缘网络设备410a的流量流分析器可以操作流动的流量,例如,在建立TCP连接之后的流量。在一些实施例中,流量流可以是沿着默认路径(例如,通过数据中心440作为NAT出口点)而不是重新路由路径(例如,通过边缘网络设备410c作为NAT出口点)的流量流。在这些和其他实施例中,在流量流分析器确定沿着默认路径的流与重新路由应用相关联之后,边缘网络设备410a可以沿着重新路由路径来重新路由该流。在这些和其他实施例中,可以使用重新路由NAT出口点刷新或以其他方式重新建立TCP连接。

在一些实施例中,边缘网络设备410a可以监测DNS查询以标识与重新路由应用相关联的IP地址。例如,如果DNS查询流过边缘网络设备410a,则边缘网络设备410a可以将DNS查询的URL标识为与重新路由应用相关联。基于URL与重新路由应用相关联,当响应于DNS查询的DNS响应流过边缘网络设备410a时,边缘网络设备410a可以监测或以其他方式观察该DNS响应。在DNS响应中标识的IP地址可以被存储为所存储的地址之一,以进行比较来标识与重新路由流相关联的流。在这些和其他实施例中,边缘网络设备410a可以获得与重新路由流量相关联的URL的列表。例如,控制设备420可以周期性地发送与重新路由应用相关联的URL的列表,使得针对该列表上的URL的DNS查询可以提示边缘网络设备410a监测相关联的DNS响应。

在一些实施例中,可以定期更新或丢弃所存储的地址。例如,边缘网络设备410a可以被配置为丢弃在超过阈值的持续时间内尚未与流量流匹配的所存储的地址。这样的持续时间可以包括十二小时、二十四小时、四十八小时、七十二小时、五天、一星期、一个月、或更长时间。

路径选择。在一些实施例中,边缘网络设备410a可以确定重新路由应用的流量流将采用哪个路径。例如,边缘网络设备410a可以确定流量流与重新路由应用相关联,并且可以选择用于该应用的路径。另外地或替代地,边缘网络设备410a可以维护与重新路由应用相关联的重新路由路径的数据库或其他存储装置,使得当流量流被确定为与重新路由应用相关联时,边缘网络设备410a可能已经为该流量流指定了重新路由路径。

在一些实施例中,边缘网络设备410中的每一个可以评估给定边缘网络设备410和其他边缘网络设备410之间的路径的性能。例如,边缘网络设备410a可以监测路径461、462、465和466的性能;并且边缘网络设备410b可以监测路径463、464、467和468的性能。在这些和其他实施例中,边缘网络设备410可以监测各个路径的抖动、延迟、丢失、和/或带宽中的一个或多个。例如,可以在边缘网络设备410之中或之间传送一个或多个测试分组,并且可以使用测试分组的行进时间和/或完整性的特性来确定路径的性能度量。附加地或可替代地,一个或多个性能度量可以被组合成反映内部网络域405内的路径的性能的单个分数。在一些实施例中,可以基于每个边缘网络设备410内的应用端点的已知可用性来执行这样的评估,例如,通过BFD。

在一些实施例中,一个或多个边缘网络设备410可以将所确定的性能度量传送给系统400的一个或多个组件。例如,边缘网络设备410可以将性能度量传送到控制设备420,并且控制设备420可以将性能度量分发给边缘网络设备410中的一个或多个。作为另一示例,边缘网络设备410可以将性能度量传送到一个或多个其他边缘网络设备410(例如,边缘网络设备410b可以将路径463、464、467和468的性能度量传送到边缘网络设备410a)。

在一些实施例中,边缘网络设备410中的一个或多个可以评估给定边缘网络设备410与到第三方资源480的一个或多个连接之间的路径的性能。例如,边缘网络设备410e和/或410f可以监测路径491的性能,边缘网络设备410c可以监测路径492的性能,并且边缘网络设备410d可以监测路径493的性能。在这些和其他实施例中,边缘网络设备410可以监测各个路径的抖动、延迟、丢失、和/或带宽中的一个或多个。例如,一个或多个请求可以从边缘网络设备410被传送到第三方资源480,并且可以使用针对该请求的响应的行进时间和/或完整性的特性来确定路径的性能度量。例如,边缘网络设备410可以利用应用层可达性工具。在一些实施例中,一个或多个性能度量可以被组合成反映内部网络域405的外部的路径的性能的单个分数。

在一些实施例中,边缘网络设备410可以维护系统400中各个路径的性能度量的分数的表、数据库或其他存储结构。在这些和其他实施例中,边缘网络设备410可以利用所存储的分数来确定在重新路由用于重新路由应用的流时重新路由应用可以使用的路径。例如,边缘网络设备410a可以存储具有系统400中的每个路径的单个分数的表。

在一些实施例中,边缘网络设备410a可以比较到第三方资源480的潜在路径的分数,以确定重新路由流量可以沿着哪个路径流动。例如,边缘网络设备410a可以比较路径461+491、462+491、465+493、466+492、467+493和468+492的组合分数。在这些和其他实施例中,边缘网络设备410可以确定哪个分数代表与重新路由应用相关联的流量的最佳性能。

在一些实施例中,内部网络域405在两个边缘网络设备410之间可包括多个可能路径。例如,边缘网络设备410a和边缘网络设备410d之间的路径465可以表示MPLS连接,并且边缘网络设备410a和边缘网络设备410d之间的第二连接(未示出)可以包括互联网或蜂窝连接。在这些和其他实施例中,每个路径(包括相同的两个边缘网络设备410之间的多个路径)可以各自包括唯一分数。使用这样的唯一分数,边缘网络设备410可以确定要使用哪个路径。

在一些实施例中,如果多个路径具有相同的分数,该分数代表用于重新路由应用流量的最佳分数,则边缘网络设备410a可以沿着具有最佳分数的多个路径来路由流量。例如,可以沿着第一路径来路由重新路由应用的第一流,并且可以沿着具有与第一路径相同的分数的第二路径来路由重新路由应用的第二流。在确定是沿着第一路径还是沿着第二路径进行路由时,边缘网络设备410a可以在其他输入中基于分组的头部内容执行散列功能。取决于散列函数的输出,该流可以被路由到第一路径或第二路径之一。尽管被描述为具有最佳分数的一个或多个路径,但是具有相对于阈值的分数的路径也可以被选择。

在一些实施例中,边缘网络设备410a可以为重新路由路径指定主路径和备用路径。边缘网络设备410a可以监测重新路由路径的主路径的性能,并且基于主路径的分数的变化,边缘网络设备410a可以将流量重新路由到备用路径或其他路径。在一些实施例中,可以相对于SLA监测和/或重新路由分数。

在不脱离本公开的范围的情况下,可以对图4进行修改、增加或省略。例如,尽管被示为包括一定数量的边缘网络设备410,但是系统400可以包括任意数量的边缘网络设备410。作为另一示例,尽管被示为在任意两个边缘网络设备410之间包括单个路径,但是可以在边缘网络设备410之间包括任意数量的介质上的任意数量的路径。

图5示出了根据本公开的一个或多个实施例的在软件定义网络内路由网络流量的示例方法500的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框510处,可以沿着第一路径通过远程网络位置将网络中的流量从本地网络设备路由到第三方网络资源。例如,本地计算设备(例如,图4的本地计算设备450)可以通过边缘网络设备(例如,边缘网络设备410a)发送请求或其他网络流量。在这些和其他实施例中,边缘网络设备可以被配置为沿着默认路径路由数据。例如,默认路径可遍历内部网络域到数据中心,然后通过互联网从数据中心遍历到第三方网络资源。

在框520处,可以标识与流相关联的应用。例如,边缘网络设备可以利用深度分组检查引擎来标识与流相关联的应用。作为另一示例,边缘网络设备可以监测DNS查询中的URL,以确定指向DNS响应中的IP地址的流量与和URL关联的给定应用相关联。

在框530处,可以确定与该流相关联的应用是否为重新路由应用。例如,边缘联网设备可以将所标识的应用与所存储的数据库或已知重新路由应用的列表进行比较。

在框540处,可以确定第一路径的第一排名。例如,边缘网络设备可以包括通过内部网络域的第一路径的性能的第一分数,并且将第一分数与内部网络域之外的第一路径的第二分数相结合以得出第一排名。在这些和其他实施例中,第一排名可以代表默认路径的性能。第一分数和/或第二分数可以基于许多因素,包括抖动、延迟、丢失、带宽、和/或与网络性能相关联的其他因素。

在框550处,可以确定第二路径的第二排名,其中,第二路径可以包括从本地网络设备到第三方网络资源,并且不包括远程网络位置。例如,第二路径可以包括重新路由路径,而第一路径表示默认路径。在一些实施例中,可以针对任何数量的可能的或潜在的重新路由路径来重复框550。在一些实施例中,可以以与在框540处确定第一排名所使用的相似或类似的方式来确定第二路径的排名。

在框560处,基于第二排名超过第一排名,可以沿着第二路径重新路由流量。例如,基于第二路径(例如,重新路由路径)与第一路径(例如,默认路径)相比具有高于阈值量的更高排名,可以沿着第二路径重新路由给定流的流量。在一些实施例中,这样的阈值可以包括第二排名相对于第一排名的任何增加。附加地或替代地,阈值可以包括某个值以使得流继续沿着第一路径(例如,默认路径),直到第二路径(例如,重新路由路径)的性能增加足以验证偏离默认操作的裕量(margin)。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开的实施例的实质。

图6示出了根据本公开的一个或多个实施例的重新路由域名系统(DNS)请求的示例方法600的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框610处,可接收DNS查询,其中,DNS查询与被标识用于通过利用替代网络设备的替代路径而非默认路径进行重新路由的流量流相关联。例如,企业或组织可以操作和/或以其他方式具有与该组织相关联的专用DNS服务器或服务(例如,图4的DNS服务器470b)。边缘网络设备(例如,图4的边缘网络设备410)可以从本地计算设备(例如,图4的本地计算设备450)接收DNS查询。边缘网络设备可以被配置为通常通过将这样的查询路由到例如在数据中心中的专用DNS服务器附近的边缘网络设备来将DNS查询路由到专用DNS服务器。然而,边缘网络设备可以确定DNS查询与被标识用于重新路由到替代边缘网络设备的流相关联,例如,与重新路由应用相关联。在一些实施例中,DNS查询可以包括针对第三方资源的查询,并且DNS查询的URL可以与第三方资源相关联。

在框620处,DNS查询可以被重写,使得DNS请求被路由通过替代路径并被路由到与替代路径相关联的DNS服务器。例如,边缘网络设备可以将DNS查询路由到替代边缘网络设备(例如,边缘网络设备410c而不是边缘网络设备410e)。替代边缘网络设备可以提供对诸如互联网之类的外部网络域的访问,使得DNS查询可以被路由到替代边缘网络设备附近的公共DNS服务器(例如,DNS服务器470a)。在一些实施例中,可以通过将目的地IP地址改变为公共DNS服务器而不是专用DNS服务器的IP地址来重写DNS请求。

在框630处,可以从与替代路径相关联的DNS服务器接收DNS响应,并且DNS响应中的资源可以基于经过替代网络设备而不是沿着默认路径的DNS查询。例如,边缘网络设备可以基于DNS查询的URL接收具有第三方资源的IP地址的DNS响应。在这些和其他实施例中,所提供的IP地址可以由DNS服务器基于通过替代网络设备而不是默认路径的DNS查询来提供。例如,如果默认路径去往位于马萨诸塞州波士顿的数据中心,并然后去往位于纽约州纽约的相关联DNS服务器以通过访问纽约州纽约来获取第三方资源,则关于该第三方的DNS查询资源可将访问点的IP地址返回给位于纽约州纽约市的第三方资源。然而,如果DNS查询被路由到位于华盛顿州西雅图的DNS服务器,并且第三方资源可以访问华盛顿州西雅图或加利福尼亚州洛杉矶,则在纽约州纽约接入点之前,DNS响应可包括华盛顿州西雅图或加利福尼亚州洛杉矶接入点之一的IP地址。因此,在一些实施例中,DNS响应中的资源可以基于DNS查询所采用的路径,例如,利用替代网络设备的路径而不是默认路径。

在框640处,DNS响应可以被重写,使得DNS响应表现为已经沿着默认路径和/或来自与默认路径相关联的DNS服务器。例如,在框620处重新路由DNS查询和/或重写DNS查询的边缘网络设备可以监测与DNS查询相关联的DNS响应。边缘网络设备可以重写DNS响应,例如,通过重写信息的目的地IP地址或源IP地址,使得DNS响应表现为已沿着默认路径发送或者已从与默认路径关联的DNS服务器发送。例如,在一些实施例中,提交DNS查询的本地计算设备可以被配置为拒绝来自除专用DNS服务器之外的DNS服务器的DNS响应。在这些和其他实施例中,通过重写DNS查询和DNS响应,提交DNS查询的本地计算设备和/或响应DNS查询的DNS服务器可以根据其默认操作来处理和提交DNS查询,但DNS查询可被重新路由。在一些实施例中,提交DNS查询的本地计算设备和/或响应DNS查询的DNS服务器可能不知道这种重新路由已经发生。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开实施例的实质。

图7示出了根据本公开的一个或多个实施例的路由流量的另一示例方法700的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框710处,可以标识与网络设备相关联的流量流分组内的地址。例如,边缘网络设备(例如,图4的边缘网络设备410)可以标识流量流内的分组的目的地IP地址。附加地或可替代地,该地址可以包括DNS请求的URL,或者边缘网络设备的深度分组检查引擎或其他分组分析器可以确定分组的地址。

在框720处,可以将地址与一个或多个存储的地址进行比较,该一个或多个存储的地址与和通过网络设备的流量的默认路由不同的替代流量路径相关联。例如,边缘网络设备可以存储重新路由应用和相关联地址的列表、数据库、或其他存储结构。例如,给定重新路由应用可具有相关联URL、目的地IP地址、或与该重新路由应用相关联的其他地址。附加地或替代地,该列表、数据库或其他存储结构可包括要用于重新路由应用的重新路由路径。在一些实施例中,可以周期性地更新所存储的重新路由路径。在一些实施例中,边缘网络设备可以将在框710处标识的地址与所存储的地址进行比较,以确定流量是否流动。可以使用多种方法中的任一种来标识和/或存储网络设备中的地址以进行比较,图8和9的方法是其中的两个示例。

在框730处,可以确定在框710中标识的地址是否与所存储的地址之一匹配。如果地址与所存储的地址之一匹配,则方法700可以进行到框740。如果地址与所存储的地址之一不匹配,则该方法可以进行到框760。

在框740处,流量流可以与其数据将沿着替代路径被路由的应用相关联。例如,如果地址与所存储的地址之一匹配,则可以将流量流标记或以其他方式标识为与重新路由应用相关联,例如,被存储为与所存储的地址相关联的重新路由应用。

在框750处,可以沿着替代路径路由分组。例如,基于被标识为与重新路由应用相关联的流量流,可以如本公开中所描述来沿着重新路由路径对流量流进行重新路由。在一些实施例中,可以通过比较通过内部网络域和/或外部网络域的一个或多个潜在路径的分数或排名,并选择具有最佳分数或高于阈值的分数的路径作为替代路径来选择替代路径。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开实施例的实质。

图8示出了根据本公开的一个或多个实施例的获得地址的示例方法800的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框810处,可以接收其数据将沿着替代流量路径被路由的应用的标识符。例如,边缘网络设备(例如,图4的边缘网络设备410)可以从控制设备(例如,图4的控制设备420)接收用于重新路由应用的标识符的列表。在这些和其他实施例中,控制设备可以周期性地接收对哪些应用是重新路由应用和/或与重新路由应用相关联的标识符的更新。例如,给定重新路由应用的提供商可以向控制设备的操作员提供与重新路由应用相关联的一个或多个URL。例如,控制设备可以向边缘网络设备发送以下通信:Office是重新路由应用,并且相关联的URL包括*.office365.com、home.office.com、portal.office.com、agent.office.net、www.office.com、outlook.office365.com、portal.microsoftonline.com、*.msocdn.com、appsforoffice.microsoft.com、suite.office.net、account.office.net、*.onmicrosoft.com、*.office.com、*.live.com、*.msedge.net、*.microsoft.com、*.portal.cloudappsecurity.com等

在框820处,可以接收与该应用相关联的DNS查询。例如,边缘网络设备可以接收具有与和重新路由应用相关联的URL之一相匹配的URL(例如,portal.microsoftonline.com)的DNS查询。在一些实施例中,基于接收到这样的DNS查询,边缘网络设备可以标记或以其他方式存储对特定DNS查询的指示,使得边缘网络设备可以标识所发送的DNS响应以响应于特定DNS查询。

在框830处,可以在响应于框820的DNS查询而接收到的DNS响应中标识IP地址。例如,边缘网络设备可监测与框820的DNS查询相关联的DNS响应。在标识DNS响应之后,边缘网络设备可以标识DNS响应内的IP地址。

在框840处,可以将IP地址存储为所存储的地址。例如,边缘网络设备可以将框830的IP地址存储为如在图7的方法700中使用的所存储的地址之一。

在一些实施例中,方法800可以允许流量流与该流量流的第一分组一起沿着重新路由路径被路由,因为监测DNS查询和响应可以使重新路由应用的IP地址将由边缘网络设备在DNS查询的提交期间并且在IP地址处的实际第三方资源与请求计算设备之间建立流之前来存储。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开实施例的实质。

图9示出了根据本公开的一个或多个实施例的用于获取地址的另一示例方法900的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框910处,可以监测流量流以确定该流量流是否与其数据将沿着替代路径被路由的应用相关联。例如,边缘网络设备(例如,图4的边缘网络设备410)可以监测通过边缘网络设备的各个流以确定与该流相关联的应用。这样的监测可以由深度分组检查引擎或与网络设备相关联的任何其他分组监视特征或服务来执行。网络设备还可以确定所标识的应用是否是重新路由应用。

在框920处,可以确定流量流是否与其数据将沿着替代路径被路由的应用相关联。例如,边缘网络设备可以将所标识的应用与已知的重新路由应用的列表进行比较。如果流量流与重新路由应用相关联,则方法900可以进行到框930。如果流量流不与重新路由应用相关联,则方法900可以返回到框910以监测额外的流量流。

在框930处,可以将重新路由应用的流的目的地IP地址存储为所存储的地址之一。例如,边缘网络设备可以将流量流的分组的目的地IP地址存储为如在图7的方法700中使用的所存储的地址之一。

在一些实施例中,在存储地址之后,边缘网络设备可以沿着重新路由的路径来重新路由流量流。然而,这样的重新路由可能导致流的分组被目的地拒绝,因为该流可能来自不同的NAT出口点。在这些和其他实施例中,这种流中断可能使得发起该流的本地计算设备刷新该流、或以其他方式通过重新建立连接来重新连接该流。在这些和其他实施例中,边缘网络设备可以接收流以用于刷新或重新连接,并且可以基于地址被存储在边缘网络设备中而沿着替代路径路由该流。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开实施例的实质。

图10示出了根据本公开的一个或多个实施例的路由选择的示例性方法1000的流程图。尽管被示为离散的框,但根据特定实现方式,各个框可以被划分为附加框、被组合为更少的框、或被消除。

在框1005处,可以选择流量流的目的地,其中,该目的地在第一网络域之外的第二网络域中。例如,可以选择第三方资源(例如,图4的第三方资源480)作为流量流的目的地,并且可以经由互联网访问第三方资源,并且对第三方资源的访问可以在内部网络域(例如,图4的内部网络域405)之外。

在框1010处,可以确定从流量流的起点到目的地的多个路径。每个路径可以包括第一网络域路径和第二网络域路径。例如,如果本地计算设备(例如,图4的本地计算设备450)将流量流发起到诸如第三方资源之类的目的地,则可以确定从本地计算设备到第三方资源的多个路径,其中,每个路径包括第一网络域路径(例如,内部网络域405内的路径461-468)和第二网络域路径(例如,内部网络域405外部的路径491、492和493)。

在框1015处,可以获得唯一的(unique)第一网络域路径的第一性能分数。例如,可以获得针对通过内部网络域的每个唯一路径(例如,路径461-468)的性能分数。在这些和其他实施例中,第一网络域路径可以包括使用不同介质的网络设备之间的多个路径,例如,互联网上的第一路径和使用MPLS连接的第二路径,或者路径可以包括其组合。在一些实施例中,可以监测第一性能分数以获得第一性能分数,或者可以周期性地测量第一网络域路径的性能并且可以存储相关联的第一性能分数。第一性能分数可以基于抖动、延迟、丢失、带宽或任何其他性能度量。

在框1020处,可以获得唯一的第二网络域路径的第二性能分数。例如,可以获得从边缘网络设备到内部网络域外部的第三方资源的路径的性能分数(例如,路径491、492和493)。在这些和其他实施例中,可以使用应用层可达性工具来获得第二性能分数。另外地或可替代地,可以周期性地测量沿着第二网络域路径的性能,并且可以存储第二性能分数。

在框1025处,对于从起点到目的地的多个路径中的每个路径,可以将第一网络域路径的第一性能分数和第二网络域路径的第二性能分数进行组合。例如,参考图4,如果本地计算设备450是起点并且第三方资源480是目的地,则组合可以包括第一网络域路径461和第二网络域路径491(461和491)、462和491、463和491、464和491、465和493、466和492、467和493、468和492的分数。在这些和其他实施例中,可以使用包括加法、乘法或复杂数学组合的任何运算来组合第一性能分数和第二性能分数。

在框1030处,可以选择具有最佳组合分数的一个或多个路径作为主路径。例如并且参考图4,如果路径466和492的组合分数比其他潜在路径的组合分数更好,则该路径466+492可以被选为主路径。作为另一示例,如果路径466和492具有与路径465和493相同的分数或其阈值量内的分数,则可以将两个组合路径(466+492和465+493)选为主路径。例如,使用等成本多路径(ECMP)路由,可以沿466+492路径或465+493路径来路由流,例如,通过对流的分组的头部进行散列来确定可以沿着哪个路径来路由流。

在框1035处,可基于组合分数将另一路径选为备用路径。例如,可以选择具有次佳分数的路径、利用不同NAT出口点的路径、或利用不同初始边缘网络设备的路径作为备用路径。

在框1040处,可以沿着主路径来路由流量流。例如,可以沿着在框1030处选择的路径来路由流量流。在一些实施例中,在框1030处选择的主路径可以不同于用于内部网络域的默认路径。例如,默认路径可以包括将流路由到数据中心,并且在框1030处选择的路径可以在与数据中心不同的位置处离开内部网络域。

在框1045处,可以确定主路径的组合性能分数是否低于阈值。例如,可以周期性地或连续地监测主路径的性能。在一些实施例中,阈值可以基于与流量流相关联的应用的SLA。如果确定组合性能分数高于阈值,则方法1000可以返回到框1040,使得流继续沿着主路径被路由。如果确定组合性能分数低于阈值,则方法1000可以进行到框1050。

在框1050处,可以沿着备用路径来重新路由流量流。例如,如果沿着主路径的性能下降到与重新路由应用相关联的SLA以下,则可以沿着备用路径来重新路由流量流。在一些实施例中,代替沿着备用路径路由流量流,该方法可以返回到框1015、1020、1025、1030和/或1040,使得重新分析性能分数并且基于最近的性能分数来选择新的主路径,而不是先前选择的备用路径。

本领域的技术人员将理解,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,所概述的功能和操作仅作为示例提供,并且某些功能和操作可以是可选的、组合为较少的功能和操作、或者扩展为附加的功能和操作,而不背离所公开实施例的实质。

图11示出了根据本公开中描述的至少一个实施例的示例计算系统1100。系统1100可以包括被配置用于测试软件的任何合适的系统、装置或设备。计算系统1100可以包括处理器1110、存储器1120、数据存储装置1130和通信单元1140,它们都可以通信地耦合。在一些实施例中,网络设备(例如,图1-4的边缘网络设备110、210、310或410)、控制设备(例如,图1-4的控制设备120、220、320或420)、本地计算设备(例如,图4的本地计算设备450)、或本公开的其他计算设备中的任一项可以被实现为计算系统1100。附加地或替代地,网络设备、控制设备、本地计算设备或其他计算设备中的一个或多个可被实现为在诸如计算系统1100之类的物理计算系统上运行的虚拟机。

通常,处理器1110可以包括任何合适的专用或通用计算机、计算实体、或包括各种计算机硬件或软件模块的处理设备,并且可以被配置为执行存储在任何适用的计算机可读存储介质上的指令。例如,处理器1110可以包括微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或被配置为解释和/或执行程序指令和/或处理数据的任何其他数字或模拟电路。

尽管在图11中被示为单个处理器,但应当理解,处理器1110可以包括分布在任意数量的网络或物理位置上的任意数量的处理器,这些处理器被配置为单独地或共同地执行任意数量的本公开中描述的操作。在一些实施例中,处理器1110可以解释和/或执行存储在存储器1120、数据存储装置1130、或存储器1120和数据存储装置1130中的程序指令和/或处理其中的数据。在一些实施例中,处理器1110可以从数据存储装置1130获取程序指令,并将程序指令加载到存储器1120中。

在程序指令被加载到存储器1120中之后,处理器1110可以执行程序指令,例如,用于分别执行图5-10的方法500、600、700、800、900和/或1000的指令。例如,处理器1110可以确定流量流与重新路由应用相关联,并且沿着具有最佳性能分数的路径重新路由流量流。作为另一示例,处理器1110可以重写DNS查询和/或DNS回复。作为附加示例,处理器1110可以路由流以使得可以利用与重新路由路径相关联的NAT出口点。作为附加示例,处理器1110可以确定多个路径中的哪个路径是最佳路径,并相应地重新路由流量。

存储器1120和数据存储装置1130可以包括计算机可读存储介质或一个或多个计算机可读存储介质,以用于运载或在其上存储计算机可执行指令或数据结构。这样的计算机可读存储介质可以是可由通用或专用计算机(例如,处理器1110)访问的任何可用介质。在一些实施例中,计算系统1100可以包括或可以不包括存储器1120和数据存储装置1130中的任一个。

作为示例而非限制,这种计算机可读存储介质可以包括非暂态计算机可读存储介质,其包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)、或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪存设备(例如,固态存储设备)、或可用于以计算机可执行指令或数据结构的形式运载或存储所需的程序代码并且可以由通用或专用计算机访问的任何其他存储介质。以上的组合也可以包括在计算机可读存储介质的范围内。计算机可执行指令可以包括例如被配置为使处理器1110执行特定操作或一组操作的指令和数据。

通信单元1140可以包括被配置为通过诸如MPLS连接、互联网、蜂窝网络(例如,LTE网络)等之类的网络发送或接收信息的任何组件、设备、系统或其组合。在一些实施例中,通信单元1140可以与位于同一系统内的其他位置、相同位置、甚至其他组件的其他设备进行通信。例如,通信单元1140可以包括调制解调器、网卡(无线或有线)、光通信设备、红外通信设备、无线通信设备(例如,天线)、芯片组(例如,蓝牙设备、802.6设备(例如,城域网(MAN))、WiFi设备、WiMax设备、蜂窝通信设施等)等、或其任意组合。通信单元1140可以允许与本公开中描述的网络和/或任何其他设备或系统交换数据。例如,通信单元1140可以允许系统1100与其他系统通信,例如,网络设备、控制设备、和/或其他网络。

在不脱离本公开的范围的情况下,可以对系统1100进行修改、增加或省略。例如,数据存储装置1130可以是位于多个位置并且由处理器1110通过网络访问的多个不同的存储介质。

如上所述,本公开中描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机(例如,图11的处理器1110),如下文更详细地讨论。此外,如上所述,可以使用计算机可读介质(例如,图11的存储器1120或数据存储装置1130)用于运载或在其上存储计算机可执行指令或数据结构来实现本公开中描述的实施例。

如本公开中所使用的,术语“模块”或“组件”可以指被配置为执行模块或组件的动作的特定硬件实现方式、和/或可以被存储在计算系统的通用硬件(例如,计算机可读介质、处理设备或某一其他硬件)和/或由其执行的软件对象或软件例程。在一些实施例中,本公开中描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或过程(例如,作为单独的线程)。尽管本公开中描述的一些系统和方法被一般性地描述为以软件(存储在通用硬件上和/或由通用硬件执行)实现,但是特定硬件实现方式或软件与特定硬件实现方式的组合也是可能的并且是可以预期的。在该描述中,“计算实体”可以是如本公开先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。

根据惯例,附图中所示的各种特征可能未按比例绘制。本公开中呈现的图示并不意味着是任何特定装置(例如,设备、系统等)或方法的实际视图,而仅仅是用于描述本公开的各种实施例的理想化表示。因此,为了清楚起见,各种特征的尺寸可以任意扩大或减小。另外,为了清楚起见,一些附图可能被简化。因此,附图可能未描绘给定装置(例如,设备)的所有组件或特定方法的所有操作。

在本公开中并且特别是在所附权利要求(例如,所附权利要求的主体)中使用的术语通常旨在作为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括了”应解释为“包括但不限于”等)。

另外,如果意图采用特定数量的所引入的权利要求陈述,则将在权利要求中明确地陈述这种意图,并且在没有这种陈述的情况下,不存在这种意图。例如,为了帮助理解,下面的所附权利要求可以包含使用介绍性短语“至少一个”和“一个或多个”以引入权利要求陈述。

另外,即使明确陈述了特定数量的所引入的权利要求陈述,本领域技术人员将认识到,这样的陈述应被解释为意味着至少所陈述的数目(例如,“两个陈述”的明确陈述而没有其他修饰语是指至少两个陈述、或两个或更个陈述)。此外,在其中使用类似于“A、B和C等中的至少一个”或“A、B和C等中的一个或多个”的约定的那些实例中,通常,这样的构造旨在包括单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、或A、B和C一起等。

此外,无论是在说明书、权利要求书还是附图中,呈现两个或更多个替代术语的任何转折构词或短语都应理解为考虑包括术语中的一个、术语中的任一个、或者两个术语的可能性。例如,短语“A或B”应被理解为包括“A”或“B”或“A和B”的可能性。

然而,此类短语的使用不应解释为暗示由不定冠词“一”或“一个”引入的权利要求陈述将包含这种引入的权利要求陈述的任何特定权利要求限制为仅包含一个这样的陈述的实施例,即使同一权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”之类的不定冠词(例如,“一”和/或“一个”应解释为表示“至少一个”或“一个或多个”);使用用于引入权利要求陈述的定冠词也同样适用。

另外,术语“第一”、“第二”、“第三”等的使用在本文中不一定用于表示要素的特定顺序或数量。通常,术语“第一”、“第二”、“第三”等用于区分作为通用标识符的不同要素。不存在术语“第一”、“第二”、“第三”等表示特定顺序的显示,这些术语不应理解为表示特定顺序。此外,不存在术语“第一”、“第二”、“第三”等表示特定数量的要素的显示,这些术语不应理解为表示特定数量的要素。例如,第一小部件可被描述为具有第一侧,并且第二小部件可被描述为具有第二侧。关于第二小部件使用术语“第二侧”可以是为了将第二小部件的该侧与第一小部件的“第一侧”区分开,而不是表示第二小部件具有两个侧。

本公开中引用的所有示例和条件语言旨在用于教学目的,以帮助读者理解本发明以及发明人为进一步发展本领域所做出的构思,并且应解释为不限于这些具体引用的示例和条件。尽管已经详细描述了本公开的实施例,但是应当理解,在不脱离本公开的精神和范围的情况下,可以对其进行各种改变、替换和变更。

37页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于性能路由网络业务

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!