目录
服务器虚拟化能够大幅降低IT建设运维成本,提高业务部署灵活性。虚拟机在传统数据中心网络中只能在二层进行无缝迁移,一旦在跨三层网络中进行迁移,就会造成业务中断。于是VXLAN技术应用而生,大大提高了虚拟机的迁移灵活性,使海量租户不受网络IP地址变更和广播域限制的影响,同时也大大降低了网络管理的难度。
1、传统数据中心的问题
1.1 数据中心概念
数据中心是一套完整、复杂的集合系统他不仅包括计算机系统和其他与之配套的设备(例如通信和存储系统),还包含数据通信系统、环境控制设备、监控设备以及各种安全装置。数据中心通常是指在一个物理空间内实现信息集中处理、存储、传输、交换、管理的场所;服务器、网络设备、存储设备等通常都是数据中心的关键设备。设备运行所需要的环境因素,如供电系统、制冷系统、机柜系统、消防系统、监控系统等通常都被认为是关键物理基础设施。
互联网数据中心(Internet Data Center,IDC)是互联网中数据存储和处理的中心,是互联网中数据交互最为集中的地方。
1.2 传统数据中心网络
传统网络模型在很长一段时间内,支撑了各种类型的数据中心。按照功能模块划分,传统数据中心可分为核心区、外网服务器区、内网服务器区、互联网服务器区、数据中心管理区、数据交换&测试服务器区、数据存储功能区、数据容灾功能区等。在服务器区,再根据不同的应用类型划分不同的层次,例如,数据库层、应用服务器层、WEB服务器层等。
传统数据中心的网络结构是按照经典的三层架构(接入、汇聚、核心)进行部署的。
1.3 传统数据中心存在挑战
(一)计算节点低延迟需求
- 同一物理服务器部署大量虚拟机,造成流量并发量大增。
- 数据流量模型也从传统的南北向流量转变为东西向流量。
- 网络中存在大量多对一、多对多的东西向流量。
- 对接入层和汇聚层设备的处理能力提出了更高的要求。
(二)虚拟化技术大量应用
传统数据中心内,服务器主要对外提供服务,不同业务区域之间可通过划分为不同的安全区域或VLAN进行隔离。一个分区之间通常集中了该业务所需的所有条件,包括:计算能力、网络及存储资源,不同的分区之间或者禁止互访,或者经过三层网络互访。数据中心的流量大多为南北向,在这种设计下,不同分区间计算资源无法共享,资源利用率低下问题越来突出。
通过虚拟化技术、云计算管理技术等,将各个分区之间的资源进行池化,实现数据中心资源的有效利用。随着这些新技术的兴起和应用,新的业务需求如虚拟机迁移、数据同步、数据备份、协同计算等在数据中心内开始实现部署,数据中心内部东西向流量开始大幅度增加。
虚拟机动态迁移技术在实际应用中很常见,比如需要对一台服务器进行升级和维护时,可以通过VM迁移技术将这台服务器上的VM先迁移到另一台服务器上,其间所提供的的服务不会中断,然后等服务器升级和维护完成后在将VM迁移回来即可。虚拟机动态迁移技术还可以充分利用计算资源,比如某公司的网购平台在某段时间内在某片区域提供促销活动,其间业务量大大增加,这样可以将其他业务量小的区域内的VM动态迁移过来,这样不会中断其他区域服务的情况下,集中利用资源,活动结束后再将VM调整回原先的区域。
(三)传统网络下虚拟机的迁移问题
虚拟机动态迁移,就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理服务器移动到另一个物理服务器的过程。该过程对于最终用户来说是无感知的,从而使得管理员能够在不影响用户正常使用的情况下,灵活调配服务器资源,或者对物理服务器进行维修和升级。一旦服务器跨二层网络迁移,就需要变更IP地址,那么原来这台服务器所承载的业务就会中断,而且牵一发动全身,其他相关的服务器也要变更相应的配置,影响巨大。
1.4 当前的一些解决方案
(一)简化拓扑
为了打破这种跨三层网络限制,实现虚拟机的大范围甚至跨地域的动态迁移,就要求把VM迁移可能涉及的所有服务器都纳入到同一个二层网络中,这样才能实现VM大范围的无障碍迁移。在汇聚核心层部署CSS,在接入层部署istack,可实现简化拓扑结构的目的。设备无需使能STP等二层环路保护机制,更有效地提高了链路资源利用率。但设备性能问题并没有得到根本解决。该解决方案比较适于在一个数据中心内部进行VM迁移操作 。
该方案存在问题:MAC地址数量徒增,接入设备压力较大;多租户隔离环境中设备VLAN资源紧张;二层网络范围过大,影响网络通信效率;传统解决方案较适用DC数据内部大二层互联应用。STP或CSS+iStack传统二层技术不适合构建大规模二层网络。通过VXLAN可以构建大二层网络,链路带宽利用率高。
(二)VXLAN——多数据中心大二层互联
早期的虚拟机管理及迁移依附于物理网络,因此数据中心内部东西向流量主要是二层流量。随着虚拟化数据中心规模的不断扩大,以及云化管理的不断深入,物理网络的种种限制越来越不能满足虚拟化的要求,由此提出了VXLAN、NVGRE等Overlay技术。
在Overlay方案中,物理网络的东西向流量类型逐渐由二层向三层转变,通过增加封装,将网络拓扑由物理二层变为逻辑二层,同时提供了逻辑二层的划分管理,更好地满足了多租户的需求。VXLAN、NVGRE等Overlay技术都是通过将MAC封装在IP之上,实现对物理网络的屏蔽,解决了物理网络VLAN数量限制、接入交换机MAC表资源有限等问题,同时通过提供统一的逻辑网络管理工具,更方便地实现了虚拟机在进行迁移时网络策略跟随的问题,大大降低了虚拟化对网络的依赖,成为了目前网络虚拟化的主要发展方向
(三)目前云数据中心网络解决方案
- VXLAN技术主要解决多租户环境下的二层互联问题。
- VXLAN通过隧道技术在不改变三层网络拓扑的前提下构建跨数据中心的逻辑二层网络拓扑。
- VXLAN技术有效解决了VLAN数量的限制问题。
- VXLAN技术对二层网络做了优化不会造成广播风暴等问题。
- SDN技术主要是简化网络的部署、运维、调整等问题。
SDN技术概述:https://blog.csdn.net/weixin_43997530/article/details/109766125
2、VXLAN概述
2.1 VXLAN基本概念
VXLAN(Virtual eXtensible Local Area Network)是通过MAC In IP技术在IP网络之上构建逻辑二层网络。同一租户的VM彼此可以二层通信、跨三层物理网络进行迁移。相比传统L2 VPN等Overlay技术,NVO3(Network Virtualization over Layer 3)的CE侧是虚拟或物理主机,而不是网络站点。
VXLAN是 IETF 定义的NVO3标准技术之一。采用MAC in UDP封装方式,将二层报文用三层协议来进行封装,可对二层网络在三层范围内进行扩展,同时支持24bits的VNI ID(虚拟网络ID,表示一个虚拟网络)16M租户能力,满足数据中心大二层VM迁移和多租户的需求。
在VXLAN NVO3网络模型中,部署在VXLAN网络边缘的设备称为VXLAN NVE(Network Virtualization Edge,网络虚拟边缘),主要负责VLAN网络和VXLAN网络间的封装与解封装。经过NVE封装转换后,NVE间就可以基于基础网络建立Overlay二层虚拟网络。VXLAN网络中的NVE以VTEP进行标识,VTEP ( VXLANTunnel EndPoint,VXLAN隧道端点);每一个NVE至少有一个VTEP ,VTEP使用NVE的IP地址表示;两个VTEP可以确定一条VXLAN隧道。
VXLAN技术特点:
- 位置无关性:业务可以在任何位置灵活部署,缓解了服务器虚拟化后相关网络的扩展问题。
- 可扩展性:在传统网络架构上规划新的Overlay网络,部署方便,同时避免了大二层的广播风暴问题,可扩展性极强。
- 部署简单:由高可靠SDN Controller完成控制面的配置和管理,避免了大规模的分布式部署,同时集中部署模式可加速网络和安全基础架构的配置,提高可扩展性。
- 适合云业务:可实现千万级别的租户间隔离,有力地支持了云业务的大规模部署。
- 技术优势:VXLAN利用了现有通用的UDP进行传输,成熟性极强。
2.2 VXLAN逻辑抽象
VXLAN的简化理解——两次虚拟化
- 第一次虚拟化:利用隧道技术将边缘设备互连透传二层报文;将整个网络抽象理解成一台端口数目扩展的超大的LAN switch。
- 第二次虚拟化利用VNI将这台超大的交换机虚拟出多个二层的广播域,和VLAN的本质是一样的,VNI和VLAN ID是一样的并且定义VXLAN header中的VNI字段,将子网范围由4K扩展到16M。
2.3 VXLAN报文格式
- VNI:VXLAN网络标识,24比特,用于区分VXLAN段。
- Reserved:24比特和8比特,必须设置为0。
- 目的UDP端口号是4789。源端口号是内层以太报文头通过哈希算法计算后的值。
- 源IP地址为发送报文的虚拟机所属VTEP的IP地址;目的IP地址是目的虚拟机所属 VTEP的IP地址。
- SA:发送报文的虚拟机所属VTEP的MAC地址。
- DA:目的虚拟机所属VTEP上路由表中直连的下一跳MAC地址。
- VLAN Type:可选字段,当报文中携带VLAN Tag时,该字段取值为0x8100。
- Ethernet Type:以太报文类型,IP协议报文该字段取值为0x0800。
几个概念:
- VNI:标识VXLAN网络中的二层域。两个VTEP可以确定一条VXLAN隧道,VTEP间的这条VXLAN隧道将被两个NEV间的所有VNI所共用。
- NVE(网络虚拟边界):目前有软件和硬件两种。软件是在原有的设备上安装一个软件包,硬件是在原设备上增加一个模块;而原有的设备大多为二层设备,所以NVE又是VXLAN的二层网关,可以实现VXLAN与VLAN、MAC等的二层映射。
- VXLAN网关:NVE是一个VXLAN的二层网关;VXLAN还存在三层网关主要实现VXLAN与IP报文头网络的映射。不管是二层VXLAN网关,还是三层VXLAN网关,都主要是实现VXLAN网络和非VXLAN网络之间的连接
3、VXLAN报文转发流程
3.1 VXLAN同子网转发
- NVE1发现是广播报文,在VNI1内广播ARP request报文;报文做隧道封装。
- 中间节点IP透传Overlay报文。
- NVE2/3/4/5接收报文,解隧道封装,原始报文本地VNI 1内广播,学习到Host A的Mac。
- NVE2查找服务器A mac转发表,命中出接口为隧道(NVE2至NVE1隧道);报文封装后三层转发;
- 中间节点,IP透传overlay报文;
- NVE1接收报文并解封装,在本地转发;NVE1学习到服务器B的MAC地址。
- NVE1和NVE2都学习到了服务器A和B的MAC地址;后续查找MAC则命中;单播流程,和VLAN一样的;
- 唯一不同的是外层封装了隧道;underlay是IP转发。
3.2 VXLAN跨子网转发
注:NVE5作为三层网关,Host A属于VNI 1,Host E属于VNI 2;默认主机与网关都学习到了ARP表,各个节点MAC都已学习。
- NVE1查找网关Mac转发表,封装隧道;使用VNI 1。
- 网关接封装报文(这里会解封装到内层的IP头部),根据内层IP头查路由,替换内层以太头,封装VXLAN头部,替换为VNI 2.
- NVE 6接收报文并解封装,内层报文根据目的MAC转发。
3.3 BUM报文转发过程
如图所示,当需要广播该流量时,VXLAN网关设备会在所有的VXLAN隧道中都发送一个广播报文,图中SW1向SW2和SW3分别发送了一个广播报文;报文格式为:外层封装的是VXLAN网关的MAC和IP,内层则是一个虚拟网络内部的广播报文。