VXLAN
RFC定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network
,虚拟扩展局域网)。VXLAN采用MAC in UDP
封装方式,是NVO3(Network Virtualization over Layer 3
)中的一种网络虚拟化技术。
VXLAN早已被广泛应用于数据中心网络。随着园区网络的业务需求越来越灵活、园区网络虚拟化的需求及网络自动化的需求越来越强烈,VXLAN开始进入园区网络,搭配园区SDN控制器实现更多用户价值。
1. 网络虚拟化技术背景
虚拟化技术具有降低IT成本、提高业务部署灵活性和降低运维成本等优势。越来越多的企业选择在数据中心或园区IT设施使用云计算或虚拟化技术。
在企业选择虚拟化架构后,业务将以虚拟机方式部署于服务器集群中。
网络需求:二层扩展
虚拟化/云计算集群内允许虚拟机任意迁移,导致相同业务(相同网段)虚拟机可能运行在不同的服务器,或同一个虚拟机(一个IP)先后运行在不同的服务器(物理位置)。
物理服务器可能分布在地理位置跨度非常大的机房,因此需要使用三层进行互联。
网络需求:多租户隔离
云化场景一般支持多租户,即不同用户共享物理资源。这对网络提出两个需求,租户间隔离和租户内互访。
- 租户间隔离:租户可能配置相同的MAC和IP地址,需要考虑物理网络承载隔离的问题,并且存在海量的用户需要进行隔离。
- 租户内互访:租户内相同网段能够直接进行二层通信,即便处于不同物理位置的机房中。
传统网络的问题
- 虚拟机规模受设备表项规格限制
服务器虚拟化后,VM的数量比原有的物理机发生了巨大的增长,而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。
- 网络隔离能力限制
VLAN Tag只有12 bit。对于大型虚拟化云计算服务的场景而言,租户数目远大于VLAN可用个数。传统二层网络中的VLAN无法满足网络动态调整的需求。
- 虚拟机迁移范围受限
虚拟机迁移必须发生在一个二层网络中。传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
2. VXLAN的基本概念
VXLAN在本质上是一种VPN技术,能够在任意路由可达的物理网络(Underlay网络)上叠加二层虚拟网络(Overlay网络),通过VXLAN网关之间的VXLAN隧道实现VXLAN网络内部的互通,同时,也可以实现与传统的非VXLAN网络的互通。
VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且三层网络无网络结构限制,具备大规模扩展能力。通过路由网络,虚拟机迁移不受网络架构限制。
VXLAN解决传统网络遇到的问题
- 虚拟机规模受网络规格限制
VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数。
除VXLAN网络边缘设备,网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力,提升了设备性能。
- 网络隔离能力限制
VXLAN引入了类似VLAN ID的用户标识(VNI),由24 bit组成,支持多达16 M的VXLAN段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。
- 虚拟机迁移范围受网络架构限制
对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络。
VXLAN在园区网中的应用
通过引入虚拟化技术,在园区网络中基于一张物理网络创建多张虚拟网络(Virtual Network,VN)。不同的虚拟网络应用于不同的业务,例如办公、视讯、安防等。
VXLAN的价值
技术选择 | Underlay网络 | Overlay网络 | 配置及管理 | 用户信息携带 | 组网要求 |
---|---|---|---|---|---|
VLAN | L2 | L2 | 命令行或基于控制器 | 无 | 设备广泛支持 |
MPLS VPN | L3 | L2/L3 | 运营商级别的技术要求 | 无 | 需端到端支持MPLS |
VXLAN | L2/L3 | L2/L3 | 命令行或基于控制器 | 可以 | 隧道端节点支持VXLAN即可 |
- VXLAN可构建在任意复杂的三层网络之上。
- 支持三层虚拟网络。
- 搭配SDN控制器实现集中部署及自动化,已有成功实践。
华为设备上VXLAN的报文格式
VXLAN的基本概念
1.NVE-Network Virtualization Edge
是实现网络虚拟化功能的网络实体,可以是硬件交换机也可以是软件交换机。
NVE在三层网络上构建二层虚拟网络,是运行VXLAN的设备。图中SW1和SW2都是NVE。
2.VTEP-VXLAN Tunnel Endpoints
VTEP是VXLAN隧道端点,位于NVE中,用于VXLAN报文的封装和解封装。
VXLAN报文(其外层IP头部)中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。
3.VNI(VXLAN Network Identifier) and BD(Bridge Domain)
VNI
- 类似VLAN ID,用于区分VXLAN段。不同VXLAN段的虚拟机不能直接二层相互通信。
- 一个租户可以有一个或多个VNI,VNI长度为24 bit,支持多达16 M的租户。
BD
- 类似传统网络中采用VLAN划分广播域,在VXLAN网络中一个BD就标识一个大二层广播域。
- VNI以1:1方式映射到广播域BD,同一个BD内的终端可以进行二层互通。
BD是华为独有的概念,只在本地有效,主要用来替换VLAN,是为了解决VLAN ID最大只能到4096的问题
4.VAP-Virtual Access Point
实现VXLAN的业务接入。
VAP有两种配置方式,二层子接口方式或者VLAN绑定方式:
- 二层子接口方式接入,例如在SW1创建二层子接口关联BD 10,则这个子接口下的特定流量会被注入到BD 10。
- VLAN绑定方式接入,例如在SW2配置VLAN 10与广播域BD 10关联,则所有VLAN10的流量会被注入到BD 10。
传统网络的流量进入VXLAN网络之后,通过二层子接口或者VLAN绑定的方式,与BD进行绑定,在BD中会指定VXLAN VNI,实现从传统的VLAN网络到VXLAN网络的映射。
5. Border and Edge
Edge:VXLAN网络的边缘接入设备,传统网络的流量由此进入VXLAN网络。
Border:VXLAN网络和外部网络通信的节点,用于外部流量进入VXLAN网络或VXLAN内部流量访问外部,一般连接具有三层转发能力的设备(如Router、Firewall)。
6. L2网关和L3网关
二层(L2)网关:实现流量进入VXLAN网络,也可用于同一VXLAN网络内终端的同子网通信。
三层(L3)网关:用于VXLAN网络内终端的跨子网通信以及终端对外部网络(非VXLAN网络)的访问。
7. VBDIF
类似于传统网络中采用VLANIF实现不同广播域互通,在VXLAN中引入了VBDIF的概念。
VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。
通过VBDIF接口可实现不同网段的用户通过VXLAN网络通信,及VXLAN网络和非VXLAN网络间的通信,也可实现二层网络接入三层网络。
8. 分布式与集中式网关
集中式网关
L3