CN110622473B - 基于目的地路由网络业务 - Google Patents
基于目的地路由网络业务 Download PDFInfo
- Publication number
- CN110622473B CN110622473B CN201880030358.5A CN201880030358A CN110622473B CN 110622473 B CN110622473 B CN 110622473B CN 201880030358 A CN201880030358 A CN 201880030358A CN 110622473 B CN110622473 B CN 110622473B
- Authority
- CN
- China
- Prior art keywords
- address
- traffic
- path
- packet
- network device
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/308—Route determination based on user's profile, e.g. premium users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种方法可以包括标识与网络设备相关联的业务流的分组内的地址。该方法还可以包括将分组内的地址与所存储的地址进行比较,所存储的地址与用于替代业务路径的路由相关联,其中替代业务路径与穿过网络设备的默认业务路由不同。该方法还可以包括,基于分组内的地址与所存储的地址相匹配,沿替代业务路径而不是默认业务路由来路由分组。
Description
技术领域
本公开中讨论的实施例与路由网络业务有关。
背景技术
网络的使用是在允许不同计算设备之间的通信方面的有用工具。尽管计算机以及计算机通过其进行通信的网络激增,但是对于当前的网络技术仍然存在各种限制。
本公开中要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。而是,仅提供此背景技术来说明一个示例技术领域,其中可以实施本公开中描述的一些实施例。
发明内容
本公开的一个或多个实施例可以包括一种路由网络业务的方法。该方法可以包括:将业务沿第一路径,从本地网络设备通过远程网络位置到第三方网络资源,进行路由。该方法还可以包括:确定第一路径的第一排名;以及确定沿第二路径从本地网络设备到第三方网络资源的第二路径的第二排名,第二路径不包括远程网络位置。该方法还可以包括:基于第二排名超过第一排名达阈值量,沿第二路径重路由业务。
本公开的一个或多个实施例可以包括一种方法,该方法包括:在网络设备处接收域名系统(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-110d)、控制设备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可能包括防火墙、数据过滤器、安全性特征、数据防丢失(DLP)特征、输出控制、或政府合规性特征等,数据可以通过边缘网络设备110d进行路由。作为另一示例,控制设备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所处理的业务来更新、修改和/或生成本地路由表的逻辑。基于通过使用一个或多个网络协议(例如,BGP和/或OSPF)获悉的直接接口路由、静态路由和/或动态路由,边缘网络设备110可以自动填充一个或多个本地路由表。在一些实施例中,针对在内部网络域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以及多于5个的控制设备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)(例如,MicrosoftGoogleAmazon Web 和/或其他)、媒体服务(例如, 和/或其他)和/或其他。在这些和其他实施例中,外部资源280可以包括第三方网络,以有助于在各个地理位置处通过一个或多个接入点访问外部资源280。例如,SaaS可以包括德克萨斯州奥斯汀市;加利福尼亚州帕洛阿尔托市;和纽约州纽约市中的访问服务器,以访问第三方网络。
在一些实施例中,系统200可以在地理上是分布的。例如,数据中心240可以位于明尼苏达州圣保罗市;园区250可以位于爱荷华州得梅因市;华盛顿州西雅图市、加利福尼亚州洛杉矶市、佐治亚州亚特兰大市和佛罗里达州奥兰多市可以有分支260;在英国伦敦、德国柏林和韩国首尔可以有远程站点270。在这些和其他实施例中,系统200可以利用通信网络230和内部网络域205,以有助于作为单个网络的所有这些分布式物理位置之间的通信。
在一些实施例中,一个或多个外部网络域可以使用具有数据中心240中的资源的一个或多个应用,例如MicrosoftOracle e-Business和/或其他。例如,在园区250处操作的工作站可以操作Microsoft应用的操作可以包括从工作站到园区250的外部网络域中的边缘网络设备210e的数据流。数据流可以通过内部网络域205从边缘网络设备210e到与数据中心240相关联的边缘网络设备210b、210c和/或210d中的一个。边缘网络设备210b、210c和/或210d中的一个可以将业务路由到数据中心240的外部网络域中的Microsoft服务器。附加地或替代地,应用的操作可以包括以与从Microsoft服务器流向工作站的数据相反顺序的数据流。
在一些实施例中,系统200可以包括可以通过管理网络232与控制设备220通信的网络管理设备290。网络管理设备290可以提供对与内部网络域205相关联的一个或多个设备(包括边缘网络设备210、控制设备220和/或其他)的管理和控制。例如,网络管理设备290可以提供图形用户界面(GUI),该图形用户界面向网络管理员提供访问以控制或观察内部网络域205的操作。在一些实施例中,网络管理员可以经由网络管理设备290输入策略,这些策略可以经由边缘网络设备210传送到控制设备220以便实施。在一些实施例中,网络管理设备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,其可以包括多个潜在的连接,用于通过到另一边缘网络设备310b的内部网络域305进行通信。例如,边缘网络设备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和电路B 324,用于MPLS连接330的电路A 332和电路B 334,以及用于LTE连接340的电路A 342和电路B344。在这些和其他实施例中,边缘网络设备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可以包括SLA,即给定应用具有10MB/s的带宽可用于该应用。边缘网络设备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可以包括与参考图1-3所描述的内部网络域105、205和/或305相似或相当的内部网络域405,例如在边缘网络设备410之间和之中,并且包括控制设备420。在一些实施例中,系统400可以利用默认路径,使得业务从内部网络域405内部路由到内部网络域405外部,这样的业务可以通过数据中心440进行路由。例如,控制设备420可以包括策略或其他路由指令,其指示默认情况下,内部网络域405中将离开去往外部网络域(例如,因特网)的业务将通过数据中心440进行路由。例如,来自本地计算设备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可以从路径461+491的默认路径重路由业务,转而基于路径466+492包括与默认路径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服务器470b,DNS服务器470b与DNS服务器470a相比,在物理上相对邻近数据中心440。例如,DNS服务器470b可以位于纽约州纽约市,并且DNS服务器470a可以位于华盛顿州西雅图市。在这些和其他实施例中,沿着默认路径(在默认路径中本地计算设备450经由马萨诸塞州波士顿市的数据中心440访问因特网),DNS查询可以被路由到纽约州纽约市的DNS服务器470b。在这些和其他实施例中,DNS响应可以基于与DNS服务器470b的物理邻近度而包括纽约州纽约市的第三方资源480c的IP地址。距本地计算设备450的这种物理距离可能导致抖动、延迟、丢失和/或带宽的一个或多个性能度量的降低。
在一些实施例中,如果本地计算设备450针对第三方资源480的DNS查询通过边缘网络设备410a进行,则边缘网络设备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可以基于DNS查询包括与重路由应用相关联的统一资源定位符(URL)来标识要被重路由的DNS查询。例如,控制设备420可以将与重路由应用相关联的URL的列表发送到边缘网络设备410a。当接收到DNS查询时,边缘网络设备410a可以将DNS查询的URL与关联于重路由应用的URL的列表进行比较。在一些实施例中,响应于确定DNS查询的URL与重路由应用相关联,边缘网络设备410a可以确定重路由路径。附加地或替代地,边缘网络设备410a可以在接收与应用相关联的DNS查询之前,确定用于重路由应用的重路由路径。
在一些实施例中,第三方资源的一个或多个提供者(例如提供第三方资源480的第三方)可以向控制设备420和/或与控制设备420关联的实体周期性地提供与第三方资源相关联的URL的列表。在这些和其他实施例中,控制设备420可以周期性地将与重路由应用的第三方资源相关联的URL的更新列表提供给边缘网络设备410。例如,周期性(例如,每周、每两周、每月等)循环,边缘网络设备410可以获取URL的更新列表。附加地或替代地,可以以不规则的间隔而不是周期性地,或以其任意组合来执行这样的URL更新。
在一些实施例中,边缘网络设备410a可以重写DNS查询,使得DNS查询可以根据重路由路径被路由通过内部网络域405。例如,边缘网络设备410a可以修改DNS查询的分组的报头、有效载荷或其他部分,使得DNS查询沿着重路由路径而不是默认路径被路由通过内部网络域405。例如,如果DNS服务器470b是与数据中心440相关联的内部DNS服务器(例如,由托管和/或操作内部网络域405的组织或实体托管和/或操作的DNS服务器),则边缘网络设备410a可以将报头中的目的地IP地址重写为诸如DNS服务器470a而不是内部DNS服务器470b之类的公共DNS服务器的公共IP地址。作为另一示例,如果DNS服务器470b是外部DNS服务器但是邻近数据中心440(和/或默认由内部网络域405使用以解析DNS查询),则边缘网络设备410a可以重写DNS查询的报头中的目的地IP地址,以标定公共DNS服务器470a而非DNS服务器470b。
在一些实施例中,边缘网络设备410a可以监测与重路由的DNS查询相关的DNS响应。例如,边缘网络设备410a可以监测DNS响应,该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地址的分组)并且丢弃这样的分组,因此流中可能会遇到中断。在这些和其他实施例中,可以沿着重路由路径(例如,通过作为NAT出口点的边缘网络设备410c)而不是默认路径(例如,通过作为NAT出口点的数据中心440)建立新的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连接之后的业务。在一些实施例中,业务流可以是沿着默认路径(例如,通过作为NAT出口点的数据中心440)而不是重路由路径(例如,通过作为NAT出口点边缘网络设备410c)的业务流。在这些和其他实施例中,在业务流分析器确定沿着默认路径的流与重路由应用相关联之后,边缘网络设备410a可以沿着重路由路径来重路由该流。在这些和其他实施例中,可以使用重路由的NAT出口点来刷新或以其他方式重新建立TCP连接。
在一些实施例中,边缘网络设备410a可以监测DNS查询以标识与重路由应用相关联的IP地址。例如,如果DNS查询流过边缘网络设备410a,则边缘网络设备410a可以将DNS查询的URL标识为与重路由应用相关联。基于URL与重路由应用相关联,当DNS响应流过边缘网络设备410a时,边缘网络设备410a可以监测或以其他方式观察响应于DNS查询的DNS响应。DNS响应中标识的IP地址可以被存储为所存储的地址之一,以用于比较以标识与重路由流相关联的流。在这些和其他实施例中,边缘网络设备410a可以获取与重路由业务相关联的URL的列表。例如,控制设备420可以周期性地发送与重路由应用相关联的URL的列表,使得标定该列表上的URL的DNS查询可以提示边缘网络设备410a监测相关联的DNS响应。
在一些实施例中,可以周期性地更新或丢弃所存储的地址。例如,边缘网络设备410a可以被配置为丢弃所存储的在超过阈值的一段时间内都未与业务流相匹配的地址。这样的一段时间可以包括12小时、24小时、48小时、72小时、五天、一周、一个月或更长时间。
路径选择。在一些实施例中,边缘网络设备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,基于第二排名超过第一排名,业务可沿第二路径进行重路由。例如,基于第二路径(例如,重路由路径)具有比第一路径(例如,默认路径)高出阈值量的排名,给定流的业务可沿第二路径进行重路由。在一些实施例中,这样的阈值可以包括第二排名相对于第一排名的任何增量。附加地或替代地,阈值可以包括某个值,使得流持续沿着第一路径(例如,默认路径),直到第二路径(例如,重路由路径)的性能有足够的裕量证明偏离默认操作是正确的。
本领域的技术人员将意识到,对于这些过程、操作和方法,所执行的功能和/或操作可以以不同的顺序来实现。此外,概述的功能和操作仅作为示例提供,并且在不背离所公开实施例的实质的情况下,某些功能和操作可以是可选的,可以被组合为较少的功能和操作,或者可以被扩展为附加的功能和操作。
图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之一(例如,portal.microsoftonline.com)相匹配的URL的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,可以获得唯一的第一网络域路径的第一性能分数。例如,可以获得针对通过内部网络域的每个唯一路径(例如,路径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相同的分数或具有在路径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”的可能性。
然而,使用这样的短语不应被解释为暗示由不定冠词“一(a)”或“一个(an)”引导的权利要求记载将任何包含这种引导性权利要求记载的特定权利要求限制为仅包含一个这样的记载的实施例,即使相同的权利要求包括引导性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”之类的不定冠词(例如,“一”和/或“一个”应被解释为是指“至少一个”或“一个或多个”);对于使用定冠词来引导权利要求记载的情况也是如此。
另外,使用术语“第一”、“第二”、“第三”等在本文中不一定用来表示元素的特定顺序或数目。一般地,术语“第一”、“第二”、“第三”等作为通用标识符用于区分不同元素。在没有表明术语“第一”、“第二”、“第三”等表示特定顺序的情况下,这些术语不应被理解为表示特定顺序。此外,在没有表明术语“第一”、“第二”、“第三”等表示元素的特定数目的情况下,这些术语不应被理解为表示元素的特定数目。例如,第一部件可被描述为具有第一面,并且第二部件可被描述为具有第二面。相对于第二部件使用术语“第二面”可以是为了将第二部件的这一面与第一部件的“第一面”区分开,而不是为了表示第二部件具有两个面。
本公开中引用的所有示例和条件性语言旨在用于教学目的,以帮助读者理解本发明和发明人为深化本领域所贡献的构思,并且应被解释为没有对这样具体记载的例子和条件的限制。尽管已经详细描述了本公开的实施例,但是应当理解,在不脱离本公开的精神和范围的情况下,可以对其进行各种改变、替换和变更。
Claims (18)
1.一种路由网络业务的方法,包括:
接收应用的标识符,所述应用的数据将沿替代业务路径被路由,其中,所述标识符包括与所述应用相关联的统一资源定位符URL;
从本地计算设备接收域名系统DNS查询,其中,所述DNS查询包括和与所述应用相关联的URL相匹配的URL;
在DNS响应中标识因特网协议IP地址,所述DNS响应是响应于所述DNS查询而接收的;
将所述IP地址存储为所存储的地址,所述所存储的地址与替代业务路径的路由相关联,所述替代业务路径与默认业务路由不同;
标识从所述本地计算设备接收的业务流的分组内的地址;
将所述分组内的地址与所述所存储的地址进行比较;以及
基于所述分组内的地址与所述所存储的地址相匹配,沿所述替代业务路径而不是所述默认业务路由来路由所述分组。
2.根据权利要求1所述的方法,还包括:
监测第二业务流,以确定所述第二业务流是否与应用相关联,其中,所述应用的数据将沿所述替代业务路径被路由;
基于所述第二业务流与所述应用相关联,标识所述第二业务流的第二分组内的第二地址;以及
将所述第二地址存储为所述所存储的地址,使得标识所述地址是在所述业务流的初始分组沿所述默认业务路由被发送之前被执行。
3.根据权利要求2所述的方法,其中,所述监测是由网络设备的深度分组检查引擎执行的。
4.根据权利要求3所述的方法,还包括:基于所述分组内的地址与所述所存储的地址相匹配,将所述业务流与所述应用相关联。
5.根据权利要求4所述的方法,其中,将所述业务流与所述应用相关联是在所述网络设备的深度分组检查引擎将所述业务流标识为与所述应用相关联之前执行的。
6.根据权利要求1所述的方法,其中,标识所述业务流的分组内的地址包括:监测与建立传输控制协议TCP会话相关联的分组,以检测所述分组的报头中的目的地IP地址。
7.根据权利要求1所述的方法,其中,沿所述替代业务路径路由所述分组包括:将所述分组向着替代网络地址转换NAT出口点进行路由。
8.根据权利要求1所述的方法,其中,所述所存储的地址包括IP地址和相关联的端口。
9.根据权利要求1所述的方法,还包括:将所述所存储的地址发送到控制设备。
10.一种非暂时性计算机可读介质,包括存储在其上的计算机可读指令,所述计算机可读指令能由处理器执行以执行操作或控制操作的执行,所述操作包括:
接收应用的标识符,所述应用的数据将沿替代业务路径被路由,其中,所述标识符包括与所述应用相关联的统一资源定位符URL;
从本地计算设备接收与域名系统DNS查询,其中,所述DNS查询包括和与所述应用相关联的URL相匹配的URL;
在DNS响应中标识因特网协议IP地址,所述DNS响应是响应于所述DNS查询而接收的;
将所述IP地址存储为所存储的地址,所述所存储的地址与替代业务路径的路由相关联,所述替代业务路径与默认业务路由不同;
标识从所述本地计算设备接收的业务流的分组内的地址;
将所述分组内的地址与所述所存储的地址进行比较;以及
基于所述分组内的地址与所述所存储的地址相匹配,沿所述替代业务路径而不是所述默认业务路由来路由所述分组。
11.根据权利要求10所述的计算机可读介质,所述操作还包括:
监测第二业务流,以确定所述第二业务流是否与应用相关联,所述应用的数据将沿所述替代业务路径被路由;
基于所述第二业务流与所述应用相关联,标识所述第二业务流的第二分组内的第二地址;以及
将所述第二地址存储为所述所存储的地址,使得标识所述地址是在所述业务流的初始分组沿所述默认业务路由被发送之前被执行。
12.根据权利要求11所述的计算机可读介质,所述操作还包括:在网络设备的深度分组检查引擎将所述业务流标识为与所述应用相关联之前,基于所述分组内的地址与所述所存储的地址相匹配,将所述业务流与所述应用相关联。
13.根据权利要求10所述的计算机可读介质,其中,标识所述业务流的分组内的地址的操作包括如下操作:监测与建立传输控制协议TCP会话相关联的分组。
14.根据权利要求10所述的计算机可读介质,其中,沿所述替代业务路径路由所述分组的操作包括如下操作:将所述分组向着替代网络地址转换NAT出口点进行路由。
15.根据权利要求10所述的计算机可读介质,其中,所述所存储的地址包括IP地址和相关联的端口。
16.根据权利要求10所述的计算机可读介质,所述操作还包括:将所述所存储的地址发送到控制设备。
17.一种路由网络业务的系统,包括:
一个或多个处理器;以及
一个或多个非暂时性计算机可读介质,存储有地址并且包括存储在其上的计算机可读指令,所述计算机可读指令能由所述一个或多个处理器执行以执行操作或控制操作的执行,所述操作包括:
接收应用的标识符,所述应用的数据将沿替代业务路径被路由,其中,所述标识符包括与所述应用相关联的统一资源定位符URL;
从本地计算设备接收域名系统DNS查询,其中,所述DNS查询包括和与所述应用相关联的URL相匹配的URL;
在DNS响应中标识因特网协议IP地址,所述DNS响应是响应于所述DNS查询而接收的;
将所述IP地址存储为所存储的地址,所述所存储的地址与替代业务路径的路由相关联,所述替代业务路径与默认业务路由不同;
标识从所述本地计算设备接收的业务流的分组内的地址;
将所述分组内的地址与所述所存储的地址进行比较;以及
基于所述分组内的地址与所述所存储的地址相匹配,沿所述替代业务路径而不是所述默认业务路由来路由所述分组。
18.根据权利要求17所述的系统,所述操作还包括:
监测第二业务流,以确定所述第二业务流是否与应用相关联,所述应用的数据将沿所述替代业务路径被路由;
基于所述第二业务流与所述应用相关联,标识所述第二业务流的第二分组内的第二地址;以及
将所述第二地址存储为所述所存储的地址,使得标识所述地址是在所述业务流的初始分组沿所述默认业务路由被发送之前被执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/591,065 | 2017-05-09 | ||
US15/591,065 US10771375B2 (en) | 2017-05-09 | 2017-05-09 | Routing network traffic based on destination |
PCT/US2018/030774 WO2018208569A1 (en) | 2017-05-09 | 2018-05-03 | Routing network traffic based on destination |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110622473A CN110622473A (zh) | 2019-12-27 |
CN110622473B true CN110622473B (zh) | 2022-03-29 |
Family
ID=62563257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880030358.5A Active CN110622473B (zh) | 2017-05-09 | 2018-05-03 | 基于目的地路由网络业务 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10771375B2 (zh) |
EP (1) | EP3622678A1 (zh) |
CN (1) | CN110622473B (zh) |
CA (1) | CA3063090C (zh) |
WO (1) | WO2018208569A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10574678B2 (en) * | 2016-12-13 | 2020-02-25 | Forescout Technologies, Inc. | Name translation monitoring |
US10666603B2 (en) * | 2017-07-13 | 2020-05-26 | T-Mobile Usa, Inc. | Optimizing routing of access to network domains via a wireless communication network |
WO2021138815A1 (zh) * | 2020-01-07 | 2021-07-15 | 刘建新 | 一种移动终端管控系统和业务数据处理方法 |
CN113163276A (zh) * | 2020-01-22 | 2021-07-23 | 华为技术有限公司 | 路由信息的发布方法、装置及系统 |
US11296947B2 (en) | 2020-06-29 | 2022-04-05 | Star2Star Communications, LLC | SD-WAN device, system, and network |
US11398958B2 (en) * | 2020-08-19 | 2022-07-26 | Cisco Technology, Inc. | Reverting routing decisions made based on incorrect network predictions |
US11743189B2 (en) | 2020-09-14 | 2023-08-29 | Microsoft Technology Licensing, Llc | Fault tolerance for SDN gateways using network switches |
US11658900B2 (en) | 2021-06-16 | 2023-05-23 | Ciena Corporation | Responding to operator commands in a multi-homing ethernet virtual private network (EVPN) |
US11632323B2 (en) * | 2021-08-18 | 2023-04-18 | Microsoft Technology Licensing, Llc | Routing information exchange between separate networks to improve end-to-end network performance for users |
US11824766B2 (en) * | 2022-04-13 | 2023-11-21 | Cisco Technology, Inc. | Adaptive selection of network paths based on long-term predictions of user experience |
CN116939669B (zh) * | 2023-09-18 | 2023-12-08 | 武汉博易讯信息科技有限公司 | 基于ip学习表的网元识别方法、系统、设备及可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215154A (zh) * | 2010-04-06 | 2011-10-12 | 中兴通讯股份有限公司 | 网络业务的访问控制方法及终端 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6396833B1 (en) | 1998-12-02 | 2002-05-28 | Cisco Technology, Inc. | Per user and network routing tables |
US7720997B1 (en) * | 2001-12-19 | 2010-05-18 | Cisco Technology, Inc. | Path selection system |
JP4323355B2 (ja) * | 2004-03-22 | 2009-09-02 | 株式会社日立コミュニケーションテクノロジー | パケット転送装置 |
US7693073B2 (en) * | 2006-10-13 | 2010-04-06 | At&T Intellectual Property I, L.P. | System and method for routing packet traffic |
US8345552B2 (en) * | 2007-02-27 | 2013-01-01 | Alcatel Lucent | Virtual connection route selection apparatus and techniques |
WO2009075033A1 (ja) | 2007-12-13 | 2009-06-18 | Fujitsu Limited | パケット通信システム及びパケット通信方法並びにノード及びユーザ端末 |
US20090274040A1 (en) * | 2008-05-05 | 2009-11-05 | Avaya Technology Llc | Mid-call Redirection of Traffic Through Application-Layer Gateways |
US9729350B1 (en) * | 2010-05-07 | 2017-08-08 | Amazon Technologies, Inc. | Maintaining packet order in network flows over an autonomous network |
US9106567B2 (en) * | 2011-12-21 | 2015-08-11 | Silver Spring Networks, Inc. | System and method for setting a path to an access point across a wireless mesh network |
US8934366B2 (en) * | 2012-04-20 | 2015-01-13 | Cisco Technology, Inc. | Distributed node migration between routing domains |
US9729424B2 (en) * | 2012-06-11 | 2017-08-08 | Futurewei Technologies, Inc. | Defining data flow paths in software-defined networks with application-layer traffic optimization |
US9065677B2 (en) * | 2012-07-25 | 2015-06-23 | Qualcomm Incorporated | Forwarding tables for hybrid communication networks |
US9413667B2 (en) | 2013-02-15 | 2016-08-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and network nodes for traffic steering based on per-flow policies |
EP2784994A1 (en) * | 2013-03-28 | 2014-10-01 | British Telecommunications public limited company | Multicast routing system and method |
US9531624B2 (en) | 2013-08-05 | 2016-12-27 | Riverbed Technology, Inc. | Method and apparatus for path selection |
JP2015046662A (ja) * | 2013-08-27 | 2015-03-12 | ソニー株式会社 | 情報処理装置および情報処理方法 |
US9338065B2 (en) * | 2014-01-06 | 2016-05-10 | Cisco Technology, Inc. | Predictive learning machine-based approach to detect traffic outside of service level agreements |
US10257082B2 (en) * | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
-
2017
- 2017-05-09 US US15/591,065 patent/US10771375B2/en active Active
-
2018
- 2018-05-03 CA CA3063090A patent/CA3063090C/en active Active
- 2018-05-03 WO PCT/US2018/030774 patent/WO2018208569A1/en unknown
- 2018-05-03 CN CN201880030358.5A patent/CN110622473B/zh active Active
- 2018-05-03 EP EP18730173.4A patent/EP3622678A1/en active Pending
-
2020
- 2020-08-12 US US16/991,400 patent/US11658898B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215154A (zh) * | 2010-04-06 | 2011-10-12 | 中兴通讯股份有限公司 | 网络业务的访问控制方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
US20200374215A1 (en) | 2020-11-26 |
EP3622678A1 (en) | 2020-03-18 |
US20180331943A1 (en) | 2018-11-15 |
US10771375B2 (en) | 2020-09-08 |
WO2018208569A1 (en) | 2018-11-15 |
CN110622473A (zh) | 2019-12-27 |
US11658898B2 (en) | 2023-05-23 |
CA3063090A1 (en) | 2018-11-15 |
CA3063090C (en) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603788B (zh) | 路由网络业务 | |
CN110622473B (zh) | 基于目的地路由网络业务 | |
CN110612707B (zh) | 基于dns路由网络流量 | |
CA3063088C (en) | Routing network traffic based on performance | |
US11201817B2 (en) | Traffic steering in fastpath | |
US20190036814A1 (en) | Traffic steering with path ordering | |
US11546312B2 (en) | Dynamic disassociated channel encryption key distribution | |
US20190036842A1 (en) | Traffic steering in fastpath |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |