第一:为什么需要网络虚拟化?

一.数据中心的现有网络不能满足云计算的物理需求;

互联网行业数据中心的基本特征就是服务器的规模偏大。进入云计算时代后,其业务特征变得更加复杂,包括:虚拟化支持、多业务承载、资源灵活调度等(如下图所示)。与此同时,互联网云计算的规模不但没有缩减,反而更加庞大。这就给云计算的网络带来了巨大的压力。

互联网云计算业务特点

1. 大容量的MAC表项和ARP表项

虚拟化会导致更大的MAC表项。假设一个互联网云计算中心的服务器有5000台,按照1:20的比例进行虚拟化,则有10万个虚拟机。通常每个虚拟机会配置两个业务网口,这样这个云计算中心就有20万个虚拟网口,对应的就是需要20万个MAC地址和IP地址。云计算要求资源灵活调度,业务资源任意迁移。也就是说任意一个虚拟机可以在整个云计算网络中任意迁移。这就要求全网在一个统一的二层网络中。全网任意交换机都有可能学习到全网所有的MAC表项。与此对应的则是,目前业界主流的接入交换机的MAC表项只有32K,基本无法满足互联网云计算的需求。另外,网关需要记录全网所有主机、所有网口的ARP信息。这就需要网关设备的有效ARP表项超过20万。大部分的网关设备芯片都不具备这种能力。

2. 4K VLAN Trunk问题

传统的大二层网络支持任意VLAN的虚拟机迁移到网络的任意位置,一般有两种方式。方式一:虚拟机迁移后,通过自动化网络管理平台动态的在虚拟机对应的所有端口上下发VLAN配置;同时,还需要动态删除迁移前虚拟机对应所有端口上的VLAN配置。这种方式的缺点是实现非常复杂,同时自动化管理平台对多厂商设备还面临兼容性的问题,所以很难实现。方式二:在云计算网络上静态配置VLAN,在所有端口上配置VLAN trunk all。这种方式的优点是非常简单,是目前主流的应用方式。但这也带来了巨大的问题:任一VLAN内如果出现广播风暴,则全网所有VLAN内的虚拟机都会受到风暴影响,出现业务中断。

3. 4K VLAN上限问题

云计算网络中有可能出现多租户需求。如果租户及业务的数量规模超出VLAN的上限(4K),则无法支撑客户的需求。

4. 虚拟机迁移网络依赖问题

VM迁移需要在同一个二层域内,基于IP子网的区域划分限制了二层网络连通性的规模。

二.数据中心的现有网络不能满足云计算的软件化即SDN要求。

数据中心(Data )中的物理网络是固定的、需要手工配置的、单一的、没有多租户隔离的网络,无法满足现有的需求。

云架构往往是多租户架构,这意味着多个客户会共享单一的物理网络。因此,除了提供基本的网络连接能力以外,云还需要提供网络在租户之间的隔离能力;同时云是自服务的,这意味着租户可以通过云提供的 API 来使用虚拟出的网络组建来设计,构建和部署各种他们需要的网络

小结:数据中心现有的物理网络基础之上叠加一层我们自己的虚拟网络

第二:网络虚拟化

一:相关网络

在实际的数据中心中,与相关的物理网络可以分为三层:

1. Cloud : 所管理的网络。

2. 机房 ( ):数据中心所管理的的公司网() ,虚机使用的 IP 是这个网络的地址的一部分。

3. 真正的外部网络即 :由各大电信运营商所管理的公共网络,使用公共IP。

二:网络( L2 )

网络()是一个隔离的二层网段,类似于物理网络世界中的虚拟 LAN (VLAN)。更具体来讲,它是为创建它的租户而保留的一个广播域,或者被显式配置为共享网段。端口和子网始终被分配给某个特定的网络。这里所谓的隔离,可理解为:

1.跨网络的子网之间的流量必须走 L3

2.每个网络使用自己的 DHCP Agent,每个 DHCP Agent 在一个 内

3.不同网络内的IP地址可以重复()

根据创建网络的用户的权限, L2 可以分为:

虚机可以直接挂接到 或者 上“VMs can to both and , and to with any : value, their owns the or its .”。

根据网络的类型, L2 可以分为:

注:现在企业环境中一般使用vlan,gre,vxlan网络模式,后续博客会详细介绍这三种网络模式

三. L2 的 模式

是由 管理员创建的,直接对应于数据中心的已有物理网络的一个网段。这种网络有三个和物理网络有关属性:

这种网络是可以在多个租户之间共享的。这种网络通过计算和网络节点上指定的 直接接入物理网络,所以默认的情况下它们是可以路由的,因此也不需要接入 ,也不需要使用 L3 agent。使用这种网络,必须预先在各计算和网络节点上配置指定的网桥。

虽然可以创建 GRE 和 VXLAN 类型的 , 但是(个人认为) 只对 Flat 和 VLAN 类型的网络才有意义,因为 的一个重要属性是 :,而这个参数对其他网络类型没有意义。

创建 :

四. L2 的

是由 的普通用户创建的网络。默认情况下,这类用户不能创建共享的 (因此 的 设置了”:”: “rule:”。),因此这种网络是完全隔离的,也不可以被别的 共享。

也有 local,flat,vlan,gre 和 vxlan 等类型。但是, 普通用户创建的 Flat 和 VLAN 实际上还是 ,所以真正有意义的是 GRE 和 VXLAN 类型,这种网络和物理网络没有绑定关系。

创建 的过程:

(0)管理员在 配置文件中配置 ,其值可以设为一个所支持的网络类型列表,比如 “vlan,gre,vxlan”。其默认值为 “local“,因此需要改变。该值表明该 云中允许被创建的 类型。

(1)运行命令 net-

(2) 逐一根据该配置项尝试创建 ,成功则立即返回。

创建每种网络时,使用不同的配置项:

五:与的区别

六:子网

子网是一组 IPv4 或 IPv6 地址以及与其有关联的配置。它是一个地址池, 可从中向虚拟机 (VM) 分配 IP 地址。每个子网指定为一个无类别域间路由 ( Inter- ) 范围,必须与一个网络相关联。除了子网之外,租户还可以指定一个网关、一个域名系统 (DNS) 名称服务器列表,以及一组主机路由。这个子网上的 VM 实例随后会自动继承该配置。

在创建虚拟主机时,nova-会从指定子网中取一个空闲IP并将它写入此虚拟主机的配置文件。在一个子网内的虚拟主机可以通过创建Linux桥实现互通。

七:端口

一个 Port 代表虚拟网络交换机( )上的一个虚机交换端口( port)。虚机的网卡(VIF – )会被连接到 port 上。当虚机的 VIF 连接到 Port 后,这个 vNIC 就会拥有 MAC 地址和 IP 地址。Port 的 IP 地址是从 中分配的。

八:虚拟交换机

默认采用开源的 Open 作为其虚机交换机,同时还支持使用 Linux 。

九:虚拟路由器

一个 提供不同网段之间的 IP 包路由功能,由 L3 agent 负责管理

nova管理的vm与提供的虚拟网络之间的关系

第三:二层网络虚拟化的实现

一个标准 环境中的物理网络配置往往包括:

租户网络( ):提供虚机在计算节点之间,以及计算节点和网络节点之间的通信。同样这也是数据中心的内部网络。

存储访问网络( ):访问存储的网络。

存储后端网络( ):比如 Ceph 和 Swift 集群用于后端数据复制的网络。

管理网络( ):提供 各个组件之间的内部通信,以及 API 访问端点()。为安全考虑,该网络必须限制在数据中心之内。

API 网络:其实这不是一个单独的网络,而是包含在外部和内部网络中。API 的 包括 和 ,其中,包含的是 的 IP 地址, 包含的是 IP 地址。为了简单起见,提供给内外网络访问的API的 和 相同,而只给内部网络访问的 API 只使用 。

数据网络(data ):除管理网络以外的其它网络,往往还可以细分为下面几种。它们可以合为一种,也可以从性能方面考虑分离出一种或几种作为单独的网络。

一. 大二层的概念

二层指的是数据链路层,计算机与计算机之间的通信采用的是基于以太网协议广播的方式,而大二层的概念指的是中所有的vm都处于一个大的二层网络中,大二层也可以被想象成一堆二层交换机串联到一起。这么做的目的就是为了满足vm可以迁移到全网的任意位置,二层无需网关,无需路由,因而资源调用更加灵活,反之,如果所有vm不在一个大二层中,那么vm迁移到另外一个位置(另外一个网络中),则需要我们人为地指定网关,添加路由策略,然而这还只是针对一台vm的迁移,要满足所有的vm的动态迁移,再去指定网关、路由等就不现实了。

二.物理的二层与虚拟的二层(vlan模式)

物理的二层指的是:物理网络是二层网络,基于以太网协议的广播方式进行通信

虚拟的二层指的是:实现的虚拟的网络也是二层网络(的vm机所用的网络必须是大二层),也是基于以太网协议的广播方式进行通信,但毫无疑问的是该虚拟网络依赖于物理的二层网络

三.物理的三层与虚拟的二层(gre模块与vxlan模式)

物理的三层指的是:物理网络是三层网络,基于ip路由的方式进行通信

虚拟的二层指的是:实现的虚拟的网络仍然是二层网络(的vm机所用的网络必须是大二层),仍然是基于以太网协议的广播方式进行通信,但毫无疑问的是该虚拟网络依赖于物理的三层网络,这有点类似于VPN的概念,根本原理就是将私网的包封装起来,最终打上隧道的ip地址传输。

四.虚拟路由器

跨子网的通信需要走虚拟路由器。同物理路由器一样,虚拟路由器由租户创建,拥有多个 ,连接一个租户的子网,以及外部网络。它具有以下特性:

五.dhcp服务

DHCP 服务是网络环境中必须有的。 提供基于 (轻型的dns和dhcp服务)实现的虚机 DHCP 服务,向租户网络内的虚机动态分配固定 IP 地址。它具有以下特性:

第四:租户网路的隔离性

实现了不同层次的租户网络隔离性:

对每个租户网络( )都分配一个 ,其特点包括:

VLAN ID

GRE ID

VxLAN VNI

原图链接:

第五 租户网络的安全性()

除了租户的隔离性以外,