CN107977255A - 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法 - Google Patents

用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法 Download PDF

Info

Publication number
CN107977255A
CN107977255A CN201711306869.9A CN201711306869A CN107977255A CN 107977255 A CN107977255 A CN 107977255A CN 201711306869 A CN201711306869 A CN 201711306869A CN 107977255 A CN107977255 A CN 107977255A
Authority
CN
China
Prior art keywords
tenant
cnm
tors
server
address
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.)
Granted
Application number
CN201711306869.9A
Other languages
English (en)
Other versions
CN107977255B (zh
Inventor
J.肯普夫
R.米什拉
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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
Priority claimed from US13/750,325 external-priority patent/US9250941B2/en
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN107977255A publication Critical patent/CN107977255A/zh
Application granted granted Critical
Publication of CN107977255B publication Critical patent/CN107977255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

租户数据库用于将租户ID信息添加到云网络管理器(CNM)地址映射表以对于CNM隔离对于租户ID的租户特定数据。CNM维持多个数据库或表中的多个项之间的映射。该多个数据库或表包括租户数据库(DB)、租户标识符到租户标记(TITL)表、架顶式服务器标记到虚拟交换机链接标记(TLVLL)表、标记映射表(SMVL)和CNM地址映射表。CNM使用多个数据库来生成租户特定标记,其添加到在租户虚拟机(VM)之间发送的包。

Description

用于在启用OPENFLOW的云计算中使用MPLS时分离租户特定数 据的装置和方法
相关申请的交叉引用
该部分接续申请要求2011年9月30日提交的美国专利申请13/251,107和2012年11月27日提交的美国临时申请61/730,394的权益,两者通过引用合并于此。
技术领域
本发明的实施例涉及云计算领域;并且更具体地,涉及云计算中的虚拟专用网隔离。
背景技术
大型公司很多年来一直专注于它们在数据中心中的计算资源。该趋势随着服务器虚拟化技术变得越来越普遍而在过去几年加速。因为数据中心变得更大,一些数据中心运营商开始向外部客户提供计算、存储和网络通信资源。提供的服务典型地由弹性、按需处理存储组成,其对于多数实用目的而言仅受到客户支付能力和进入互联网的网络带宽的限制。该开发叫作云计算。
服务器虚拟化技术允许将服务器池作为基本上一个大的计算机资源来管理。叫作管理程序的软件层位于操作系统与硬件之间。该管理程序调度虚拟机(“VM”)在虚拟化服务器上的执行。VM是封装有一些应用的操作系统图像。管理程序允许暂停VM并且使其在服务器之间移动到负载平衡。用于捕捉崩溃的VM执行的负载平衡和监视对用高得多的专业解决方案成本实现的企业应用提供相同种类的容错和可标度性服务。云管理器系统监管VM的执行;调度执行来满足需求、优化服务器利用并且使功耗最小化。云执行管理器可以调度执行以允许硬件和软件的服务中升级而不影响正在进行中的服务预备。
为了支持VM在机器之间的任意移动,数据中心内的联网也必须虚拟化。大部分云现今通过使虚拟交换机并入管理程序而使网络虚拟化。虚拟交换机向在管理程序的控制下执行的VM提供虚拟网络端口。虚拟交换机软件还允许网络资源采用与服务器资源如何被管理程序虚拟化相似的方式虚拟化。管理程序和虚拟交换机由此可以合作以允许VM在服务器之间移动。在管理程序使VM移动时,它关于新的位点来与虚拟交换机通信,并且虚拟交换机确保对于VM地址(层2媒体访问控制(“MAC”)地址,潜在地也是互联网协议(“IP”)地址)的网络路由表被升级,因此包被路由到新的位点。
许多云计算设施仅支持Web服务应用。Web服务应用由负载平衡前端组成,其向Web服务器池派发请求。这些请求在概念上源自互联网上的应用并且因此安全性和隐私要求比私人企业网中的应用要宽松。较新的趋势是安全多租户,其中云提供商提供虚拟专用网(“VPN”),像在云外部的客户端的分布式办公网络与云内的VPN之间的连接。这允许在云内的客户端应用在与企业广域网(“WAN”)类似的网络环境中运作。对于其中仅对拥有数据中心的企业内的客户提供服务的私有数据中心,对于多租户的安全性和隐私要求放宽。对于公共数据中心,云运营商必须确保来自多个租户的业务被隔离并且没有业务从一个客户端到达另一个的可能性。在任一情况下,云计算设施趋于使用MAC层虚拟局域网(“VLAN”)来实现云计算机网络。
例如,可以对两个不同的外部企业客户设置两个虚拟私有云(“VPC”)。VPC由VM的集合、存储和向云中的企业租赁空间提供安全多租户的联网资源组成。企业客户经由VPN通过在公共运营商网络上运行的互联网而连接到VPC内。
为了向VPC添加新的服务实例(新的VM),云执行管理器使VM初始化以在虚拟化服务器上的管理程序上运行。虚拟化服务器上的虚拟交换机配置成在VLAN中包括VM,该VLAN是对于添加新VM的企业的VPN的部分。在一些情况下,对于新的服务升级虚拟客户边缘路由器并且用新的服务升级云计算设施中的供应商边缘路由器。
为了提供VPN,云计算设施实现三个解决方案中的一个。首先,每个租户接收独立VLAN片。其次,租户VPN使用IP封装来实现。第三,租户VPN使用MAC地址封装来实现。这些解决方案中的每个面临不足。
如果云使用VLAN隔离,每个租户被分配独立VLAN标签并且云网络作为平面层2网络运行。VLAN标签具有12个位,因此如果云运营商使用VLAN隔离,租户的数量限制在4096。该极限提供主要限制。
VLAN隔离的另一个问题是标准区域联网(例如,LAN、WAN、MAN;电气和电子工程师协会(“IEEE”)802.1)交换使用生成树协议(“STP”)来设置路由。为了去除路由环的可能性,STP在源地址与目的地址之间指定一个并且仅仅一个路径,而不管是否存在多个路由。这在生成树协议遭受业务压力并且忽略备选路由时可以导致交换结构的拥挤和利用不足。
利用IP封装,云作为路由IP网络运行并且IP隧道用于隔离租户业务。来自租户的业务被封装在IP包(典型地使用通用路由封装“GRE”)中,其中隧道的端点是VM运行所在的源和目的虚拟化服务器上的源和目的虚拟交换机。
IP封装允许客户端通过将以太网帧封装在层2隧道协议(“L2TP”)中而定义在顶部的任意层2服务。它还允许有大量租户,其仅受云范围内IP地址空间的约束。租户还可以在IP隧道顶部部署它们自己的IP地址空间。然而,在没有其他度量的情况下,IP路由还选择单个路由并且因此忽略多径路由,从而导致不必要的拥挤。云路由可以利用等价多径以在多个链路上散布包但以额外配置复杂性为代价。
一般,配置IP路由网络是耗时的并且路由器趋于成为比简单交换机更昂贵的设备。另外,IP网络具有有限手段来预备专用带宽,这对于大的数据流可是必需的。
利用MAC封装,独立租户VPN作为封装在MAC隧道内部而运行,这与IP封装相似。MAC隧道的端点典型地是VM运行所在的源和目的虚拟化服务器上的虚拟交换机。
MAC封装提供与通过VLAN隔离的IP封装相似的益处,只是增加了云可以作为平面层2网络运行这一益处(如期望的话)。缺点是对于MAC封装存在很少对于信令协议的标准(与IP不同),并且尽管存在对于数据平面封装的标准,不在一些现有云管理软件产品中使用它们。这要冒着不与某些类型的硬件一起工作的风险。配置并且维持MAC封装网络也比维持VLAN隔离网络更复杂。
发明内容
本发明的实施例包括由云网络管理器(“CNM”)执行以管理云网络中的多协议标记交换(“MPLS”)流条目的方法。CNM耦合于第一虚拟化服务器,用于托管一个或多个虚拟机(“VM”),其中该第一虚拟化服务器包括支持MPLS的第一虚拟交换机,并且该第一虚拟交换机耦合于支持MPLS的第一架顶式交换机(“TORS”)。CNM接收第一通知消息,其中该第一通知消息指示属于特定租户的第一VM已为了在第一虚拟化服务器上激活而调度。响应于接收第一通知消息,CNM确定与第一VM关联的第一VM媒体访问控制(“MAC”)地址。此外,CNM确定与第一虚拟交换机关联的第一虚拟交换机MAC地址。CNM在地址映射表中记录租户标识符、第一VM MAC地址和第一虚拟交换机MAC地址之间的关联。CNM进一步确定使第一TORS与第一虚拟交换机关联的第一MPLS标记,和识别租户的租户MPLS标记。CNM向第一虚拟交换机发送第一流条目修改消息,其指示匹配第一MPLS标记、租户MPLS标记和第一VM MAC地址匹配的数据包应在弹出租户MPLS标记和第一MPLS标记后转发到第一VM。
本发明的实施例包括用于管理多协议标记交换(“MPLS”)云网络的系统,其包括多个架顶式交换机(“TORS”)、多个虚拟化服务器、耦合于该多个虚拟化服务器的云执行管理器(“CEM”)和耦合于多个TORS的云网络管理器(“CNM”)。
多个虚拟化服务器每个耦合于多个TORS中的一个并且包括管理程序和虚拟交换机。该管理程序配置成执行虚拟化服务器上的一个或多个虚拟机(“VM”)。虚拟交换机配置成支持MPLS并且将数据包从一个或多个VM传送到与该虚拟化服务器耦合的TORS。
CEM耦合于多个虚拟化服务器。此外,CEM调度一个或多个VM的执行,每个VM要在多个虚拟化服务器中的一个上执行。CEM进一步暂停一个或多个VM的执行并且使一个或多个VM的执行从多个虚拟化服务器移到多个虚拟化服务器中的另一个。
CNM耦合于多个TORS、多个虚拟化服务器,和CEM。CNM从CEM接收第一通知消息,其中该第一通知消息指示第一CM已为了在多个虚拟化服务器中的第一个上激活而调度,和租户的标识符。响应于第一通知消息,CNM执行下面。CNM确定与第一VM关联的第一VM媒体访问控制(“MAC”)地址。CNM确定与第一虚拟化服务器中的第一虚拟交换机关联的第一虚拟交换机MAC地址。CNM在地址映射表中记录租户标识符、第一VM MAC地址和第一虚拟交换机MAC地址之间的关联。CNM确定用于使第一TORS与第一虚拟交换机关联的第一MPLS标记,其中该第一TORS要与第一虚拟化服务器耦合。CNM另外确定与租户标识符关联的MPLS标记。CNM向第一虚拟交换机发送第一流条目修改消息,其指示匹配第一MPLS标记、租户标记和第一VMMAC地址匹配的数据包应在弹出第一MPLS标记和租户标记和后转发到第一VM。
本发明的实施例包括使用租户数据块来将租户ID信息添加到云网络管理器(CNM)地址映射表以对于CNM隔离对于租户ID的租户特定数据。
在一个实施例中,公开用于使用云网络管理器(CNM)来隔离租户特定数据的方法。CNM维持多个数据库或表中的多个项之间的映射。该多个数据库或表包括租户数据库(DB)、租户标识符到租户标记(TITL)表、架顶式服务器标记到虚拟交换机链接标记(TLVLL)表、标记映射表(SMVL)和CNM地址映射表。CNM使用多个数据库来生成租户特定标记,其添加到在租户虚拟机(VM)之间发送的包。在一个实施例中,在OpenFlow交换机上安装或卸载流之前进行数据库访问。
CNM使用TITL表以使用租户ID作为键来查找租户标记。CNM使用TLVLL表以使用架顶式服务器(TORS)标记作为键来查找虚拟交换机(VS)链接标记。
CNM使用CNM地址映射表来维持租户ID、租户VM媒体访问控制(MAC)地址、租户VM互联网协议(IP)地址和服务器MAC地址之间的映射。每租户存在一个CNM地址映射表。
租户特定数据通过添加租户标记作为转发条目而隔离。使用具有租户ID的租户标记分离并且隔离对于相应VM的租户特定业务。在一个实施例中,属于不同租户的VM具有相同的互联网协议和媒体访问控制地址。
租户DB保持指针指向CNM地址映射表。CNM首先对租户DB进行查找以在进行所有其他CNM地址映射表查找之前找到租户特定地址映射表。
在一个实施例中,公开用于使用云网络管理器(CNM)来隔离租户特定数据的方法。接收为了在虚拟化服务器上激活而调度虚拟机(VM)的通知。CNM确定VM媒体访问控制(MAC)地址。CNM确定驻存在虚拟化服务器上的虚拟交换机(VS)MAC地址。CNM接收消息,其包括租户标识符(ID)、租户MAC和服务器MAC。在标记映射表和租户标识符到租户标记(TITL)表中对于VS到架顶式交换机(TORS)标记和租户特定标记进行查找。在CNM映射表中记录租户ID、VM MAC地址和VS MAC地址之间的关联。CNM向VS发送流条目修改消息来指示匹配VS到TORS标记、租户特定标记和VM MAC地址的数据包应用转发到VM。
在一个实施例中,CNM向VS发送流条目修改消息来指示源自VM的动态主机配置协议(DHCP)请求应转发到CNM。在一个实施例中,CNM向VS发送流条目修改消息来指示源自VM的地址分辨协议(ARP)请求应转发到CNM。
在一个实施例中,公开使用云网络管理器(CNM)来隔离租户特定数据的方法。第一流条目修改消息发送到源虚拟交换机(VS)来指示该源VS应首先将租户特定标记并且然后将VS到架顶式交换机(TORS)标记压入数据包上以便将这些数据包转发到目的虚拟机(VM)。第二流条目修改消息发送到源TORS来指示源TORS何时接收匹配VS到TORS标记的数据包、源TORS应压入目的TORS标记。第三流条目修改消息发送到目的TORS来指示目的TORS何时接收匹配目的TORS标记的数据包、目的TORS应弹出TORS标记并且将数据包转发到目的VS。第四流条目修改消息发送到目的VS来指示目的VS何时接收匹配VS到TORS标记和租户特定标记的数据包、目的VS应首先弹出VS到TORS标记并且然后弹出租户特定标记。
响应于第一流条目修改消息,源VS将包转发到源TORS。响应于第二流条目修改消息,源TORS使用云网络将数据包转发到目的TORS。响应于第三流条目修改消息,目的TORS将数据包转发到目的VS。响应于第四流条目修改消息,目的VS将包转发到目的VM。CNM向源VM提供目的互联网协议地址以便允许源VM将包转发到属于相同租户的目的VM。
附图说明
本发明通过参考下列描述和附图而最好地理解,这些附图用于图示本发明的实施例。在图中:
图1图示根据本发明的一个实施例的云计算设施中的部件。
图2图示根据本发明的一个实施例的云计算设施中的部件。
图3图示根据本发明的一个实施例用于激活虚拟机的方法的框图。
图4图示根据本发明的一个实施例用于激活虚拟机的方法。
图5图示根据本发明的一个实施例用于拦截来自VM的DHCP请求的方法的框图。
图6图示根据本发明的一个实施例用于拦截来自虚拟机的DHCP请求的方法。
图7图示根据本发明的一个实施例用于拦截来自VM的ARP请求的方法的框图。
图8图示根据本发明的一个实施例用于拦截来自虚拟机的ARP请求的方法。
图9图示在云计算网络中使VM从第一虚拟化服务器移到第二虚拟化服务器的方法。
图10图示根据本发明的实施例的示范性计算机系统的框图。
图11示出将租户ID添加到CNM。
图12图示用于使用CNM来隔离租户特定数据的方法。
图13图示根据一个实施例用于在每租户基础上激活虚拟机的方法的框图。
图14图示根据一个实施例用于激活虚拟机的方法。
图15图示根据一个实施例用于拦截来自租户VM的DHCP请求的方法的框图。
图16图示根据一个实施例用于拦截来自虚拟机的DHCP请求的方法。
图17图示根据一个实施例用于在特定租户(由特定标记识别)试图发现目的IP地址时拦截来自VM的ARP请求的方法的框图。
图18图示根据一个实施例用于在特定租户(由特定标记识别)试图发现目的IP地址时拦截来自虚拟机的ARP请求的方法。
图19图示使用租户标记来转发对于在通过TORS而分开的不同虚拟交换机上的特定租户VM的业务。
图20图示用于使用CNM来隔离租户特定数据的方法。
图21图示在使VM时的数据路径流。
图22图示使用CNM使目的VM从第一目的VS移到第二目的VS的方法。
具体实施方式
下列说明描述用于管理云网络中的多协议标记交换(“MPLS”)流条目的方法和装置。在下列说明中,阐述许多具体细节,例如逻辑实现、操作码、规定操作码的工具、资源划分/共享/复制实现、系统部件的类型和相互关系和逻辑划分/集成选择,以便提供对本发明的更全面理解。然而,本领域内技术人员将意识到可在没有这样的具体细节的情况下实践本发明。在其他实例中,为了不使本描述难以理解,未详细地示出众所周知的控制结构、门级电路和全软件指令序列。本领域内普通技术人员利用包括的说明将能够实现适当的功能性而没有过度实验。
在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。此外,这样的短语不一定都指相同的实施例。此外,当特定特征、结构或特性连同实施例描述时,认为连同其他无论是否明确描述的实施例实现这样的特征、结构或特性,这在本领域内技术人员的知识内。
在下列说明和权利要求中,可使用术语“耦合”和“连接”连同它们的派生词。要理解这些术语不规定为是彼此的同义词。“耦合”用于指示彼此可或可不直接物理或电接触的两个或以上的元件彼此共同操作或相互作用。“连接”用于指示彼此耦合的两个或以上的元件之间的通信的建立。
为了便于理解,在图中使用虚线来表示某些项的可选性质(例如,本发明的指定实现不支持的特征;指定实现支持但在一些情况下而不是其他情况下使用的特征)。
在图中示出的技术可以使用在一个或多个电子设备上存储并且执行的代码和数据来实现。这样的电子设备使用非暂时性有形机器可读介质(例如磁盘;光盘;只读存储器;闪速存储器设备;相变存储器)和暂时性机器可读通信介质(例如,电、光、声或其他形式的传播信号-例如载波、红外信号、数字信号,等)来存储和传达(在内部和/或通过网络利用其他电子设备)代码和数据。另外,这样的电子设备典型地包括一个或多个处理器集,其耦合于一个或多个其他部件,例如存储设备、一个或多个输入/输出设备(例如,键盘、触屏和/或显示器)和网络连接。处理器集和其他部件的耦合典型地通过一个或多个总线和网桥(也称作总线控制器)。承载网络业务的存储设备和信号分别代表一个或多个非暂时性有形机器可读介质和暂时性机器可读通信介质。从而,指定电子设备的存储设备典型地存储代码和/或数据以供在该电子设备的一个或多个处理器集上执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
在本发明的实施例中,云计算机设施使用MPLS来形成对于VPC租户的VPN,并且对在虚拟交换机和架顶式交换机中的流路由编程。例如,MPLS交换机可以用如在2011年2月的OpenFlow交换机规范版本1.1.0中描述的OpenFlow对流路由编程。虚拟交换机使用以太网MAC地址来将包路由到虚拟化服务器上的VM,并且将包分类成特定MPLS标记交换路径(“LSP”),但在虚拟交换后,以太网和IP地址都未用于路由。相反,路由使用基于IP和MAC目的地址而分配的MPLS标记严格进行。过程与广域网中的虚拟专线服务(“VPWS”)或层3 VPN(“L3VPN”)相似但不相同。“层2虚拟专用网(L2VPN)框架”互联网工程任务组(“IETF”)评论请求(“RFC”)4664描述对于广域网的VPWS,而“层3供应商预备虚拟专用网(PPVPN)框架”IETF、RFC 4110描述L3VPN。
例如,云网络管理器(“CNM”)使用OpenFlow将流路由安装到VM运行所在的虚拟化服务器上的虚拟交换机内。流路由将来自虚拟化服务器上的租户VM的以太网帧与指示在TORS与目的方上的虚拟交换机之间的路由并且对租户特定的MPLS标记和指示拥有VM的租户的身份的标记一起封装。包然后转发到源VM的虚拟化服务器的TORS。源TORS然后将包路由到数据中心网络结构内。如果云网络结构是MPLS网络,源TORS压入另一个MPLS标记,其规定源TORS于目的TORS之间的路由。目的TORS弹出MPLS路由标记并且使用由源虚拟交换机推上的标记来将包路由到合适的目的服务器和虚拟交换机。目的虚拟交换机弹出TORS到虚拟交换机标记并且基于目的MAC地址将包转发到正确的VM。如果云交换机结构支持某一其他技术,例如光,TORS进行适合的适配。
本发明的实施例提供许多优势。例如,在数据平面上不需要IP路由,由此去除具有IP路由云网络的成本、电力使用和复杂性。设计仅需要廉价的MPLS交换机。云中的交换机结构可以是标准以太网交换机、有MPLS能力的交换机、光电路交换机或混合物,例如对高容量流的光和对于其他业务的电交换机。交换机结构甚至可以是分布式计算资源之间的广域网。TORS适当地处理封装。租户可以管理它自己的IP地址空间(如期望的话)和DNS服务器(如期望的话)。到云交换机结构内的路由细节由TORS处理,其中可以实现可标度性和聚合的正确混合。
图1图示根据本发明的一个实施例的云计算设施中的部件。该云计算设施包括多个机架中的多个虚拟化服务器,其通过云网络170耦合。图示这些虚拟化服务器和机架中的三个机架100A、100B和100C。每个图示的机架包括架顶式交换机(“TORS”)和多个虚拟化服务器。机架100A包括TORS 101A和多个虚拟化服务器105A-105N。机架100B包括TORS 101B和多个虚拟化服务器115A-115N。机架100C包括TORS 101C、虚拟化服务器125A和虚拟化服务器125B。每个TORS 100A-100C使该机架内的多个虚拟化服务器耦合并且进一步与云网络170耦合。云网络170的构造可以支持任何类型的交换或路由协议,例如光电路交换网络或具有OpenFlow MPLS交换机的网络。云网络170甚至可以是在分布式服务器机架之间运行的广域网(“WAN”)。图中的连接性并不意味着是规范的,存在许多方式来使云网络170中的TORS耦合。在图1中,云网络170包括多个交换元件(例如,交换机或路由器)180A-180D。
每个TORS 100A-100C和每个虚拟化服务器105A-105N、115A-115N、125A和125B进一步与管理网络175耦合。管理网络175使TORS和虚拟化服务器与管理元件耦合。这些管理元件包括云执行管理器150、虚拟盘155和云网络管理器160。
云执行管理器(“CEM”)150调度VM以供执行,并且包括对象管理器,用于将VM映射到虚拟盘155内和外,这提供对于每个VM图像的永久存储。云网络管理器(“CNM”)160对于租户的VPC来管理VPN。
图2图示根据本发明的一个实施例的云计算设施中的部件。图2示出TORS 210A,其包括一个或多个流条目表212A-Z。这些流条目表212A-Z用于使MPLS标记与MPLS动作匹配,如参考OpenFlow描述的。TORS 210A与一个或多个虚拟化服务器215A-N耦合。
每个虚拟化服务器215A-N配置成执行一个或多个VM。在图2中,虚拟化服务器215A包括管理程序216A,其调度VM(例如,VM T1和VM T2)的执行。虚拟化服务器215A进一步包括虚拟交换机217A。该虚拟交换机217A向在管理程序的控制下执行的VM提供虚拟网络端口。虚拟交换机217A是启用MPLS的交换机,其包括一个或多个流条目表218A-Z,用于使MPLS标记与MPLS动作匹配,如参考OpenFlow描述的。
TORS 201A与云网络270耦合,如在图1中描述的云网络。TORS 201A进一步与管理网络275耦合。如在图2中的,管理网络275使TORS和虚拟化服务器与例如CEM 250、虚拟盘255和CNM 260等管理元件耦合。CNM 260包括描述VPN的表,其包括地址映射表262和标记映射表264。地址映射表262在VM的MAC地址、运行VM的虚拟化服务器的MAC地址(其是虚拟交换机217A的MAC地址)和VM的IP地址之间映射。标记映射表264将虚拟化服务器215A的MAC地址(其是虚拟交换机217A的MAC地址)映射到对于虚拟交换机217A与TORS 201A之间的链接的TORS链接标记。在其他实施例中,CNM 260了解哪些动态主机配置协议(“DHCP”)和域名服务(“DNS”)(如有的话)服务器属于哪个租户。
在一个实施例中,CNM假设租户VM关于它们如何配置它们的IP栈以及它们未任意改变它们的IP/MAC地址而表现良好。如果租户VM表现不好并且做出这样的改变,它的包将路由到CNM并且CNM将告知CEM。CEM然后可以关闭出错VM。
图3图示根据本发明的一个实施例用于激活虚拟机的方法的框图。在框300中,CNM接收为了在虚拟化服务器上激活而调度VM的通知。例如,CEM将CEM已经为了激活而调度VM通知CNM。在框310中,CNM确定VM的MAC地址和租户标识符。在一个实施例中,CEM对CNM提供VM的MAC地址和租户标识符连同通知,而在另一个实施例中,CEM在独立消息中对CNM提供VM的MAC地址和租户标识符。在框315中,CNM确定虚拟交换机的MAC地址,其与驻存在虚拟服务器(VM将在其他激活)上的虚拟交换机相对应。在框320中,CNM在CNM的地址映射表中记录租户标识符、VM的MAC地址和虚拟交换机的MAC地址之间的关联。在框325中,CNM进一步确定MPLS标记,其使虚拟交换机与TORS(其与虚拟交换机耦合)关联。在框330中,CNM 330向虚拟交换机发送流条目修改消息来指示与MPLS标记、租户标识符和VM的MAC地址匹配的数据包应在弹出两个MPLS标记之后转发到VM。在一个实施例中,在框332中,CNM向虚拟交换机发送流条目修改消息来指示源自VM的DHCP请求应转发到CNM。在另一个实施例中,在框333中,CNM向虚拟交换机发送流条目修改消息来指示源自VM的地址分辨协议(“ARP”)请求应转发到CNM。
图4图示根据本发明的一个实施例用于激活虚拟机的方法。在图4中,TORS 401A与虚拟化服务器415A耦合。该虚拟化服务器415A包括管理程序416A和虚拟交换机417A。在图4中,虚拟化服务器415A具有两个活动VM T1和T2 490A和490B。此外,图4示出CEM 450、虚拟盘455和CNM 460。
在图4中,CEM 450调度第三VM T3 490C以供在虚拟化服务器415A上执行。该图图示在虚拟机激活期间的各种点。在点A处,CEM 450调度VM T3 490C(例如属于租户3的VM)以供执行。对象文件通过CEM的对象管理器从虚拟盘455映射。CEM编辑VM 490C栈来将VM 490C的MAC地址设置成分配给租户3的MAC地址中的一个。在点B处,CEM 450将激活告知CNM 460。它对CNM 460提供VM 490C的MAC地址和VM执行所在的虚拟化服务器415A的MAC地址(其是虚拟化服务器415A的虚拟交换机417A的MAC地址)和租户标识符。
在点C处,CNM 460在CNM的地址映射表(未示出)中记录租户标识符、VM 490C的MAC地址连同调度它所在的虚拟化服务器415A的MAC地址。在点D处,CNM 460对于VM 490C运行所在的虚拟化服务器415A与TORS 401A之间的链接的TORS 401A MPLS标记(这也称为源TORS“STORS”链接标记)和来自CNM 460标记映射表的租户标记来查找虚拟交换机。在点E处,CNM 460向启用MPLS的虚拟交换机217A发送流条目修改消息来安装使租户标记、VM490C的MAC和STORS链接标记与弹出STORS链接标记和租户标记的动作匹配的规则,并且将包转发到VM 490C。
在一个实施例中,在点F处,CNM 460向虚拟交换机217A发送第二流条目修改消息来安装下列规则。如果源MAC与对于VM 490C的MAC地址匹配并且协议是ARP,将包路由到CNM460以允许CNM 460服务于ARP请求。该规则使ARP业务减少并且允许CNM 460从CNM地址映射表答复。
在另一个实施例中,在点G处,CNM 460向虚拟交换机217A发送第三流条目修改消息来安装下列规则。如果源MAC与对于VM 490C的MAC地址匹配并且协议是DHCP,将包路由到CNM 460以允许CNM 460服务于DHCP请求。该规则允许CNM 460通过拦截来自DHCP服务器的应答包而在CNM地址映射表中记录MAC地址到IP地址映射。如果租户使用DHCP来获得IP地址,需要该步骤。
图4图示假设之前描述的全部三个流条目修改消息被传达的情况下虚拟交换机417A的流条目表418A中的三个条目。流条目表418A具有图示的五个列:源MAC、目的MAC、MPLS标记、IP协议和动作。流条目对应于490C的激活。
图示的流条目表418A中的第一条目与作为源MAC地址的VM T3 490C的MAC地址匹配。目的MAC地址和MPLS标记设置成匹配任何条目,而IP协议设置成关于ARP协议匹配。动作则是转发到CNM 460。该规则与上文描述的步骤F相对应。
图示的流条目表418A中的第二条目与作为源MAC地址的VM T3 490C的MAC地址匹配。目的MAC地址和MPLS标记设置成匹配任何条目,而IP协议设置成关于DHCP协议匹配。动作则是转发到CNM 460。该规则与上文描述的步骤G相对应。
图示的流条目表418A中的第三条目与作为目的MAC地址的所有MAC地址匹配。目的MAC地址和MPLS标记设置成匹配VM T3 490C的MAC地址,而一个MPLS标记设置成VS-TORS401链接标记,并且另一个设置成租户标记。IP协议设置成关于所有条目匹配。动作则是弹出MPLS标记并且将包转发到VM T3 490C。该规则与上文描述的步骤E相对应。
如上文描述的,CNM维持VM MAC地址、虚拟化服务器MAC和VM IP地址之间的映射。如果租户选择不使用DHCP地址,则CEM在执行调度之前修改VM的IP栈并且安装静态IP地址。然而,在其他实施例中,租户将选择使用DHCP地址。在这样的情况下,CNM将拦截DHCP请求并且根据2001年1月的“DHCP中继代理信息选项”IETF、RFC 3046充当中继器。
图5图示根据本发明的一个实施例用于拦截来自VM的DHCP请求的方法的框图。在框500处,CNM接收源自VM的DHCP请求。在框505处,CNM根据RFC 3046将DHCP请求中继到DHCP服务器。在框510处,CNM接收来自DHCP服务器的DHCP应答。在框515处,CNM在地址映射表中记录VM的MAC地址与在DHCP答复中接收的IP地址之间的关联。根据本发明的实施例,该关联进一步包括执行VM的虚拟服务器的MAC地址。在框520处,CNM将DHCP答复转发到VM。
图6图示根据本发明的一个实施例用于拦截来自虚拟机的DHCP请求的方法。在图6中,虚拟化服务器615A包括管理程序616A和虚拟交换机617A。在图6中,虚拟化服务器615A具有三个活动VM T1、T2和T3 690A-690C。虚拟交换机617A包括流条目表618A,其包括将DHCP请求从VM T3 690C转发到CNM 660(其与DHCP服务器630耦合)的规则。
该图图示在拦截来自虚拟机的DHCP请求期间的各种点。在点A处,VM T3 690C发出DHCP请求来获得IP地址和其他配置信息,例如DNS服务器。在点B处,虚拟交换机617A使请求与流规则匹配以将DHCP请求路由到CNM 660。在点C处,CNM 660充当DHCP中继器、插入标准DHCP中继选项并且将请求转发到租户的DHCP服务器630。CNM 660可以通过检查DHCP请求的源MAC地址来确定VM T3 690C属于哪个租户。在点D处,租户的DHCP服务器630用包含对于VMT3 690C的IP地址和其他配置信息的DHCP应答作出响应。在点E处,CNM 660在CNM的地址映射表262中记录VM T3 690C MAC地址和IP地址之间的映射。在点F处,CNM 660去掉DHCP中继选项并且将DHCP应答转发到虚拟交换机617A,其在点G处将请求转发回到VM T3 690C。
在典型的IP LAN场景中,在服务器中运行的希望与目的应用通信的源应用使用DNS来发现目的应用的IP地址。在找到IP地址后,源服务器中的IP栈广播ARP消息来发现IP地址与目的MAC地址之间的映射。如果目的地不在本地LAN上,它对ARP做出应答。如果目的地不在本地LAN上运行,源服务器IP栈使用本地路由器的MAC地址作为到其他子网的网关。
在云中,VM在虚拟化LAN顶部上运行。租户运行它自己的DNS服务器,或从云运营商购买DNS服务。VM配置有它要使用的DNS服务器的地址。在租户希望联系服务时,它向DNS服务器发送DNS请求来发现IP地址,正如在正常企业LAN中的。DNS服务器可以在云运营商的控制下或它可以由个体租户控制。在DNS应答返回时,VM广播ARP请求来确定IP到MAC地址映射。
在本发明的实施例中,虚拟交换机拦截ARP消息并且对于CNM来应答它而不是广播它。CNM提供地址映射服务使得ARP消息不必在整个云网络中广播。
图7图示根据本发明的一个实施例用于拦截来自VM的ARP请求的方法的框图。在框700处,CNM接收源自VM的ARP请求。在框705处,CNM从ARP请求确定目的IP地址。在框710处,CNM确定对应于IP地址的目的VM MAC地址和目的虚拟交换机MAC地址。例如,CNM可以基于ARP请求内的IP地址从CNM的地址映射表查找映射。在框715处,CNM确定目的MPLS标记,其与目的虚拟交换机MAC地址相对应。在框720处,CNM向执行源VM的虚拟服务器上的虚拟交换机发送流条目修改消息。该条目修改消息指示与源VM MAC地址和目的VM IP地址匹配的包应首先推上租户id标记,并且其次推上目的MPLS标记并且将其转发到对于源虚拟交换机的TORS。在框725处,CNM生成ARP应答,其指示目的VM MAC地址对应于目的IP地址。在框730中,CNM将ARP应答转发到源VM。注意因为目的VM是包的源,CNM在目的VS中安装完全相同的规则,具有目的VM的MAC地址和源VM的IP地址。
图8图示根据本发明的一个实施例用于拦截来自虚拟机的ARP请求的方法。在图8中,虚拟化服务器815A包括管理程序816A和虚拟交换机817A。在图8中,虚拟化服务器815A具有活动的VM T3 890C。虚拟交换机817A包括流条目表818A,其包括将ARP请求从VM T3890C转发到CNM 860的规则。虚拟化服务器816A与TORS 801(其通过云网络870耦合于另一个TORS 801C)耦合。TORS 801C与虚拟化服务器825B耦合,该虚拟化服务器825B包括管理程序826B和虚拟交换机827B。虚拟化服务器825B执行VM T4 895B。
该图图示在拦截来自VM T3 890C的ARP请求期间的各种点。在点A处,VM T3 890C广播ARP请求。其余的拦截假设ARP请求指示驻存在虚拟服务器825B上的目的VM T4 895B的IP地址。在点B处,虚拟交换机817A拦截ARP请求并且使请求与流条目表818A中的将ARP请求路由到CNM 860的规则匹配。
在点C处,CNM 860使用请求的目的IP地址(“DIP”)作为在CNM的地址映射表262中查找目的MAC地址(“DMAC”)的键。如果DIP不存在,目的地不在云内并且CNM未对ARP请求做出应答。VM然后将使用提供的本地路由器的MAC地址。如果在CNM的地址映射表862中存在DIP地址,则CNM 860检索DMAC VM地址和DMAC虚拟化服务器地址。在该情况下,CNM将检索VMT4 895B的MAC作为DMAC VM地址并且检索虚拟交换机827B MAC作为DMAC虚拟化服务器地址。
在点D处,CNM对于目的TORS与DMAC虚拟化服务器地址之间的链接从CNM的标记映射表864查找MPLS流条目,也称为目的TORS(“DTORS”)链接标记。该流标记描述在DMAC虚拟化服务器处TORS 801A与虚拟化服务器之间的路由。在该情况下,将检索标记TORS:VS801C:827B来指示从TORS 801A到TORS 801C的路由。
在点E处,CNM 860在虚拟交换机817A的流条目表818A中安装流路由。规则匹配对于VM T4 895B的DMAC VM地址。动作将租户id标记、然后将DTORS链接标记TORS:VS 801C:827B LL推到由VM T3 890C发送到VM T4 895B的业务包上,然后将包转发到TORS 801A。在点F处,CNM 860将ARP应答返回虚拟交换机817A,其将应答转发到VM T3 890C。
在一个实施例中,CNM 860在将ARP应答返回VM之前将VS-TORS规则和动作安装到TORS 801的流条目表(未示出)。如果云网络870是MPLS网络,对于云网络870交换机结构内的TORS之间的LSP的规则不必在返回ARP应答时安装。如果云网络870交换机另外支持OpenFlow,CNM 860在安装新的TORS或现有TORS退役的时候使用OpenFlow仅需要将MPLS转发规则安装到较高级云网络870交换机内。这些规则将认出到与TORS相同的机架中的服务器的链接上的TORS-VS标记并且将包转发到这样的服务器,其的链接由标记识别。这些规则在启动机架的时候安装到OpenFlow表2。然而,如果较高级数据中心交换机不支持OpenFlow,TORS相反使用标记分配协议(LDP)来设置它自己与另一TORS之间的LSP,并且应配置这些LSP。云网络870交换机不必支持支持IP路由协议,它们也不必进行路由。
表1图示根据本发明的实施例对于应对路由到目的TORS的业务(即,出站业务和当前机架中目的服务器的业务)的流表的部分的TORS的OpenFlow流表的规则构造。稍后进一步解释对于入站业务的规则构造。在表中存在对于当前在使用中的作为机架中的源VM的目的地的每个DTORS(目的TORS)-DVS(目的虚拟化服务器)链接标记的流规则。TORS可另外高速缓存一些流规则以在VM移动时捕捉入站业务。来自机架中的源VM的业务通过匹配MPLSDTORS链接标记(其被虚拟交换机压入)而路由,并且与规则关联的动作被激活并且应用于包。动作根据云网络的性质而不同。
链接标记 其他字段 动作
TORS:VS 801C:827B LL 云网络特定动作
TORS:VS 801A:817A LL 云网络特定动作
表1
如果云网络不是MPLS网络,TORS通过OpenFlow虚拟端口使业务适应于云网络。与关于流匹配规则的动作关联的虚拟端口处理包并且添加必需的任何报头来将包路由到云网络内。例如,如果网络是光电路交换网络,虚拟端口可通过光交叉连接来路由它。本领域内技术人员将理解其他类型的云网络将利用其他适配虚拟端口。
然而,如果云网络是MPLS网络,则示范性动作在表2(其对应于OpenFlow表1)中示出。每个动作压入STORS到DTORS路由标记,然后向OpenFlow SELECT组发送包。SELECT组使用等价多径(ECMP)或某一其他负载平衡算法以从输出端口桶列表选择一个输出端口桶并且将包转发到输出端口。负载平衡有助于避免拥挤并且促进两个TORS之间的所有路由的多径利用
链接标记 其他字段 动作
TORS:VS 801C:827B LL 压入S->D标记;路由标记
TORS:VS 801A:817A LL 压入S->D标记;路由标记
表2
一旦包到达目的TORS,它通过例如在表3(其对应于OpenFlow表1)和4(其对应于OpenFlow表2)中的示出等OpenFlow流表而路由。假设包在目的TORS处具有“LABEL-N”标记,规则与指示包去往该TORS的DTORS路由标记“LABEL-N”匹配。动作弹出DTORS路由标记并且将包发送到表4用于处理。表4规则与对于机架中的服务器的VS-TORS标记匹配,从而指示包去往哪个虚拟化服务器。动作将包转发出合适的端口用于到达该虚拟化服务器
链接标记 其他字段 动作
LABEL-N 压入S->D标记;发送到OpenFlow表2
LABEL-X 压入S->D标记;发送到OpenFlow表2
表3
链接标记 其他字段 动作
TORS:VS 801C:827B LL 将包路由到虚拟交换机827B
TORS:VS 801A:817A LL 将包路由到虚拟交换机817A
表4
在虚拟交换机827B处,触发使VM T4 827B的MAC地址和租户标记、VS-TORS路由标记匹配的规则。VS-TORS路由标记和租户标记被弹出并且包转发到VM T4 827B。
云联网的最困难方面之一是应对VM从第一虚拟化服务器到第二虚拟化服务器的移动。CEM可以在任何时候使VM从一个服务器移到另一个。可进行移动来优化服务器利用、减少功耗或热生成,或将VM定位成更接近外部资源,例如数据库。在出现这样的移动时,到旧服务器处的VM的路由不再有效。在VM移动时可以丢弃“飞行中”的包并且新的包可未到达VM的新位点,除非采取措施来修正路由。
图9图示在云计算网络中使VM从第一虚拟化服务器移到第二虚拟化服务器的方法。在图9中,第一虚拟化服务器915A(也称为旧虚拟化服务器)与TORS 901A(其耦合于云网络970)耦合。云网络970使TORS 901A与另一个TORS 901C耦合,该TORS 901C耦合于第二虚拟化服务器925A(也称为新虚拟化服务器)。
每个虚拟化服务器915A和925A配置成运行多个VM并且包括对应的管理程序916A和926A和启用MPLS的虚拟交换机917A和927A。每个虚拟交换机917A和927A包括流条目表918A和928A,其包括MPLS规则来指示对应的虚拟交换机应如何处理它接收的包。用于VM移动的特定条目将在下文详细论述。在图示图9之前,旧虚拟化服务器915A具有三个活动的VM:VM T1 990A、VM T2 990B和VM T3 990C。图9进一步图示通过管理网络975而与CNM 960耦合的CEM 950。管理网络进一步使CEM 950和CEM 960与TORS 915A和925A耦合,由此提供到虚拟化服务器915A和925A的通信路径。
该图图示在VM T3 990C从旧虚拟化服务器915A移到新虚拟化服务器925A期间的各种点。术语旧虚拟化服务器和新虚拟化服务器反映在移动之前VM T3 990C在旧虚拟化服务器处是活动的并且在移动后VM T3 990C将在新虚拟化服务器925A处是活动的这一事实。
在点A处,CEM 950开始使VM T3 990C从旧虚拟化服务器915A移到新虚拟化服务器925A。点A指示消息从CEM 950传送到旧虚拟化服务器915A,从而指示发起9 T3 990C的移动。只要VM T3 990C在旧虚拟化服务器915A上是活动的,则VM T3 990C可以继续服务于业务并且旧流规则在流条目表918A中维持。管理程序916A通过保存VM T3 990C的状态信息并且指示VM T3 990C进入待命或非活动状态而使VM T3 990C准备传输到新虚拟化服务器925A。在点B处,VM T3 990C的状态信息从旧虚拟化服务器915A传输到新虚拟化服务器925A。
在某一点(点C)处,在停用VM T3 990C期间,CEM 950决定VM T3 990C可以不再服务于业务。此时,CEM 950将VM T3 990C因为VM T3 990C被移动而在此时无法服务于业务通知CNM 960。对该消息作出反应,CNM 960修改虚拟交换机917A的流条目表918A中的规则。从而,在点D处,CNM 960在流条目表918A中安装规则,其指示使VM T3 990C的MAC地址(作为目的MAC)与链接虚拟化服务器915A和TORS 901A的MPLS标记匹配的业务应转发到CNM 960(或到某一其他实体)。CNM 960或可选地某一其他实体将对智能提供如何应对被指引到针对VMT3 990C的虚拟化服务器915A的业务。
在一个实施例中,CNM 960或为该目的设计的某一其他实体包括包缓冲器966,用于在过渡期期间存储针对VM T3 990C的包。这样,包缓冲器966中针对VM T3 990C的包一旦在新虚拟化服务器925A处激活VM T3 990C则可以发送到VM T3 990C。
在一个实施例中,在VM T3 990C准备服务于新虚拟化服务器925A处的数据时,CEM950将VM T3 990C在点E处再次是活动的通知CNM 960。在另一个实施例中,CNM 960可以检测到VM T3 990C因为CNM 960在VM T3 990C被停用后接收源自它的包(例如ARP请求)而是活动的。CNM 960通过修改流条目表928A而对准备服务于数据的VM T3 990C做出反应。
在点F处,CNM 960将一个或多个条目添加到流条目表928A。CNM 960将使VM T3990C的MAC地址(作为目的MAC)与使链接虚拟化服务器925A和TORS 901C链接的MPLS标记以及租户id标记匹配的流规则添加到流条目表928A。该规则将匹配包应弹出两个MPLS标记并且将其转发到VM T3 990C告知虚拟交换机927A。本发明的其他实施例支持额外规则。例如,如果租户使用DHCP来获得他的IP地址,一个实施例将指示源自VM T3 990C的DHCP包应转发到CNM 960的规则。另一个实施例将指示源自VM T3 990C的ARP请求应转发到CNM 960的规则。
在点G处,CNM 960(或设计成在VM从旧循环服务器到新虚拟化服务器的过渡期间缓冲包的某一其他实体)将去往VM T3 990C的累积包转发到虚拟化服务器925A,因此那些包可交付给VM T3 990C。
在点H处,CNM 960修改CNM 960的地址映射表962表来使对于VM T3 990C的虚拟化服务器MAC地址条目变成目的新虚拟化服务器925A的MAC地址。在这些改变后,根据图7的对于VM T3 990C的任何新的ARP请求将导致在源虚拟交换机处指示业务应转发到925A的流条目。
在一个实施例中,CNM 960使流规则保持在对于任何对等VM(其可仍然与VM T3990C交换业务)的旧虚拟化服务器915A的虚拟交换机917A上的位置,因为那些对等VM可仍然期望VM T3 990C在旧虚拟化服务器915A上是活动的。如果这样的对等VM应向VM T3 990C发送对等数据包,它将根据在点D处安装的规则而被转发到CNM 960。CNM 960然后修改对等VM的虚拟化服务器上的流规则以使用包上的MAC和IP地址将业务转发到新虚拟化服务器925A上的VM T3 990C来定位VM T3 990C。CNM 960将对等数据包一直转发到新虚拟化服务器925A上的VM T3 990C。这样,所有流规则最终超时或被修改以将业务发送到新虚拟化服务器925A上的VM T3 990C。在一个实施例中,TORS流表还可需要改变以去除旧TORS-VS链接表并且将TORS-VS链接表安装到新的VS。CNM可以允许源虚拟交换机流规则和TORS规则在预定宽限期后超时。
图10图示根据本发明的实施例的示范性计算机系统的框图。图10中的该示范性计算机系统1000可以用于实现TORS、虚拟化服务器、CEM或CNM,如在图1-9和11-22中描述的。本领域内技术人员将认识到用于实现这些设备的其他计算机系统可具有更多或更少的部件并且可在本发明的实施例中使用。
计算机系统1000包括总线1050,其与处理系统1015、电力供应1020、易失性存储器1025(例如,双数据速率随机存取存储器(DDR-RAM)、单数据速率(SDR)RAM)、非易失性存储器1030(例如,硬驱动器、闪速存储器、相变存储器(PCM))耦合。处理系统1015可进一步耦合于处理系统高速缓存1010。处理系统1015可从易失性存储器1025和/或非易失性存储器1030检索指令,并且执行指令来进行上文描述的操作。总线1050使上文的部件耦合在一起并且进一步使显示控制器1070、一个或多个输入/输出设备1080(例如,网络接口卡、光标控制(例如,鼠标、轨迹球、触屏、触摸板,等)键盘、等)和可选地一个或多个无线收发器(例如,蓝牙、WiFi、红外,等)耦合。在一个实施例中,显示控制器1070进一步耦合于显示设备1075。
在另外的实施例中,CNM具有额外数据库,它使用这些额外数据库来维持租户id、TORS标记与VM和服务器的MAC和IP地址之间的映射。它使用这些数据块来生成租户特定标记,其被添加到在租户VM之间发送的包。这些数据块访问在OpenFlow交换机上安装或卸载流之前进行。
图11图示由CNM维持的额外数据库。CNM使用租户ID到租户标记(TITL表)以使用租户ID作为键来查找租户标记。CNM使用TORS标记到VS链接标记表(TLVLL表)以使用TORS标记作为键来查找VS链接标记。CNM使用CNM映射表(CNM表)来维持租户id、租户VM MAC与IP地址和服务器MAC地址之间的映射。每租户存在一个CNM映射表。
租户ID隔离租户特定数据,从而使它与使用相同云基础设施的其他租户分开。为了实现该隔离,租户标记作为转发条目而添加。具有租户ID的租户标记的使用分离并且隔离对于它们相应VM的租户特定业务。然而,在该另外的实施例中,属于不同租户的VM可以具有相同网络(IP/MAC)地址。
如在图11中看到的,租户数据库用于将租户ID信息添加到CNM地址映射表。租户数据库(其用于存储租户特定细节)对于租户ID被键控。租户数据库保持指针指向CNM地址映射表。在该实施例中,CNM首先对租户数据库进行查找以在进行所有其他CNM地址映射表查找之前找到租户特定地址映射表。一旦它发现租户的特定地址映射表,它历经上文描述的额外步骤。
图12图示用于使用云网络管理器(CNM)来隔离租户特定数据的方法。在框1205处,CNM维持多个数据库或表中的多个项之间的映射。该多个数据库或表包括租户数据库(DB)、租户标识符到租户标记表(TITL)、架顶式服务器标记到虚拟交换机链接标记(TLVLL)表、标记映射表(SMVL)和CNM地址映射表。在框1210处,CNM使用多个数据库来生成租户特定标记,其被添加到在租户虚拟机(VM)之间发送的包。在一个实施例中,数据库访问在OpenFlow交换机上安装或卸载流之前进行。
CNM使用TITL表以使用租户ID作为键来查找租户标记。CNM使用TLVLL表以使用架顶式服务器(TORS)标记作为键来查找虚拟交换机(VS)链接标记。
CNM使用CNM地址映射表来维持租户ID、租户VM媒体访问控制(MAC)地址、租户VM互联网协议(IP)地址和服务器MAC地址之间的映射。每租户存在一个CNM地址映射表。
租户特定数据通过添加租户标记作为转发条目而隔离。使用具有租户ID的租户标记分离并且隔离对于相应VM的租户特定业务。在一个实施例中,属于不同租户的VM具有相同的互联网协议和媒体访问控制地址。
租户DB保持指向CNM地址映射表的指针。CNM首先对租户DB进行查找以在进行所有其他CNM地址映射表查找之前找到租户特定地址映射表。
图13图示用于在每租户基础上激活虚拟机的方法的框图。在框1305中,为了在虚拟化服务器上激活而调度VM的通知被CNM接收。例如,CEM将CEM为了激活而调度VM通知CNM。在框1310中,CNM确定VM MAC地址。在框1315中,CNM确定虚拟交换机的MAC地址,其与驻存在将激活VM所在的虚拟服务器上的虚拟交换机(VS)相对应。在框1320中,CNM从CEM接收消息,其包括租户ID、租户MAC和服务器MAC。在框1325中,CNM在SMVL表(其是使VS MAC地址与VS到TORS标记关联的标记映射表)和TITL表中进行查找。CNM在SMVL表中找到VS到TORS的链接标记。CNM在TITL表中找到租户标记。在框1330中,CNM在CNM映射表中记录租户ID、VM MAC地址和VS MAC地址之间的关联。
在框1335中,CNM向VS发送流条目修改消息来指示与MPLS标记、VM MAC地址和租户特定标记匹配的数据包应转发到VM。也就是说,如果(在目的交换机处)第一MPLS标记与VS-TORS链接标记匹配、第二MPLS标记与租户特定标记匹配并且MAC地址与租户VM MAC地址匹配,MPLS标记被弹出并且转发到租户VM。如果包具有正确的MAC地址,该规则确保在VS-TORS链接上入站的到VS的业务被转发到租户VM。
在一个实施例中,在框1340中,CNM向VS发送流条目修改消息来指示源自VM的DHCP请求应转发到CNM。如果包源MAC与租户特定MAC匹配并且目的端口号与DHCP端口号匹配,请求被转发到CNM。该规则允许CNM分别干预地址查找和配置,使得作为响应可以进行路由修改。在一个实施例中,DHCP使用与BOOTP相同的端口号,因此这将是BOOTP协议端口号。
在一个实施例中,在框1345中,CNM向VS发送流条目修改消息来指示源自VM的ARP请求应转发到CNM。如果包源MAC与租户特定MAC匹配并且Ethertype与ARP匹配,请求被转发到CNM。该规则允许CNM分别干预地址查找和配置,使得作为响应可以进行路由修改。
图14图示根据一个实施例用于激活虚拟机的方法。在图14中,TORS 1401A与虚拟化服务器1415A耦合。虚拟化服务器1415A包括管理程序1416A和虚拟化交换机1417A。在图14中,虚拟化服务器1415A包括管理程序1416A和虚拟化交换机1417A。在图14中,虚拟化服务器1415A具有两个活动的VM T1和T2 1490A和1490B。此外,图14示出CEM 1450、虚拟盘1455和CNM 1460。
在图14中,CEM 1450调度第三VM T3 1490C以供在虚拟化服务器1415A上执行。该图图示在激活虚拟机期间的各种点。在点A处,CEM 1450调度VM T3 1490C(例如,属于租户3的VM)以供执行。对象文件通过CEM的对象管理器从虚拟盘1455映射。CEM编辑VM 1490C栈以将VM 1490C的MAC地址设置成分配给租户3的MAC地址中的一个。在点B处,CEM 1450将激活告知CNM 1460。它对CNM 1460提供VM 1490C的MAC地址和VM执行所在的虚拟化服务器1415A的MAC地址(其是虚拟化服务器1415A的虚拟交换机1417A的MAC地址)和租户的标识符。
在点C处,为了在虚拟化服务器1415A上激活而调度VM(即,VM 1490C)的通知被CNM1460接收。例如,CEM 1450将CEM 1450为了激活而调度VM 1490C通知CNM 1460。在点D处,CNM 1460确定VM 1490C的MAC地址。在点E处,CNM确定虚拟交换机的MAC地址,其与驻存在将激活VM所在的虚拟服务器1415A上的虚拟交换机(VS)1417A相对应。在点F处,CNM 1460从CEM 1450接收消息,其包括租户ID、租户MAC和服务器MAC。在点G处,CNM在SMVL表1464和TITL表1424中进行查找。CNM在SMVL表1464中找到VS到TORS的链接标记。CNM在TITL表1424中找到租户标记。在点H处,CNM 1460在CNM映射表1434中记录租户ID、VM MAC地址和VS MAC地址之间的关联。
在点I处,CNM向VS 1417A发送流条目修改消息来指示与MPLS标记、VM MAC地址和租户特定标记匹配的数据包应转发到VM。也就是说,如果第一MPLS标记与VS-TORS链接标记匹配、第二MPLS标记与租户特定标记匹配并且MAC与租户VM MAC地址匹配,MPLS标记被弹出并且转发到租户VM。如果包具有正确的MAC地址,该规则确保在VS-TORS链接上入站的到VS的业务被转发到租户VM。
在一个实施例中,在点J处,CNM 1460向VS 1417A发送第二流条目修改消息来指示源自VM 1490C的DHCP请求应转发到CNM 1460。如果包源MAC与对于VM 1490C的租户特定MAC匹配并且目的端口号与DHCP端口号匹配,请求被转发到CNM 1460。该规则允许CNM分别干预地址查找和配置,使得作为响应可以进行路由修改。在一个实施例中,DHCP使用与BOOTP相同的端口号,因此这将是BOOTP协议端口号。
在一个实施例中,在点K处,CNM向VS 1417A发送第三流条目修改消息来指示源自VM 1490C的ARP请求应转发到CNM 1460。如果包源MAC与对于VM 1490C的租户特定MAC匹配并且Ethertype与ARP匹配,请求被转发到CNM 1460。该规则允许CNM 1460分别干预地址查找和配置,使得作为响应可以进行路由修改。
图14图示假设之前描述的全部三个流条目修改消息被传达的情况下虚拟交换机1417A的流条目表1418A中的三个条目。流条目表1418A具有图示的六个列:源MAC、目的MAC、MPLS标记、租户特定标记、IP协议和动作。流条目对应于1490C的激活。
图示的流条目表1418A中的第一条目与作为源MAC地址的VM T3 1490C的MAC地址匹配。目的MAC地址和MPLS标记设置成匹配任何条目,而租户特定标记设置成关于Labeltid3匹配并且IP协议设置成关于ARP协议匹配。动作则是转发到CNM 1460。该规则与上文描述的步骤K相对应。
图示的流条目表1418A中的第二条目与作为源MAC地址的VM T3 1490C的MAC地址匹配。目的MAC地址和MPLS标记设置成匹配任何条目,而租户特定标记设置成关于Labeltid3匹配并且IP协议设置成关于DHCP协议匹配。动作则是转发到CNM 1460。该规则与上文描述的步骤J相对应。
图示的流条目表1418A中的第三条目与作为目的MAC地址的所有MAC地址匹配。目的MAC地址标记设置成匹配VM T3 1490C的MAC地址,而一个MPLS标记设置成VS-TORS 1401链接标记,一个设置成租户标记MAC VM T3,并且第三标记(租户特定标记)设置成Labeltid3。IP协议设置成关于所有条目匹配。动作则是弹出MPLS标记和租户特定标记并且将包转发到VM T3 1490C。该规则与上文描述的步骤I相对应。
如上文描述的,CNM维持租户ID、VM MAC地址、虚拟化服务器MAC和VM IP地址之间的映射。如果租户选择不使用DHCP地址,则CEM在执行调度之前修改VM的IP栈并且安装静态IP地址。然而,在其他实施例中,租户将选择使用DHCP地址。在这样的情况下,CNM将拦截DHCP请求并且充当中继器。
图15图示根据一个实施例用于拦截DHCP请求的方法的框图。DHCP消息由租户VM发送。该DHCP消息被虚拟交换机拦截并且从虚拟交换机转发到CNM。在框1505处,CNM从虚拟交换机接收DHCP请求,其源自租户VM。在框1510处,CNM通过充当DHCP服务器或DHCP中继器而找到VM的地址。CNM在框505处根据RFC 3046将DHCP请求中继到DHCP服务器。CNM从DHCP服务器接收DHCP应答。在框1515处,CNM在CNM映射表中记录VM的地址。CNM在CNM地址映射表中记录租户VM的MAC地址和在DHCP应答中接收的IP地址之间的关联。根据某些实施例,该关联进一步包括执行租户VM的虚拟服务器的MAC地址。在框1520处,CNM将DHCP应答转发到租户VM。
图16图示根据一个实施例用于拦截来自虚拟机的DHCP请求的方法。在图16中,虚拟化服务器1615A包括管理程序1616A和虚拟交换机1617A。在图16中,虚拟化服务器1615A具有三个活动VM T1、T2和T3 1690A-1690C。虚拟交换机1617A包括流条目表1618A,其包括将DHCP请求从VM T3 1690C转发到CNM 1660(其与DHCP服务器1630耦合)的规则。
该图图示在拦截来自虚拟机的DHCP请求期间的各种点。在点A处,VM T3 1690C发出DHCP请求来获得IP地址和其他配置信息,例如DNS服务器。在点B处,虚拟交换机1617A拦截DHCP请求(例如,消息)并且使该请求与将DHCP请求路由到CNM 1660的流规则匹配。
在点C处,CNM通过充当DHCP服务器或DHCP中继器而找到VM的地址。在一个实施例中,CNM 1660充当DHCP中继器、插入标准DHCP中继选项并且将请求转发到租户的DHCP服务器1630。CNM 1660可以通过检查DHCP请求的源MAC地址来确定VM T3 1690C属于哪个租户。
在点D处,租户的DHCP服务器1630用包含对于VM T3 1690C的IP地址和其他配置信息的DHCP应答作出响应。在点E处,CNM 1660在CNM的地址映射表1634中记录VM T3 1690CMAC地址和IP地址之间的映射。
CNM用DHCP应答对包含地址的VM做出应答。在一个实施例中,在点F处,CNM 1660去掉DHCP中继选项并且将DHCP应答转发到虚拟交换机1617A,其在点G处将请求转发回到VMT3 1690C。
图17图示根据一个实施例用于在特定租户(由特定标记识别)试图发现目的IP地址时拦截来自VM的ARP请求的方法的框图。在框705处,CNM接收源自VM的ARP请求。租户发出具有目的IP地址的ARP请求。虚拟交换机拦截ARP请求并且将ARP请求发送到在控制器上运行的CNM。在框710处,CNM对于特定租户查找CNM映射表并且提取目的VM运行所在的服务器的目的MAC地址。在框715处,CNM使用目的服务器MAC地址来确定目的VS链接标记。CNM使用SMVL表以便确定VS链接标记。在框1720处,CNM用对于上行链路和下行链路业务的流路由来对源TORS编程。在框1725处,CNM向执行源VM的虚拟服务器上的虚拟交换机发送流条目修改消息。流条目修改消息发送到VS来指示与目的MAC地址匹配的包应压入目的租户特定标记和目的VS-TORS标记并且将包转发到源TORS。在框1730处,CNM将ARP应答转发到对于指定目的IP地址具有正确MAC地址的特定租户的VM。
图18图示根据一个实施例用于在特定租户(由特定标记识别)试图发现目的IP地址时拦截来自虚拟机的ARP请求的方法。在图18中,虚拟化服务器1815A包括管理程序1816A和虚拟交换机1817A。在图8中,虚拟化服务器1815A具有活动的VM T3 1890C。虚拟交换机1817A包括流条目表1818A,其包括用于将ARP请求从VM T3 1890C转发到CNM 1860的规则。虚拟化服务器1816A与TORS 1801A耦合,该TORS 1801A通过云网络1870而与另一个TORS1801C耦合。TORS 1801C与虚拟化服务器1825B耦合,该虚拟化服务器1825B包括管理程序1826B和虚拟交换机1827B。虚拟化服务器1825B执行VM T4 1895B。
该图图示在拦截来自VM T3 1890C的ARP请求期间的各种点。在点A处,VM T31890C广播ARP请求。其余的拦截假设APR请求指示驻存在虚拟服务器1825B上的目的VM T41895B的IP地址。在点B处,虚拟交换机1817A拦截ARP请求并且使该请求与流条目表1818A中将ARP请求路由到CNM 1860的规则匹配。
在点C处,CNM 1860使用请求的目的IP地址(“DIP”)作为在CNM的地址映射表1834中查找目的服务器MAC地址(“DMAC”)的键。在点D处,给出DMAC,CNM确定目的VS链接标记。CNM使用SMVL表以便确定VS链接标记。在点E处,CNM 1860用对于上行链路和下行链路业务的流路由来对源TORS 1801A编程。VS链接标记描述在DMAC虚拟化服务器1825B处在TORS1801A与VM T4 1895B之间的路由。
在点F处,CNM向执行源VM 1890C的虚拟服务器上的虚拟交换机1817A发送流条目修改消息。该流条目修改消息发送到VS 1817A来指示与目的MAC地址匹配的包应压入目的租户特定标记和目的VS-TORS标记并且将包转发到源TORS 1801A。在点G处,CNM将ARP应答转发到虚拟交换机1817A,其进而在点H处将ARP应答转发到对于指定目的IP地址具有正确MAC地址的特定租户的VM 1890C。
图19图示根据一个实施例使用租户标记来转发对于特定租户的VM的业务。该特定租户的VM与通过TORS而分开的不同虚拟交换机关联。OpenFlow规则必须在虚拟交换机和TORS上对于要正确转发的业务编程。图19图示用于将业务从租户VM1转发到相同租户的VM2的方法。
服务器A上的虚拟交换机(VS)A具有流条目表1918A,其包括转发指令。在VS A接收具有服务器标记(其与端口1上的服务器A匹配)的包时,VS A弹出服务器A标记并且将包转发到下一个表,例如以与租户特定标记匹配。在VS A与接收包上的VM1和MAC地址Mac1匹配时,VS A弹出租户特定标记并且通过端口2转发到VM1。在VS A接收关于端口2、Mac1和ARP或DHCP匹配的包时,VS A将该包转发到OF控制器1960。在VS A接收关于端口2和目的Mac地址匹配的包时,VS A首先压入对于VM2的租户特定标记,然后压入对于服务器B的标记并且将包转发到源TORS。
TORS A具有流条目表1912A,其包括转发指令。在TORS A接收匹配服务器B上的包时,TORS A对于通过MPLS云1970的TORS到TORS转发压入对于TORS B的标记并且通过端口1转发包。在TORS A接收关于端口1匹配的包并且具有匹配TORS A的标记时,TORS A弹出TORSA标记并且转发到下一个表。在包关于服务器A匹配时,TORS A将包转发到端口2。
服务器B上的虚拟交换机(VS)B具有流条目表1918B,其包括转发指令。在VS B接收具有服务器标记(其与端口1上的服务器B匹配)的包时,VS B弹出服务器B标记并且将包转发到下一个表,例如以与租户特定标签匹配。在VS B与接收包上的VM 2和MAC地址Mac2匹配时,VS B弹出租户特定标记并且通过端口2转发到VM2。在VS B接收关于端口2、Mac1和ARP或DHCP的包时,VS B将该包转发到OF控制器1960。
TORS B具有流条目表1912B,其包括转发指令。在TORS B接收关于服务器A匹配的包时,TORS B对于通过MPLS云1970的TORS到TORS转发压入对于TORS A的标记并且通过端口1转发包。在TORS B接收关于端口1匹配的包并且具有匹配TORS B的标记时,TORS B弹出TORS B标记并且转发到下一个表。在包关于服务器B匹配时,TORS B将包转发到端口2。
图19图示虚拟化服务器(服务器A),其具有租户VM1。服务器A与TORS A关联。虚拟化服务器(服务器B)具有相同租户的虚拟机VM2。服务器B与TORS B关联。如早先描述的,VM1可以使用ARP和OpenFlow控制器1960(例如CNM),以便发现目的IP地址并且将包转发到相同租户的目的虚拟机VM2。包通过MPLS云网络1970从源TORS转发到目的TORS。
租户VM1将包转发到服务器A。源虚拟机A使用流条目表1918A而关于端口和目的MAC地址匹配。源虚拟交换机A压入两个标记:服务器B标记和租户特定标记。在一个实施例中,首先压入租户特定标记。源虚拟交换机A然后将包转发到源TORS A。源TORS A使用与流条目表1912A关联的规则以便转发包。源TORS A关于服务器B标记匹配(例如与服务器B的MAC地址关联的VS到TORS标记)并且对于TORS到TORS转发压入对于TORS B的标记。TORS A将包(具有TORS B标记、服务器B标记和租户特定标记)通过MPLS云1970转发到TORS B。
目的TORS B关于TORS B标记和端口匹配。目的TORS B然后弹出TORS B标记并且根据流条目表1912B中的规则将包发送到目的虚拟交换机B,其驻存在服务器B上。
目的虚拟交换机B关于服务器B标记和端口匹配并且弹出服务器B标记。目的虚拟交换机B关于租户特定标记匹配并且将包转发到正确的目的MAC地址。
图20图示用于使用云网络管理器(CNM)来隔离租户特定数据的方法。在框2005处,第一流条目修改消息发送到源虚拟交换机(VS)来指示源VS应首先将租户特定标记并且然后将VS到架顶式交换机(TORS)标记压入数据包上以便将这些数据包转发到目的虚拟机(VM)。在框2010处,第二流条目修改消息发送到源TORS来指示源TORS何时接收与VS到TORS标记匹配的数据包、源TORS应压入目的TORS标记。在框2015处,第三流条目修改消息发送到目的TORS来指示目的TORS何时接收与目的TORS标记匹配的数据包、目的TORS应弹出TORS标记并且将数据包转发到目的VS。在框2020处,第四流条目修改消息发送到目的VS来指示目的VS何时接收与VS到TORS标记和租户特定标记匹配的数据包、目的VS应首先弹出VS到TORS标记并且然后弹出租户特定标记。
响应于第一流条目修改消息,源VS将包转发到源TORS。响应于第二流条目修改消息,源TORS使用云网络将数据包转发到目的TORS。响应于第三流条目修改消息,目的TORS将数据包转发到目的VS。响应于第四流条目修改消息,目的VS将包转发到目的VM。CNM向源VM提供目的互联网协议地址以便允许源VM将包转发到属于相同租户的目的VM。
图21图示根据一个实施例用于在VM已经移到新的服务器之后使用租户标记来将业务转发到正确VM的方法。特定租户的VM与通过TORS而分开的不同虚拟交换机关联。OpenFlow规则必须在虚拟交换机和TORS上对于要正确转发的业务编程。图21图示用于将业务转发到已经移动的VM的方法。
服务器A上的虚拟交换机(VS)A具有流条目表2118A,其包括转发指令。在VS A接收具有服务器标记(其与端口1上的服务器A匹配)的包时,VS A弹出服务器A标记并且将包转发到下一个表,例如以与租户特定标记匹配。在VS A与接收包上的VM1和MAC地址Mac1匹配时,VS A弹出租户特定标记并且通过端口2转发到VM1。在VS A接收关于端口2、Mac1和ARP或DHCP的包时,VS A将该包转发到OF控制器(未示出)。在VS A接收关于端口2和目的Mac地址匹配的包时,VS A首先压入对于VM2的租户特定标记,然后压入对于服务器B的标记并且将包转发到源TORS。
TORS A具有流条目表2112A,其包括转发指令。在TORS A接收关于服务器B匹配的包时,TORS A对于通过MPLS云2170的TORS到TORS转发压入对于TORS B的标记并且通过端口1转发包。在TORS A接收关于服务器C匹配的包时,TORS A压入对于TORS C的标记并且通过端口1转发包。在TORS A接收关于端口1匹配的包并且具有匹配TORS A的标记时,TORS A弹出TORS A标记并且转发到下一个表。在包关于服务器A匹配时,TORS A将包转发到端口2。
服务器B上的虚拟交换机(VS)B具有流条目表2118B,其包括转发指令。在VS B接收具有服务器标记(其与端口1上的服务器B匹配)的包时,VS B弹出服务器B标记并且将包转发到下一个表,例如以与租户特定标签匹配。在VS B与接收包上的VM 2和MAC地址Mac2匹配时,VS B弹出租户特定标记并且根据新的指令来转发。这些新的指令包括首先压入VM2(租户特定)标记、然后压入服务器C标记并且将包转发到端口1。在VS B接收关于端口2、Mac1和ARP或DHCP匹配的包时,VS B将该包转发到OF控制器(未示出)。
TORS B具有流条目表2112B,其包括转发指令。在TORS B接收关于服务器A匹配的包时,TORS B对于通过MPLS云2170的TORS到TORS转发压入对于TORS A的标记并且通过端口1转发包。在TORS B接收关于服务器C匹配的包时,TORS B对于通过MPLS云2170的TORS到TORS转发压入对于TORS C的标记并且通过端口1转发包。在TORS B接收关于端口1匹配的包并且具有匹配TORS B的标记时,TORS B弹出TORS B标记并且转发到下一个表。在包关于服务器B匹配时,TORS B将包转发到端口2。
服务器C上的虚拟交换机(VS)C具有流条目表2118C,其包括转发指令。在VS C接收具有服务器标记(其与端口1上的服务器A匹配)的包时,VS C弹出服务器A标记并且将包转发到下一个表,例如以与租户特定标记匹配。在VS C与接收包上的VM2和MAC地址Mac2匹配时,VS C弹出租户特定标记并且转发到端口2。在VS C接收关于端口、Mac1和ARP或DHCP匹配的包时,VS C将该包转发到OF控制器(未示出)。
TORS C具有流条目表2112C,其包括转发指令。在TORS C接收关于服务器A匹配的包时,TORS C对于通过MPLS云2170的TORS到TORS转发压入对于TORS A的标记并且通过端口1转发包。在TORS C接收关于服务器B匹配的包时,TORS C对于通过MPLS云2170的TORS到TORS转发压入对于TORS B的标记并且通过端口1转发包。在TORS C接收关于端口1匹配的包并且具有匹配TORS A的标记时,TORS C弹出TORS A标记并且转发到下一个表。在包关于服务器A匹配时,TORS C将包转发到端口2。
图21图示虚拟化服务器(服务器A),其具有租户VM1。服务器A与TORS A关联。虚拟化服务器(服务器B)具有相同租户的虚拟机VM2。服务器B与TORS B关联。在VM2从服务器B移到服务器C时,在对于VS B的流条目表中包括转发指令以便确定打算用于VM2的包通过MPLS云网络1970并且通过TORS C转发到服务器C。
图21图示在使VM移动时的数据路径流。在该实施例中,租户标记用于在VM已经移动后将业务转发到正确的VM。如在图13中看到的,业务初始从与虚拟交换机A关联的VM1前往虚拟交换机B上的VM2。最终,VM移到虚拟交换机C并且业务适当地移到正确的虚拟交换机。
如上文规定的,初始设置流以将业务从VS A上的源租户虚拟机VM1发送到VS B上的目的虚拟机VM2。
在VM2从服务器B移到服务器C时,需要修改流条目表以便确保针对VM2的包被发送到正确的地方。修改VS A上的流条目表2118A来压入对于VS C而不是VS B的标记。向流条目表2118C添加条目以关于服务器A标记匹配并且然后关于租户特定标记VM2匹配。VS C然后弹出标记并且转发到VS C上的正确端口。关于来自对于VM2的VS A的业务匹配的VS B上的条目被去除。由VS B在VM2移动期间接收的任何临时包通过首先压入租户特定标记、然后压入对于服务器B的标记并且对于通过MPLS云2170的TORS到TORS转发到TORS B、TORS C。
图22图示使用CNM使目的VM从第一目的VS移到第二目的VS的方法。在框2205处,第一流条目修改消息发送到源VS以便压入对于第二目的VS而不是第一目的VS的标记。在框2210处,第二流条目修改消息发送到第二目的VS来指示第二目的VS何时接收与源VS标记和租户特定标记匹配的数据包、第二目的VS应首先弹出源VS标记并且然后弹出租户特定标记。在框2215处,第三流条目修改消息发送到第一目的VS来指示第一目的VS在临时期期间何时接收关于第一目的VS标记和租户特定标记匹配的数据包、第一目的VS标记和租户特定标记应被弹出,然后第一目的VS应通过首先压入租户特定标记并且然后压入第二目的VS标记而转发包。
如本文描述的,指令可指硬件的特定配置,例如专用集成电路(ASIC),其配置成进行某些操作或具有存储在存储器(包含在非易失性计算机可读介质中)中的预定功能性或软件指令。从而,在图中示出的技术可以使用在一个或多个电子设备(例如,终端站、网络元件)上存储并且执行的代码和数据来实现。这样的电子设备使用例如非暂时性计算机可读存储介质(例如磁盘;光盘;只读存储器;随机存取存储器;只读存储器;闪速存储器设备;相变存储器)和暂时性机器可读通信介质(例如,电、光、声或其他形式的传播信号-例如载波、红外信号、数字信号)等计算机可读介质来存储和传达(在内部和/或通过网络利用其他电子设备)代码和数据。另外,这样的电子设备典型地包括一个或多个处理器集,其耦合于一个或多个其他部件,例如一个或多个存储设备(非暂时性机器可读存储介质)、用户输入/输出设备(例如,键盘、触屏和/或显示器)和网络连接。处理器集和其他部件的耦合典型地通过一个或多个总线和网桥(也称作总线控制器)。从而,指定电子设备的存储设备典型地存储代码和/或数据以供在该电子设备的一个或多个处理器集上执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
尽管图中的流程图示出由本发明的某些实施例执行的操作的特定顺序,应理解这样的顺序是示范性的(例如,备选实施例可按不同顺序执行操作、使某些操作组合、与某些操作重叠,等)。
尽管本发明已经从若干实施例方面描述,本领域内技术人员将认识到本发明不限于描述的实施例,可以在附上的权利要求的精神和范围内带有修改和更改地实践。描述从而视为说明性而非限制性的。

Claims (19)

1.一种计算设备,所述计算设备执行云网络管理器CNM,所述CNM实现用于隔离租户特定数据的方法,所述计算设备包括:
一组计算机可读存储设备,用于存储所述CNM和多个数据库或表,所述多个数据库或表包括租户数据库DB、租户标识符到租户标记TITL表、架顶式服务器标记到虚拟交换机链接标记TLVLL表、标记映射表SMVL和CNM地址映射表;以及
一组处理器,所述一组处理器耦合到所述一组计算机可读存储设备以执行所述CNM,所述CNM维护所述多个数据库或表中的多个项目之间的映射,并且使用所述多个数据库生成租户特定标记,所述租户特定标记被添加到在租户虚拟机VM之间发送的包。
2.如权利要求1所述的计算设备,其中,所述CNM在OpenFlow交换机上安装或卸载流之前执行数据库访问。
3.如权利要求1所述的计算设备,其中,所述CNM使用所述TITL表将租户ID用作关键字来查找所述租户标记。
4.如权利要求1所述的计算设备,其中,所述CNM使用所述TLVLL表将架顶式服务器TORS标记用作关键字来查找所述虚拟交换机VS链接标记。
5.如权利要求1所述的计算设备,其中,所述CNM使用所述CNM地址映射表来维护租户ID、租户VM媒体访问控制MAC地址、租户VM互联网协议IP地址和服务器MAC地址之间的映射。
6.如权利要求5所述的计算设备,其中,每个租户有一个CNM地址映射表。
7.如权利要求1所述的计算设备,其中,通过添加租户标记作为转发条目来隔离租户特定数据。
8.如权利要求7所述的计算设备,其中,使用具有租户ID的所述租户标记分离并隔离对于相应VM的租户特定业务。
9.如权利要求8所述的计算设备,其中,属于不同租户的VM具有相同的互联网协议和媒体访问控制地址。
10.如权利要求1所述的计算设备,其中,所述租户DB存储指向所述CNM地址映射表的指针。
11.如权利要求10所述的计算设备,其中,在执行所有其它CNM地址映射表查找之前,所述CNM首先执行对所述租户DB的查找以找到租户特定地址映射表。
12.一种使用云网络管理器CNM隔离租户特定数据的方法,所述方法包括:
从第一虚拟交换机VS接收源自第一租户虚拟机VM的地址分辨协议ARP请求;
在CNM映射表中查找第一租户以提取第二租户VM正在执行于其上的服务器的目的媒体访问控制MAC地址;以及
向第一租户VM转发ARP应答。
13.如权利要求12所述的方法,其中,所述CNM为所述服务器的所述目的MAC地址确定第二VS链接标记。
14.如权利要求12所述的方法,其中,所述CNM使用对于上行链路和下行链路业务的流路由来对源架顶式服务器TORS编程。
15.如权利要求12所述的方法,其中,所述CNM向执行所述第一租户VM的所述第一VS发送流条目修改消息,以指示匹配所述服务器的所述目的MAC地址的包应压入目的租户特定标记和目的VS-TORS标记,然后转发给源TORS。
16.一种实现云网络管理器CNM的计算设备,所述云网络管理器CNM执行用于隔离租户特定数据的方法,所述计算设备包括:
其中存储有所述CNM的计算机存储介质;以及
耦合到所述计算机存储介质的一组处理器,所述一组处理器执行所述CNM以向源虚拟交换机VS发送第一流条目修改消息,以便压入对于第二目的VS而不是第一目的VS的标记,向第二目的VS发送第二流条目修改消息以指示其响应于第二目的VS接收与源VS标记和租户特定标记匹配的数据包,弹出源VS标记,并且然后弹出租户特定标记。
17.如权利要求16所述的计算设备,其中,所述CNM进一步配置成:将第三流条目修改消息发送到所述第一目的VS,以在临时期期间响应于所述第一目的VS接收关于所述第一目的VS标记和所述租户特定标记匹配的数据包,弹出所述第一目的VS标记和所述租户特定标记。
18.如权利要求17所述的计算设备,其中,所述CNM进一步配置成:通过将所述租户特定标记压入数据包上来转发所述数据包。
19.如权利要求17所述的计算设备,其中,所述CNM进一步配置成:通过将所述第二目的VS标记压入数据包上来转发所述数据包。
CN201711306869.9A 2012-11-27 2013-10-29 用于分离租户特定数据的装置和方法 Active CN107977255B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261730394P 2012-11-27 2012-11-27
US61/730394 2012-11-27
US13/750325 2013-01-25
US13/750,325 US9250941B2 (en) 2011-09-30 2013-01-25 Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
CN201380061892.XA CN104813288B (zh) 2012-11-27 2013-10-29 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380061892.XA Division CN104813288B (zh) 2012-11-27 2013-10-29 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法

Publications (2)

Publication Number Publication Date
CN107977255A true CN107977255A (zh) 2018-05-01
CN107977255B CN107977255B (zh) 2021-12-28

Family

ID=50030346

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380061892.XA Active CN104813288B (zh) 2012-11-27 2013-10-29 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法
CN201711306869.9A Active CN107977255B (zh) 2012-11-27 2013-10-29 用于分离租户特定数据的装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380061892.XA Active CN104813288B (zh) 2012-11-27 2013-10-29 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法

Country Status (6)

Country Link
EP (1) EP2926251B1 (zh)
JP (1) JP6043879B2 (zh)
CN (2) CN104813288B (zh)
BR (1) BR112015009668B1 (zh)
IN (1) IN2015DN03095A (zh)
WO (1) WO2014083449A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2922251A4 (en) * 2012-12-09 2015-10-14 Huawei Tech Co Ltd PACKET DELIVERY METHOD, DEVICE AND DATA CENTER NETWORK
CN105376083B (zh) * 2014-08-25 2018-12-14 华为技术有限公司 节能控制方法、管理服务器和网络设备
US9887961B2 (en) 2015-05-22 2018-02-06 International Business Machines Corporation Multi-tenant aware dynamic host configuration protocol (DHCP) mechanism for cloud networking
EP3104563B1 (en) * 2015-06-10 2019-10-16 Nokia Solutions and Networks GmbH & Co. KG Sdn security
CN105554179B (zh) * 2016-01-08 2018-11-30 中国联合网络通信集团有限公司 局域网内dns解析方法、系统
US10536446B2 (en) 2017-01-31 2020-01-14 Microsoft Technology Licensing, Llc. Single authentication to a multi-tenancy single-page cloud application
US10601804B2 (en) 2017-12-11 2020-03-24 International Business Machines Corporation Provide access to data storage services in a network environment
CN108632091A (zh) * 2018-05-09 2018-10-09 烽火通信科技股份有限公司 一种dcn网络中对接设备自适应适配封装的实现方法
US11095558B2 (en) 2018-12-28 2021-08-17 Alibaba Group Holding Limited ASIC for routing a packet
US10880124B2 (en) 2018-12-28 2020-12-29 Alibaba Group Holding Limited Offload controller control of programmable switch
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
JP2022107316A (ja) * 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN113315764B (zh) * 2021-05-25 2023-03-10 深圳壹账通智能科技有限公司 防arp攻击的数据包发送方法、装置、路由器及存储介质
CN113472745B (zh) * 2021-05-31 2023-04-07 山东英信计算机技术有限公司 一种基于selinux的openstack公有云多租户隔离方法、系统及终端
WO2023114650A1 (en) * 2021-12-15 2023-06-22 Cisco Technology, Inc. Systems and methods for achieving multi-tenancy on an edge router

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101151853A (zh) * 2005-05-31 2008-03-26 思科技术公司 用于无线网络的生成树协议
US20090288084A1 (en) * 2008-05-02 2009-11-19 Skytap Multitenant hosted virtual machine infrastructure
CN101656657A (zh) * 2008-08-19 2010-02-24 国际商业机器公司 在多租户架构中确定每个租户的资源使用率的方法和系统
US20100121747A1 (en) * 2007-03-01 2010-05-13 Rent Bureau, Llc Method of processing apartment tenant status information
CN101729584A (zh) * 2008-10-30 2010-06-09 国际商业机器公司 用于软件服务集成系统中的服务适配器及其操作方法
KR20110072102A (ko) * 2009-12-22 2011-06-29 한국전자통신연구원 멀티테넌시를 지원하기 위한 확장된 자바가상머신 및 이를 이용한 멀티테넌시 처리 방법
WO2011113393A2 (zh) * 2011-04-27 2011-09-22 华为技术有限公司 一种实现虚拟局域网标识转换的方法及装置
CN102415068A (zh) * 2009-03-02 2012-04-11 特维里奥公司 用于多租户电话网络的方法和系统
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185184B1 (en) * 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US9444785B2 (en) * 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US8194680B1 (en) * 2009-03-11 2012-06-05 Amazon Technologies, Inc. Managing communications for modified computer networks
US8369333B2 (en) * 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
US8504718B2 (en) * 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8880468B2 (en) * 2010-07-06 2014-11-04 Nicira, Inc. Secondary storage architecture for a network control system that utilizes a primary network information base
US8412673B2 (en) * 2010-07-30 2013-04-02 Sap Ag Persistence of master data in a multi-tenant software delivery architecture
US20120136899A1 (en) * 2010-11-29 2012-05-31 Martin Kaiser Activation framework for tenant-specific follow-up

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101151853A (zh) * 2005-05-31 2008-03-26 思科技术公司 用于无线网络的生成树协议
US20100121747A1 (en) * 2007-03-01 2010-05-13 Rent Bureau, Llc Method of processing apartment tenant status information
US20090288084A1 (en) * 2008-05-02 2009-11-19 Skytap Multitenant hosted virtual machine infrastructure
CN101656657A (zh) * 2008-08-19 2010-02-24 国际商业机器公司 在多租户架构中确定每个租户的资源使用率的方法和系统
CN101729584A (zh) * 2008-10-30 2010-06-09 国际商业机器公司 用于软件服务集成系统中的服务适配器及其操作方法
CN102415068A (zh) * 2009-03-02 2012-04-11 特维里奥公司 用于多租户电话网络的方法和系统
KR20110072102A (ko) * 2009-12-22 2011-06-29 한국전자통신연구원 멀티테넌시를 지원하기 위한 확장된 자바가상머신 및 이를 이용한 멀티테넌시 처리 방법
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统
WO2011113393A2 (zh) * 2011-04-27 2011-09-22 华为技术有限公司 一种实现虚拟局域网标识转换的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. ONOUE, N. MATSUOKA AND J. TANAKA: "《Host-based multi-tenant technology for scalable data center networks》", 《2012 ACM/IEEE SYMPOSIUM ON ARCHITECTURES FOR NETWORKING AND COMMUNICATIONS SYSTEMS (ANCS)》 *
刘建伟,邱修峰,刘建华: "《移动互联网环境下的云计算安全技术体系架构》", 《中兴通讯技术》 *

Also Published As

Publication number Publication date
CN104813288A (zh) 2015-07-29
CN107977255B (zh) 2021-12-28
CN104813288B (zh) 2018-01-12
EP2926251A1 (en) 2015-10-07
JP6043879B2 (ja) 2016-12-14
EP2926251B1 (en) 2016-10-05
WO2014083449A1 (en) 2014-06-05
BR112015009668B1 (pt) 2021-10-13
IN2015DN03095A (zh) 2015-10-02
JP2016504820A (ja) 2016-02-12
BR112015009668A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
CN104813288B (zh) 用于在启用openflow的云计算中使用mpls时分离租户特定数据的装置和方法
CN104823405B (zh) 对于基于mpls的虚拟私有云联网的ip组播服务离开过程
CN104871483B (zh) 用于管理云网络中的组播业务的方法和装置
US9698995B2 (en) Systems and methods for providing multicast routing in an overlay network
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
CN104038401B (zh) 用于分布式覆盖虚拟环境的互操作性的方法和系统
CN103200069B (zh) 一种报文处理的方法和设备
CN107113219B (zh) 支持虚拟环境中的vlan标记的系统和方法
CN104685500B (zh) 在覆盖网络中应用安全性策略的方法和系统
CN105207873B (zh) 一种报文处理方法和装置
KR101912073B1 (ko) 가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이
CN104350467B (zh) 用于使用sdn的云安全性的弹性实行层
CN103563329B (zh) 用于虚拟化数据中心的可扩缩多租户网络架构
JP5855630B2 (ja) 仮想ローカルエリアネットワークのクラウドアプライアンスを管理するための管理サーバおよびその管理方法
US20070130366A1 (en) Virtual tunnel network router
CN107771384A (zh) 虚拟分布式路由环境中的中间逻辑接口
CN105684363A (zh) 逻辑路由器
CN109302466A (zh) 数据处理方法、相关设备及计算机存储介质
CN106059946B (zh) 一种报文转发方法和装置
CN106453023B (zh) 一种用于物理设备与虚拟网络的通信方法、设备与系统
CN106330779B (zh) 服务器、物理交换机以及通信系统
CN106201769B (zh) 服务器系统、非临时计算机可读存储介质以及用以增强服务器系统中的存储器容错率的方法
CN105453058B (zh) 目录服务发现和/或学习
JP2019521619A (ja) パケット転送
US8621485B2 (en) Data isolation in shared resource environments

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