CN114449058A - 通过网络虚拟化支持任何协议 - Google Patents
通过网络虚拟化支持任何协议 Download PDFInfo
- Publication number
- CN114449058A CN114449058A CN202111208404.6A CN202111208404A CN114449058A CN 114449058 A CN114449058 A CN 114449058A CN 202111208404 A CN202111208404 A CN 202111208404A CN 114449058 A CN114449058 A CN 114449058A
- Authority
- CN
- China
- Prior art keywords
- protocol
- nvgre
- header
- network
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 claims abstract description 134
- 238000005538 encapsulation Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims description 105
- 239000004744 fabric Substances 0.000 claims description 36
- 239000000835 fiber Substances 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 19
- 230000005641 tunneling Effects 0.000 description 27
- 102100033213 Teneurin-1 Human genes 0.000 description 18
- 108010063973 teneurin-1 Proteins 0.000 description 18
- 102100033227 Teneurin-2 Human genes 0.000 description 16
- 101710122316 Teneurin-2 Proteins 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 229920000638 styrene acrylonitrile Polymers 0.000 description 5
- PWHVEHULNLETOV-UHFFFAOYSA-N Nic-1 Natural products C12OC2C2(O)CC=CC(=O)C2(C)C(CCC2=C3)C1C2=CC=C3C(C)C1OC(O)C2(C)OC2(C)C1 PWHVEHULNLETOV-UHFFFAOYSA-N 0.000 description 4
- GWWNCLHJCFNTJA-UHFFFAOYSA-N nicandrenone-2 Natural products C12OC2C2(O)CC=CC(=O)C2(C)C(CCC23C)C1C3CCC2(O)C(C)C1OC(O)C2(C)OC2(C)C1 GWWNCLHJCFNTJA-UHFFFAOYSA-N 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
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
技术领域
各种示例实施例总体上涉及通信系统,并且更具体地但非排他性地涉及通过网络虚拟化协议支持多种协议。
背景技术
在各种通信网络中,可以使用各种通信技术来支持各种类型的通信。
发明内容
在至少一些示例实施例中,一种装置包括至少一个处理器和包括指令集的至少一个存储器,其中该指令集被配置为在由该至少一个处理器执行时,使该装置支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于在数据链路层之上的通信层处的协议。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段和流标识符字段。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的非标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。在至少一些示例实施例中,在数据链路层之上的通信层处的协议使用以下至少一项来协商:带外机制或手动配置操作。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,并且上层协议字段指示有效载荷的有效载荷类型。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:互联网协议(IP)、光纤信道(FC)、无限带宽(Infiband)、外围组件互连高速(PCIe)或非易失性存储器高速(NVMe)。在至少一些示例实施例中,上层协议类型字段被配置为对在数据链路层之上的通信层处的协议的指示进行编码。在至少一些示例实施例中,上层协议类型字段被配置为对协议类型字段的有效载荷协议类型的以太类型(Ethertype)值进行编码。在至少一些示例实施例中,该分组还包括在网络虚拟化通用路由封装协议的报头之上的网络层报头。在至少一些示例实施例中,网络层报头是互联网协议(IP)报头。在至少一些示例实施例中,IP报头中的协议类型字段包括指示通用路由封装(GRE)协议的值。
在至少一些示例实施例中,一种非瞬态计算机可读介质存储指令集,该指令被配置为使装置支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于在数据链路层之上的通信层处的协议。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段和流标识符字段。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的非标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。在至少一些示例实施例中,在数据链路层之上的通信层处的协议使用以下至少一项来协商:带外机制或手动配置操作。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,并且上层协议字段指示有效载荷的有效载荷类型。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:互联网协议(IP)、光纤信道(FC)、无限带宽(Infiband)、外围组件互连高速(PCIe)或非易失性存储器高速(NVMe)。在至少一些示例实施例中,上层协议类型字段被配置为对在数据链路层之上的通信层处的协议的指示进行编码。在至少一些示例实施例中,上层协议类型字段被配置为对协议类型字段的有效载荷协议类型的Ethertype值进行编码。在至少一些示例实施例中,该分组还包括在网络虚拟化通用路由封装协议的报头之上的网络层报头。在至少一些示例实施例中,网络层报头是互联网协议(IP)报头。在至少一些示例实施例中,IP报头中的协议类型字段包括指示通用路由封装(GRE)协议的值。
在至少一些示例实施例中,一种方法包括支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于在数据链路层之上的通信层处的协议。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段和流标识符字段。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的非标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。在至少一些示例实施例中,在数据链路层之上的通信层处的协议使用以下至少一项来协商:带外机制或手动配置操作。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,并且上层协议字段指示有效载荷的有效载荷类型。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:互联网协议(IP)、光纤信道(FC)、无限带宽(Infiband)、外围组件互连高速(PCIe)或非易失性存储器高速(NVMe)。在至少一些示例实施例中,上层协议类型字段被配置为对在数据链路层之上的通信层处的协议的指示进行编码。在至少一些示例实施例中,上层协议类型字段被配置为对协议类型字段的有效载荷协议类型的Ethertype值进行编码。在至少一些示例实施例中,该分组还包括在网络虚拟化通用路由封装协议的报头之上的网络层报头。在至少一些示例实施例中,网络层报头是互联网协议(IP)报头。在至少一些示例实施例中,IP报头中的协议类型字段包括指示通用路由封装(GRE)协议的值。
在至少一些示例实施例中,一种装置包括用于支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信的模块,其中有效载荷基于在数据链路层之上的通信层处的协议。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段和流标识符字段。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的非标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。在至少一些示例实施例中,在数据链路层之上的通信层处的协议使用以下至少一项来协商:带外机制或手动配置操作。在至少一些示例实施例中,报头包括协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,并且上层协议字段指示有效载荷的有效载荷类型。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括网络栈的标准协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议包括以下至少一项:互联网协议(IP)、光纤信道(FC)、无限带宽(Infiband)、外围组件互连高速(PCIe)或非易失性存储器高速(NVMe)。在至少一些示例实施例中,上层协议类型字段被配置为对在数据链路层之上的通信层处的协议的指示进行编码。在至少一些示例实施例中,上层协议类型字段被配置为对协议类型字段的有效载荷协议类型的Ethertype值进行编码。在至少一些示例实施例中,该分组还包括在网络虚拟化通用路由封装协议的报头之上的网络层报头。在至少一些示例实施例中,网络层报头是互联网协议(IP)报头。在至少一些示例实施例中,IP报头中的协议类型字段包括指示通用路由封装(GRE)协议的值。
在至少一些示例实施例中,一种装置包括至少一个处理器和包括指令集的至少一个存储器,其中该指令集被配置为在由该至少一个处理器执行时,使该装置支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于以太网以外的协议。在至少一些示例实施例中,以太网以外的协议包括网络栈的协议。在至少一些示例实施例中,以太网以外的协议包括定制协议。在至少一些示例实施例中,定制协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。
在至少一些示例实施例中,一种非瞬态计算机可读介质存储指令集,该指令被配置为使装置支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于以太网以外的协议。在至少一些示例实施例中,以太网以外的协议包括网络栈的协议。在至少一些示例实施例中,以太网以外的协议包括定制协议。在至少一些示例实施例中,定制协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。
在至少一些示例实施例中,一种方法包括支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于以太网以外的协议。在至少一些示例实施例中,以太网以外的协议包括网络栈的协议。在至少一些示例实施例中,以太网以外的协议包括定制协议。在至少一些示例实施例中,定制协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。
在至少一些示例实施例中,一种装置包括用于支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信的模块,其中有效载荷基于以太网以外的协议。在至少一些示例实施例中,以太网以外的协议包括网络栈的协议。在至少一些示例实施例中,以太网以外的协议包括定制协议。在至少一些示例实施例中,定制协议包括以下至少一项:交换结构协议或卡间通信协议。在至少一些示例实施例中,在数据链路层之上的通信层处的协议的指示没有被编码在报头内。
附图说明
通过结合附图考虑以下具体实施方式,可以容易地理解本文中的教导,在附图中:
图1描绘了被配置为支持通过网络虚拟化通用路由封装(NVGRE)技术传输任何协议的通信系统的示例实施例;
图2描绘了被配置为支持基于GRE的隧道传输的通信系统的示例实施例;
图3描绘了被配置为支持基于GRE的隧道传输的通信系统的示例实施例;
图4描绘了可以通过GRE隧道发送的GRE隧道分组的示例实施例;
图5描绘了被配置为支持基于NVGRE的覆盖的通信系统的示例实施例;
图6描绘了被配置为支持基于NVGRE的隧道传输的通信系统的示例实施例;
图7描绘了可以通过GRE隧道发送的GRE隧道分组的示例实施例;
图8A-图8B描绘了多租户DC中的NVGRE覆盖/NVO的示例实施例;
图9描绘了作为VM在物理服务器上的管理程序上运行的非基于机箱的NFV路由器的示例实施例;
图10描绘了具有通过内部网络连接的卡的基于机箱的路由器平台的示例实施例;
图11描绘了基于机箱的路由器平台的内部网络的示例实施例;
图12描绘了基于机箱的网络功能虚拟化(NFV)路由器的示例实施例;
图13描绘了使用NVGRE覆盖的虚拟化光纤信道(FC)的示例实施例;
图14描绘了用于支持通过NVGRE传输任何协议的G-NVGRE-1报头的编码的示例实施例;
图15描绘了用于支持通过NVGRE传输任何协议的G-NVGRE-2报头的编码的示例实施例;
图16描绘了用于由NVGRE覆盖终止点使用以在NVGRE覆盖终止点处配置有效载荷类型到VSID的映射的方法的示例实施例;
图17描绘了用于由NVGRE覆盖终止点使用以用于在NVGRE覆盖上发送NVGRE覆盖分组的方法的示例实施例,其中该分组利用G-NVGRE-1报头而被编码;
图18描绘了用于由NVGRE覆盖终止点使用以用于接收和处理利用G-NVGRE-1报头而被编码的NVGRE覆盖分组的方法的示例实施例;
图19描绘了用于由NVGRE覆盖终止点使用以用于在NVGRE覆盖上发送NVGRE覆盖分组的方法的示例实施例,其中该分组利用G-NVGRE-2报头而被编码;
图20描绘了用于由NVGRE覆盖终止点使用以用于接收和处理利用G-NVGRE-2报头而被编码的NVGRE覆盖分组的方法的示例实施例;
图21描绘了用于支持通过网络虚拟化通用路由封装传输任何协议的方法的示例实施例;
图22描绘了用于支持通过网络虚拟化通用路由封装传输任何协议的方法的示例实施例;以及
图23描绘了适合用于执行本文中呈现的各种功能的计算机的示例实施例。
为便于理解,本文中尽可能使用相同的附图标记表示不同附图之间共有的相同元素。
具体实施方式
本文中呈现了用于支持通过网络虚拟化技术传输各种协议的各种示例实施例。用于支持通过网络虚拟化技术传输各种协议的各种示例实施例可以被配置为支持通过网络虚拟化通用路由封装(NVGRE)传输各种协议。用于支持通过网络虚拟化技术传输各种协议的各种示例实施例可以被配置为支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于除太网之外的通信协议。用于支持通过网络虚拟化技术传输各种协议的各种示例实施例可以被配置为支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于在数据链路层之上的通信层处的协议。应当理解,通过参考下面进一步讨论的各种附图,可以进一步理解这些和各种其他示例实施例以及支持通过网络虚拟化技术传输多个协议的优点或潜在优点。
图1描绘了被配置为支持通过网络虚拟化通用路由封装(NVGRE)技术传输任何协议的通信系统的示例实施例。
通信系统100包括被配置为通过通信网络120进行通信的一对NVGRE端点110。
NVGRE端点110可以是路由器、支持虚拟机(VM)的服务器、支持VM的服务器中的管理程序等。NVGRE端点110包括NVGRE端点110-A和NVGRE端点110-Z。NVGRE端点110-A和NVGRE端点110-Z被配置为支持由NVGRE端点110支持的各对NVGRE覆盖终止点111之间的一组NVGRE覆盖(说明性地,在NVGRE端点110-A上的NVGRE覆盖终止点111-A与NVGRE端点110-Z上的NVGRE覆盖终止点111-Z之间)。NVGRE端点110上的NVGRE终止点111之间的NVGRE覆盖可以被配置为支持各种协议的分组的传输(在图1中通过描绘可以支持的与N个不同协议(被标记为PROT-1至PROT-N)相关联的N对不同NVGRE覆盖终止点111来表示)。NVGRE端点110上的NVGRE终止点111之间的NVGRE覆盖可以由通信网络120上的隧道121支持(例如,在通信网络120是IP网络并且隧道121可以是底层IP隧道的情况下;然而,应当理解,可以支持各种其他类型的隧道)。
NVGRE端点110(包括NVGRE覆盖终止点111和在NVGRE端点110上的NVGRE终止点111之间的NVGRE覆盖)可以被配置为支持任何通信协议的分组的通信。NVGRE端点110可以被配置为支持以下各项的分组的传输:开放系统互连(OSI)模型的各个层处的协议、传输控制协议(TCP)/互联网协议(IP)套件的各个层处的协议、定制协议等、以及其各种组合。NVGRE端点110可以被配置为支持任何通信协议(包括以太网和/或除以太网之外的通信协议)的分组的通信。NVGRE端点110可以被配置为支持在OSI模型的数据链路层之上操作的任何通信协议的分组的通信。NVGRE端点110可以被配置为支持可以在NVGRE端点之间使用的各种其他协议的分组的通信。
应当注意,通过首先考虑NVGRE的各个方面以及其中可以使用NVGRE覆盖来传输各种协议的分组的各种上下文,可以进一步理解对使用NVGRE覆盖来传输各种协议的分组的支持。
GRE是一种基于IP的隧道传输机制,这意味着,GRE是在IP之上的一层。基于GRE的隧道传输是标准化的,并且GRE可以通过IP网络在两个远程端点之间透明地隧道传输任何协议分组。基于GRE的隧道可以通过参考图2-图4进一步理解。NVGRE是GRE隧道传输的扩展,它允许两个远程路由器通过GRE隧道多路复用一组独立以太网网络(被称为覆盖以太网网络),其中路由器由IP网络(底层)分隔。基于NVGRE的隧道传输可以通过参考图5-图7进一步理解,并且可以利用基于NVGRE的隧道传输的各种上下文可以通过参考图8-图13进一步理解。
图2描绘了被配置为支持基于GRE的隧道传输的通信系统的示例实施例。通信系统200包括被配置为通过通信网络220进行通信的一对路由器210。该对路由器210包括路由器210-A和路由器210-Z。路由器210-A和路由器210-Z被配置为支持由路由器210支持的各对GRE隧道用户211之间的连接(说明性地,在路由器210-A上的GRE隧道用户211-A与路由器210-Z上的GRE隧道用户211-Z之间)。路由器210不直接连接,因此路由器210通过路由器210之间的GRE隧道221建立连接。路由器210每个配置有至少一个IP地址,该IP地址被IP底层用作源地址或目的地地址。路由器210之间的GRE隧道传输中涉及的各层在图3中描绘。
图3描绘了被配置为支持基于GRE的隧道传输的通信系统的示例实施例。通信系统300包括一对路由器310,包括路由器310-A和路由器310-Z(统称为路由器310)以及被配置为支持路由器310之间的通信的IP网络324。路由器310支持数据链路层313(说明性地,基于路由器310-A上的数据链路层313-A和路由器310-Z上的数据链路层313-Z)、在数据链路层313之上的IP层314(说明性地,基于路由器310-A上的IP层314-A和路由器310-Z上的IP层314-Z)、在IP层314之上的GRE层315(说明性地,基于路由器310-A上的GRE层315-A和路由器310-Z上的GRE层315-Z)、以及在GRE层315之上的GRE隧道用户316(说明性地,在路由器310-A上支持的GRE隧道用户316-A和在路由器310-Z上支持的GRE隧道用户316-Z)。路由器310上的数据链路层313、IP层314、GRE层315和GRE隧道用户316可以分别形成在路由器310上配置的通信协议栈的全部或一部分(例如,基于开放系统互连(OSI)模型或一个或多个其他合适的通信协议栈模型)。路由器310被配置为基于GRE层315来提供隧道325,其中应当理解,隧道325是无连接的、不可靠的隧道。注意,GRE隧道分组的格式在图4中呈现。
图4描绘了可以通过GRE隧道发送的GRE隧道分组的示例实施例。
GRE隧道分组400包括数据链路报头401、IP报头402、GRE报头403和有效载荷404。
数据链路报头401是要到达IP网络中的紧接的下一跳的链路层报头。例如,对于从路由器到IP下一跳的以太网链路,该报头将是以太网报头。
IP报头402包括IPv4数据报报头或IPv6数据报报头。源地址和目的地地址分别被设置为IP底层中的源路由器和目的地路由器的地址。402中的IPv4协议号字段或IPv6下一报头字段被设置为47,以将GRE分组指示为IP的有效载荷。
GRE报头403包括被设置为指示有效载荷的类型的Ethertype值的协议类型字段,即,来自GRE隧道的用户的分组。
有效载荷404包括来自隧道的用户的分组,并且可以是任何类型(例如,以太网、IPv4、IPv6、MPLS等),其中该类型由GRE报头403中的协议类型字段指示。
应当理解,这种封装会引起通过GRE隧道发送用户分组。当隧道的接收端点接收到分组时,它通过移除IP和GRE报头来解封装用户分组。然后,分组由适当的用户应用基于在GRE报头303中指定的协议类型进行处理。
图5描绘了被配置为支持基于NVGRE的覆盖的通信系统的示例实施例。通信系统500包括被配置为通过通信网络520进行通信的一对路由器510。该对路由器510包括路由器510-A和路由器510-Z。路由器510-A和路由器510-Z被配置为支持由路由器510支持的各对NVGRE覆盖终止点511之间的一组以太网覆盖(说明性地,在路由器510-A上的NVGRE覆盖终止点511-A与路由器510-Z上的NVGRE覆盖终止点511-Z之间)。路由器510上的NVGRE终止点511之间的以太网覆盖可以被配置为支持各种以太网覆盖的分组的传输(在图5中通过描绘可以支持的、N对不同以太网覆盖(被标记为ETH-1至ETH-N)来表示)。路由器510上的NVGRE终止点511之间的以太网覆盖可以由通信网络520上的隧道521支持(例如,在通信网络520是IP网络并且隧道521可以是底层IP隧道的情况下;然而,应当理解,可以支持各种其他类型的隧道)。注意,由于路由器510彼此不相邻,所以路由器510在它们之间的单个IP底层隧道上多路复用基于NVGRE的以太网覆盖。路由器510之间的NVGRE隧道传输中涉及的各层在图6中描绘。
图6描绘了被配置为支持基于NVGRE的隧道传输的通信系统的示例实施例。通信系统600包括一对路由器610,包括路由器610-A和路由器610-Z(统称为路由器610)以及被配置为支持路由器610之间的通信的IP网络624。路由器610支持数据链路层613(说明性地,基于路由器610-A上的数据链路层613-A和路由器610-Z上的数据链路层613-Z)、在数据链路层613之上的IP层614(说明性地,基于路由器610-A上的IP层614-A和路由器610-Z上的IP层614-Z)、在IP层614之上的GRE层615(说明性地,基于路由器610-A上的GRE层615-A和路由器610-Z上的GRE层615-Z)、以及在GRE层615之上的覆盖网络616(说明性地,在路由器610-A上支持的覆盖网络616-A和在路由器610-Z上支持的覆盖网络616-Z)。路由器610上的数据链路层613、IP层614、GRE层615和覆盖网络616可以分别形成在路由器610上配置的通信协议栈的全部或一部分(例如,基于OSI模型或一个或更多其他合适的协议栈模型)。路由器610被配置为基于GRE层615来提供隧道625,其中应当理解,隧道625是无连接的、不可靠的隧道。注意,GRE隧道分组的格式在图7中呈现。
图7描绘了可以通过GRE隧道发送的GRE隧道分组的示例实施例。
GRE隧道分组700包括数据链路报头701、IP报头702、GRE报头703、和虚拟连接的以太网分组704。
数据链路报头701是要到达IP网络中的紧接的下一跳的链路层报头。例如,对于从路由器到IP下一跳的以太网链路,该报头将是以太网报头。
IP报头402包括IPv4数据报报头或IPv6数据报报头。源地址和目的地地址分别被设置为IP底层中的源路由器和目的地路由器的地址。402中的IPv4协议号字段或IPv6下一报头字段被设置为47,以将GRE分组指示为IP的有效载荷。
GRE报头703包括被设置为指示有效载荷的类型的Ethertype值的协议类型字段,即,来自GRE隧道的用户的分组。GRE报头503中的协议类型字段被设置为0x6558的Ethertype值,以指示“透明以太网桥接”。当Ethertype值为0x6558时,GRE报头格式不同,并且被称为NVGRE报头。NVGRE报头在Ethertype字段之后包括以下字段:(1)3个八位字节的虚拟子网ID(VSID)字段,该字段包括在基于NVGRE的隧道上被多路复用的覆盖的标识符,以及(2)一个1个八位字节的FlowID(流ID)字段,该字段指示属于VSID的分组内的每流熵(例如,其可以被用于VSID内的负载平衡分组)。因此,NVGRE报头与GRE报头之间的主要区别在于能够使用VSID字段来多路复用多个覆盖网络的能力。
以太网分组704是NVGRE覆盖的有效载荷,它是覆盖以太网网络上的分组。这种封装会引起NVGRE覆盖上的以太网分组跨IP网络进行隧道传输。当NVGRE覆盖的接收端点接收到分组时,接收端点通过移除IP和GRE报头来解封装以太网分组。基于GRE报头中的Ethertype 0x6558,接收端点确定有效载荷是覆盖上的以太网分组并且GRE报头的类型为NVGRE。基于NVGRE报头中的VSID,与分组相关联的以太网网络被标识,并且因此,分组在以太网网络的上下文中被处置。
应当理解,NVGRE覆盖可以被用于各种环境,诸如用于网络虚拟化覆盖(NVO)、虚拟IP网络、基于机箱的NFV路由器、光纤信道虚拟化等。
如上所述,NVGRE覆盖可以被用于提供NVO,NVO在“多租户”数据中心(DC)环境中构建虚拟以太网网络。DC是专为企业业务需求而设计的云基础设施资源的池或集合。基本资源是服务器(例如,处理器(例如,中央处理单元(CPU))、存储器(例如,随机存取存储器(RAM)等)、存储(例如,磁盘空间等)、以及互连服务器和存储的网络(例如,带宽)。多租户DC可以在单个物理基础设施上为多个企业客户(被称为租户)托管虚拟DC。虚拟DC是物理数据中心的虚拟表示,配有服务器、存储集群和很多网络组件,所有这些都驻留在由多租户DC托管的虚拟空间中。虚拟DC的服务器使用虚拟机(VM)被虚拟化。一个或多个VM运行在物理服务器之上,其中每个VM分配有物理服务器的处理器核和存储器(例如,RAM)的份额。物理服务器中的VM可以属于同一租户,也可以属于不同租户。运行在物理服务器中的被称为“管理程序”的薄层软件将VM与物理服务器解耦,并且根据需要为每个VM动态地分配计算资源。虚拟化存储有多种解决方案,为简单起见,此处略去。租户的VM和虚拟化存储通过特定于租户的虚拟网络被互连。虚拟网络被实现为覆盖网络,该覆盖网络位于基于IP的底层之上,该底层互连DC中的物理资源。NVO解决方案提供层2虚拟网络,以实现跨租户的虚拟网络的多租户和VM移动性。因此,向每个租户提供了虚拟化服务器、虚拟化存储、以及互连虚拟化服务器和虚拟化存储的虚拟网络的孤岛。当NVGRE覆盖被部署为NVO时,NVGRE报头中的VSID是标识虚拟网络的解复用器。多租户DC中的NVGRE覆盖/NVO的示例在图8A-图8B中描述。
图8A-图8B描绘了多租户DC中的NVGRE覆盖/NVO的示例实施例。
图8A描绘了多租户DC中的以太网NVGRE覆盖/NVO的示例实施例。
在图8A中,通信系统800包括服务器810和服务器820。服务器810和服务器820是通过IP网络830连接的两个物理服务器。在图8A中,每个物理服务器被示出为已经被分隔为三个阶层:(1)“硬件”层,其包括处理器、存储器(例如,RAM)、I/O端口等(例如,诸如在网络接口卡(NIC)中),(2)管理并且分配硬件资源给VM的“管理程序”层,以及(3)在管理程序之上运行的VM。服务器810经由NIC 817中的一个或多个端口连接到IP网络(例如,以太网NIC)。服务器820经由NIC 827(例如,以太网NIC)中的一个或多个端口连接到IP网络。
在图8A中,每个物理服务器托管两个租户,两个租户分别被命名为Ten-1和Ten-2(“Ten”被用作“租户”的简写)。VM 812和VM 822分别是托管在物理服务器810和820中的Ten-1的VM(服务器)。VM 813和VM 823分别是托管在物理服务器810和820中的Ten-2的VM(服务器)。图8A示出了使用NVGRE覆盖/NVO的每个租户的VM之间的虚拟网络。为简单起见,本文中的虚拟网络是点对点以太网链路,因为每个租户只有两个VM。
在图8A中,在每个物理服务器810和820中的管理程序之间创建NVGRE覆盖840。服务器810中的NVGRE覆盖终止点816位于服务器810中的管理程序中。NVGRE覆盖终止点816被配置有IP地址以被用于IP底层,使得该地址通过IP网络830是可到达的。服务器820中的NVGRE覆盖终止点826位于服务器820中的管理程序中。NVGRE覆盖终止点826被配置有IP地址以被用于IP底层,使得该地址通过IP网络830是可到达的。每个租户被分配网络范围的唯一NVGRE VSID以用于其NVGRE覆盖。在该示例中,假定Ten-1被分配VSID 100并且Ten-2被分配VSID 200。注意,本文中,NVGRE终止点816和826可以被认为等同于图1、2和5中描绘的路由器。
在图8A中,VM 812经由虚拟以太网端口814连接到NVGRE覆盖终止点816,并且类似地,VM 822经由虚拟以太网端口824连接到NVGRE覆盖终止点826。在NVGRE覆盖终止点816中,虚拟以太网端口814被映射到VSID 100。在NVGRE覆盖终止点826中,虚拟以太网端口824被映射到VSID 100。这样就完成了Ten-1的VM之间的点对点虚拟网络的建立。
在图8A中,VM 813经由虚拟以太网端口815连接到NVGRE覆盖终止点816,并且类似地,VM 823经由虚拟以太网端口825连接到NVGRE覆盖终止点826。在NVGRE覆盖终止点816中,虚拟以太网端口815被映射到VSID 200。在覆盖终止点826中,虚拟以太网端口825被映射到VSID 200。这样就完成了Ten-2的VM之间的点对点虚拟网络的建立。
在图8A中,NVGRE覆盖的有效载荷是层2/以太网分组,因为每个VM生成以太网分组。
在图8A中,在Ten-1中,假定VM 812向VM 822发送分组。首先,VM 812经由虚拟以太网端口814发送以太网分组。当分组被NVGRE覆盖终止点816接收时,NVGRE覆盖终止点816将具有VSID 100的NVGRE报头推送到分组上,然后推送隧道传输封装,即,IP报头。隧道的IP报头中的源地址被设置为NVGRE覆盖终止点816的IP地址,并且隧道的IP报头中的目的地地址被设置为NVGRE覆盖终止点826的IP地址。所得到的分组由NVGRE覆盖终止816发送到IP网络830。在被IP网络830路由之后,分组最终到达NVGRE覆盖终止点826。NVGRE覆盖终止点826解封装隧道传输封装并且查找在隧道传输封装下方的具有VSID 100的NVGRE报头。由于VSID100在NVGRE覆盖终止点826中被映射到虚拟以太网端口824,因此NVGRE报头被移除并且所得到的以太网分组在虚拟以太网端口824上被转发。然后该分组由VM 822接收。以相同的方式,Ten-2中的VM通过其虚拟网络相互交换分组。以这种方式,多个以太网网络使用其相应NVGRE VSID在两个隧道端点之间被多路复用。
用于支持通过网络虚拟化技术传输多个协议的各种示例实施例可以被配置为支持使用NVGRE来支持各种类型的非以太网网络的虚拟化。这可以通过克服可能使得NVGRE仅虚拟化以太网网络并且因此仅携带以太网分组作为有效载荷的NVGRE的各种潜在限制来提供各种优势或潜在优势。
用于支持通过网络虚拟化技术传输多个协议的各种示例实施例可以被配置为支持使用NVGRE来支持虚拟IP网络。在这种情况下,VM(而不是NVO)之间的覆盖网络是层3网络(例如,IP网络)而不是以太网。对于每个租户,其一对VM通过虚拟IP接口被互连。假定NVGRE被配置有传输IP分组的能力,然后NVGRE覆盖被部署,其中NVGRE报头中的VSID是标识虚拟IP网络的解复用器。多租户DC中的IP NVGRE覆盖/NVO的示例实施例关于图8B来呈现。
图8B描绘了多租户DC中的IP NVGRE覆盖/NVO的示例实施例。
在图8B中,通信系统800包括服务器810和服务器820。服务器810和服务器820是通过IP网络830连接的两个物理服务器。在图8B中,每个物理服务器被示出为已经被分隔成三个阶层:(1)“硬件”层,其包括处理器、存储器(例如,RAM)、I/O端口等(例如,诸如在网络接口卡(NIC)中),(2)管理并且分配硬件资源给VM的“管理程序”层,以及(3)在管理程序之上运行的VM。服务器810经由NIC 817中的一个或多个端口连接到IP网络(例如,以太网NIC)。服务器820经由NIC 827(例如,以太网NIC)中的一个或多个端口连接到IP网络。
在图8B中,每个物理服务器托管两个租户,分别命名为Ten-1和Ten-2(“Ten”被用作“租户”的简写)。VM 812和VM 822分别是托管在物理服务器810和820中的Ten-1的VM(服务器)。VM 813和VM 823分别是托管在物理服务器810和820中的Ten-2的VM(服务器)。图8B示出了使用NVGRE覆盖/NVO的每个租户的VM之间的虚拟IP网络。为简单起见,本文中的虚拟网络是点对点IP接口,因为每个租户只有两个VM。
在图8B中,在每个物理服务器810和820中的管理程序之间创建NVGRE覆盖840。服务器810中的NVGRE覆盖终止点816位于服务器810中的管理程序中。NVGRE覆盖终止点816被配置有IP地址以用于IP底层,使得该地址通过IP网络830是可到达的。服务器820中的NVGRE覆盖终止点826位于服务器820中的管理程序中。NVGRE覆盖终止点826被配置有IP地址以用于IP底层,使得该地址通过IP网络830是可到达的。每个租户被分配网络范围的唯一NVGREVSID以用于其NVGRE覆盖。在该示例中,假定Ten-1被分配了VSID 100并且Ten-2被分配VSID200。注意,本文中,NVGRE终止点816和826可以被认为等效于图1、2和5中描绘的路由器。
在图8B中,VM 812经由虚拟IP接口814连接到NVGRE覆盖终止点816,并且类似地,VM 822经由虚拟IP接口824连接到NVGRE覆盖终止点826。在NVGRE覆盖终止点816中,虚拟IP接口814被映射到VSID 100。在NVGRE覆盖终止点826中,虚拟IP接口824被映射到VSID 100。这样就完成了Ten-1的VM之间的点对点虚拟IP接口的建立。
在图8B中,VM 813经由虚拟IP接口815连接到NVGRE覆盖终止点816,并且类似地,VM 823经由虚拟IP接口825连接到NVGRE覆盖终止点826。在NVGRE覆盖终止点816中,虚拟IP接口815被映射到VSID 200。在覆盖终止点826中,虚拟IP接口825被映射到VSID 200。这样就完成了Ten-2的VM之间的点对点虚拟IP接口的建立。
在图8B中,NVGRE覆盖的有效载荷是IP分组,因为每个VM在其相应虚拟IP接口上生成IP分组。
在图8B中,在Ten-1中,假定VM 812向VM 822发送IP分组。首先,VM 812经由虚拟IP接口814发送IP分组。当分组被NVGRE覆盖终止点816接收时,NVGRE覆盖终止点816将具有VSID 100的NVGRE报头推送到分组上,然后推送隧道传输封装,即,IP报头。隧道的IP报头中的源地址被设置为NVGRE覆盖终止点816的IP地址,并且隧道的IP报头中的目的地地址被设置为NVGRE覆盖终止点826的IP地址。所得到的分组由NVGRE覆盖终止点816发送到IP网络830。在被IP网络830路由之后,分组最终到达NVGRE覆盖终止点826。NVGRE覆盖终止点826解封装隧道传输封装并且查找在隧道传输封装下方的具有VSID 100的NVGRE报头。由于VSID100在NVGRE覆盖终止点826中被映射到虚拟IP接口824,因此NVGRE报头被移除并且所得到的IP分组在虚拟IP接口824上被转发。然后该分组由VM 822接收。以相同的方式,Ten-2中的VM通过其虚拟网络相互交换分组。以这种方式,多个虚拟IP接口使用其相应NVGRE VSID在两个隧道端点之间被多路复用。
用于支持通过网络虚拟化技术传输多个协议的各种示例实施例可以被配置为支持使用NVGRE来支持基于机箱的NFV路由器。
如上所述,NVGRE覆盖可以被用于提供基于机箱的NFV路由器。基于NFV的路由器在商用的现成的物理服务器(诸如,基于x86的服务器平台)上实现具有一个或多个VM的路由器平台。可以有两种实现NFV路由器的方法:(1)非基于机箱,其中整个路由器被托管在单个VM上,或者(2)基于机箱,其中基于机箱的路由器的每个组件由分开的VM实现。注意,非基于机箱的NFV路由器可以关于图9进一步理解,并且基于机箱的NFV路由器可以关于图10和图11进一步理解。
图9描绘了作为VM在物理服务器上的管理程序上运行的非基于机箱的NFV路由器的示例实施例。物理服务器900从NIC上的端口接收分组,对分组进行处理,并且经由NIC上的端口将分组转发到相关目的地。为了最佳性能,分配给路由器的NIC由路由器直接控制(例如,单根输入/输出虚拟化(SR-IOV)、外围组件互连(PCI)直通等),而无需由管理程序进行任何调解。路由器的控制平面和转发平面位于单个VM中。注意,由于NIC是基于以太网的,所以NFV路由器仅支持以太网作为数据链路层。
图10描绘了具有通过内部网络连接的卡的基于机箱的路由器平台的示例实施例。机箱1000包括固定数目的插槽,其中每个插槽容纳一个卡。机箱1000包括操作路由器的控制平面的至少一个控制平面卡(被示出为CTRL CARD)。出于冗余目的,可以存在多个控制平面卡,但为简单起见,仅描绘了一个控制平面卡。机箱的其余插槽托管转发平面卡,其中每个转发平面卡包括用于分组传输和接收的端口。在图10中,机箱被示出为具有(N+1)个插槽,其中存在N个转发平面卡(在插槽0-N中,并且插槽x除外)和一个控制平面卡(在插槽x中)。该组N个转发平面卡实现路由器的转发平面,该转发平面用于接收、处理和发出分组到特指的目的地。通常,至少存在两个内部网络连接所有卡,其中每个网络的根节点(中心化实体)位于控制平面卡中。示出了两个内部网络的互连的图10的放大图在图11中描绘。
图11描绘了基于机箱的路由器平台的内部网络的示例实施例。
基于机箱的路由器1100包括用于支持数据分组的通信的第一网络(例如,到达卡1中的端口上的数据分组经由卡4中的端口被转发)和用于支持控制和管理消息的通信的第二网络(例如,在控制平面卡与转发平面卡之间)。
第一网络用于交换结构,数据分组通过该交换结构在跨过卡被交换。在图11中,交换结构被托管在控制平面卡内,但也可以具有单独的交换结构卡。如果到达卡1的端口的分组需要由卡4中的端口发出,则在执行入口处理之后,卡1将分组在信道上发送到交换结构,然后交换结构将分组中继到卡4以用于出口处理和最终传输。每个卡通过交换结构信道(交换结构网络中的链路)连接到交换结构。
第二网络用于卡间通信(ICC)。ICC控制在控制平面中,控制平面通过ICC信道(ICC网络中的链路)连接到每个转发平面卡。ICC网络被用于控制平面与转发平面之间的所有控制和管理消息传递。例如,控制平面对转发平面的配置是使用ICC网络进行的。转发平面生成的任何警报或告警都会通过ICC网络被通知给控制平面。用于检查卡之间的连接性的心跳作为ICC消息被互换。
注意,ICC和交换结构网络两者都是无损的,这意味着,分组/消息可以可靠地传输而没有任何丢弃。
应当理解,虽然主要是针对使用两个互连网络而呈现的,但也可以存在两个以上的互连网络。
应当理解,基于机箱的路由器可以被虚拟化为基于机箱的NFV路由器,其示例关于图12来呈现。
图12描绘了基于机箱的NFV路由器的示例实施例。基于机箱的NFV路由器1200使用商用的现成的服务器硬件提供关于图10呈现的基于机箱的路由器的虚拟化版本(例如,在基于机箱的NFV路由器1200中,图10的基于机箱的路由器1000的每个卡由VM模仿,并且每个VM驻留在分开的物理服务器中以最小化单个故障点)。本文中,术语“控制平面服务器”被用于表示托管控制平面卡的VM的物理服务器,术语“转发平面服务器x”被用于表示托管转发平面卡x的VM的物理服务器。
在图12中,控制平面和转发平面VM被IP网络分开。VM可以位于局域网(LAN)内,即,位于同一IP子网内。但是,本文中,考虑通过IP网络分开,因为如果VM连接在LAN内,它是也可以满足要求的超集情况。
在图12中,每个转发平面VM使用其NIC-1来模拟用于分组接收和传输的端口。为了最佳性能,NIC-1由转发平面VM直接控制(例如,使用SR-IOV、PCI直通等),而无需管理程序进行任何调解。每个转发平面服务器使用NIC-2上的端口连接到IP网络。控制平面服务器使用NIC-1上的端口连接到IP网络。
在图12中,例如,各种示例实施例可以被配置为支持使用NVGRE来传输任何类型的分组。在至少一些这样的实施例中,VM之间的ICC和交换结构信道可以被设置为跨IP网络的NVGRE覆盖。NVGRE覆盖终止点位于管理程序中。每个转发平面服务器和控制平面服务器之间有两个NVGRE覆盖——一个用于ICC信道,另一个用于交换结构信道。可以参考以下示例进一步理解以这种方式使用NVGRE。在该示例中,假定由覆盖用于ICC信道的VSID是100,并且由覆盖用于交换结构信道的VSID是200。
在图12的该示例中,为了针对覆盖创建IP底层,每个覆盖终止点在其连接到IP网络的NIC上的相应端口上创建IP地址,使得IP地址通过IP网络是可路由的。转发平面服务器x处的覆盖终止点上的IP地址被表示为“F-IPx”,控制平面服务器处的覆盖终止上的IP地址被表示为“C-IP”。每个转发平面服务器处的覆盖终止点被配置有一个底层隧道,底层隧道的目的地IP地址为C-IP。控制平面服务器处的覆盖终止点被配置有N个底层隧道,每个转发平面服务器配置一个底层隧道。例如,转发平面服务器1至转发平面服务器N的底层隧道的目的地IP地址分别为F-IP1至F-IPN。
在图12的该示例中,转发平面VM使用两个虚拟端口连接到其本地覆盖终止点——一个用于ICC信道,另一个用于交换结构信道。在覆盖终止点内,ICC信道的端口被映射到VSID 100,交换结构信道的端口被映射到VSID 200。两个VSID都在NVGRE上通过IP底层隧道被多路复用到控制平面服务器。
在图12的这个示例中,控制平面VM通过每个转发平面VM的两个虚拟端口连接到其本地覆盖终止点——一个用于ICC信道,另一个用于交换结构信道。因此,控制平面VM与其本地覆盖终止点之间总共有2N个虚拟端口。在本地覆盖终止点内:(1)到转发平面VM的ICC信道的端口被映射到VSID 100和到转发平面服务器的IP底层隧道,以及(2)到转发平面VM的交换结构信道的端口被映射到VSID 200和到转发平面服务器的IP底层隧道。应当理解,ICC和交换结构的NVGRE覆盖形成两个虚拟网络,这是如上所述的NVO的情况。
在图12的示例中,从转发平面VM模拟卡1到控制平面VM的任何ICC消息将首先在其用于ICC信道的虚拟端口上发送。当本地覆盖终止点接收消息时,它会推送具有VSID 100的NVGRE报头,然后在IP报头中使用源IP地址F-IP1并且在IP报头中使用目的地IP地址C-IP进行隧道封装。然后分组经由NIC-2中的端口被发送到IP网络。当控制平面服务器中的覆盖终止点接收分组时,它执行以下动作:(1)基于隧道封装中的源IP地址来标识源转发平面服务器,(2)移除隧道封装,(3)查找具有VSID 100的NVGRE报头,并且基于VSID 100将分组解复用为包括ICC消息并且移除NVGRE报头,(4)基于标识的源转发平面服务器,查找到控制平面VM的虚拟端口,该虚拟端口通过转发平面VM被映射到ICC信道,并且(5)在虚拟端口上转发ICC消息。ICC消息由控制平面VM中的ICC控制模块接收。
在图12的示例中,要在交换结构信道上从转发平面VM模拟卡1被发送到控制平面VM的任何分组将首先在其用于信道的虚拟端口上被发送。当本地覆盖终止点接收消息时,它会推送具有VSID 200的NVGRE报头,然后在IP报头中使用源IP地址F-IP1并且在IP报头中使用目的地IP地址C-IP进行隧道封装。然后分组经由NIC-2中的端口被发送到IP网络。当控制平面服务器中的覆盖终止点接收分组时,它执行以下动作:(1)基于隧道封装中的源IP地址来标识源转发平面服务器,(2)移除隧道封装,(3)查找具有VSID 200的NVGRE报头,并且基于VSID 200将分组解复用为包括用于交换结构的分组并且移除NVGRE报头,(4)基于标识的源转发平面服务器,查找控制平面VM的虚拟端口,该虚拟端口通过转发平面VM被映射到交换结构信道,并且(5)在虚拟端口上转发分组。分组由控制平面VM中的交换结构接收。
注意,如果图12中的物理服务器只托管单个转发平面或控制平面VM,则为了最佳性能,覆盖终止点也可以在相应VM内实现,以避免在信道上发送和接收分组的同时与管理程序进行上下文交换。在这种情况下,转发平面服务器中的NIC-2将由转发平面VM直接控制(例如,使用SR-IOV、PCI直通等),并且类似地,控制平面服务器中的NIC-1将由转发平面VM直接控制(例如,使用SR-IOV、PCI直通等)。
用于支持通过网络虚拟化技术传输多个协议的各种示例实施例可以被配置为支持使用NVGRE来支持FC虚拟化。
如上所述,NVGRE覆盖可以被用于支持FC虚拟化。FC是一种高速数据传输协议,其提供原始数据块的有序的、无损的传输,主要被用于将计算机数据存储连接到DC中的存储区域网络(SAN)中的服务器。SAN是一个基于块的存储设备池的网络,该存储设备池可以由连接到SAN的多个服务器访问/共享。FC的可靠性由其数据链路层(称为FC-1)提供(FC-0是物理层,通常是高速光纤)。在多租户DC中的NVGRE覆盖上传输FC业务的示例关于图13呈现。
图13描绘了使用NVGRE覆盖的虚拟化光纤信道(FC)的示例实施例。
在图13中,通信系统1300使用NVGRE覆盖来支持被称为Ten-1和Ten-2的一对租户的虚拟化FC。通信系统1300包括服务器1310、服务器1320和SAN 1350。服务器1310托管用于Ten-1和Ten-2的VM,分别被表示为VM 1312和VM 1313。VM运行一些租户指定服务器应用。服务器1320是经由FC链路1360直接附接到SAN 1350的物理服务器。服务器1320经由FC卡1324上的端口与FC链路1360接合。服务器1320托管运行多租户SAN控制器1322的功能的VM。对SAN 1350的任何访问请求通过SAN控制器1322来做出。为了启用多租户,SAN 1350被逻辑分割,使得其看起来像是多个独立的SAN。Ten-1和Ten-2的逻辑SAN分别作为SAN 1351和SAN1352被映射到SAN 1350。SAN控制器1322维护租户特定逻辑数据块到SAN 1350中的物理数据块的映射。该逻辑分割和映射提供安全性,使得租户的任何错误访问不会破坏另一租户的数据。VM 1312访问SAN 1351并且VM 1313访问SAN 1352。VM 1312和VM 1313及其相应SAN1351-1352位于由IP网络1330物理分开的远程站点中。由于VM移动性(即,VM可以通过连接VM的虚拟网络跨远程站点移动)、远程磁盘访问、磁带备份和实时镜像,物理分开是可能的。类似于图11中的模型,还可以通过IP网络将多租户FC SAN的孤岛互连,以在单个FC结构中形成统一的SAN。在图13中,想法是,通过以SAN 1360上的FC结构和FC设备不知道其间存在IP网络的方式承载FC业务来将VM 1312和VM 1313互连到其相应SAN 1351和SAN 1352。
在图13中,为了模拟VM 1312-1313直接连接到其SAN 1351和SAN 1352,VM 1312-1313与SAN控制器1322之间的FC链路1360的分段被虚拟化。在至少一些示例实施例中,其中NVGRE被配置为支持任何协议的分组的传输(并且因此被配置为支持FC分组的传输,如图13的示例中的),VM 1312-1313与SAN控制器1322之间的FC链路1360的分段的虚拟化可以如下达到。NVGRE覆盖在服务器1310和服务器1320中的管理程序之间被创建,并且NVGRE覆盖在IP网络1330之上运行。管理程序托管NVGRE覆盖终止点,并且每个终止点都被配置有唯一的IP地址,该IP地址通过IP网络1330是可路由的。服务器1310中的管理程序托管终止点1317并且服务器1320中的管理程序托管终止点1327。终止点1317和1327分别通过其相应本地NIC卡1313和NIC卡1323访问IP网络。每个租户都分配有唯一的NVGRE VSID(例如,假定,Ten-1分配有VSID 100,Ten-2分配有VSID 200)。Ten-1 VM 1312经由虚拟FC端口1315连接到NVGRE覆盖终止1317,虚拟FC端口1315被映射到NVGRE覆盖终止点1317中的VSID 100。Ten-2 VM 1313经由虚拟FC端口1316连接到NVGRE覆盖终止点1317,虚拟FC端口1316被映射到NVGRE覆盖终止点1317中的VSID 200。SAN控制器1322分别通过Ten-1和Ten-2的两个虚拟FC端口1325和虚拟FC端口1326连接到NVGRE覆盖终止点1327。FC端口1325被映射到VSID100,FC端口1326被映射到NVGRE覆盖终止点1327中的VSID 200。VM 1312通过虚拟FC端口1315将FC分组发送到SAN 1351。当NVGRE覆盖终止点1317接收到FC分组时,它推送具有VSID100的NVGRE报头作为属于Ten-1的业务的解复用器。然后,通过添加IP底层封装,NVGRE分组被发送到远程NVGRE覆盖终止点1327。当分组到达NVGRE覆盖终止点1327时,它弹出IP底层封装以及具有VSID 100的NVGRE报头,并且将所得到的FC分组转发到映射到VSID 100的虚拟FC端口1325。SAN控制器1322在分配给Ten-1的虚拟FC端口1315上接收FC分组,因此控制器经由FC链路1360将所需要的FC分组发送到SAN 1351。以相同的方式,VM 1313访问SAN1352。
应当理解,虽然主要关于支持在特定上下文中(例如,对于虚拟IP网络、基于机箱的NFV路由器和FC虚拟化)通过NVGRE覆盖传输多个协议进行呈现,但是在各种其他上下文中,可以提供支持通过NVGRE覆盖传输多个协议(例如,无限带宽(Infiband)、PCI高速(PCIe)、非易失性存储器高速(NVMe)、网格计算等、以及其各种组合)。例如,Infiband可以通过NVGRE覆盖跨存储系统进行虚拟化。例如,可以在需要传输PCIe业务的NVGRE覆盖上虚拟化PCIe总线。例如,可以通过NVGRE覆盖发送NVMe以访问基于固态驱动器的存储。应当理解,至少一些这样的应用可以被概括为基于NVGRE覆盖的DC中的多租户分布式I/O。例如,当租户中的VM池形成服务器集群(例如,在网格计算中)时,其中VM由IP网络物理分开,则集群/网格中的互连可以实现为NVGRE覆盖。通常,可以有多种类型的分布式应用跨过租户的VM,其中应用业务通过NVGRE覆盖在VM之间传输。
用于支持通过NVGRE传输多个协议的各种示例实施例被配置为使得NVGRE能够传输任何类型的分组。可以使用通用NVGRE(G-NVGRE)报头的两个版本(本文中被称为“通用NVGRE类型1”(G-NVGRE-1)和“通用NVGRE类型2”(G-NVGRE-2))来支持通过NVGRE传输不同协议的分组。G-NVGRE报头可以按照以下进一步讨论的各种方式被编码。
用于支持通过NVGRE传输多个协议的各种示例实施例被配置为使得NVGRE能够基于G-NVGRE-1报头类型的使用来传输任何种类的分组。G-NVGRE-1的存在可以通过在GRE报头的“协议类型”字段中对其Ethertype值进行编码来指示。可以为G-NVGRE-1分配新的Ethertype值(例如,0x6570或任何其他合适的值)。G-NVGRE-1报头的编码的示例实施例在图14中描绘。当协议类型字段中的Ethertype值为0x6570时,则NVGRE报头的格式与通常的NVGRE报头格式不同(并且被表示为G-NVGRE-1),并且在Ethertype字段之后包括以下字段:(1)3个八位字节的虚拟子网ID(VSID)字段,该字段包括在基于NVGRE的隧道上被多路复用的覆盖的标识符,以及(2)1个八位字节的FlowID字段,该字段指示属于VSID的分组内的每流熵(例如,其可以被用于VSID内的负载平衡分组)。注意,G-NVGRE-1报头的格式类似于图5的NVGRE报头,但协议类型字段的设置启用NVGRE报头的配置以形成G-NVGRE-1报头。
注意,G-NVGRE-1报头(即,上层协议)承载的有效载荷类型在G-NVGRE-1报头中没有明确指示;相反,VSID上期望的有效载荷类型以另一种方式被确定(例如,通过NVGRE覆盖终止点之间的带外机制进行的协商,通过在NVGRE覆盖终止点处的手动配置等、以及其各种组合)。
注意,G-NVGRE-1报头特别适合用于不是网络栈中的标准协议的有效载荷。例如,ICC消息可以在NVGRE覆盖上被多路复用(例如,分配给ICC信道的VSID在每个NVGRE覆盖终止点处被配置,以仅用于发送和接收ICC分组),交换结构消息可以在NVGRE覆盖上被多路复用(例如,分配给交换结构信道的VSID在每个NVGRE覆盖终止点处被配置,以仅用于发送和接收交换结构分组)等、以及其各种组合。
注意,G-NVGRE-1报头还可以被用于在网络栈中传输标准协议的分组。例如,G-NVGRE-1报头允许标准协议作为有效载荷(例如,IP、FC、Infiband、PCIe、NVMe等),只要NVGRE覆盖终止点就覆盖的标准有效载荷协议类型达成一致(例如,诸如通过带外机制、通过手动配置等、以及其各种组合)。
注意,G-NVGRE-1报头还可以被用于传输各种其他类型协议的分组。
用于支持通过NVGRE传输多个协议的各种示例实施例被配置为使得NVGRE能够基于G-NVGRE-2报头类型的使用来传输任何种类的分组。G-NVGRE-2的存在可以通过在GRE报头的“协议类型”字段中对其Ethertype值进行编码来指示。可以针对G-NVGRE-2分配新的Ethertype值(例如,0x6572或任何其他合适的值)。G-NVGRE-2报头的编码的示例实施例在图15中描绘。当协议类型字段中的Ethertype值为0x6572时,则NVGRE报头的格式与通常的NVGRE报头格式不同(并且被表示为G-NVGRE-2),并且在Ethertype字段之后包括以下字段:(1)3个八位字节的虚拟子网ID(VSID)字段,该字段包括在基于NVGRE的隧道上被多路复用的覆盖的标识符,(2)1个八位字节的FlowID字段,该字段指示属于VSID的分组内的每流熵(例如,其可以用于VSID内的负载平衡分组),以及(3)上层协议类型字段,该字段对有效载荷协议类型的Ethertype值编码。注意,该报头承载的有效载荷类型(即,上层协议)在报头中被明确指示。
注意,G-NVGRE-2报头特别适合用于作为网络栈中的标准协议的有效载荷。例如,在虚拟IP网络的用例中,NVGRE覆盖的有效载荷是IP分组,并且在这种情况下,上层协议类型字段对IPv4分组的0x800编码,对IPv6分组的0x86DD编码。例如,在光纤信道虚拟化的用例中,NVGRE覆盖的有效载荷是FC分组,并且在这种情况下,上层协议类型字段对值0x8906编码,该值最初是在以太网FC(FCoE)规范中针对FC标准化的。类似地,例如,各种其他协议类型(例如,Infiband、PCIe、NVMe等)可以通过在上层协议类型字段中编码其相应标准化的Ethertype值、使用G-NVGRE-2在NVGRE覆盖上传输。
注意,G-NVGRE-2报头还可以被用于传输不是网络栈中标准协议的有效载荷。
注意,G-NVGRE-2报头还可以被用于传输各种其他类型协议的分组。
应当理解,通过参考图16-图18可以进一步理解具有G-NVGRE-1的NVGRE覆盖的操作。
注意,由于有效载荷类型没有在G-NVGRE-1报头中被指示,因此NVGRE覆盖终止点可以被明确配置为发送和接收特定有效载荷类型(例如,在NVGRE覆盖终止点之间使用带外协商机制、在NVGRE覆盖终止点处使用手动配置等)。注意,由NVGRE覆盖终止点使用以在NVGRE覆盖终止点处配置有效载荷类型到VSID的映射的方法的示例实施例。
图16描绘了用于由NVGRE覆盖终止点使用以用于在NVGRE覆盖终止点处配置有效载荷类型到VSID的映射的方法的示例实施例。应当理解,虽然本文中主要呈现为串行执行,但是方法1600的功能的至少一部分可以同时或以与图16中呈现的不同的顺序执行。方法1600的输入包括NVGRE覆盖的VSID和有效载荷类型(要在NVGRE覆盖上传输的有效载荷类型的标识符)。在框1601处,方法1600开始。框1602查找与VSID相对应的NVGRE覆盖的配置,然后方法1600进行到框1604。框1604在覆盖的配置中设置负载类型,负载类型指示要发送或期望要在NVGRE覆盖上接收的分组的类型。从框1604,方法1600进行到框1699,在那里方法1600结束。在框1699处,方法1600结束。
图17描绘了用于由NVGRE覆盖终止点使用以用于在NVGRE覆盖上发送NVGRE覆盖分组的方法的示例实施例,其中分组用G-NVGRE-1报头被编码。应当理解,虽然本文中主要呈现为串行执行,但是方法1700的功能的至少一部分可以同时或以与图17中呈现的不同的顺序执行。方法1700的输入包括要在其上发送分组的NVGRE覆盖的VSID和要在NVGRE覆盖上发送的分组。在框1701处,方法1700开始。框1702查找与VSID匹配的NVGRE覆盖的配置,然后方法1700进行到框1704。框1704检查分组的类型是否与在NVGRE覆盖的配置中所配置的有效载荷类型匹配。如果分组的类型与在覆盖的配置中所配置的有效载荷类型匹配,则方法1700进行到框1706,否则方法1700进行到框1712。框1712丢弃分组,然后方法进行到框1799,在那里方法1700结束。框1706将G-NVGRE-1报头推送到具有VSID的分组上。协议类型配置有值0x6570以指示类型G-NVGRE-1的GRE报头。FlowID字段根据分组的流特定要求被编码。从框1706,方法1700进行到框1708。框1708推送隧道的IP报头。在IP报头中,源地址配置有本地覆盖终止点的IP地址,目的地地址配置有远程覆盖终止点的IP地址。如果IP报头是IPv4,则协议ID字段编码为47(=GRE)。如果IP报头是IPv6,则下一报头字段编码为47(=GRE)。从框1708,方法1700进行到框1710。框1710在底层IP网络上发送IP分组。从框1710,方法1700进行到框1799,在那里方法1700结束。在框1799处,方法1700结束。
图18描绘了用于由NVGRE覆盖终止点使用以用于接收和处理利用G-NVGRE-1报头编码的NVGRE覆盖分组的方法的示例实施例。应当理解,虽然在本文中主要呈现为串行执行,但是方法1800的功能的至少一部分可以同时或以与图18中呈现的不同的顺序执行。方法1800的输入是其目的地地址是IP底层的本地地址的IP分组。在框1801处,方法1800开始。框1802检查IP分组的有效载荷是否为GRE,这可以由IPv4报头中的协议ID字段指示为“47”或在IPv6报头中的下一报头字段中指示为“47”(尽管应当理解,可以使用各种其他合适的值来指示协议类型)。如果IP分组的有效载荷不是GRE,则方法1800进行到框1818,否则方法1800进行到框1804。框1818按照非GRE有效载荷类型处置分组,然后方法进行到框1899,在那里方法1800结束。框1804检查GRE报头中的协议类型字段中的值是否指示报头是G-NVGRE-1(例如,如果该值是0x6570)。如果GRE报头中的协议类型字段中的值没有指示报头是G-NVGRE-1,则方法1800进行到框1820,否则方法1800进行到框1806。框1820将分组作为另一种类的GRE分组进行处理,然后方法1800进行到框1899,在那里方法1800结束。框1806为G-NVGRE-1报头的VSID字段中的值查找NVGRE覆盖配置,然后方法1800进行到框1808。框1808检查是否找到NVGRE覆盖配置。如果未找到NVGRE覆盖配置,则方法1800进行到框1822,否则方法1800进行到框1810。框1822丢弃分组,然后方法1800进行到框1899,在那里方法1800结束。框1810查找在NVGRE覆盖配置中配置的预期有效载荷类型,然后方法1800进行到框1812。框1812从分组中弹出IP报头,然后方法1800进行到框1814。框1814从分组中弹出G-NVGRE-1报头,然后方法1800进行到框1816。框1816将分组(现在是覆盖上的有效载荷分组)发送到覆盖的上下文中的有效载荷类型的转发程序,然后方法1800进行到到框1899,在那里方法1800结束。在框1899处,方法1800结束。
应当理解,通过参考图19-图20,可以进一步理解具有G-NVGRE-2的NVGRE覆盖的操作。
图19描绘了用于由NVGRE覆盖终止点使用以用于在NVGRE覆盖上发送NVGRE覆盖分组的方法的示例实施例,其中该分组用G-NVGRE-2报头被编码。应当理解,尽管在本文中主要呈现为串行执行,但是方法1900的功能的至少一部分可以同时或以与图19中呈现的不同的顺序执行。方法1900的输入包括要在其上发送分组的NVGRE覆盖的VSID和要在NVGRE覆盖上发送的分组。在框1901处,方法1900开始。框1902查找与VSID匹配的NVGRE覆盖的配置,然后方法1900进行到框1904。框1904将G-NVGRE-2报头推送到具有VSID的分组上。协议类型配置有值0x6572以指示类型G-NVGRE-2的GRE报头。FlowID字段根据分组的流特定要求被编码。上层协议类型字段使用与输入分组关联的协议的Ethertype值被编码。方法1900从框1904进行到框1906。框1906推送隧道的IP报头。在IP报头中,源地址配置有本地覆盖终止点的IP地址,目的地地址配置有远程覆盖终止点的IP地址。如果IP报头是IPv4,则协议ID字段编码为47(=GRE)。如果IP报头是IPv6,则下一报头字段编码为47(=GRE)。从框1906,方法1900然后进行到框1908。框1908在底层IP网络上发送IP分组。从框1908,方法1900进行到框1999,在那里方法1900结束。在框1999处,方法1900结束。
图20描绘了用于由NVGRE覆盖终止点使用以用于接收和处理利用G-NVGRE-2报头编码的NVGRE覆盖分组的方法的示例实施例。应当理解,虽然本文中主要呈现为串行执行,但是方法2000的功能的至少一部分可以同时或以与图20中呈现的不同的顺序执行。方法2000的输入是其目的地地址是IP底层的本地地址的IP分组。在框2001处,方法2000开始。框2002检查IP分组的有效载荷是否为GRE,这可以由IPv4报头中的协议ID字段指示为“47”或在IPv6报头中的下一报头字段中指示为“47”(尽管应当理解,可以使用各种其他合适的值来指示协议类型)。如果IP分组的有效载荷不是GRE,则方法2000进行到框2018,否则方法2000进行到框2004。框2018按照非GRE有效载荷类型处置分组,然后方法2000进行到框2099,在那里方法2000结束。框2004检查GRE报头中的协议类型字段中的值是否指示报头是G-NVGRE-2(例如,如果该值是0x6572)。如果GRE报头中协议类型字段的值没有表明报头是G-NVGRE-2,则方法2000进行到框2020,否则方法2000进行到框2006。框2020将分组作为另一种类GRE分组进行处理,然后方法2000进行到框2099,在那里方法2000结束。框2006为G-NVGRE-2报头的VSID字段中的值查找NVGRE覆盖配置,然后方法2000进行到框2008。框2008检查是否找到NVGRE覆盖配置。如果未找到NVGRE覆盖配置,则方法2000进行到框2022,否则方法2000进行到框2010。框2022丢弃分组,然后方法2000进行到框2099,在那里方法2000结束。框2010读取并且保存G-NVGRE-2报头的上层协议类型字段中的值作为G-NVGRE-2报头的有效载荷的Ethertype,然后方法2000进入框2012。框2012从分组中弹出IP报头,然后方法2000进行到框2014。框2014从分组中弹出G-NVGRE-2报头,然后方法2000进行到框2016。框2016将分组(现在是覆盖上的有效载荷分组)发送到Ethertype的转发程序(在框2010中保留),然后方法2000进行到框2099,在那里方法2000结束。在框2099处,方法2000结束。
图21描绘了用于支持通过网络虚拟化传输任何协议的方法的示例实施例。应当理解,虽然主要被呈现为串行执行,但是方法2100的框的至少一部分可以同时或以与图21中呈现的不同的顺序执行。在框2101处,方法2100开始。在框2110,支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于在数据链路层之上的通信层处的协议。报头可以包括协议类型字段、虚拟子网标识符字段和流标识符字段。在数据链路层之上的通信层处的协议可以包括网络栈的非标准协议。在数据链路层之上的通信层处的协议可以包括以下至少一项:交换矩阵协议或卡间通信协议。在数据链路层之上的通信层处的协议的指示可以没有被编码在报头内。在数据链路层之上的通信层处的协议可以使用以下至少一项来协商:带外机制或手动配置操作。报头可以包括协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,其中上层协议字段可以指示有效载荷的有效载荷类型。在数据链路层之上的通信层处的协议可以包括网络栈的标准协议。在数据链路层之上的通信层处的协议可以包括以下至少一项:IP、FC、Infiband、PCIe或NVMe。上层协议类型字段可以被配置为对在数据链路层之上的通信层处的协议的指示进行编码。上层协议类型字段可以被配置为对协议类型字段的有效载荷协议类型的Ethertype值进行编码。该分组还可以包括在网络虚拟化通用路由封装协议的报头之上的网络层报头。网络层报头可以是IP报头。IP报头中的协议类型字段可以包括指示GRE协议的值。在框2199处,方法2100结束。
图22描绘了用于支持通过网络虚拟化传输任何协议的方法的示例实施例。应当理解,虽然主要被呈现为串行执行,但是方法2200的框的至少一部分可以同时或以与图22中呈现的不同的顺序执行。在框2201处,方法2200开始。在框2210处,支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中有效载荷基于除以太网之外的协议。除以太网之外的协议可以包括网络栈的协议(例如,物理层协议或在物理层处操作的协议、数据链路层协议或在数据链路层处操作的协议、网络层协议或在网络层处操作的协议、传输层协议或在传输层处操作的协议、会话层协议或在会话层处操作的协议、表示层协议或在表示层处操作的协议、应用层协议或在应用层处操作的协议等、以及其各种组合)。除以太网之外的协议可以包括定制协议。定制协议可以包括以下至少一项:交换结构协议或卡间通信协议。在数据链路层之上的通信层处的协议的指示可以没有被编码在报头内。在框2299处,方法2200结束。
用于支持通过网络虚拟化技术传输任何协议的各种示例实施例可以提供各种优势或潜在优势。例如,用于支持通过网络虚拟化技术传输任何协议的各种示例实施例可以被配置为扩展网络虚拟化通用路由封装协议(例如,NVGRE等)以支持通过网络虚拟化通用路由封装协议传输任何协议的分组,从而支持通过网络虚拟化通用路由封装协议虚拟化任何类型网络。例如,用于支持通过网络虚拟化技术传输任何协议的各种示例实施例可以被配置为支持多租户DC内的任何协议的传输(例如,基于支持增强型NVGRE终止点的管理程序,该增强型NVGRE终止点被配置为支持基于Open vSwitches(OVS)的任何协议的传输)。用于支持通过网络虚拟化技术传输任何协议的各种示例实施例可以提供各种其他优势或潜在优势。
图23描绘了适合用于执行本文中呈现的各种功能的计算机的示例实施例。
计算机2300包括处理器2302(例如,中央处理单元(CPU)、处理器、具有一组处理器核的处理器、处理器的处理器核等)和存储器2304(例如,随机存取存储器、只读存储器等)。处理器2302和存储器2304可以通信连接。在至少一些示例实施例中,计算机2300可以包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中至少一个存储器和计算机程序代码被配置为与至少一个处理器一起引起计算机执行本文中介绍的各种功能。
计算机2300还可以包括协作元件2305。协作元件2305可以是硬件设备。协作元件2305可以是可以被加载到存储器2304中并且由处理器2302执行以实现本文中呈现的各种功能的进程(例如,在这种情况下,协作元件2305(包括相关联的数据结构)可以存储在非瞬态计算机可读存储介质中,诸如存储设备或其他合适类型的存储元件(例如,磁驱动器、光驱动器等))。
计算机2300还可以包括一个或多个输入/输出设备2306。输入/输出设备2306可以包括一个或多个用户输入设备(例如,键盘、小键盘、鼠标、麦克风、相机等)、用户输出设备(例如,显示器、扬声器等)、一个或多个网络通信设备或元件(例如,输入端口、输出端口、接收器、传输器、收发器等)、一个或多个存储设备(例如,磁带驱动器、软盘驱动器、硬盘驱动器、压缩盘驱动器等)等、以及其各种组合。
应当理解,计算机2300可以表示适合于实现本文中描述的功能元件、本文中描述的功能元件的部分等的通用架构和功能以及其各种组合。例如,计算机2300可以提供适合于实现本文中呈现的一个或多个元件的通用架构和功能(诸如网络设备(例如,路由器等)、网络控制器等)以及其各种组合。
应当理解,本文中呈现的至少一些功能可以用软件实现(例如,通过在一个或多个处理器上实现软件,用于在通用计算机上执行(例如,通过一个或多个处理器执行),以提供专用计算机等),和/或可以用硬件实现(例如,使用通用计算机、一个或多个专用集成电路、和/或任何其他硬件等效物)。
应当理解,本文中呈现的至少一些功能可以在硬件内实现,例如,作为与处理器协作以执行各种功能的电路系统。本文中描述的功能/元件的各部分可以被实现为计算机程序产品,其中计算机指令在被计算机处理时调节计算机的操作,使得本文中描述的方法和/或技术被调用或以其他方式被提供。用于调用各种方法的指令可以存储在固定或可移动介质(例如,非瞬态计算机可读介质)中,经由广播或其他信号承载介质中的数据流进行传输,和/或存储在按照说明进行操作的计算设备内的存储器中。
应当理解,除非另有说明(例如,使用“否则”或“或在替代方案中”),否则本文中使用的术语“或”是指非排他性的“或”。
应当理解,虽然本文中详细示出并且描述了结合本文中呈现的教导的各种实施例,但是本领域技术人员可以容易地设计出仍然结合这些教导的很多其他不同实施例。
Claims (20)
1.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括指令集;
其中所述指令集被配置为在由所述至少一个处理器执行时,使所述装置:
支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中所述有效载荷基于在数据链路层之上的通信层处的协议。
2.根据权利要求1所述的装置,其中所述报头包括:协议类型字段、虚拟子网标识符字段和流标识符字段。
3.根据权利要求2所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议包括:网络栈的非标准协议。
4.根据权利要求2所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议包括以下至少一项:交换结构协议或卡间通信协议。
5.根据权利要求2所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议的指示没有被编码在所述报头内。
6.根据权利要求2所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议使用以下至少一项来协商:带外机制或手动配置操作。
7.根据权利要求1至6中任一项所述的装置,其中所述报头包括:协议类型字段、虚拟子网标识符字段、流标识符字段和上层协议类型字段,其中所述上层协议字段指示所述有效载荷的有效载荷类型。
8.根据权利要求7所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议包括:网络栈的标准协议。
9.根据权利要求7所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议包括以下至少一项:互联网协议(IP)、光纤信道(FC)、无限带宽(Infiband)、外围组件互连高速(PCIe)或非易失性存储器高速(NVMe)。
10.根据权利要求7所述的装置,其中所述上层协议类型字段被配置为对在所述数据链路层之上的所述通信层处的所述协议的指示进行编码。
11.根据权利要求7所述的装置,其中所述上层协议类型字段被配置为对所述协议类型字段的有效载荷协议类型的以太类型(Ethertype)值进行编码。
12.根据权利要求1至11中任一项所述的装置,其中所述分组还包括:在所述网络虚拟化通用路由封装协议的所述报头之上的网络层报头。
13.根据权利要求12所述的装置,其中所述网络层报头是互联网协议(IP)报头。
14.根据权利要求13所述的装置,其中所述IP报头中的协议类型字段包括:指示通用路由封装(GRE)协议的值。
15.一种方法,包括:
支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中所述有效载荷基于在数据链路层之上的通信层处的协议。
16.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括指令集;
其中所述指令集被配置为在由所述至少一个处理器执行时,使所述装置:
支持包括网络虚拟化通用路由封装协议的有效载荷和报头的分组的通信,其中所述有效载荷基于除以太网之外的协议。
17.根据权利要求16所述的装置,其中所述除以太网之外的协议包括:网络栈的协议。
18.根据权利要求16所述的装置,其中所述除以太网之外的协议包括:定制协议。
19.根据权利要求18所述的装置,其中所述定制协议包括以下至少一项:交换结构协议或卡间通信协议。
20.根据权利要求16所述的装置,其中在所述数据链路层之上的所述通信层处的所述协议的指示没有被编码在所述报头内。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/075,378 US11743365B2 (en) | 2020-10-20 | 2020-10-20 | Supporting any protocol over network virtualization |
US17/075,378 | 2020-10-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114449058A true CN114449058A (zh) | 2022-05-06 |
Family
ID=77640610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111208404.6A Pending CN114449058A (zh) | 2020-10-20 | 2021-10-18 | 通过网络虚拟化支持任何协议 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11743365B2 (zh) |
EP (1) | EP3989489A1 (zh) |
CN (1) | CN114449058A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090055117A (ko) * | 2007-11-28 | 2009-06-02 | 삼성전자주식회사 | 광대역 무선접속 시스템에서 헤더 압축 장치 및 방법 |
US8300641B1 (en) * | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US20140348167A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel-Lucent Usa Inc. | System and method for transmitting an alert using a network virtualization using generic routing encapsulation (nvgre) tunneling mechanism |
WO2014189723A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel Lucent | System and method for detecting a network virtualization using generic routing encapsulation (nvgre) segment data path failure |
CN106789748A (zh) * | 2015-11-23 | 2017-05-31 | 上海贝尔股份有限公司 | 一种分布式接入复用器dam叠加网络系统及其装置 |
CN107113221A (zh) * | 2015-01-16 | 2017-08-29 | 阿尔卡特朗讯公司 | 使用通用路由封装的网络虚拟化双向转发检测 |
US20180139073A1 (en) * | 2016-11-11 | 2018-05-17 | Futurewei Technologies, Inc. | Method to Support Multi-Protocol for Virtualization |
CN111371706A (zh) * | 2018-12-26 | 2020-07-03 | 瞻博网络公司 | 跨物理和虚拟化工作负载使用虚拟化覆盖的具有多个协议的云网络 |
US10764313B1 (en) * | 2017-01-24 | 2020-09-01 | SlashNext, Inc. | Method and system for protection against network-based cyber threats |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7899060B2 (en) * | 2004-04-01 | 2011-03-01 | Nortel Networks Limited | Method for providing bearer specific information for wireless networks |
CN102130826A (zh) * | 2010-11-25 | 2011-07-20 | 华为技术有限公司 | 报文的发送方法和装置 |
CN103685010B (zh) * | 2012-09-05 | 2018-01-12 | 新华三技术有限公司 | 一种报文转发方法和边缘设备 |
US10020954B2 (en) * | 2015-04-29 | 2018-07-10 | Futurewei Technologies, Inc. | Generic packet encapsulation for virtual networking |
EP3694159A1 (en) * | 2016-08-03 | 2020-08-12 | Huawei Technologies Co., Ltd. | Network interface card, computing device, and data packet processing method |
US10193968B2 (en) * | 2016-10-14 | 2019-01-29 | Google Llc | Virtual router with dynamic flow offload capability |
US11102079B2 (en) * | 2018-04-17 | 2021-08-24 | Microsoft Technology Licensing, Llc | Cross-regional virtual network peering |
US11194610B2 (en) * | 2019-02-22 | 2021-12-07 | Vmware, Inc. | Service rule processing and path selection at the source |
-
2020
- 2020-10-20 US US17/075,378 patent/US11743365B2/en active Active
-
2021
- 2021-09-06 EP EP21195104.1A patent/EP3989489A1/en active Pending
- 2021-10-18 CN CN202111208404.6A patent/CN114449058A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090055117A (ko) * | 2007-11-28 | 2009-06-02 | 삼성전자주식회사 | 광대역 무선접속 시스템에서 헤더 압축 장치 및 방법 |
US8300641B1 (en) * | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US20140348167A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel-Lucent Usa Inc. | System and method for transmitting an alert using a network virtualization using generic routing encapsulation (nvgre) tunneling mechanism |
WO2014189723A1 (en) * | 2013-05-24 | 2014-11-27 | Alcatel Lucent | System and method for detecting a network virtualization using generic routing encapsulation (nvgre) segment data path failure |
CN107113221A (zh) * | 2015-01-16 | 2017-08-29 | 阿尔卡特朗讯公司 | 使用通用路由封装的网络虚拟化双向转发检测 |
CN106789748A (zh) * | 2015-11-23 | 2017-05-31 | 上海贝尔股份有限公司 | 一种分布式接入复用器dam叠加网络系统及其装置 |
US20180139073A1 (en) * | 2016-11-11 | 2018-05-17 | Futurewei Technologies, Inc. | Method to Support Multi-Protocol for Virtualization |
US10764313B1 (en) * | 2017-01-24 | 2020-09-01 | SlashNext, Inc. | Method and system for protection against network-based cyber threats |
CN111371706A (zh) * | 2018-12-26 | 2020-07-03 | 瞻博网络公司 | 跨物理和虚拟化工作负载使用虚拟化覆盖的具有多个协议的云网络 |
Non-Patent Citations (7)
Title |
---|
DEERING, S., ET AL.: "Internet Protocol, Version 6 (IPv6) Specification", NETWORK WORKING GROUP, RFC 2460 * |
DEFENSE ADVANCED RESEARCH PROJECTS AGENCY - INFORMATION PROCESSING TECHNIQUES OFFICE: "Internet Protocol, Darpa Internet Program, Protocol Specification", RFC 791 * |
FARINACCI, D., ET AL.: "Generic Routing Encapsulation (GRE)", NETWORK WORKING GROUP, RFC 2784 * |
GARG, P., ET AL.: "NVGRE: Network Virtualization Using Generic Routing Encapsulation", INDEPENDENT SUBMISSION, RFC 7637 * |
IETF: "NVGRE: NETWORK VIRTUALIZATION USING GENERIC ROUTING ENCAPSULATION", SRIDHARAN A MICROSOFT ARISTA NETWORKS 丨ERG Y WANG P 6AR6 TARAMIAH FACEBOOK K DUDA 6AN6A M: "NVGRE: NETWORK VIRTUALIZATION USING GENERIC ROUTING ENCAPSULATION; DRAFT-SRIDHARAN-VIRTUALIZATION-NVGRE-03.TXT", pages 1 - 18 * |
TILLI, JM.ET AL.: "Data Plane Protocols and Fragmentation for 5G", 2017 IEEE CONFERENCE ON | STANDARDS FOR COMMUNICATIONS AND NEKVORKING (CSCN), pages 1 - 8 * |
YONG X XU HUAWEI L: "NVGRE and VXLAN Encapsulation for L3VPN Extension", NVGRE AND VXLAN ENCAPSULATION FOR L3VPN EXTENSION; DRAFT-YONG-L3VPN-NVGRE-VXLAN-ENCAP-OO.TXT, INTERNET ENGINEERING TASK FORCE, IETF; STANDARDWORKINGDRAFT, INTERNET SOCIETY (ISOC) 4,RUE DES FALAISES CH- 1205 GENEVA, SWITZERLAND, pages 1 - 5 * |
Also Published As
Publication number | Publication date |
---|---|
US20220124181A1 (en) | 2022-04-21 |
EP3989489A1 (en) | 2022-04-27 |
US11743365B2 (en) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11375005B1 (en) | High availability solutions for a secure access service edge application | |
EP2640013B1 (en) | Method And Apparatus Providing Network Redundancy And High Availability To Remote Network Nodes | |
US20230026330A1 (en) | Network management services in a point-of-presence | |
US20230025586A1 (en) | Network management services in a secure access service edge application | |
US20230026865A1 (en) | Network management services in a virtual network | |
Bakshi | Considerations for software defined networking (SDN): Approaches and use cases | |
JP2023535150A (ja) | レイヤ2ネットワーク内のインターフェイスベースのacl | |
JP2023527999A (ja) | 仮想l2ネットワークのループ防止 | |
US11398956B2 (en) | Multi-Edge EtherChannel (MEEC) creation and management | |
WO2023009159A1 (en) | Network management services in a point-of-presence | |
EP2222033A1 (en) | High availability and multipathing for fibre channel over ethernet | |
US20220321415A1 (en) | System and method for a single logical ip subnet across multiple independent layer 2 (l2) subnets in a high performance computing environment | |
US8635375B2 (en) | Remote F—ports | |
US11627077B2 (en) | Reliable overlay based on reliable transport layer | |
US11671358B2 (en) | Disambiguating traffic in networking environments with multiple virtual routing and forwarding (VRF) logical routers | |
CN114144995B (zh) | 一种用于配置物理服务器的虚拟端口的方法和系统 | |
US9397958B2 (en) | FCoE VN—port virtualizer | |
WO2014075527A1 (zh) | 网络虚拟边界设备间进行冗余备份的方法、设备及系统 | |
US9686210B2 (en) | Controller based fibre channel over ethernet (FCoE) fabric | |
US10693832B1 (en) | Address resolution protocol operation in a fibre channel fabric | |
US11102108B2 (en) | System and method for a multicast send duplication instead of replication in a high performance computing environment | |
US11743365B2 (en) | Supporting any protocol over network virtualization | |
WO2022218095A1 (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 |