一种多租户虚拟网络隔离方法

文档序号:7819430阅读:1301来源:国知局
一种多租户虚拟网络隔离方法
【专利摘要】本发明涉及云计算【技术领域】,特别是一种高灵活性的多租户虚拟网络隔离方法。本发明在初始化的过程中首先创建两个虚拟交换机OVS-A和OVS-B;然后给OVS-A添加连接外网的物理接口eth1;接着创建VETH设备连接OVS-A和OVS-B。创建私有网络、启动虚拟机是:(1)添加内部端口dhcp-N并设置内网VLAN-N;(2)创建私有网络空间netns-N;(3)将dhcp-N端口接入netns-N;(4)在网络节点和计算节点连接OVS-A与OVS-B的VETH设备两端分别设置内外网VLAN转换规则;(5)在计算节点创建linux网桥BR-N;(6)创建VETH设备连接BR-N与OVS-B;(7)虚拟机桥接到BR-N启动并通过步骤3启动的dhcp服务获取IP。本发明提供了一种高灵活性的多租户虚拟网络隔离方法。
【专利说明】一种多租户虚拟网络隔离方法

【技术领域】
[0001] 本发明涉及云计算【技术领域】,特别是一种高灵活性的多租户虚拟网络隔离方法。

【背景技术】
[0002] 网络管理和配置是云计算中一项非常重要的功能,实现一种灵活高效又安全的网 络虚拟化一直是各个云平台追求的目标。对于云平台租户而言,保证自己的虚拟机网络安 全可用是最重要也是最有必要的,这样就必须首先要求虚拟机可以访问外网,其次是同一 个租户的虚拟机之间能够相互通信,而不同租户所创建的虚拟机不能互相访问。目前一般 采用全局VLAN隔离的方法给虚拟机设置网络,其方法步骤如下:
[0003] 1、云平台管理员事先规划好各个租户的VLAN号并对物理交换机和路由器进行相 应配置;
[0004] 2、在各个物理计算节点上创建VLAN号对应的网桥;
[0005] 3、将各租户的虚拟机桥接到各自对应的网桥并分配其IP。
[0006] 上述方法的实现原理非常简单,但也存在以下的弊端:
[0007] 1、灵活性差,管理员必须事先配置好物理网络以提供给租户使用,但是租户的需 求往往是变化的,这样导致经常修改物理交换机、路由器等全局网络配置非常不便。
[0008] 2、用户体验不好,租户一般都希望能够自己控制自己虚拟机的网络,例如根据自 己的需要随时创建和删除某个子网,分配自己想要的私有IP,采用上述方法根本无法满足。
[0009] 因此,云平台中需要一种高灵活性的多租户虚拟网络隔离方法。


【发明内容】

[0010] 本发明解决的技术问题在于提供一种高灵活性的多租户虚拟机网络隔离方法,满 足云平台各租户灵活控制自己私有虚拟网络的需求。
[0011] 本发明解决上述技术问题的技术方案是:
[0012] 所述的方法主要涉及网络节点和计算节点两个部分,其中网络节点和计算节点的 初始化步骤如下:
[0013] 步骤1 :分别创建两个虚拟交换机OVS-A和OVS-B ;
[0014] 步骤2 :分别给OVS-A添加连接外网的物理接口;
[0015] 步骤3 :分别创建VETH设备连接OVS-A和OVS-B ;
[0016] 各租户创建私有网络并启动虚拟机的过程包括如下步骤:
[0017] 步骤1 :在网络节点的OVS-B上添加一个内部端口 dhcp-N并设置内网VLAN-N ;
[0018] 步骤2 :创建租户私有网络空间netns-N ;
[0019] 步骤3 :将dhcp-N端口加入netns-N,并启动私有网络dhcp服务;
[0020] 步骤4 :在网络节点和计算节点连接OVS-A与OVS-B的VETH设备两端分别设置内 外网VLAN转换规则;
[0021] 步骤5 :在计算节点创建Iinux网桥BR-N ;
[0022] 步骤6 :创建VETH设备连接BR-N与OVS-B ;
[0023] 步骤7 :虚拟机桥接到BR-N启动并通过步骤3启动的dhcp服务获取IP ;
[0024] 最后,如果一个租户创建有多个私有网络,可以通过在网络节点的OVS-B上创建 虚拟路由器来控制私网间的三层通信。
[0025] 所述的网络节点是指可以在其上面创建虚拟网络空间并提供私有网络dhcp服务 的服务器;
[0026] 所述的计算节点是指可以在其上面创建虚拟机的服务器;
[0027] 所述的网络节点和计算节点只是功能上的区分,同一台服务器既可以单独作为网 络节点,也可以单独作为计算节点,还可以同时作为网络节点和计算节点;
[0028] 所述的网络节点可以是分布式的,即在一个云平台中可以同时存在多个网络节点 为计算节点提供网络服务,保证网络服务的高可靠。
[0029] 所述的虚拟交换机OVS-A和OVS-B是指使用虚拟机交换机工具创建的虚拟网桥, 功能上相当于物理网络设备的交换机;
[0030] 所述的虚拟交换机即开放虚拟交换标准,是产品级质量的多层虚拟交换标准。
[0031] 所述的虚拟网络空间是相对于全局网络空间来说的,他们是相互隔离的两个命名 空间;
[0032] 所述的命名空间可以理解为逻辑分组,分组之间是互不影响的,IP地址是不一样 的。
[0033] 所述的内网是指租户创建的私有虚拟网络,所述的外网则是云平台物理网络设备 上使用的真实网络。
[0034] 所述的VLAN是在交换机等二层设备中用以实现二层网络隔离的标签技术,不同 VLAN之间的私有网络是相互隔离的;
[0035] 所述的二层是指计算机网络七层结构中的数据链路层;
[0036] 所述的内外网VLAN转换包括内网VLAN转外网VLAN和外网VLAN转内网VLAN ;
[0037] 所述的内网VLAN转外网VLAN是指将标有内网VLAN号的数据包重定义为外网 VLAN号以便其能在外网正常通信;
[0038] 所述的外网VLAN转内网VLAN则是指将标有外网VLAN号的数据帧重定义为内网 VLAN号以便其进入内网正常通信。
[0039] 本发明方案的有益效果如下:
[0040] 1、本发明所创建的虚拟网络空间是灵活的,可以根据租户的需求随时创建与删 除,也可以指定任何私有网络地址;
[0041] 2、本发明所涉及的VLAN配置都是在虚拟交换机上完成,可以随时修改;
[0042] 3、本发明可以使租户创建多个私有网络,通过虚拟路由器可以很方便的实现私有 网络的互通与隔离;
[0043] 4、本发明的方法中网络节点可以是分布式的,避免了单点故障问题,实现了网络 节点的高可靠。

【专利附图】

【附图说明】
[0044] 下面结合附图对本发明进一步说明:
[0045] 图1为本发明的示意图。

【具体实施方式】
[0046] 见图1所示,本发明初始化过程中首先分别在网络节点和计算节点上创建两个虚 拟交换机OVS-A和0VS-B,具体如下:
[0047] #ovs-vsctl add-br OVS-A //创建 OVS 桥,即虚拟机交换机
[0048] #ovs-vsctl add-br OVS-B //创建 OVS 桥,即虚拟机交换机
[0049] OVS-A用于连接外网,给其添加连接外网的物理接口 ethl :
[0050] #ovs-vsctl add-port OVS-A ethl
[0051] 接着创建VETH设备连接OVS-A和0VS-B,如下操作中vethA-1和vethA-2为VETH 设备vethA的两个端口:
[0052] #ip link add vethA-1 type veth peer name vethA-2 // 仓1J 建 vethA-1 与 vethA-2
[0053] #ifconfig vethA-1 up // 激活 vethA-1 端口
[0054] #ifconfig vethA-2 up //激活 vethA-2 端口
[0055] #ovs-vsctl add-port OVS-A vethA-1 //vethA-1 接到桥 VOS-A
[0056] #ovs-vsctl add-port OVS-B vethA-2 //vethA-2 接到桥 V0S-B
[0057] 假设云平台某租户需要创建属于自己的私有网络(192. 168. 88. 0/24),云平台自 动为其分配了内网vlan5和外网vlanl005,则底层具体的实现过程如下:首先在网络节点 的OVS-B虚拟交换机上面添加一个内部端口,假设为dhcp-5,并设置其端口 vlan5用以对不 同虚拟网络进行隔离,具体命令如下:
[0058] #ovs-vsctl add-port OVS-B dhcp-5 tag = 5-set interface dhcp-5type = internal
[0059] 创建虚拟网络空间netns-5,并将dhcp-5接入该网络空间:
[0060] #ip netns add netns-5
[0061] #ip link set dhcp-5 netns netns-5
[0062] #ip netns exec netns-5 ip addr add 192. 168. 88. 1/24 dev dhcp-5// 给内部 端口设置租户私有网络IP,可以作为网关
[0063] #ip netns exec netns-5 ifconfig dhcp-5 promise up //激活内部端口
[0064] 在网络节点虚拟交换机OVS-A的vethA-1端口处添加上行VLAN转换(内网VLAN 转外网VLAN)的转换规则:
[0065] #ovs-〇fctl add-flow OVS-A
[0066] " hard-timeout = 0,idle_timeout = 0, priority = 3, in-port = 3, dl_vlan =5, actions = mod-vlan_vid :1005, normal"
[0067] 在网络节点虚拟交换机OVS-B的vethA-2端口处添加下行VLAN转换(内网VLAN 转外网VLAN)的转换规则:
[0068] ovs-ofctl add-flow OVS-B
[0069] " hard-timeout = 0,idle_timeout = 0, priority = 3, in-port = 2, dl_vlan =1005, act ions = mod-vlan_vid :5, normal"
[0070] 网络节点在虚拟网络空间netns-5的内部端口 dhcp-5启动dhcp服务,用以管理 该私有网络空间内的虚拟机的IP,启动dhcp命令如下:
[0071] #ip netns exec netns-5/usr/sbin/dnsmasq-strict-order
[0072] --bind-interfaces-conf-file = -domain = local
[0073] -pid-file = /opt/xm/test. pid-interface dhcp-5-except-interface = Io
[0074] -dhcp-range = 192. 168. 88. 1,static,120s-dhcp-lease-max = 256
[0075] -dhcp-hostsfile = /opt/xm/network. conf
[0076] -dhcp-script = /opt/xm/update2db. py-leasefile-ro
[0077] 当租户使用自己创建的私有网络创建虚拟机时,需首先在计算节点上面虚拟交换 机OVS-A的vethB-1端口处添加上行VLAN转换规则,以及在OVS-B的vethB-2端口处添 加下行VLAN转换规则,具体规则类似与网络节点。这里必须保证同一个虚拟私有网络的 外网vlan-致,如在上述创建的netns-5 (192. 168. 88. 0/24)内的虚拟机统一使用外网 vlanl005。
[0078] 接着创建一个Iinux本地网桥BR-A,然后创建veth设备连接BR-A和0VS-B。具 体操作如下:
[0079] #brctl addbr BR-A //创建 Iinux 桥
[0080] #ifconfig BR-A up // 激活
[0081] #ip link add vethC-1 type veth peer name vethC-2 // 创建 veth 设备
[0082] #ifconfig vethC-1 up
[0083] #ifconfig vethC-2 up
[0084] #brctl addif BR-A vethC-2
[0085] #ovs_vsctI add-port 0VS-B vethC-1 tag = 5 //将 vethC-1 端 口接入 0VS-B
[0086] 最后,将虚拟机配置文件中,将虚拟机的虚拟网卡桥接到BR-A上启动即可自动获 取netns-5空间内的私有IP。虚拟机网络接口部分配置文件如下所示:
[0087]

【权利要求】
1. 一种多租户虚拟网络隔离方法,其特征在于:所述的方法主要涉及网络节点和计算 节点两个部分,其中网络节点和计算节点的初始化步骤如下: 步骤1 :分别创建两个虚拟交换机OVS-A和OVS-B ; 步骤2 :分别给OVS-A添加连接外网的物理接口; 步骤3 :分别创建VETH设备连接OVS-A和OVS-B ; 各租户创建私有网络并启动虚拟机的过程包括如下步骤: 步骤1 :在网络节点的OVS-B上添加一个内部端口 dhcp-N并设置内网VLAN-N ; 步骤2 :创建租户私有网络空间netns-N ; 步骤3 :将dhcp-N端口加入netns-N,并启动私有网络dhcp服务; 步骤4 :在网络节点和计算节点连接OVS-A与OVS-B的VETH设备两端分别设置内外网 VLAN转换规则; 步骤5 :在计算节点创建linux网桥BR-N ; 步骤6 :创建VETH设备连接BR-N与OVS-B ; 步骤7 :虚拟机桥接到BR-N启动并通过步骤3启动的dhcp服务获取IP ; 最后,如果一个租户创建有多个私有网络,可以通过在网络节点的OVS-B上创建虚拟 路由器来控制私网间的三层通信。
2. 根据权利要求1所述的多租户虚拟网络隔离方法,其特征在于:所述的网络节点是 指可以在其上面创建虚拟网络空间并提供私有网络dhcp服务的服务器; 所述的计算节点是指可以在其上面创建虚拟机的服务器; 所述的网络节点和计算节点只是功能上的区分,同一台服务器既可以单独作为网络节 点,也可以单独作为计算节点,还可以同时作为网络节点和计算节点; 所述的网络节点可以是分布式的,即在一个云平台中可以同时存在多个网络节点为计 算节点提供网络服务,保证网络服务的高可靠。
3. 根据权利要求1所述的多租户虚拟网络隔离方法,其特征在于:所述的虚拟交换机 0VS-A和0VS-B是指使用虚拟机交换机工具创建的虚拟网桥,功能上相当于物理网络设备 的交换机; 所述的虚拟交换机即开放虚拟交换标准,是产品级质量的多层虚拟交换标准。
4. 根据权利要求2所述的多租户虚拟网络隔离方法,其特征在于:所述的虚拟交换机 0VS-A和0VS-B是指使用虚拟机交换机工具创建的虚拟网桥,功能上相当于物理网络设备 的交换机; 所述的虚拟交换机即开放虚拟交换标准,是产品级质量的多层虚拟交换标准。
5. 根据权利要求1至4任一项所述的多租户虚拟网络隔离方法,其特征在于:所述的 虚拟网络空间是相对于全局网络空间来说的,他们是相互隔离的两个命名空间; 所述的命名空间可以理解为逻辑分组,分组之间是互不影响的,IP地址是不一样的。
6. 根据权利要求1至4任一项所述的多租户虚拟网络隔离方法,其特征在于:所述的 内网是指租户创建的私有虚拟网络,所述的外网则是云平台物理网络设备上使用的真实网 络。
7. 根据权利要5所述的多租户虚拟网络隔离方法,其特征在于:所述的内网是指租户 创建的私有虚拟网络,所述的外网则是云平台物理网络设备上使用的真实网络。
8. 根据权利要求1至4任一项所述的多租户虚拟网络隔离方法,其特征在于:所述的 VLAN是在交换机等二层设备中用以实现二层网络隔离的标签技术,不同VLAN之间的私有 网络是相互隔离的; 所述的二层是指计算机网络七层结构中的数据链路层; 所述的内外网VLAN转换包括内网VLAN转外网VLAN和外网VLAN转内网VLAN ; 所述的内网VLAN转外网VLAN是指将标有内网VLAN号的数据包重定义为外网VLAN号 以便其能在外网正常通信; 所述的外网VLAN转内网VLAN则是指将标有外网VLAN号的数据帧重定义为内网VLAN 号以便其进入内网正常通信。
9. 根据权利要求5所述的多租户虚拟网络隔离方法,其特征在于:所述的VLAN是在交 换机等二层设备中用以实现二层网络隔离的标签技术,不同VLAN之间的私有网络是相互 隔离的; 所述的二层是指计算机网络七层结构中的数据链路层; 所述的内外网VLAN转换包括内网VLAN转外网VLAN和外网VLAN转内网VLAN ; 所述的内网VLAN转外网VLAN是指将标有内网VLAN号的数据包重定义为外网VLAN号 以便其能在外网正常通信; 所述的外网VLAN转内网VLAN则是指将标有外网VLAN号的数据帧重定义为内网VLAN 号以便其进入内网正常通信。
10. 根据权利要求6所述的多租户虚拟网络隔离方法,其特征在于:所述的VLAN是在 交换机等二层设备中用以实现二层网络隔离的标签技术,不同VLAN之间的私有网络是相 互隔离的; 所述的二层是指计算机网络七层结构中的数据链路层; 所述的内外网VLAN转换包括内网VLAN转外网VLAN和外网VLAN转内网VLAN ; 所述的内网VLAN转外网VLAN是指将标有内网VLAN号的数据包重定义为外网VLAN号 以便其能在外网正常通信; 所述的外网VLAN转内网VLAN则是指将标有外网VLAN号的数据帧重定义为内网VLAN 号以便其进入内网正常通信。
【文档编号】H04L29/06GK104394130SQ201410637749
【公开日】2015年3月4日 申请日期:2014年11月12日 优先权日:2014年11月12日
【发明者】熊梦, 杨松, 莫展鹏, 季统凯 申请人:国云科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1