CN110958169B - 根据需求生成灵活、可编程且可扩展的网络隧道 - Google Patents

根据需求生成灵活、可编程且可扩展的网络隧道 Download PDF

Info

Publication number
CN110958169B
CN110958169B CN201910469734.7A CN201910469734A CN110958169B CN 110958169 B CN110958169 B CN 110958169B CN 201910469734 A CN201910469734 A CN 201910469734A CN 110958169 B CN110958169 B CN 110958169B
Authority
CN
China
Prior art keywords
path
tunnel
decapsulation
profile
encapsulation
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
Application number
CN201910469734.7A
Other languages
English (en)
Other versions
CN110958169A (zh
Inventor
S·科穆拉
A·巴班
D·A·舒卡勒弗
J·瓦尼亚
K·J·温德施
N·帕拉曼施娃
S·K·G·加德拉
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
Priority to CN202111113091.6A priority Critical patent/CN113839850B/zh
Publication of CN110958169A publication Critical patent/CN110958169A/zh
Application granted granted Critical
Publication of CN110958169B publication Critical patent/CN110958169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请的各实施例涉及根据需求生成灵活、可编程且可扩展的网络隧道。设备接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络与网络设备和一个或多个服务器设备相关联。设备基于网络信息和服务器信息而生成用于隧道封装路径的封装简档和用于隧道封装路径的路由简档。设备向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,并向一个或多个服务器设备提供用于隧道封装路径的封装简档。基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。

Description

根据需求生成灵活、可编程且可扩展的网络隧道
技术领域
本发明涉及根据需求生成灵活、可编程且可扩展的网络隧道。
背景技术
网络隧道是用于以使得公共网络的网络设备不知道私密信息的方式,通过公共网络安全地传输私密信息的机制。隧道协议是使得能够创建网络隧道的通信协议。隧道协议使得私密信息能够通过被称为封装的过程跨公共网络发送。
发明内容
根据一些实施方式,一种方法可以包括接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络可以与网络设备和一个或多个服务器设备相关联。方法可以包括:基于网络信息和服务器信息,生成用于隧道封装路径的封装简档,以及基于网络信息和服务器信息,生成用于隧道封装路径的路由简档。方法可以包括向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,以及向一个或多个服务器设备提供用于隧道封装路径的封装简档。可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。
根据一些实施方式,设备可以包括一个或多个存储器和一个或多个处理器,以接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络可以与网络设备和一个或多个服务器设备相关联。一个或多个处理器可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档,并且可以基于网络信息和服务器信息生成用于隧道封装路径的路由简档。一个或多个处理器可以基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档,并且可以向网络设备提供用于隧道封装路径的封装简档、用于隧道封装路径的路由简档,以及用于隧道解封装路径的解封装简档。一个或多个处理器可以向一个或多个服务器设备提供用于隧道封装路径的封装简档和用于隧道解封装路径的解封装简档。可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径和隧道解封装路径。可以基于用于隧道解封装路径的解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道解封装路径。
根据一些实施方式,非暂态计算机可读介质可以存储包括一个或多个指令的指令,当由设备的一个或多个处理器执行时,使一个或多个处理器接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络与网络设备和一个或多个服务器设备相关联。一个或多个指令可以使一个或多个处理器基于网络信息和服务器信息生成用于隧道封装路径的封装简档,并基于网络信息和服务器信息生成用于隧道封装路径的路由简档。一个或多个指令可以使一个或多个处理器向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,并向一个或多个服务器设备提供用于隧道封装路径的封装简档。可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。一个或多个指令可以使一个或多个处理器接收用于隧道封装路径的隧道参数改变,并经由网络,使隧道参数改变由网络设备和一个或多个服务器设备实施。
附图说明
图1A-1K是本文描述的示例实施方式的图。
图2是可以在其中实施本文描述的系统和/或方法的示例环境的图。
图3是图2的一个或多个设备的示例组件的图。
图4-图6是用于根据需求生成灵活、可编程且可扩展的网络隧道的示例过程的流程图。
具体实施方式
以下对示例实施方式的详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元件。
隧道在网络设备上静态配置或通过协议学习而动态建立。这种配置方法受到网络设备或协议机制的配置的约束、需要维护网络设备中的大量状态,并且涉及长的实施周期。建立隧道非常耗时、取决于控制协议并且是资源密集型。隧道参数的任何改变都可能是灾难性的,并且可能会导致严重的分组丢失,直到改变后的隧道运行且路由更新为止。另外,隧道参数固定、缺乏微调控制,并且受到协议机制的约束。
本文描述的一些实施方式提供了一种控制平台,其根据需求生成灵活、可编程且可扩展的网络隧道。例如,控制平台可以接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络可以与网络设备和一个或多个服务器设备相关联。控制平台可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档,并且可以基于网络信息和服务器信息生成用于隧道封装路径的路由简档。控制平台可以向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,并且可以向一个或多个服务器设备提供用于隧道封装路径的封装简档。可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。
以这种方式,控制平台可以经由简单、灵活且可扩展的应用编程接口(API)立即(例如,在运行中)提供可编程隧道。API使得控制平台能够对隧道进行编程,并将隧道与任何路由实例中的路由前缀相关联。隧道类型可以是任何因特网协议(IP)隧道,并且隧道参数可以被设置为各种值。各个隧道参数对象可以应用于隧道封装、隧道解封装、对称隧道封装和解封装等。
控制平台可以提供可扩展的隧道以容纳新类型的隧道。这可以使得能够轻松地迁移新服务、可以帮助向后兼容较旧的应用或服务,并且可以在网络中提供具有较少控制状态的更快部署。控制平台可以在隧道使用时改变隧道参数,而不会丢失隧道流量,这与受静态隧道设置、软件生命周期、标准、协议修改等的影响的现有的隧道实施方式不同。
与通常的隧道不同,由控制平台创建的隧道可以是不对称的或单向的。例如,控制平台可以将隧道编程为仅封装流量、仅解封装流量,或封装和解封装流量。控制平台还使得能够聚合多个解封装隧道(例如,来自相同子网),这节省了资源(例如,处理资源、存储器资源等)。由于网络资源的有效利用以及没有网络设备的永久配置,因此控制平台创建高度可扩展的隧道。由控制平台生成的隧道配置包括没有构造(诸如下一跳(next hop)、隧道接口等)的轻量封装串。
控制平台还使得能够提供要应用于封装隧道和解封装隧道中的流量的特征(例如,计费、安全性、镜像、采样等)。这些特征可以为隧道中的流量提供可见性和诊断。控制平台提供隧道,通过该隧道可以一次有效地转发流量,而无需经由网络设备回送流量。以这种方式,控制平台通过增加隧道吞吐量和减少隧道延迟来提供增强的隧道转发性能。
图1A-图1K是本文描述的示例实施方式100的图。如图1A中所示,网络(例如,公共网络)可以与控制平台相关联。如图1A中进一步所示,网络可以包括网络设备并且网络与多个服务器设备(例如,服务器设备1、服务器设备2和服务器设备3)相关联。每个服务器设备可以包括多个虚拟机(VM),诸如服务器设备1中提供的VM1、VM2和VM3,服务器设备2中提供的VM4、VM5和VM6,以及服务器设备3中提供的VM7、VM8和VM9。在一些实施方式中,服务器设备可以形成数据中心环境、云计算环境等,并且网络设备可以经由网络与服务器设备通信。在这种实施方式中,终端用户设备可以经由网络设备和网络访问由服务器设备提供的服务。
如图1A并且由附图标记105进一步所示,控制平台可以从网络设备接收与网络相关联的网络信息和与服务器设备相关联的服务器信息。在一些实施方式中,网络信息可以包括指示网络的网络设备的地址、网络设备的媒体访问控制(MAC)地址、网络设备的因特网协议(IP)地址、网络设备的序列号、网络设备的制造商、网络设备的品牌和/或型号、网络设备之间提供的链接类型、网络中提供的链接类型等的信息。在一些实施方式中,服务器信息可以包括指示服务器设备的MAC地址、服务器设备的IP地址、服务器设备的序列号、服务器设备的制造商、服务器设备的品牌和/或型号、服务器设备之间提供的链接类型、VM的地址等的信息。
如图1B并且由附图标记110所示,控制平台可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档。在一些实施方式中,控制平台可以利用网络信息和服务器信息来标识从网络设备、通过网络到服务器设备(例如,服务器设备的VM)的路径。控制平台可以基于所标识的路径生成封装简档。在一些实施方式中,控制平台可以用机器学习模型来处理网络信息和服务器信息,以标识从网络设备、通过网络到服务器设备的路径。
在一些实施方式中,控制平台可以用历史网络信息、服务器信息和/或路径信息对机器学习模型执行训练操作。例如,控制平台可以将历史网络信息、服务器信息和/或路径信息分离成训练集、验证集、测试集等。在一些实施方式中,控制平台可以使用例如无受监督的训练过程并且基于历史网络信息、服务器信息和路径信息的训练集来训练机器学习模型。例如,控制平台可以执行降维以将历史网络信息、服务器信息和/或路径信息减少到最小特征集,从而减少训练机器学习模型的资源(例如,处理资源、存储器资源等),并可以将分类技术应用于最小特征集。
在一些实施方式中,控制平台可以使用逻辑回归分类技术来确定分类结果(例如,历史网络信息和服务器信息产生特定路径的标识)。附加地或备选地,控制平台可以使用朴素贝叶斯分类器技术。在这种情况下,控制平台可以执行二进制递归分区以将历史网络信息、服务器信息和/或路径信息分成分区和/或分支,并使用该分区和/或分支来执行预测(例如,历史网络信息和服务器信息产生特定路径的标识)。基于使用递归分区,相对于对数据点进行手动、线性排序和分析,控制平台可以减少计算资源的利用,从而使得能够使用数千、数百万或数十亿的数据点来训练机器学习模型,这可以比使用更少的数据点产生更准确的模型。
附加地或备选地,控制平台可以使用支持向量机(SVM)分类器技术来生成训练集中的数据点之间的非线性边界。在这种情况下,非线性边界用于将测试数据分类为特定类。
附加地或备选地,控制平台可以使用受监督的训练步骤来训练机器学习模型,该受监督的训练步骤包括从主题专家接收对机器学习模型的输入,相对于无监督的训练步骤,这可以减少训练活动自动化的机器学习模型的时间的量、处理资源的量等。在一些实施方式中,控制平台可以使用一种或多种其他模型训练技术,诸如神经网络技术、潜在语义索引技术等。例如,控制平台可以执行人工神经网络处理技术(例如,使用双层前馈神经网络架构、三层前馈神经网络架构等)来执行关于历史网络信息、服务器信息和路径信息的最优区域的模式识别。在这种情况下,使用人工神经网络处理技术可以通过对噪声、不精确或不完整数据更加鲁棒,并且通过使得控制平台能够检测人类分析师或使用不那么复杂的技术的系统无法检测的模式和/或趋势,来提高由控制平台生成的经训练的机器学习模型的准确性。
在一些实施方式中,与隧道封装路径相关联的封装可以包括虚拟可扩展局域网(VxLAN)(例如,其可以由VxLAN网络标识符或VNI来标识)封装、VxLAN通用协议扩展(VxLAN-GPE)封装、通用路由封装(GRE)、通用网络虚拟化封装(GENEVE)、段路由版本6(SRv6)封装等。在一些实施方式中,控制平台可以经由封装简档来改变封装,这使得能够在路由级别进行封装控制。
在一些实施方式中,封装简档可以包括应用编程接口(API),诸如OpenFlow API、高级转发工具包(AFT)API等。如图1B中进一步所示,在一些实施方式中,封装简档可以包括指示隧道封装路径的IP前缀、为隧道封装路径启用虚拟路由和转发(VRF)、隧道封装路径的源IP地址(Tunnel-Src-IP)、隧道封装路径的目的地IP地址(Tunnel-Dest-IP)、用于隧道封装路径的灵活隧道接口、隧道封装路径仅用于封装(Encap-only)、用于隧道封装路径的用户数据报协议(UDP)源端口范围(Tunnel-UDP-Src-Port-Range)、用于隧道封装路径的UDP目的地端口(Tunnel-UDP-Dest-Port)、与隧道封装路径相关联的封装(VxLAN-VNI)、与封装相关联的标志(例如,VxLAN-Flags)、隧道封装路径的目的地MAC地址等的信息。
在一些实施方式中,封装简档可以包括VxLAN保留位,以传递用于远程端点设备(例如,服务器设备)和网络的中间网络设备的转发上下文。例如,VxLAN保留位可以指示要收集流量统计、需要分组镜像、可以由远程端点设备用于不同地处理流量的始发端点设备的类型(例如,网络设备),等等。
在一些实施方式中,封装简档可以包括网络服务功能报头,其使得能够选择待跟随有分组的服务链。在一些实施方式中,封装简档可以包括SRv6段报头(例如,具有IPv6段列表),其指示通过服务功能的路径、使得能够动态添加和/或去除服务、操纵服务端点设备,等等。
在一些实施方式中,隧道目的地IP地址可以使得能够在运行中改变隧道目的地IP地址,使得服务可以跨服务器设备无缝地移动。在一些实施方式中,封装简档可以包括指示VxLAN-UDP源端口和/或IP-UDP源端口的信息,其使得能够指定每个隧道的源端口的范围以及使用从分组的有效负载导出的哈希值来选择该范围中的端口。
在一些实施方式中,封装简档可以包括指示VxLAN-UDP目的地端口的信息,其使得能够选择UDP目的地端口来复用网络中的各种隧道类型。在一些实施方式中,VxLAN-VNI可以使得能够从一个域(例如,服务器设备或VM)到另一个域(例如,另一个服务器设备或VM)的无缝迁移。
如图1C并且由附图标记115所示,控制平台可以向网络设备提供用于隧道封装路径的封装简档。网络设备可以接收封装简档,并且可以利用封装简档来建立从网络设备、通过网络到服务器设备和/或VM中的一个的隧道封装路径,如下所述。
如图1D并且由附图标记120所示,控制平台可以基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档。在一些实施方式中,控制平台可以利用网络信息和服务器信息来标识从网络设备、通过网络到服务器设备中的一个(例如,到VM中的一个)的路径。控制平台可以基于所标识的路径生成解封装简档。在一些实施方式中,控制平台可以用机器学习模型来处理网络信息和服务器信息,以标识从网络设备、通过网络到服务器设备的路径,如上面结合图1B所描述的。
在一些实施方式中,解封装简档可以包括API,诸如OpenFlowAPI、AFT API等。如图1D中进一步所示,在一些实施方式中,解封装简档可以包括指示隧道解封装路径的源IP子网地址(Tunnel-Src-IP-Subnet)、隧道解封装路径的目的地IP地址(Tunnel-Dest-IP)、用于隧道解封装路径的灵活隧道接口、用于隧道解封装路径的UDP目的地端口(Tunnel-UDP-Dest-Port)、与隧道解封装路径相关的解封装(VxLAN-VNI),等等的信息。
如图1E并且由附图标记125所示,控制平台可以向网络设备提供用于隧道解封装路径的解封装简档。网络设备可以接收解封装简档并且可以利用解封装简档来建立从网络设备、通过网络到服务器设备和/或VM中的一个的隧道解封装路径,如下所述。
如图1F并且由附图标记130所示,控制平台可以基于网络信息和服务器信息生成用于隧道封装路径或用于隧道解封装路径的路由简档。在一些实施方式中,控制平台可以利用网络信息和服务器信息来标识从网络设备、通过网络到服务器设备中的一个(例如,到VM中的一个)的路由。控制平台可以基于所标识的路由生成路由简档。在一些实施方式中,控制平台可以用机器学习模型来处理网络信息和服务器信息,以标识从网络设备、通过网络到服务器设备的路由,如上面结合图1B所描述的。
在一些实施方式中,路由简档可以包括API,诸如OpenFlow API、AFT API等。如图1F中进一步所示,在一些实施方式中,路由简档可以包括指示用于路由的路由条目的信息,诸如与路由相关联的钥匙、下一跳、属性等。在一些实施方式中,密钥可以包括指示密钥的前缀、密钥的前缀长度(Prefix_len)、与密钥相关联的表格、与密钥相关联的cookie等的信息。在一些实施方式中,下一跳可以包括指示待与路由相关联的网络的网络设备的信息。在一些实施方式中,属性可以包括指示与路由相关联的标签的信息。在一些实施方式中,要与路由相关联的网络设备中的一个可以包括提供封装的路由网关。
在一些实施方式中,取决于将由控制平台定义的隧道的类型,路由简档可以与封装简档或解封装简档相关联(例如,在图1F中被称为动态隧道简档)。如所示的,在一些实施方式中,动态隧道简档可以包括指示动态隧道简档的名称、动态隧道简档要采取的动作、与动态隧道简档相关联的接口、与隧道相关联的属性,等等的信息。在一些实施方式中,隧道属性可以包括指示与隧道相关联的封装的信息,诸如VxLAN、GRE、GENEVE等。在一些实施方式中,与VxLAN相关联的属性可以包括指示与隧道相关联的VNI、与隧道相关联的源前缀、与隧道相关联的源前缀长度、与隧道相关联的源UDP端口范围、与隧道相关联的源MAC地址、与隧道相关联的目的地地址、与隧道相关联的目的地UDP端口、与隧道相关联的目的地MAC地址、与隧道相关联的标志,等等的信息。
如图1G并且由附图标记135所示,控制平台可以提供用于隧道解封装路径的路由简档。网络设备可以接收路由简档并且可以利用路由简档来建立从网络设备、通过网络到服务器设备和/或VM中的一个的隧道解封装路径,如下所述。
如图1H并且由附图标记140所示,控制平台可以向服务器设备提供封装简档、解封装简档和路由简档。服务器设备可以接收封装简档、解封装简档和路由简档,并且可以利用封装简档、解封装简档和路由简档来建立从网络设备、通过网络到服务器设备和/或VM中的一个的隧道封装路径和/或隧道解封装路径,如下所述。
如图1I并且由附图标记145所示,控制平台可以使隧道封装路径和隧道解封装路径经由网络而被提供在网络设备和服务器设备之间。在一些实施方式中,控制平台可以向网络设备和/或服务器设备提供指令,该指令指示网络设备和/或服务器设备经由网络建立网络设备和服务器设备之间的隧道封装路径和隧道解封装路径。在一些实施方式中,向网络设备和服务器设备提供封装简档、解封装简档和路由简档可以自动地使网络设备和/或服务器设备经由网络建立网络设备和服务器设备之间的隧道封装路径和隧道解封装路径。
如图1I中进一步所示并且作为示例,基于封装简档和路由简档,可以在网络设备和服务器设备3的VM8之间建立隧道封装路径。以这种方式,隧道封装路径可以使得终端用户设备能够经由公共网络安全地访问VM8提供的服务。
如图1I中进一步所示,基于解封装简档和路由简档,可以在网络设备与服务器设备1的VM1之间以及网络设备与服务器设备2的VM6之间建立聚合隧道解封装路径。以这种方式,隧道解封装路径可以使得终端用户设备能够经由公共网络安全地接收VM1和VM6提供的服务。在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于第一隧道解封装路径(例如,与VM1相关联)的第一解封装简档,并且可以基于网络信息和服务器信息生成用于第二隧道解封装路径的第二解封装简档(例如,与VM6相关联)。在这种实施方式中,控制平台可以聚合第一解封装简档和第二解封装简档以生成用于聚合隧道解封装路径的聚合解封装简档。聚合隧道解封装路径可以将第一隧道解封装路径和第二隧道解封装路径组合。控制平台可以向网络设备和服务器设备提供用于聚合隧道解封装路径的聚合解封装简档。在一些实施方式中,控制平台可以聚合两个以上的解封装简档和两个以上的隧道解封装路径。
如图1J的上部分所示,网络设备可以接收路由简档和隧道简档(例如,封装简档或解封装简档),并且可以在数据结构(例如,数据库、表格、列表等)中存储用于隧道的路由信息。网络设备可以将路由信息同步到网络设备的输入组件、输出组件和交换组件,并且可以基于对网络设备的输入组件、输出组件和交换组件同步该路由信息来创建隧道(例如,经由网络,在网络设备和服务器设备之间创建隧道)。
如图1J的下部分所示,路由信息可以包括指示隧道路由、用于隧道的灵活封装报头、隧道数据、隧道块、隧道块条目、特征隧道(FT)索引表、特征等的信息。隧道路由可以包括指示与隧道相关联的IP地址信息的信息。灵活封装报头可以包括指示与隧道相关联的网络报头(ucnh)、与隧道相关联的功能、与隧道相关联的类型(例如,封装或解封装)、指向隧道数据的指针,以及指向FT索引表的指针的信息。隧道数据可以包括指示第一组发现发起协议(DIPv6)比特([0:63])、第二组DIPv6比特([64:127])、与隧道相关联的VNI、与隧道相关联的标志的信息,以及指向隧道块的指针的信息。隧道块包括隧道块条目的块,其中每个隧道块条目可以包括指示第一组会话发起协议(SIPv6)比特([0:63])、第二组SIPv6比特([64:127])、与隧道相关联的源端口范围(sport-0至sport-n)、以及与隧道相关联的目的地端口(dport-0)的信息。FT索引表可以包括要由隧道实施的表特征,诸如安全特征、分组镜像、计费等。
如图1K所示,与用户设备相关联的用户可以使用户设备向控制平台提供用于隧道封装路径的隧道参数改变请求。例如,假设隧道参数改变请求指示要改变隧道封装路径,以便在网络设备和服务器设备2的VM4(例如,而不是服务器设备3的VM8,如图1I所示)之间提供隧道封装路径。如由附图标记150所示,控制平台可以接收隧道参数改变请求。如图1K并且由附图标记155进一步所示,控制平台可以经由网络,使隧道参数改变由网络设备和服务器设备实施。例如,控制平台可以使得在网络设备和服务器设备2的VM4之间建立(例如,在运行中)改变的隧道封装路径。
在一些实施方式中,控制平台可以处理要提供给数百、数千、数百万或更多的网络设备和/或服务器设备的数千、数百万、数十亿或更多的封装简档、解封装简档和路由简档。在这种实施方式中,控制平台可以在给定时间窗口中并发处理数十、数百、数千或更多的封装简档、解封装简档和路由简档。
以这种方式,用于根据需求生成灵活、可编程且可扩展的网络隧道的过程的若干不同阶段可以是自动化的,这可以消除人的主观性和来自过程的浪费,并且可以提高过程的速度和效率并且节省计算资源(例如,处理器资源,存储器资源等)。另外,本文描述的实施方式使用严格的、计算机化的过程来执行之前没有执行过的或之前使用主观人类直觉或输入执行的任务或角色。例如,目前还没有技术可以根据需求生成灵活、可编程且可扩展的网络隧道。最后,将用于根据需求生成灵活、可编程且可扩展的网络隧道的过程自动化节省了计算资源(例如,处理器资源、存储器资源等)和/或网络资源(否则,在尝试生成隧道时将被浪费)。
如上所述,仅作为示例提供图1A-图1K。其他示例是可能的,并且可以与关于图1A-图1K所描述的不同。
图2是可以在其中实施本文描述的系统和/或方法的示例环境200的图。如图2中所示,环境200可以包括用户设备210、控制平台220、网络230、网络设备240和服务器设备250。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合互连。
用户设备210包括能够接收、生成、存储、处理和/或提供信息(诸如本文描述的信息)的一个或多个设备。例如,用户设备210可以包括移动电话(例如,智能电话、无线电话等)、膝上型计算机、平板计算机、台式计算机、手持式计算机、游戏设备、可穿戴通信设备(例如,智能手表、一副智能眼镜等)或类似类型的设备。在一些实施方式中,用户设备210可以从环境200的一个或多个其他设备接收信息和/或向其传送信息。
控制平台220包括一个或多个设备,其根据需求生成灵活、可编程且可扩展的网络隧道。在一些实施方式中,控制平台220可以被设计为模块化的,使得可以根据特定需要来换进或换出某些软件组件。这样,可以针对不同的用途容易地和/或快速地重新配置控制平台220。在一些实施方式中,控制平台220可以从环境200的一个或多个其他设备接收信息和/或向其传送信息。
在一些实施方式中,如所示的,控制平台220可以被托管在云计算环境222中。值得注意的是,虽然本文描述的实施方式将控制平台220描述为被托管在云计算环境222中,但是在一些实施方式中,控制平台220可以不是基于云的(即,可以在云计算环境之外实施,诸如在一个或多个服务器设备内实施)或者可以是部分基于云的。
云计算环境222包括托管控制平台220的环境。云计算环境222可以提供计算、软件、数据访问、存储等服务,其不需要最终用户了解托管控制平台220的系统和/或设备的物理位置和配置。如所示的,云计算环境222可以包括一组计算资源224(共同地被称为“计算资源224”并且单独被称为“计算资源224”)。
计算资源224包括一个或多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实施方式中,计算资源224可以托管控制平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传输设备等。在一些实施方式中,计算资源224可以经由有线连接、无线连接或有线和无线连接的组合与其他计算资源224通信。
如图2中进一步所示,计算资源224包括一组云资源,诸如一个或多个应用(“APP”)224-1、一个或多个虚拟机(“VM”)224-2、虚拟化存储(“VS”)224-3、一个或多个管理程序(“HYP”)224-4等。
应用224-1包括可以提供给用户设备210或由用户设备210访问的一个或多个软件应用。应用224-1可以消除在用户设备210上安装和执行软件应用程序的需要。例如,应用224-1可以包括与控制平台220相关联的软件和/或能够经由云计算环境222提供的任何其他软件。在一些实施方式中,一个应用224-1可以经由虚拟机224-2向/从一个或多个其他应用224-1发送/接收信息。
虚拟机224-2包括机器(例如,计算机)的软件实施方式,其像物理机器那样执行程序。虚拟机224-2可以是系统虚拟机或进程虚拟机,这取决于虚拟机224-2对任何真实机器的使用和对应程度。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机224-2可以代表用户(例如,用户设备210的用户或控制平台220的操作员)执行,并且可以管理云计算环境222的基础设施,例如数据管理、同步,或长时间的数据传输。
虚拟化存储224-3包括一个或多个存储系统和/或一个或多个设备,该一个或多个设备使用在计算资源224的存储系统或设备内虚拟化技术。在一些实施方式中,在存储系统的上下文中,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指示逻辑存储与物理存储的抽象(或分离),使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以使存储系统的管理员在如何管理用于最终用户的存储方面具有灵活性。文件虚拟化可以消除在文件级访问的数据与物理存储文件的位置之间的依赖性。这可以使得能够优化存储使用、服务器整合和/或无中断文件迁移的性能。
管理程序224-4可以提供允许多个操作系统(例如,“客户操作系统”)在诸如计算资源224的主机计算机上并发执行的硬件虚拟化技术。管理程序224-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化的硬件资源。
网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括蜂窝网络(例如,第五代(5G)网络、长期演进(LTE)网络、第三代(3G)网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网(PSTN))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等,和/或这些或其他类型的网络的组合。
网络设备240包括能够接收、提供、存储、生成和/或处理本文描述的信息的一个或多个设备(例如,一个或多个流量传输设备)。例如,网络设备240可以包括防火墙、路由器、策略实施器、网关、交换机、集线器、网桥、反向代理、服务器(例如,代理服务器)、安全设备、入侵检测设备、负载平衡器,或类似的设备。在一些实施方式中,网络设备240可以从环境200的一个或多个其他设备接收信息和/或向其提供信息。在一些实施方式中,网络设备240可以是在诸如机箱的壳体内实施的物理设备。在一些实施方式中,网络设备240可以是由云计算环境或数据中心的一个或多个计算机设备实施的虚拟设备。
服务器设备250包括能够接收、生成、存储、处理和/或提供本文描述的信息的一个或多个设备。例如,服务器设备250可以包括服务器(例如,在数据中心或云计算环境中)、数据中心(例如,多服务器微数据中心)、工作站计算机、在云计算环境中提供的虚拟机(VM),或类似类型的设备。在一些实施方式中,服务器设备250可以包括允许服务器设备250从环境200中的其他设备接收信息和/或向其传送信息的通信接口。在一些实施方式中,服务器设备250可以是在诸如机箱的壳体内实施的物理设备。在一些实施方式中,服务器设备250可以是由云计算环境或数据中心的一个或多个计算机设备实施的虚拟设备。
作为示例提供图2中所示的设备和网络的数量和布置。实际上,可能存在附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络,或者与图2中所示的那些不同地布置的设备和/或网络。另外,图2中所示的两个或更多个设备可以在单个设备内实施,或者图2中所示的单个设备可以被实施成多个分布式设备。附加地或备选地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。
图3是设备300的示例组件的图。设备300可以对应于用户设备210、控制平台220、计算资源224、网络设备240和/或服务器设备250。在一些实施方式中,用户设备210、控制平台220、计算资源224、网络设备240和/或服务器设备250可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3中所示,设备300可以包括总线310、处理器320、存储器330、存储组件340、输入组件350、输出组件360和通信接口370。
总线310包括允许设备300的组件之间通信的组件。处理器320以硬件、固件或硬件和软件的组合来实施。处理器320是中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其他类型的处理组件。在一些实施方式中,处理器320包括能够被编程为执行功能的一个或多个处理器。存储器330包括随机存取存储器(RAM)、只读存储器(ROM)和/或存储供处理器320使用的信息和/或指令的其他类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器)。
存储组件340存储与设备300的操作和使用有关的信息和/或软件。例如,存储组件340可以包括硬盘(例如,磁盘、光盘、磁光盘,和/或固态盘)、光盘(CD)、数字通用光盘(DVD)、软盘、盒式磁带、磁带和/或其他类型的非暂态计算机可读介质,以及对应的驱动器。
输入组件350包括允许设备300接收信息的组件,诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)。附加地或备选地,输入组件350可包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速度计、陀螺仪和/或致动器)。输出组件360包括从设备300提供输出信息的组件(例如,显示器、扬声器和/或一个或多个发光二极管(LED))。
通信接口370包括类似收发器的组件(例如,收发器和/或分离的接收器和发射器),其使得设备300能够(诸如经由有线连接、无线连接或有线连接和无线连接组合)与其他设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、无线局域网接口、蜂窝网络接口等。
设备300可以执行本文描述的一个或多个过程。设备300可以基于处理器320执行由诸如存储器330和/或存储组件340的非暂态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非暂态存储器设备。存储器设备包括在单个物理存储设备内的存储器空间或跨多个物理存储设备的存储器空间。
可以经由通信接口370将软件指令从另一计算机可读介质或从另一设备读取到存储器330和/或存储组件340中。当被执行时,存储在存储器330和/或存储组件340中的软件指令可以使处理器320执行本文描述的一个或多个过程。附加地或备选地,可以使用硬连线电路装置代替软件指令或与软件指令组合以执行本文描述的一个或多个过程。因此,本文描述的实施方式不限于硬件电路装置和软件的任何特定组合。
作为示例提供图3中所示的组件的数量和布置。实际上,设备300可以包括附加的组件、更少的组件、不同的组件,或者与图3中所示的那些不同地布置的组件。附加地或备选地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。
图4是用于根据需求生成灵活、可编程且可扩展的网络隧道的示例过程400的流程图。在一些实施方式中,图4的一个或多个过程框可以由控制平台(例如,控制平台220)执行。在一些实施方式中,图4的一个或多个过程框可以由与控制平台分离或包括控制平台的另一个设备或一组设备(诸如用户设备(例如,用户设备210)、网络设备(例如,网络设备240)和/或服务器设备(例如,服务器设备250))执行。
如图4中所示,过程400可以包括接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络与网络设备和一个或多个服务器设备相关联(框410)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,如上面结合图1A-图2所描述的。在一些实施方式中,网络可以与网络设备和一个或多个服务器设备相关联。
如图4中进一步所示,过程400可以包括基于网络信息和服务器信息生成用于隧道封装路径的封装简档(框420)。例如,控制平台(例如,使用计算资源224、处理器320、存储组件340等)可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档,如上面结合图1A-图2所描述的。
如图4中进一步所示,过程400可以包括基于网络信息和服务器信息生成用于隧道封装路径的路由简档(框430)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330等)可以基于网络信息和服务器信息生成用于隧道封装路径的路由简档,如上面结合图1A-图2所描述的。
如图4中进一步所示,过程400可以包括向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档(框440)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,如上面结合图1A-图2所描述的。
如图4中进一步所示,过程400可以包括向一个或多个服务器设备提供用于隧道封装路径的封装简档,其中基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备与一个或多个服务器设备之间提供隧道封装路径(框450)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以向一个或多个服务器设备提供用于隧道封装路径的封装简档,如上面结合图1A-图2所描述的。在一些实施方式中,可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。
过程400可以包括附加的实施方式,诸如下面描述的和/或结合本文其他地方描述的一个或多个其他过程的任何单个实施方式或实施方式的任何组合。
在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档,可以向网络设备提供用于隧道解封装路径的解封装简档,并且可以向一个或多个服务器设备提供用于隧道解封装路径的解封装简档,其中基于用于隧道解封装路径的解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道解封装路径。
在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于另一个隧道解封装路径的另一个解封装简档,并且可以将另一个解封装简档和解封装简档聚合以生成用于聚合隧道解封装路径的聚合解封装简档,其中聚合隧道解封装路径将隧道解封装路径和另一个隧道解封装路径组合。另外,控制平台可以向网络设备提供用于聚合隧道解封装路径的聚合解封装简档,并且可以向一个或多个服务器设备提供用于聚合隧道解封装路径的聚合解封装简档,其中基于聚合解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供聚合隧道解封装路径。
在一些实施方式中,控制平台可以接收用于隧道封装路径的隧道参数改变,并且可以经由网络,使隧道参数改变由网络设备和一个或多个服务器设备实施。在一些实施方式中,用于隧道封装路径的封装简档可以包括应用编程接口(API)。
在一些实施方式中,用于隧道封装路径的封装简档可以包括指示用于隧道封装路径的源地址、隧道封装路径的目的地地址、用于隧道封装路径的源端口范围、用于隧道封装路径的目的地端口,或与隧道封装路径关联的特征中的一个或多个的信息。在一些实施方式中,一个或多个服务器设备可以包括一个或多个虚拟机,并且可以在网络设备与一个或多个虚拟机中的一个之间提供隧道封装路径。
尽管图4示出了过程400的示例框,但是在一些实施方式中,过程400可以包括附加的框、更少的框、不同的框、或者与图4中描绘的那些不同地布置的框。附加地或备选地,可以并行执行过程400的两个或更多的框。
图5是用于根据需求生成灵活、可编程且可扩展的网络隧道的示例过程500的流程图。在一些实施方式中,可以由控制平台(例如,控制平台220)执行图5的一个或多个过程框。在一些实施方式中,图5的一个或多个过程框可以由与控制平台分离或包括控制平台的另一个设备或一组设备(诸如用户设备(例如,用户设备210)、网络设备(例如,网络设备240)和/或服务器设备(例如,服务器设备250)执行。
如图5中所示,过程500可以包括接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络与网络设备和一个或多个服务器设备相关联(框510)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,如上面结合图1A-图2所描述的。在一些实施方式中,网络可以与网络设备和一个或多个服务器设备相关联。
如图5中进一步所示,过程500可以包括基于网络信息和服务器信息生成用于隧道封装路径的封装简档(框520)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330等)可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档,如上面结合图1A-图2所描述的。
如图5中进一步所示,过程500可以包括基于网络信息和服务器信息生成用于隧道封装路径的路由简档(框530)。例如,控制平台(例如,使用计算资源224、处理器320、存储组件340等)可以基于网络信息和服务器信息生成用于隧道封装路径的路由简档,如上面结合图1A-图2所描述的。
如图5中进一步所示,过程500可以包括基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档(框540)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330等)可以基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档,如上面结合图1A-图2所描述的。
如图5中进一步所示,过程500可以包括向网络设备提供用于隧道封装路径的封装简档、用于隧道封装路径的路由简档以及用于隧道解封装路径的解封装简档(框550)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330、通信接口370等)可以向网络设备提供用于隧道封装路径的封装简档、用于隧道封装路径的路由简档,以及用于隧道解封装路径的解封装简档,如上面结合图1A-图2所描述的。
如图5中进一步所示,过程500可以包括向一个或多个服务器设备提供用于隧道封装路径的封装简档和用于隧道解封装路径的解封装简档,其中基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径和隧道解封装路径,并且其中基于用于隧道解封装路径的解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道解封装路径(框560)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以向一个或多个服务器设备提供用于隧道封装路径的封装简档和用于隧道解封装路径的解封装简档,如上面结合图1A-图2所描述的。在一些实施方式中,可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径和隧道解封装路径,并且可以基于用于隧道解封装路径的解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道解封装路径。
过程500可以包括附加的实施方式,诸如下面描述的和/或结合本文其他地方描述的一个或多个其他过程的任何单个实施方式或实施方式的任何组合。
在一些实施方式中,封装简档和解封装简档中的每个可以包括应用编程接口(API)。在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于另一个隧道解封装路径的另一个解封装简档,并且可以将另一个解封装简档和解封装简档聚合以生成用于聚合隧道解封装路径的聚合解封装简档,其中聚合隧道解封装路径将隧道解封装路径和另一个隧道解封装路径组合。另外,控制平台可以向网络设备提供用于聚合隧道解封装路径的聚合解封装简档,并且可以向一个或多个服务器设备提供用于聚合隧道解封装路径的聚合解封装简档,其中基于聚合解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供聚合隧道解封装路径。
在一些实施方式中,聚合解封装简档可以包括应用编程接口(API)。在一些实施方式中,控制平台可以接收用于隧道解封装路径的隧道参数改变,并且可以经由网络,使隧道参数改变由网络设备和一个或多个服务器设备实施。
在一些实施方式中,用于隧道封装路径的封装简档可以包括指示用于隧道封装路径的源地址、用于隧道封装路径的目的地地址、用于隧道封装路径的源端口范围、用于隧道封装路径的目的地端口,或与隧道封装路径关联的特征中的一个或多个的信息。在一些实施方式中,用于隧道解封装路径的解封装简档可以包括指示用于隧道解封装路径的源地址、用于隧道解封装路径的目的地地址,或隧道解封装路径的目的地端口中的一个或多个的信息。
尽管图5示出了过程500的示例框,但是在一些实施方式中,过程500可以包括附加的框、更少的框、不同的框或者与图5中描绘的那些不同地布置的框。附加地或备选地,可以并行执行过程500的两个或更多个框。
图6是用于根据需求生成灵活、可编程且可扩展的网络隧道的示例过程600的流程图。在一些实施方式中,可以由控制平台(例如,控制平台220)执行图6的一个或多个过程框。在一些实施方式中,图6的一个或多个过程框可以由与控制平台分离或包括控制平台的另一个设备或一组设备(诸如用户设备(例如,用户设备210)、网络设备(例如,网络设备240)和/或服务器设备(例如,服务器设备250)执行。
如图6中所示,过程600可以包括接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,其中网络与网络设备和一个或多个服务器设备相关联(框610)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,如上面结合图1A-图2所描述的。在一些实施方式中,网络可以与网络设备和一个或多个服务器设备相关联。
如图6中进一步所示,过程600可以包括基于网络信息和服务器信息生成用于隧道封装路径的封装简档(框620)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330等)可以基于网络信息和服务器信息生成用于隧道封装路径的封装简档,如上面结合图1A-图2所描述的。
如图6中进一步所示,过程600可以包括基于网络信息和服务器信息生成用于隧道封装路径的路由简档(框630)。例如,控制平台(例如,使用计算资源224、处理器320、存储组件340等)可以基于网络信息和服务器信息生成用于隧道封装路径的路由简档,如上面结合图1A-图2所描述的。
如图6中进一步所示,过程600可以包括向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档(框640)。例如,控制平台(例如,使用计算资源224、处理器320、存储器330、通信接口370等)可以向网络设备提供用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,如上面结合图1A-图2所描述的。
如图6中进一步所示,过程600可以包括向一个或多个服务器设备提供用于隧道封装路径的封装简档,其中基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备与一个或多个服务器设备之间提供隧道封装路径(框650)。例如,控制平台(例如,使用计算资源224、处理器320、存储组件340、通信接口370等)可以向一个或多个服务器设备提供用于隧道封装路径的封装简档,如上面结合图1A-图2所描述的。在一些实施方式中,可以基于用于隧道封装路径的封装简档和用于隧道封装路径的路由简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道封装路径。
如图6中进一步所示,过程600可以包括接收用于隧道封装路径的隧道参数改变(框660)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以接收用于隧道封装路径的隧道参数改变,如上面结合图1A-图2所描述的。
如图6中进一步所示,过程600可以包括经由网络,使隧道参数改变由网络设备和一个或多个服务器设备实施(框670)。例如,控制平台(例如,使用计算资源224、处理器320、通信接口370等)可以经由网络使隧道参数改变由网络设备和一个或多个服务器设备实施,如上面结合图1A-图2所描述的。
过程600可以包括附加的实施方式,诸如下面描述的和/或结合本文其他地方描述的一个或多个其他过程的任何单个实施方式或实施方式的任何组合。
在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于隧道解封装路径的解封装简档,可以向网络设备提供用于隧道解封装路径的解封装简档,并且可以向一个或多个服务器设备提供用于隧道解封装路径的解封装简档,其中基于用于隧道解封装路径的解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供隧道解封装路径。
在一些实施方式中,控制平台可以基于网络信息和服务器信息生成用于另一个隧道解封装路径的另一个解封装简档,并且可以将另一个解封装简档和解封装简档聚合以生成用于聚合隧道解封装路径的聚合解封装简档,其中聚合隧道解封装路径将隧道解封装路径和另一个隧道解封装路径组合。另外,控制平台可以向网络设备提供用于聚合隧道解封装路径的聚合解封装简档,并且可以向一个或多个服务器设备提供用于聚合隧道解封装路径的聚合解封装简档,其中基于聚合解封装简档,经由网络,在网络设备和一个或多个服务器设备之间提供聚合隧道解封装路径。
在一些实施方式中,用于隧道解封装路径的解封装简档可以包括指示用于隧道解封装路径的源地址、用于隧道解封装路径的目的地地址,或用于隧道解封装路径的目的地端口中的一个或多个的信息。在一些实施方式中,用于隧道封装路径的封装简档可以包括指示用于隧道封装路径的源地址、用于隧道封装路径的目的地地址、用于隧道封装路径的源端口范围、用于隧道封装路径的目的地端口,或与隧道封装路径关联的特征中的一个或多个的信息。在一些实施方式中,一个或多个服务器设备可以包括一个或多个虚拟机,并且可以在网络设备与一个或多个虚拟机中的一个之间提供隧道封装路径。
尽管图6示出了过程600的示例框,但是在一些实施方式中,过程600可以包括附加的框、更少的框、不同的框或者与图6中描绘的那些不同地布置的框。附加地或备选地,可以并行执行过程600的两个或更多个框。
前述公开内容提供说明和描述,但并非旨在穷举或将实施方式限于所公开的精确形式。鉴于以上公开内容,修改和变化是可能的,或者可以从实施方式的实践中获得修改和变化。
如本文所使用的,术语组件旨在被广义地解释为硬件、固件或硬件和软件的组合。
显而易见的是,可以以不同形式的硬件、固件或硬件和软件的组合来实施本文描述的系统和/或方法。用于实施这些系统和/或方法的实际专用控制硬件或软件代码不是对实施方式的限制。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码,应当理解,可以基于本文的描述将软件和硬件设计成实施系统和/或方法。
尽管在权利要求中陈述和/或在说明书中公开了特征的特定组合,但是这些组合并不旨在限制可能的实施方式的公开。实际上,可以以未在权利要求中具体陈述和/或在说明书中公开的方式组合许多这些特征。尽管下面列出的每个从属权利要求可以直接仅依赖于一个权利要求,但是可能的实施方式的公开内容包括每个从属权利要求与权利要求集合中的每个其他权利要求的组合。
除非明确地如此描述,否则本文使用的元件、动作或指令不应当被解释为关键或必要的。另外,如本文所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。另外,如本文所使用的,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”互换使用。在仅有一个项目的情况下,使用术语“一个”或类似的语言。另外,如本文所使用的,术语“具有”、“包括”、“包含”等旨在是开放式术语。另外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。

Claims (20)

1.一种用于生成网络隧道的方法,包括:
由设备接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,
其中所述网络与网络设备和所述一个或多个服务器设备相关联;
由所述设备基于所述网络信息和所述服务器信息生成用于隧道封装路径的封装简档;
由所述设备基于所述网络信息和所述服务器信息生成用于所述隧道封装路径的路由简档;
由所述设备向所述网络设备提供用于所述隧道封装路径的所述封装简档和用于所述隧道封装路径的所述路由简档;以及
由所述设备向所述一个或多个服务器设备提供用于所述隧道封装路径的所述封装简档,
其中基于用于所述隧道封装路径的所述封装简档和用于所述隧道封装路径的所述路由简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道封装路径。
2.根据权利要求1所述的方法,还包括:
基于所述网络信息和所述服务器信息生成用于隧道解封装路径的解封装简档;
向所述网络设备提供用于所述隧道解封装路径的所述解封装简档;以及
向所述一个或多个服务器设备提供用于所述隧道解封装路径的所述解封装简档,
其中基于用于所述隧道解封装路径的所述解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道解封装路径。
3.根据权利要求2所述的方法,还包括:
基于所述网络信息和所述服务器信息生成用于另一隧道解封装路径的另一解封装简档;
聚合所述另一解封装简档和所述解封装简档,以生成用于聚合隧道解封装路径的聚合解封装简档,
其中所述聚合隧道解封装路径将所述隧道解封装路径和所述另一隧道解封装路径组合;
向所述网络设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档;以及
向所述一个或多个服务器设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档,
其中基于所述聚合解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述聚合隧道解封装路径。
4.根据权利要求1所述的方法,还包括:
接收用于所述隧道封装路径的隧道参数改变;以及
经由所述网络,使所述隧道参数改变由所述网络设备和所述一个或多个服务器设备实施。
5.根据权利要求1所述的方法,其中用于所述隧道封装路径的所述封装简档包括应用编程接口(API)。
6.根据权利要求1所述的方法,其中用于所述隧道封装路径的所述封装简档包括指示以下中的一项或多项的信息:
用于所述隧道封装路径的源地址,
用于所述隧道封装路径的目的地地址,
用于所述隧道封装路径的源端口范围,
用于所述隧道封装路径的目的地端口,或
与所述隧道封装路径相关联的特征。
7.根据权利要求1所述的方法,其中所述一个或多个服务器设备包括一个或多个虚拟机,并且
其中在所述网络设备和所述一个或多个虚拟机中的一个虚拟机之间提供所述隧道封装路径。
8.一种用于生成网络隧道的设备,包括:
一个或多个存储器;和
一个或多个处理器,用于:
接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,
其中所述网络与网络设备和所述一个或多个服务器设备相关联;
基于所述网络信息和所述服务器信息生成用于隧道封装路径的封装简档;
基于所述网络信息和所述服务器信息生成用于所述隧道封装路径的路由简档;
基于所述网络信息和所述服务器信息生成用于隧道解封装路径的解封装简档;
向所述网络设备提供用于所述隧道封装路径的所述封装简档、用于所述隧道封装路径的所述路由简档,以及用于所述隧道解封装路径的所述解封装简档;以及
向所述一个或多个服务器设备提供用于所述隧道封装路径的所述封装简档和用于所述隧道解封装路径的所述解封装简档,
其中基于用于所述隧道封装路径的所述封装简档和用于所述隧道封装路径的所述路由简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道封装路径和所述隧道解封装路径,并且
其中基于用于所述隧道解封装路径的所述解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道解封装路径。
9.根据权利要求8所述的设备,其中所述封装简档和所述解封装简档中的每个简档包括应用编程接口(API)。
10.根据权利要求8所述的设备,其中所述一个或多个处理器还用于:
基于所述网络信息和所述服务器信息,生成用于另一隧道解封装路径的另一解封装简档;
聚合所述另一解封装简档和所述解封装简档,以生成用于聚合隧道解封装路径的聚合解封装简档,
其中所述聚合隧道解封装路径将所述隧道解封装路径和所述另一隧道解封装路径组合;
向所述网络设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档;以及
向所述一个或多个服务器设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档,
其中基于所述聚合解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述聚合隧道解封装路径。
11.根据权利要求10所述的设备,其中所述聚合解封装简档包括应用编程接口(API)。
12.根据权利要求8所述的设备,其中所述一个或多个处理器还用于:
接收用于所述隧道解封装路径的隧道参数改变;以及
经由所述网络,使所述隧道参数改变由所述网络设备和所述一个或多个服务器设备实施。
13.根据权利要求8所述的设备,其中用于所述隧道封装路径的所述封装简档包括指示以下中的一项或多项的信息:
用于所述隧道封装路径的源地址,
用于所述隧道封装路径的目的地地址,
用于所述隧道封装路径的源端口范围,
用于所述隧道封装路径的目的地端口,或
与所述隧道封装路径相关联的特征。
14.根据权利要求8所述的设备,其中用于所述隧道解封装路径的所述解封装简档包括指示以下中的一项或多项的信息:
用于所述隧道解封装路径的源地址,
用于所述隧道解封装路径的目的地地址,或
用于所述隧道解封装路径的目的地端口。
15.一种存储指令的非暂态计算机可读介质,所述指令包括:
一个或多个指令,当由设备的一个或多个处理器执行时,使所述一个或多个处理器:
接收与网络相关联的网络信息和与一个或多个服务器设备相关联的服务器信息,
其中所述网络与网络设备和所述一个或多个服务器设备相关联;
基于所述网络信息和所述服务器信息生成用于隧道封装路径的封装简档;
基于所述网络信息和所述服务器信息生成用于所述隧道封装路径的路由简档;
向所述网络设备提供用于所述隧道封装路径的所述封装简档和用于所述隧道封装路径的所述路由简档;
向所述一个或多个服务器设备提供用于所述隧道封装路径的所述封装简档,
其中基于用于所述隧道封装路径的所述封装简档和用于所述隧道封装路径的所述路由简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道封装路径;
接收用于所述隧道封装路径的隧道参数改变;以及
经由所述网络,使所述隧道参数改变由所述网络设备和所述一个或多个服务器设备实施。
16.根据权利要求15所述的非暂态计算机可读介质,其中所述指令还包括:
一个或多个指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器:
基于所述网络信息和所述服务器信息生成用于隧道解封装路径的解封装简档;
向所述网络设备提供用于所述隧道解封装路径的所述解封装简档;以及
向所述一个或多个服务器设备提供用于所述隧道解封装路径的所述解封装简档,
其中基于用于所述隧道解封装路径的所述解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述隧道解封装路径。
17.根据权利要求16所述的非暂态计算机可读介质,其中所述指令还包括:
一个或多个指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器:
基于所述网络信息和所述服务器信息,生成用于另一隧道解封装路径的另一解封装简档;
聚合所述另一解封装简档和所述解封装简档,以生成用于聚合隧道解封装路径的聚合解封装简档,
其中所述聚合隧道解封装路径将所述隧道解封装路径和所述另一隧道解封装路径组合;
向所述网络设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档;以及
向所述一个或多个服务器设备提供用于所述聚合隧道解封装路径的所述聚合解封装简档,
其中基于所述聚合解封装简档,经由所述网络,在所述网络设备和所述一个或多个服务器设备之间提供所述聚合隧道解封装路径。
18.根据权利要求16所述的非暂态计算机可读介质,其中用于所述隧道解封装路径的所述解封装简档包括指示以下中的一项或多项的信息:
用于所述隧道解封装路径的源地址,
用于所述隧道解封装路径的目的地地址,或
用于所述隧道解封装路径的目的地端口。
19.根据权利要求15所述的非暂态计算机可读介质,其中用于所述隧道封装路径的所述封装简档包括指示以下中的一项或多项的信息:
用于所述隧道封装路径的源地址,
用于所述隧道封装路径的目的地地址,
用于所述隧道封装路径的源端口范围,
用于所述隧道封装路径的目的地端口,或
与所述隧道封装路径相关联的特征。
20.根据权利要求15所述的非暂态计算机可读介质,其中所述一个或多个服务器设备包括一个或多个虚拟机,并且
其中在所述网络设备和所述一个或多个虚拟机中的一个虚拟机之间提供所述隧道封装路径。
CN201910469734.7A 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道 Active CN110958169B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111113091.6A CN113839850B (zh) 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/144,726 US10644901B2 (en) 2018-09-27 2018-09-27 Generating flexible, programmable, and scalable network tunnels on demand
US16/144,726 2018-09-27

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111113091.6A Division CN113839850B (zh) 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道

Publications (2)

Publication Number Publication Date
CN110958169A CN110958169A (zh) 2020-04-03
CN110958169B true CN110958169B (zh) 2021-11-05

Family

ID=66223588

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910469734.7A Active CN110958169B (zh) 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道
CN202111113091.6A Active CN113839850B (zh) 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111113091.6A Active CN113839850B (zh) 2018-09-27 2019-05-31 根据需求生成灵活、可编程且可扩展的网络隧道

Country Status (3)

Country Link
US (2) US10644901B2 (zh)
EP (1) EP3629526B1 (zh)
CN (2) CN110958169B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10644901B2 (en) 2018-09-27 2020-05-05 Juniper Networks, Inc. Generating flexible, programmable, and scalable network tunnels on demand
CN110971433B (zh) * 2018-09-29 2022-02-22 华为技术有限公司 获取SRv6隧道信息的方法、设备和系统
JP7293728B2 (ja) * 2019-03-01 2023-06-20 日本電気株式会社 パケットカプセル化方法およびパケットカプセル化装置
US10805210B1 (en) * 2019-09-20 2020-10-13 Juniper Networks, Inc. GRE tunneling with reduced packet encryption at intermediate routers using loose source routing
CN111988395B (zh) * 2020-08-18 2022-05-17 深圳信息职业技术学院 一种服务功能链构建系统及方法
US11960504B2 (en) * 2021-09-02 2024-04-16 Bank Of America Corporation Data replication over low-latency network

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8199642B2 (en) * 2006-09-14 2012-06-12 Cisco Technology, Inc. Dynamically and efficiently forming hierarchical tunnels
US7646731B2 (en) * 2006-12-19 2010-01-12 Cisco Technology, Inc. Route monitoring in a network management system
CN101247308B (zh) * 2007-02-13 2011-04-27 上海亿人通信终端有限公司 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法
CN101155115B (zh) * 2007-07-26 2010-09-08 杭州华三通信技术有限公司 一种自动隧道的实现方法及设备
US7945696B2 (en) * 2007-11-30 2011-05-17 Cisco Technology, Inc. Differentiated routing using tunnels in a computer network
CN102104524B (zh) * 2009-12-21 2015-05-20 中兴通讯股份有限公司 一种通用路由封装隧道键值的管理方法及系统
US8788708B2 (en) * 2012-01-06 2014-07-22 Blue Coat Systems, Inc. Split-domain name service
US9692698B2 (en) 2014-06-30 2017-06-27 Nicira, Inc. Methods and systems to offload overlay network packet encapsulation to hardware
EP3281381B1 (en) * 2015-04-07 2023-10-04 Umbra Technologies Ltd. Multi-perimeter firewall in the cloud
KR20160122992A (ko) * 2015-04-15 2016-10-25 한국전자통신연구원 정책 기반으로 네트워크 간에 연결성을 제공하기 위한 네트워크 통합 관리 방법 및 장치
CN106992915B (zh) * 2016-01-21 2020-11-03 中兴通讯股份有限公司 一种报文解封装处理、数据写入方法及装置
CN111164939B (zh) 2018-01-26 2022-08-23 Nicira股份有限公司 通过网络指定和利用路径
US10644901B2 (en) 2018-09-27 2020-05-05 Juniper Networks, Inc. Generating flexible, programmable, and scalable network tunnels on demand

Also Published As

Publication number Publication date
US20200106641A1 (en) 2020-04-02
US20200244484A1 (en) 2020-07-30
CN110958169A (zh) 2020-04-03
EP3629526A1 (en) 2020-04-01
US10644901B2 (en) 2020-05-05
CN113839850B (zh) 2022-11-11
EP3629526B1 (en) 2021-08-11
CN113839850A (zh) 2021-12-24
US11245551B2 (en) 2022-02-08

Similar Documents

Publication Publication Date Title
CN110958169B (zh) 根据需求生成灵活、可编程且可扩展的网络隧道
US11677644B2 (en) Dynamically modifying a service chain based on network traffic information
US10348825B2 (en) Network platform-as-a-service for creating and inserting virtual network functions into a service provider network
CN110300090B (zh) 基于主机威胁的网络地址来实施威胁策略动作
US20190297103A1 (en) Tracking host threats in a network and enforcing threat policy actions for the host threats
US11695631B1 (en) Generating candidate links and candidate paths before selecting links for an optimized optical network plan
CN110661642B (zh) 确定和实现用于网络中的目的地的出口对等工程和/或入口对等工程
US11411854B2 (en) Utilizing segment routing data and network data to determine optimized network plans and to implement an optimized network plan
EP3716539A1 (en) Utilizing egress peer engineering to determine optimized traffic plans and to implement an optimized traffic plan
CN115460126B (zh) 自治系统间跟踪路由消息

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