多租户云平台架构的制作方法_2

文档序号:9380036阅读:来源:国知局
数据包。
[0034]优选地,所述方法还包括:如果所述内部交换机在从所述虚拟路由器接收到所述数据包之后未从所述SDN控制器接收到指示所述源MAC地址和所述目的MAC地址的转发指令或接收到消息丢弃指令,则所述内部交换机不发送所述数据包。
[0035]优选地,所述方法还包括:
[0036]当所述内部交换机从所述SDN控制器接收到指示与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机具备通信权限并且所述源MAC地址和所述目的MAC在同一宿主机内的消息时,根据所述目的MAC地址将所述数据包发送到与所述目的MAC地址相匹配的第二云主机。
[0037]优选地,所述方法还包括:
[0038]当所述内部交换机从所述SDN控制器接收到指示与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机不具备通信权限的消息时,不转发所述数据包。
[0039]优选地,所述虚拟路由器是通过Linux命名空间机制来建立的。
[0040]优选地,在所述虚拟路由器中实现了防火墙保护。
[0041]优选地,在所述虚拟路由器中实现了网络地址转换NAT功能。
[0042]在本发明的第三方面,提出了一种云平台架构中的宿主机,包括:
[0043]外部交换机,被配置为通过网络隧道接收数据包,并且将所述数据包转发给内部交换机;
[0044]所述内部交换机,被配置为向软件定义网络SDN控制器发送所接收的数据包的源媒体访问控制MAC地址和目的MAC地址以及源互联网协议IP地址和目的IP地址以请求所述SDN控制器确定所述内部交换机内用于发送所述数据包的端口,从所述SDN控制器接收指示所述内部交换机内用于发送所述数据包的端口的消息,并且通过所述端口将所述数据包发送到与所述目的MAC地址相匹配的接收方云主机;以及
[0045]所述接收方云主机,被配置为通过所述端口从所述内部交换机接收所述数据包。
[0046]在本发明的第四方面,提出了一种用于在云平台架构中的宿主机中路由数据包的方法,包括:
[0047]在外部交换机处通过网络隧道接收数据包,并且将所述数据包转发给内部交换机;
[0048]在所述内部交换机处向软件定义网络SDN控制器发送所接收的数据包的源媒体访问控制MAC地址和目的MAC地址以及源互联网协议IP地址和目的IP地址以请求所述SDN控制器确定所述内部交换机内用于发送所述数据包的端口,从所述SDN控制器接收指示所述内部交换机内用于发送所述数据包的端口的消息,并且通过所述端口将所述数据包发送到与所述目的MAC地址相匹配的接收方云主机;以及
[0049]所述接收方云主机通过所述端口从所述内部交换机接收所述数据包。
[0050]在本发明的第五方面,提出了一种云平台架构,包括多个根据上述第一方面和第三方面中任一方面所述的宿主机、管理服务器、以及软件定义网络SDN控制器,其中,
[0051 ] 所述管理服务器被配置为从所述ARP响应代理接收ARP广播,根据所述ARP广播和所述ARP响应代理所在的宿主机的标识查找本地地址池以获取数据包的目的MAC地址,并且将所述目的MAC地址发送到所述ARP响应代理;以及
[0052]所述SDN控制器被配置为从所述内部交换机接收对确定与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机是否具备通信权限以及所述源MAC地址和所述目的MAC地址是否在同一个宿主机内的请求,并且向所述内部交换机发送指示与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机是否具备通信权限以及所述源MAC地址和所述目的MAC地址是否在同一个宿主机内的消息。
[0053]在本发明的第六方面,提出了一种云平台架构中的方法,包括根据上述第二方面和第四方面中任一方面所述的方法,并且还包括:
[0054]所述管理服务器从所述ARP响应代理接收ARP广播,根据所述ARP广播和所述ARP响应代理所在的宿主机的标识查找本地地址池以获取数据包的目的MAC地址,并且将所述目的MAC地址发送到所述ARP响应代理;以及
[0055]所述SDN控制器从所述内部交换机接收对确定与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机是否具备通信权限以及所述源MAC地址和所述目的MAC地址是否在同一个宿主机内的请求,并且向所述内部交换机发送指示与所述源MAC地址相对应的云主机和与所述目的MAC地址相对应的云主机是否具备通信权限以及所述源MAC地址和所述目的MAC地址是否在同一个宿主机内的消息。
[0056]本发明借助于广泛存在的x86平台以及SDN技术,为云计算机房多租户场景提供一种高灵活性的网络虚拟化和网络隔离的落地解决方案。通过虚拟子网、虚拟路由器以及网络隧道等机制,使租户云主机间形成的网络和机房层面的物理网络解耦开来,从而使所有云主机工作在一张完全由软件定义的网络上,管理的灵活性大大提高。
【附图说明】
[0057]图1示出了根据本发明的实施例的多租户云平台架构中的子网和虚拟路由器的示意图;
[0058]图2示出了根据本发明的实施例的多租户云平台架构的示意图;
[0059]图3示出了根据本发明的实施例的多租户云平台架构中的宿主机的示意图;以及
[0060]图4示出了根据本发明的实施例的在多租户云平台架构中路由数据包的不同场景。
【具体实施方式】
[0061]首先,参照图1描述多租户云平台架构中的子网和虚拟路由器的功能。在多租户云平台架构中,通过逻辑子网(以下简称“子网”)来管理用户的云主机资源,并基于子网设定各云主机之间的通信界限(如图1所示)。云主机是云计算厂商向用户提供的虚拟主机服务,云主机属于Iaas层面的服务。用户在创建子网时需要指定该子网IP的无类域内路由选择(CIDR),以便为该子网云主机分配IP地址。可以基于虚拟路由器实现跨子网通信、网络地址转换(NAT)以及防火墙等功能。如果希望实现同一用户的多个子网之间的通信,则只需将这些子网关联到同一个虚拟路由器(vRouter)。借助网络隧道封装不同宿主机间云主机的数据包,避免上层物理网络设备感知和学习下层云主机信息,从而在逻辑上保证云主机网络与物理网络的独立性。SDN控制器可以精确地控制各云主机之间的通信许可和数据流向。
[0062]下面参照图2描述云平台架构中的各个组件的功能。云平台架构包括管理服务器210、SDN控制器220、宿主机代理230、虚拟交换机、虚拟路由器、以及ARP响应代理。
[0063]管理服务器210用于统管所有相关宿主机和云主机信息,并且其主要功能包括:向宿主机代理230下发行为指令,来对各宿主机及其上的云主机进行控制;以及对外提供RESTFUL风格的控制应用程序界面(API),用于接驳外部应用(APP)。
[0064]SDN控制器220负责向虚拟交换机下发控制指令,并且其主要功能包括:基于租户和子网判定云主机之间的通信许可;以及为跨宿主机的网络隧道动态指定对端IP。
[0065]宿主机代理230是运行在宿主机上的代理程序,并且其主要功能包括:接收并响应管理服务器下发的指令;建立和维护宿主机上的虚拟网络环境,该虚拟网络环境包括云主机虚拟网卡、虚拟交换机和虚拟路由器;以及采集宿主机和各云主机的资源指标信息,并及时上报和预警。
[0066]虚拟交换机是基于软件实现的交换机,目前使用最多的虚拟交换机软件是OpenvSwitch。虚拟交换机的主要功能包括:从SDN控制器获取数据包转发策略,并依次为关联云主机提供数据交换功能;以及为跨宿主机的通信提供网络通信隧道支持。
[0067]虚拟路由器是借助Linux命名空间机制建立的虚拟路由器,并且其主要功能包括:为各子网内的云主机提供网关以及三层路由服务;为云主机访问外网提供网络NAT功能;以及依据用户指定的安全策略,为各关联容器提供防火墙服务。
[0068]ARP响应代理负责响应本地云主机广播,并且其主要功能包括:为本宿主机内部云主机发出的ARP广播提供响应;以及从管理服务器获取ARP响应数据。
[0069]云平台架构主要通过以下方式来建立。首先,建立管理服务器。管理服务器是整个机房网络架构的控制大脑,其后端基于数据库存储各租户、子网、云主机以及网络相关的信息。管理服务器根据API调用对相应宿主机发送指令,实现对宿主机集群的设置。
[0070]然后,通过宿主机代理程序设置宿主机上虚拟交换机。为了保证同一宿主机内各云主机间的通信效率,以及方便调试东西和南北流量,每台宿主机上都建立了两个虚拟交换机(参考图示3中的内部交换机(switch_inner)和外部交换机(switch_outer)),switch_inner交换机主要用来实现本地云主机间的网络通信,switch_outer主要用来发送和接收跨宿主机的网络流量。其中switch_outer与其它宿主机间的流量需要通过网络隧道封装,这样做的原因在于不同的租户可能会建立相同私有IP段的子网,虽然这些重复的IP对各租户是不可见的,但是对机房网络设备而言却会产生路由抖动问题,因此为了屏蔽云主机逻辑子网对上层设备的可见性,跨宿主机的流量必须要放入VXLAN等隧道中传输。
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1