租户网络是基于云平台物理业务网络之上创建虚拟网络,支持 VLAN 、软件 VXLAN 和物理交换机 VXLAN 三种组网方式进行隔离,通过网络节点的虚拟路由器 (VROUTER) 或 PROVIDER 网络来实现租户网络之间和外部网络的访问,不同租户的 subnet 的地址空间可以重叠。
本文重点针对物理交换机 VXLAN 组网方式进行阐述, VLAN 和软件 VXLAN 方案详见之前的方案文档。
云平台支持 VLAN 、软件 VXLAN 和物理硬件 VXLAN 三种组网方式。各组网方式优缺点:
方案类型 | 简述 | 优点 | 缺点 |
VLAN组网 | 基于VLAN交换机完成平台组网 | 1.性能较好; 2.OPENSTACK原生支持; 3.支持FLAT和 PROVIDER网络; 4.支持同租户的物理机和虚拟机在同一二层网络内; | 1.需要配置接入交换机;2.VLAN范围限制网络规模(<4096个),不利于扩展到很大规模的公有云 |
软件VXLAN组网 | 基于OPENVSWITCH软件实现VTEP完成平台组网 | 1.OPENSTACK原生支持; 2.支持更多的租户网络; 3.无需配置任何交换机; | 1.需要软件解封包,性能较差 2不支持FLAT和 PROVIDER网络; 3.不支持同租户的物理机和虚拟机在同一二层网络内; |
硬件VXLAN组网 | 基于H3C VXLAN交换机VTEP完成平台组网 | 1.支持更多的租户网络; 2.基于硬件VXLAN设备之上,性能较好; 3.支持同租户的物理机和虚拟机在同一二层网络内; 4.可以扩展到较大规模的公有云; | 1.技术框架已具备,但仍需根据特定设备进行适配(定制开发); |
基于客户需求,推荐使用方案一或方案三,因为之前的网络方案文档已经详细介绍了方案一和方案二,本文档着重介绍方案三 。
结合云平台 SDN 网络技术和现有硬件条件,本方案采用 VXLAN 物理交换机 +ML2 分层端口绑定技术(原理详见附件)共同实现 VXLAN 租户网络方案。
租户网络 vxlan 硬件隔离采用 Ovs Agent+vxlan 物理隧道共同实现虚拟互联:同一计算节点虚拟机网络采用物理节点内部网桥 br-int 进行隔离( local vlan tag );同一交换机计算节点之间虚拟机网络采用 VXLAN 交换机的 vsi 进行隔离( vlan tag );不同交换机计算节点之间虚拟机网络采用 VXLAN 交换机的虚拟隧道进行隔离( vxlan tag )。具体实现:
l 租户创建 private network 需指定 segment id :不同租户可以创建相同子网但不能指定相同的 segment id ,其中 segment id 为全局唯一的物理 vxlan tag ;
l 同一计算节点通过内部网桥 br-int 的 local vlan tag 进行隔离:基于不同租户 private network 上创建的虚拟机,连接到 br-int 上都会带 vlan tag ,即 local vlan tag ,所以不同租户的虚拟机,即便连接到同一个 br-int 上,因为 tag 不同,也是不能相互通信的。同一个机器上的 local vlan tag ,是局部有效的,即仅在本机有效;
l 同一交换机计算节点之间网络通过 br-ethx 的 vlan tag 进行隔离:内部网桥 br-ethx 根据 vlan tag ,将数据包的 local vlan tag 转换成 vlan tag ,并将数据转发至交换机端口,数据隔离由交换机 vlan 完成;
l 不同交换机计算节点之间网络通过 VXLAN 交换机 vtep 隧道进行隔离:虚拟机数据报文被送至交换机端口,完成封装后通过 vtep 隧道转发出去,数据隔离由交换机 vtep 完成。
图 1
云平台提供 VPN 和 FLOATING-IP 两种功能实现不同的租户网络互通。图 2 以硬件 VXLAN 组网中智慧交通四个租户处于同一接入交换机为例。
图 2
备注: VPN 为子网到子网之间的隧道; FLOATING-IP 可以理解为点(虚拟机)到点(虚拟机)的隧道。另外:智慧停车租户和产业集团租户也可以建立自己的边界路由器,为保证图片美观性上图并未画。
烦请刘艺帮忙补充外部路由访问虚拟机网络。(也就是在核心交换机配置路由的方案)
云平台提供支持直接管理物理机的功能。基于现有租户网络方案,管理方案如下:
图 4
备注:接入物理机的 L2 交换机相当于计算节点中的 br-int 网桥功能。
云平台支持以计算节点为单元的扩容方式。根据本项目实际情况,扩容涉及两个场景:
l 添加单个计算节点;
l 添加物理交换机 + 多个计算节点;
图 5
ML2 分层端口绑定技术是指同一个虚拟网络在一个分层的虚拟网络中可以使用不同的网络 segment ,在不同的网络级别可能存在不同的网络类型( VLAN 、 VXLAN 、 GRE 等等),由 Openstack 的 Neutron 组件 Ml2 模块提供。
基于 ML2 分层端口绑定技术,本方案租户网络满足:属于同一 vxlan 接入层交换机的服务器虚拟机之间通信走 vlan 协议 ;不属于同一 vxlan 接入层交换机的服务器虚拟机之间通信走 vxlan 协议 。逻辑结构如下:
图 8
解决问题:解决基于硬件 SDN 交换机在实现租户网络隔离使用 VLAN 协议时受到 VLAN 4096 的限制;
解决方法:每个接入层交换机可最多支持 4096 个 vlan ,并且不同接入层交换机的 vlan 允许重复;
支撑公式:单个接入层交换机 48 口(可最多接入 48 个计算节点),单台服务器所承载的虚拟机 =4096/48=85 ,意味着每台服务器可以创建 vlan 不相同的虚拟机 85 台 >> 大于单台服务器所能承载的虚拟机,如果 vlan 可以相同,每台服务器可以创建的虚拟机将远远大于 >>85 台;
基于 2.1 设计的租户网络中存在三种 tag : vxlan tag , vlan tag 和 local vlan tag ,详见:
图 9
tag 作用范围:
Tag | 是否唯一 | 作用范围 |
vxlan tag | 全局唯一 | 整个云平台 |
vlan tag | 不唯一 | 所属交换机及该交换机连接的服务器 |
local vlan tag | 不唯一 | 所属服务器 |
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论