一种基于网络命名空间的多租户自定义组网方法、系统与流程

文档序号:14267341阅读:329来源:国知局
本发明涉及计算机软件云计算领域,尤其涉及一种基于网络命名空间的多租户自定义组网方法、系统。
背景技术
::目前随着云计算技术的日益成熟,用户对于业务管理的需求越来越高,在容器技术的推动下,命名空间逐渐被大家熟知。近年来,随着互联网技术的发展和云计算引发的全球信息化革命浪潮,多租户软件架构作为一种新的软件架构模式开始兴起的。它通过internet提供软件服务,服务商将应用软件统一部署在服务器上,租户可以根据自己的需求,向服务商定购所需的软件服务,并按定购服务的功能和使用时间,向厂商支付费用,并通过互联网获得支持。它的出现彻底改变了系统交付和用户使用的方式,更加灵活可扩展,易于快速定制和集成以便适应用户需求的变化。在多租户系统中,租户的数据既有隔离又有共享,保护租户数据的隐私与安全也成为多租户技术的关键之一。多租户技术包括数据层、程序层、系统层和虚拟层,但是远虚拟层环境无法提供租户自定义网络的功能,而且也限制了ip资源和网络架构,并且在多租户共存的网络环境中,需要每台vm(虚拟机)做详细的安全策略,降低了工作效率。技术实现要素:本发明的目的在于提出一种基于网络命名空间的多租户自定义组网方法、系统,实现租户自定义组网和策略部署的功能。为达此目的,本发明采用以下技术方案:一种基于网络命名空间的多租户自定义组网方法,包括netns(命名空间)、xenserver(虚拟平台),一个所述netns(命名空间)和一个所述xenserver(虚拟平台)上的xapi网桥组合为一个区域,每个租户可创建多个区域,多个区域之间可实现互联,区域的vm(虚拟机)可实现跨区域的互访,租户根据需求,将vm(虚拟机)的vif(虚拟网络接口)连接到所述区域的xapi网桥中,包括区域创建的过程:步骤一:将xenserver(虚拟平台)设置为linuxbridge模式,并创建新的linuxbridge(网桥),即创建xapi网桥;步骤二:在xenserver(虚拟平台)上创建vlan(虚拟局域网)并关联到pif(物理网卡);步骤三:在xenserver(虚拟平台)上创建netns-n(网络命名空间)和一对veth(虚拟网卡设备),veth(虚拟网卡设备)包括veth-n和veth-m,将veth-n连接到netns-n(网络命名空间),veth-m连接到xapi网桥,然后启动veth(虚拟网卡设备);步骤四:将xenserver(虚拟平台)上的vm(虚拟机)连接到xapi网桥上。其中(-n)和(-m)均表示第n个和第m个的意思,优选的,vm(虚拟机)可完成跨区域互访。包括vm(虚拟机)实现跨区域互访的过程:步骤a:在xenserver(虚拟平台)上创建一对veth(虚拟网卡设备),即veth-n和veth-m,然后将veth-n添加到netns-n(网络命名空间),veth-m添加到netns-m(网络命名空间),然后选择三层网络互连模式或者桥接模式;步骤b:若选择三层网络互连模式,则分别启用netns-n(网络命名空间)和netns-m(网络命名空间)下的veth(虚拟网卡设备),然后vm(虚拟机)关联netns-n(网络命名空间)下的xapi-n网桥和netns-m(网络命名空间)下的xapi-m网桥,然后将vm(虚拟机)的网关设置成netns-n(网络命名空间)的内部ip,最后在netns(命名空间)上添加对端区域的静态路由,将iptables(linux防火墙软件)做nat(地址转换),即可实现vm(虚拟机)跨区域互访。步骤c:若选择桥接模式,则在netns(命名空间)中创建嵌套linuxbridge(网桥),并将veth-n和veth-m添加到linuxbridge(网桥)上,然后vm(虚拟机)关联netns(命名空间)下的xapi网桥即可实现vm(虚拟机)跨区域互访。通过选择使用三层网络互连模式或者桥接模式实现vm(虚拟机)跨区域的互访,三层网络互连模式为租户通过使用静态路由以及iptables(linux防火墙软件)的nat(地址转换)功能来实现vm(虚拟机)跨区域互访,而桥接模式为使用嵌套的linuxbridge实现跨区域的二层流量转发,完成vm(虚拟机)的跨区域互访。优选的,包括实现vm(虚拟机)访问外部网络的过程:步骤a:创建一对veth(虚拟网卡设备),即veth-n和veth-m,并分别添加到主区域xenbr0网桥和netns(命名空间)中,然后分别启用veth-n和veth-m;步骤b:所述vm(虚拟机)关联到netns(命名空间)中的xapi-n网桥和xapi-m网桥;步骤c:将vm(虚拟机)的网关设置成netns(命名空间)的内部ip;步骤d:将netns(命名空间)的外部虚拟网卡设置成与主区域相同的网段ip和网关,即可实现vm(虚拟机)访问外部网络。优选的,多个区域之间实现区域互联,包括区域之间互联的过程:步骤e:创建完成多个区域;步骤f:在每个区域的netns-n(网络命名空间)上创建一个veth(虚拟网卡设备),将每个netns-n(网络命名空间)上的veth(虚拟网卡设备)进行相互连接;步骤g:在第一个区域的netns-n(网络命名空间)上多创建一个veth(虚拟网卡设备),在主区域的xenbr0网桥上创建一个veth(虚拟网卡设备),将第一个区域的netns-n(网络命名空间)上的veth(虚拟网卡设备)与主区域xenbr0网桥上的veth(虚拟网卡设备)进行连接;步骤h:将主区域xenbr0网桥与外部网络进行连接。优选的,netns(命名空间)中可以通过配置iptables(linux防火墙软件)控制vm(虚拟机)之间的互访,将多个netns(命名空间)之间进行互相连接,其中一个netns(命名空间)配置iptables(linux防火墙软件)即可实现多个netns(命名空间)的vm(虚拟机)之间的互访。一种基于网络命名空间的多租户自定义组网方法的系统,包括netns(命名空间)、xenserver(虚拟平台),一个所述netns(命名空间)和一个所述xenserver(虚拟平台)上的xapi网桥组合为一个区域,每个租户可创建多个区域,多个区域之间可实现互联,区域的vm(虚拟机)可实现跨区域的互访,租户根据需求,将vm(虚拟机)的vif(虚拟网络接口)连接到所述区域的xapi网桥中,包括区域创建模式,用于创建单个区域;将xenserver(虚拟平台)设置为linuxbridge模式,并创建新的linuxbridge(网桥),即创建xapi网桥;在xenserver(虚拟平台)上创建vlan(虚拟局域网)并关联到pif(物理网卡);在xenserver(虚拟平台)上创建netns-n(网络命名空间)和一对veth(虚拟网卡设备),veth(虚拟网卡设备包括)veth-n和veth-m,将veth-n连接到netns-n(网络命名空间),veth-m连接到xapi网桥,然后启动veth(虚拟网卡设备);将xenserver(虚拟平台)上的vm(虚拟机)连接到xapi网桥上。优选的,包括vm(虚拟机)跨区域互访模式,用于vm(虚拟机)实现跨区域互访;在xenserver(虚拟平台)上创建一对veth(虚拟网卡设备),即veth-n和veth-m,然后将veth-n添加到netns-n(网络命名空间),veth-m添加到netns-m(网络命名空间),然后选择三层网络互连模式或者桥接模式;若选择三层网络互连模式,则分别启用netns-n(网络命名空间)和netns-m(网络命名空间)下的veth(虚拟网卡设备),然后vm(虚拟机)关联netns-n(网络命名空间)下的xapi-n网桥和netns-m(网络命名空间)下的xapi-m网桥,然后将vm(虚拟机)的网关设置成netns-n(网络命名空间)的内部ip,最后在netns(命名空间)上添加对端区域的静态路由,将iptables(linux防火墙软件)做nat(地址转换),即可实现vm(虚拟机)跨区域互访。若选择桥接模式,则在netns(命名空间)中创建嵌套linuxbridge(网桥),并将veth-n和veth-m添加到linuxbridge(网桥)上,然后vm(虚拟机)关联netns(命名空间)下的xapi网桥即可实现vm(虚拟机)跨区域互访。一种基于网络命名空间的多租户自定义组网方法的系统,包括vm(虚拟机)实现访问外部网络模式,用于vm(虚拟机)访问外部网络;创建一对veth(虚拟网卡设备),即veth-n和veth-m,并分别添加到主区域xenbr0网桥和netns(命名空间)中,然后分别启用veth-n和veth-m;所述vm(虚拟机)关联到netns(命名空间)中的xapi-n网桥和xapi-m网桥;将vm(虚拟机)的网关设置成netns(命名空间)的内部ip;将netns(命名空间)的外部虚拟网卡设置成与主区域相同的网段ip和网关,即可实现vm(虚拟机)访问外部网络。优选的,包括多区域互联模式,用于实现多区域之间的互联;创建完成多个区域;在每个区域的netns-n(网络命名空间)上创建一个veth(虚拟网卡设备),将每个netns-n(网络命名空间)上的veth(虚拟网卡设备)进行相互连接;在第一个区域的netns-n(网络命名空间)上多创建一个veth(虚拟网卡设备),在主区域的xenbr0网桥上创建一个veth(虚拟网卡设备),将第一个区域的netns-n(网络命名空间)上的veth(虚拟网卡设备)与主区域xenbr0网桥上的veth(虚拟网卡设备)进行连接;将主区域xenbr0网桥与外部网络进行连接。有益效果:1、租户可任意划分区域,自定义搭建虚拟网络,使得项目架构更加清晰,管理更加符合逻辑。如web服务区域连接redis服务区域,redis服务区域连接数据库区域,web服务区域无法直接访问数据库。2、networknamespace可以统一设置安全策略,简化了vm的安全策略工作。3、实现自定义组网的同时,完成xenserver虚拟化层的网络隔离,提高了数据安全以及管控了租户的影响范围。附图说明图1是本发明的区域创建流程图;图2是本发明的虚拟机跨区域互访流程图;图3是本发明的虚拟机访问外部网络流程图;图4是本发明的多区域互联流程图;图5是本发明的配置iptables实现多个虚拟机互访的流程图;图6是本发明的创建单个区域架构图。其中:netns(命名空间)、xenserver(虚拟平台)、pif(物理网卡)、vm(虚拟机)、vlan(虚拟局域网)、xapi网桥、linuxbridge(网桥)、netns-n(网络命名空间)、veth(虚拟网卡设备)、iptables(linux防火墙软件)、nat(地址转换)、xenbr0网桥。具体实施方式下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。本实施例的一种基于网络命名空间的多租户自定义组网方法,包括netns(命名空间)、xenserver(虚拟平台),一个所述netns(命名空间)和一个所述xenserver(虚拟平台)上的xapi网桥组合为一个区域,每个租户可创建多个区域,多个区域之间可实现互联,区域的vm(虚拟机)可实现跨区域的互访,租户根据需求,将vm(虚拟机)的vif(虚拟网络接口)连接到所述区域的xapi网桥中,如图1所示,包括区域创建的过程:步骤一:将xenserver(虚拟平台)设置为linuxbridge模式,并创建新的linuxbridge(网桥),即创建xapi网桥;步骤二:在xenserver(虚拟平台)上创建vlan(虚拟局域网)并关联到pif(物理网卡);步骤三:在xenserver(虚拟平台)上创建netns-n(网络命名空间)和一对veth(虚拟网卡设备),veth(虚拟网卡设备)包括veth-n和veth-m,将veth-n连接到netns-n(网络命名空间),veth-m连接到xapi网桥,然后启动veth(虚拟网卡设备);步骤四:将xenserver(虚拟平台)上的vm(虚拟机)连接到xapi网桥上。优选的,vm(虚拟机)可完成跨区域互访;如图2所示,包括vm(虚拟机)实现跨区域互访的过程:步骤a:在xenserver(虚拟平台)上创建一对veth(虚拟网卡设备),即veth-n和veth-m,然后将veth-n添加到netns-n(网络命名空间),veth-m添加到netns-m(网络命名空间),然后选择三层网络互连模式或者桥接模式;步骤b:若选择三层网络互连模式,则分别启用netns-n(网络命名空间)和netns-m(网络命名空间)下的veth(虚拟网卡设备),然后vm(虚拟机)关联netns-n(网络命名空间)下的xapi-n网桥和netns-m(网络命名空间)下的xapi-m网桥,然后将vm(虚拟机)的网关设置成netns-n(网络命名空间)的内部ip,最后在netns(命名空间)上添加对端区域的静态路由,将iptables(linux防火墙软件)做nat(地址转换),即可实现vm(虚拟机)跨区域互访。步骤c:若选择桥接模式,则在netns(命名空间)中创建嵌套linuxbridge(网桥),并将veth-n和veth-m添加到linuxbridge(网桥)上,然后vm(虚拟机)关联netns(命名空间)下的xapi网桥即可实现vm(虚拟机)跨区域互访。优选的,如图3所示,包括实现vm(虚拟机)访问外部网络的过程:步骤a:创建一对veth(虚拟网卡设备),即veth-n和veth-m,并分别添加到主区域xenbr0网桥和netns(命名空间)中,然后分别启用veth-n和veth-m;步骤b:所述vm(虚拟机)关联到netns(命名空间)中的xapi-n网桥和xapi-m网桥;步骤c:将vm(虚拟机)的网关设置成netns(命名空间)的内部ip;步骤d:将netns(命名空间)的外部虚拟网卡设置成与主区域相同的网段ip和网关,即可实现vm(虚拟机)访问外部网络。优选的,如图4所示,多个区域之间实现区域互联,包括区域之间互联的过程:步骤e:创建完成多个区域;步骤f:在每个区域的netns-n(网络命名空间)上创建一个veth(虚拟网卡设备),将每个netns-n(网络命名空间)上的veth(虚拟网卡设备)进行相互连接;步骤g:在第一个区域的netns-n(网络命名空间)上多创建一个veth(虚拟网卡设备),在主区域的xenbr0网桥上创建一个veth(虚拟网卡设备),将第一个区域的netns-n(网络命名空间)上的veth(虚拟网卡设备)与主区域xenbr0网桥上的veth(虚拟网卡设备)进行连接;步骤h:将主区域xenbr0网桥与外部网络进行连接。优选的,如图5所示,netns(命名空间)中可以通过配置iptables(linux防火墙软件)控制vm(虚拟机)之间的互访,将多个netns(命名空间)之间进行互相连接,其中一个netns(命名空间)配置iptables(linux防火墙软件)即可实现多个netns(命名空间)的vm(虚拟机)之间的互访。一种基于网络命名空间的多租户自定义组网方法的系统,包括netns(命名空间)、xenserver(虚拟平台),一个所述netns(命名空间)和一个所述xenserver(虚拟平台)上的xapi网桥组合为一个区域,每个租户可创建多个区域,多个区域之间可实现互联,区域的vm(虚拟机)可实现跨区域的互访,租户根据需求,将vm(虚拟机)的vif(虚拟网络接口)连接到所述区域的xapi网桥中,如图6所示,包括区域创建模式,用于创建单个区域;将xenserver(虚拟平台)设置为linuxbridge模式,并创建新的linuxbridge(网桥),即创建xapi网桥;在xenserver(虚拟平台)上创建vlan(虚拟局域网)并关联到pif(物理网卡);在xenserver(虚拟平台)上创建netns-n(网络命名空间)和一对veth(虚拟网卡设备),veth(虚拟网卡设备包括)veth-n和veth-m,将veth-n连接到netns-n(网络命名空间),veth-m连接到xapi网桥,然后启动veth(虚拟网卡设备);将xenserver(虚拟平台)上的vm(虚拟机)连接到xapi网桥上。优选的,包括vm(虚拟机)跨区域互访模式,用于vm(虚拟机)实现跨区域互访;在xenserver(虚拟平台)上创建一对veth(虚拟网卡设备),即veth-n和veth-m,然后将veth-n添加到netns-n(网络命名空间),veth-m添加到netns-m(网络命名空间),然后选择三层网络互连模式或者桥接模式;若选择三层网络互连模式,则分别启用netns-n(网络命名空间)和netns-m(网络命名空间)下的veth(虚拟网卡设备),然后vm(虚拟机)关联netns-n(网络命名空间)下的xapi-n网桥和netns-m(网络命名空间)下的xapi-m网桥,然后将vm(虚拟机)的网关设置成netns-n(网络命名空间)的内部ip,最后在netns(命名空间)上添加对端区域的静态路由,将iptables(linux防火墙软件)做nat(地址转换),即可实现vm(虚拟机)跨区域互访。若选择桥接模式,则在netns(命名空间)中创建嵌套linuxbridge(网桥),并将veth-n和veth-m添加到linuxbridge(网桥)上,然后vm(虚拟机)关联netns(命名空间)下的xapi网桥即可实现vm(虚拟机)跨区域互访。一种基于网络命名空间的多租户自定义组网方法的系统,包括vm(虚拟机)实现访问外部网络模式,用于vm(虚拟机)访问外部网络;创建一对veth(虚拟网卡设备),即veth-n和veth-m,并分别添加到主区域xenbr0网桥和netns(命名空间)中,然后分别启用veth-n和veth-m;所述vm(虚拟机)关联到netns(命名空间)中的xapi-n网桥和xapi-m网桥;将vm(虚拟机)的网关设置成netns(命名空间)的内部ip;将netns(命名空间)的外部虚拟网卡设置成与主区域相同的网段ip和网关,即可实现vm(虚拟机)访问外部网络。优选的,包括多区域互联模式,用于实现多区域之间的互联;创建完成多个区域;在每个区域的netns-n(网络命名空间)上创建一个veth(虚拟网卡设备),将每个netns-n(网络命名空间)上的veth(虚拟网卡设备)进行相互连接;在第一个区域的netns-n(网络命名空间)上多创建一个veth(虚拟网卡设备),在主区域的xenbr0网桥上创建一个veth(虚拟网卡设备),将第一个区域的netns-n(网络命名空间)上的veth(虚拟网卡设备)与主区域xenbr0网桥上的veth(虚拟网卡设备)进行连接;将主区域xenbr0网桥与外部网络进行连接。以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1