VXLAN简介
定义:
RFC7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network
Virtualization over Layer 3)中的一种网络虚拟化技术。
起源:
随着网络技术的发展,云计算凭借其在系统利用率高、人力/管理成本低、灵活性/可扩展性强等方面表现出的优势,已经成为目前企业IT建设的新趋势。而服务器虚拟化作为云计算的核心技术之一,得到了越来越多的应用。
服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机VM(Virtual
Machine)需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。
虚拟机规模受网络设备表项规格的限制
在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发。服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,伴随而来的便是VM网卡MAC地址数量的空前增加。而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。
网络隔离能力有限
VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。
虚拟机迁移范围受限
由于服务器资源等问题(如CPU过高,内存不够等),虚拟机迁移已经成为了一个常态性业务。
虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
针对虚拟机规模受设备表项规格限制
VXLAN将管理员规划的同一区域内的VM发出的原始报文封装成新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
针对网络隔离能力限制
VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,有效得解决了云计算中海量租户隔离的问题。
针对虚拟机迁移范围受限
VXLAN将VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。
传统数据中心网络所面临的挑战
数据中心的基本概念及特点:
- 数据中心(Data Center)是一套完整、复杂的集合系统,它不仅包括计算机系统和其它与之配套的设备(例如通信和存储系统),还包含数据通信系统、环境控制设备、监控设备以及各种安全装置。
- 数据中心通常是指在一个物理空间内实现信息集中处理、存储、传输、交换、管理的场所。
- 服务器、网络设备、存储设备等通常都是数据中心的关键设备。
- 设备运行所需要的环境因素,如供电系统、制冷系统、机柜系统、消防系统、监控系统等通常都被认为是关键物理基础设施。
- 互联网数据中心(Internet Data Center,IDC)是互联网中数据存储和处理的中心,是互联网中数据交互最为集中的地方。
- 数据中心的四大焦点:可靠、灵活、绿色、高效。
传统数据中心网络结构:
- 传统网络模型在很长一段时间内,支撑了各种类型的数据中心。
- 按照功能模块划分,传统数据中心可分为核心区、外网服务器区、内网服务器区、互联网服务器区、数据中心管理区、数据交换&测试服务器区、数据存储功能区、数据容灾功能区等。
- 在服务器区,再根据不同的应用类型划分不同的层次,例如,数据库层、应用服务器层、WEB服务器层等。
- 传统数据中心的网络结构是按照经典的三层架构(接入、汇聚、核心)进行部署的。
计算节点低延迟需求:
- 流量 需要经过多层交换机转发。
- 大量虚拟你相互访问需求。
- 东西向流量延迟较大。
- 同一物理服务器部署大量虚拟机,造成流量并发量大增。
- 数据流量模型也从传统的南北向流量转变为东西向流量。
- 网络中存在大量多对一、多对多的东西向流量。
- 对接入层和汇聚层设备的处理能力提出了更高的要求。
虚拟化应用大量应用:
###虚拟化应用大量部署:
- 传统的数据中心内,服务器主要用于对外提供服务,不同业务区域之间可通过划分为不同的安全分区或VLAN进行隔离。
- 一个分区通常集中了该业务所需的计算、网络及存储资源,不同的分区之间或者禁止互访,或者经由三层网络进行互访,数据中心的网络流量大部分集中于南北向。在这种设计下,不同分区间计算资源无法共享,资源利用率低下的问题越来越突出。
- 通过虚拟化技术、云计算管理技术等,将各个分区间的资源进行池化,实现数据中心资源的有效利用。
- 随着这些新技术的兴起和应用,新的业务需求如虚拟机迁移、数据同步、数据备份、协同计算等在数据中心内开始实现部署,数据中心内部东西向流量开始大幅度增加。
- 虚拟机动态迁移技术在实际应用中很常见,比如需要对一台服务器进行升级和维护时,可以通过VM迁移技术将这台服务器上的VM先迁移到另一台服务器上,其间所提供的服务不中断,然后等服务器升级和维护结束后再将VM迁移回来即可。
- 虚拟机动态迁移技术还可以充分利用计算资源,比如某公司的网购平台在某段时间内在某片区域提供促销活动,其间业务量大大增加,这样可以将其他业务量小的区域内的VM动态迁移过来,这样不会中断其他区域服务的情况下,集中利用资源,活动结束后再将VM调整回原先的区域。
传统三层架构下虚拟机动态迁移带来的问题:
- 虚拟机动态迁移,就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理服务器移动到另一个物理服务器的过程。
- 该过程对于最终用户来说是无感知的,从而使得管理员能够在不影响用户正常使用的情况下,灵活调配服务器资源,或者对物理服务器进行维修和升级。
- 一旦服务器跨二层网络迁移,就需要变更IP地址,那么原来这台服务器所承载的业务就会中断,而且牵一发动全身,其他相关的服务器也要变更相应的配置,影响巨
大。
当前的一些解决方案:拓扑简化思想
- 为了打破这种跨三层网络限制,实现虚拟机的大范围甚至跨地域的动态迁移,就要求把VM迁移可能涉及的所有服务器都纳入到同一个二层网络中,这样才能实现VM大范围的无障碍迁移。
- 在汇聚核心层部署CSS,在接入层部署istack,可实现简化拓扑结构的目的。
- 设备无需使能STP等二层环路保护机制,更有效地提高了链路资源利用率。
- 但设备性能问题并没有得到根本解决。
- 该解决方案比较适于在一个数据中心内部进行VM迁移操作。
该解决方案存在的问题:
- MAC地址数量陡增,接入设备压力较大。
- 多租户隔离环境中设备VLAN资源紧张。
- 二层网络范围过大,影响网络通信效率。
- 传统解决方案适用于DC内部大二层互联应用。
- STP或CSS+iStack传统二层技术不适合构建大规模二层网络。
- 通过VXLAN可以构建大二层网络,链路带宽利用率高。
多数据中心大二层互联-VXLAN:
- 早期的虚拟机管理及迁移依附于物理网络,因此数据中心内部东西向流量主要是二层流量。
- 为扩大二层物理网络的规模,提高链路利用率,出现了TRILL、SPB等大二层网络技术。
- 随着虚拟化数据中心规模的不断扩大,以及云化管理的不断深入,物理网络的种种限制越来越不能满足虚拟化的要求,由此提出了VXLAN、NVGRE等Overlay技术。
- 在Overlay方案中,物理网络的东西向流量类型逐渐由二层向三层转变,通过增加封装,将网络拓扑由物理二层变为逻辑二层,同时提供了逻辑二层的划分管理,更好地满足了多租户的需求。
- VXLAN、NVGRE等Overlay技术都是通过将MAC封装在IP之上,实现对物理网络的屏蔽,解决了物理网络VLAN数量限制、接入交换机MAC表资源有限等问题,同时通过提供统一的逻辑网络管理工具,更方便地实现了虚拟机在进行迁移时网络策略跟随的问题,大大降低了虚拟化对网络的依赖,成为了目前网络虚拟化的主要发展方向。
网络和业务维护自动化需求:
业务快速创新、自动发放需求.
云数据中心的网络解决方案:
- VXLAN技术主要解决多租户环境下的二层互联问题。
- VXLAN通过隧道技术在不改变三层网络拓扑的前提下构建跨数据中心的逻辑二层网络拓扑。
- VXLAN技术有效解决了vlan数量的限制问题。
- VXLAN技术对二层网络做了优化不会造成广播风暴等问题。
- SDN技术主要是简化网络的部署、运维、调整等。
VXLAN基本原理
VXLAN部署的典型网络架构:
- VXLAN/NVGRE/STT是三种典型的NVO3技术。
- 是通过MAC In IP技术在IP网络之上构建逻辑二层网络。
- 同一租户的VM彼此可以二层通信、跨三层物理网络进行迁移。
- 相比传统L2 VPN等Overlay技术,NVO3的CE侧是虚拟或物理主机,而不是网络站点。
- 此外主机具有可移动性。
- 目前,一般是IT厂商主导,通过服务器的Hypervisor来构建Overlay网络。
VXLAN组网逻辑架构:
VXLAN(Virtual eXtensible Local Area Network,RFC7348)是IETF NVO3(Network Virtualization over Layer 3)定义的NVO3标准技术之一,采用MAC in UDP封装方式,将二层报文用三层协议进行封装,可对二层网络在三层范围进行扩展,同时支持24bits的VNI ID(16M租户能力),满足数据中心大二层VM迁移和多租户的需求。
在VXLAN NVO3网络模型中,部署在VXLAN网络边缘的设备称为VXLAN NVE(Network Virtualization Edge,网络虚拟边缘),主要负责VLAN网络与VXLAN网络间的封装和解封装。经过NVE封装转换后,NVE间就可基于L3基础网络建立Overlay二
层虚拟化网络。
VXLAN技术特点:
- 位置无关性:业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题。
- 可扩展性:在传统网络架构上规划新的Overlay网络,部署方便,同时避免了大二层的广播风暴问题,可扩展性极强。
- 部署简单:由高可靠SDN Controller完成控制面的配置和管理,避免了大规模的分布式部署,同时集中部署模式可加速网络和安全基础架构的配置,提高可扩展性。
- 适合云业务:可实现千万级别的租户间隔离,有力地支持了云业务的大规模部署。
- 技术优势:VXLAN利用了现有通用的UDP进行传输,成熟性极高。
VXLAN网关:
NVE:目前有软件NVE(一般安装在服务器上;例如OVS)和硬件NVE(一般集成在交换机上,例如CE6850)。由于软件NVE是在原设备中安装一个软件包,硬件NVE是在原设备中增加一个硬件模块,而原设备多数是VLAN的二层设备,所以,NVE又是VXLAN的二层网关,主要实现VXLAN与VLAN、MAC等的二层映射。
VXLAN网关:
- 与VXLAN NVE类似,是地位更高一些的另一个VXLAN角色,即VXLAN三层网关,简称VXLAN GW,主要实现VXLAN报文头与IP报文头的映射。
- 不管二层VXLAN网关还是三层VXLAN网关,都是主要实现了VXLAN网络和非VXLAN网络之间的连接。
- NVE是服务器虚拟化层的一个功能模块,虚拟机通过虚拟化软件直接建立VTEP隧道。
- NVE也可以是一台支持VXLAN的接入交换机集中为多租户提供VXLAN网关服务。
- VXLAN网关可以实现不同VXLAN下租户间通信,也能实现VXLAN用户与非VXLAN用户间通信,这和VLANIF接口的功能是类似的。
NVO3标准术语:
VN | 虚拟网络 |
---|---|
VNI | 虚拟网络实例(Virtual Network Instance),可以为L2或L3网络,一个租户可以对应一个或多个VNI。 |
VNID | 虚拟网络ID(Virtual Network Identifier),标识一个虚拟网络。 |
VNE | 虚拟网络边缘(Virtual Network Edge),可以位于物理网络边缘设备,也可以位于Hypervisor,可以是二层转发或三层转发。 |
VN Context | 该字段位于Overlay封装头部,用于Egress NVE设备确定VNI。 |
OVS | 运行在物理服务器内的虚拟化软件,为服务的VN提供共享计算资源、内存、存储,而且Hypervisor内经常内嵌Virtual Switch。 |
Tenant End System | 租户终端系统,可以是物理服务器也可以是VM。 |
业界其他技术实现-NVO3技术背景:
- VXLAN/NVGRE/STT是NVO3三种典型技术,总体是通过MAC In IP技术来构建Over在IP网络之上的二层网络,使同一个租户的VM彼此可以二层通信、跨三层物理网络进行迁移。相比传统L2 VPN等Overlay技术,NVO3的CE侧是虚拟或物理Host,而不是网络Site,另外Host具有移动性。目前,一般是IT厂商主导,通过服务器内Hypervisor来构建Overlay网络。
- NVGRE主要支持者是Microsoft。与VXLAN不同的是,NVGRE没有采用标准传输协议(TCP/IP),而是借助通用路由封装协议(GRE)。NVGRE使用GRE头部的低24bit位作为租户网络标识符。
- VXLAN(Virtual Extensible LAN)虚拟可扩展局域网,是一种Overlay的网络技术,使用MAC in UDP的方法进行封装。后文会详细介绍VXLAN技术。
- STT(Stateless Transport Tunneling)是一种MAC Over Ip的协议,和VXLAN、NVGRE类似,都是把二层的帧封装在一个Ip报文的payload中,在Ip报文的payload中,除了虚拟网络的二层包以外,还要把构造的一个TCP头和一个STT头加在最前面。
VXLAN报文封装:
- VXLAN是IETF定义的NVO3(Network Virtualization over Layer3)标准技术之一。
- 采用Mac in UDP封装方式将二层报文用三层协议进行封装。
- 支持24bits的VNI iD,满足数据中心大二层VM迁移和多租户需求。
VXLAN header(VXLAN头封装):
- VXLAN Flags:标记位,8比特,取值为00001000。
- VNI:VXLAN网络标识,用于区分VXLAN段,由24比特组成,支持多达16M的租户。一个租户可以有一个或多个VNI,不同VNI的租户之间不能直接进行二层相互通信。
- Reserved:保留未用,分别由24比特和8比特组成,设置为0。
Outer UDP header(外层UDP头封装):
- DestPort:目的UDP端口号,设置为4789。
- Source Port:源UDP端口号,根据内层以太报文头通过哈希算法计算后的值。
Outer IP header(外层IP头封装):
- IP SA:源IP地址,VXLAN隧道源端VTEP的IP地址。
- IP DA:目的IP地址,VXLAN隧道目的端VTEP的IP地址。
Outer Ethernet header(外层Ethernet头封装):
- MAC DA:目的MAC地址,为到达目的VTEP的路径上,下一跳设备的MAC地址。
- MAC SA:源MAC地址,发送报文的源端VTEP的MAC地址。
- 802.1Q Tag:可选字段,该字段为报文中携带的VLAN Tag。
- Ethernet Type:以太报文类型,IP协议报文中该字段取值为0x0800。
VXLAN数据封装过程:
VXLAN通信流程:
- vSwitch为虚拟机工具Hypervisor层中集成的虚拟交换机。
- VTEP是在虚拟机所属服务器的Hypervisor中的vSwitch间进行建立的。
- 控制器为可选组件。
- VTEP—Virtual Tunnel End Point 虚拟隧道端点,即VXLAN隧道的入口和出口。在这里VM流量经过vSwtich交换后会导入到VXLAN隧道里,入口是VTEP。
- VNI— Virtual Network Instance 虚拟网络实例,一个VNI就是一个虚拟网络,一个VNI用一个VNI ID标识。例子里VM1和VM2在同一个虚拟网络里,VNI ID为1。
- VM1地址为IP1,VM3地址为IP3,IP1与IP3为同一子网。
- ARP协议交互过程:
- VM1先发送ARP报文,请求VM3的MAC地址。
- ARP报文通过OpenFlow报文封装发给AC,AC上使能ARP代理。
- AC通过IP3找到MAC3,响应ARP报文,SIP为IP3,SMAC为MAC3。
- vSwtich将ARP响应报文发给VM1。
报文转发过程:
- VM1发送数据报文,SIP为IP1,DIP为IP3,SMAC为MAC1,DMAC为MAC3。
- VXLAN封装,内层SIP为IP1,DIP为IP3,外层SIP为VTEP1 IP,外层DIP为VTEP2 IP。
- 解封装VXLAN头部,发往VM3。
VXLAN基本配置
基于SDN的VXLAN基本组网:
接口配置:
协议配置:
1.配置控制器和转发器建立OpenFlow通信通道:
1 | //SNC上配置: |
2.配置业务接入点实现区分业务流量:
1 | //在控制器上配置FP1 |
3.配置VXLAN隧道转发业务流量:
1 | //在控制器上配置FP1 |
VXLAN组网应用(UNICA、联通公有云、上海电影公有云):
业务呈现层:
面向运营商、企业、租户、RSP的Portal。
提供业务灵活定制化界面。
协同层:
标准、开放的OpenStack架构,并兼容多厂商。
实现存储、计算和网络资源的协同。
网络控制层:
网络控制平台由NetMatrix和SNC组成,完成网络建模和网络实例化。
北向支持开放API接口,实现业务快速定制和自动发放。
南向支持OpenFlow/Netconf等接口,实现统一管理和控制物理和虚拟网络。
基础网络层:
物理网络和虚拟网络统一规划和设计的Overlay网络。
基于硬件的VXLAN网关提高业务性能。
支持对传统VLAN网络的兼容。
参考资料:华为HedEx文档