当前位置: 移动技术网 > 网络运营>服务器>虚拟主机 > 简单谈谈OpenStack中的网络隔离

简单谈谈OpenStack中的网络隔离

2019年05月31日  | 移动技术网网络运营  | 我要评论
前言 最近,关于xx公有云的用户网络,由于隔离问题引发安全讨论,大家顿时对啥“经典网络”、“vpc”等概念兴趣大增,大家的热议中多次提到aws的vpc,亚马逊的aws怎么

前言

最近,关于xx公有云的用户网络,由于隔离问题引发安全讨论,大家顿时对啥“经典网络”、“vpc”等概念兴趣大增,大家的热议中多次提到aws的vpc,亚马逊的aws怎么搞的,我们不得而知,但是我们可以聊聊openstack的,毕竟它一直在模仿aws嘛;

“隔离”啥

首先,我们先搞清楚,所谓“隔离”,到底是在“隔”什么;

我们知道,计算机网络,是分层实现的,不同协议工作在不同层,这些层的设计、制定都有国际标准,按着osi的分层模型,共有七个层,大家在讨论的隔离,通常指的是第2层,也叫“数据链路层”;

数据链路层的网络包,也叫“帧”,我们常说的网卡的mac地址,就是帧的地址,mac,其实是“媒体访问控制”(media access control)的简称,这是数据链路层的一个子层;

那为什么要在这个二层上搞隔离呢?

因为二层的帧,其中一些帧的地址是广播地址,在同一个二层的设备都可以、也必须接收这些帧,交换机一般认为工作在二层,对这些广播包,也都要转发,所以二层通常被称为一个“广播域”,这就好比大家在一个教室里,都能互相看到,除非分隔到不同的教室;

openstack的玩法

openstack的neutron负责为虚拟机提供网络,而且openstack是假设多租户的,那多租户之间的隔离问题,它当然要提供支持,下面我们就看一下neutron是怎么实现的;

平坦网络

neutron中创建的网络是有“type”的,其中最基础的一种type就是“flat”,顾名思义,“平坦”就是指都在一个空间下,也就是没有做二层上的隔离,虚拟机都在同一个二层,同一个广播域;

从网上找了个示意图:

这种”平坦“的大二层网络,虽然实现、管理相对简单,但也会有诸多问题,除了安全方面,还有广播风暴等问题;

单个大二层网络,就好比整个学校的人都在一个大礼堂,大家都能看到,而且万一谁得了传染病,大家都被传染,要想隔离,可以把人分散到各个教室;

vlan隔离网络

neutron中创建”vlan“这种类型的网络,就是主要使用的二层隔离方案,vlan(虚拟局域网)本身就是交换机广泛使用的二层隔离技术;

示意图大概这样:

这就好比把整个学校的人,从大礼堂,分隔到了不同的教室,同一个教室的人互相可见,不同教室的人不可见;

但这种方案也有一定的局限性,首先管理相对麻烦,需要配合设置物理交换机,另外vlan的可用数量有限制,vlan的id号仅有四千多个,我们假设每个租户分配1个vlan,那最多也就能支持四千多个租户;

overlay网络

overlay(覆盖)网络,所谓”覆盖“,大体上指”在一层上面覆盖另一层,也可以说是用一层载着另一层移动“,vxlan是最常见的协议,它是把虚拟机的二层的帧,在宿主机上用udp包裹起来,然后以宿主机的ip,必要的话,经过3层的路由,到达目的宿主机,然后再解封,把内包裹的二层帧,输送给目的虚拟机;

有点抽象?我们先看看vxlan的包结构,就知道”包裹“是啥意思了:

那个”inner frame“就是被包裹的虚拟机的二层的包;

最终封装完的包,外层的源ip、目的ip地址,都是宿主机的,所以只要宿主机之间互通(3层可达),被封装的内层帧就可以被运输:

那这种方案有什么优点呢?

主要的:

vxlan的范围足够大,一千六百多万,租户随便用 因为是完全隔离的,租户可以随意定义自己的网络,哪怕和其他租户的ip段重叠都没有关系,比如上图中,租户a的网络,与租户b的网络 如果通过一定技术实现支持3层路由器,租户可以将自己的网络,随意组织自己的网络拓扑,比如上图中,租户a的两个网络,连接到一个路由器(可以是虚拟的)上

关于上面提的第三点,在neutron中大概是这样的:

vpc

最后,那到底啥是vpc呢?

很明确的告诉你,上面这个图就是vpc!

vpc(virtual private cloud),不是个技术专有名词,而是亚马逊aws创造的一个产品层面的名词;

租户网络彻底隔离、ip段都能重叠、路由器、网络拓扑都能由自己定义,这还不是”虚拟私有云“吗!

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网