概念
- 介绍
vxlan是一种基于三层封装的网络虚拟换技术,工作在数据平面,是一种将原始的二层以太网报文封装在UDP中,然后使用物理网络的ip和mac作为outer-header,在ip网络中转发二层数据的三层隧道封装技术。
- 目的
- 针对虚拟机规模受网络规格限制
VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求
2.针对网络隔离能力限制
VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识。
3.针对虚拟机迁移范围受网络架构限制
VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之 上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构 限制,具备大规模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟 机迁移不受网络架构限制。
- VTEP
全称为(vxlan tunnel end points)隧道端点,用来完成vxlan数据报文的封装和解封装,也就是设备之间通过VTEP建立vxlan隧道。
- NVE
network virtualiztion edge ,能够进行vxlan数据报文封装和解封装的实体物理设备或者软件都可称作NVE
- VNI
virtual network identify,类似于vlan ID,用来区别不同的vxlan网络,VNI不同的vxlan网络不能二层互通。在分布式网关场景下,一个BD只能关联一个二层vxlan vni,三层vni需要和vpn实例关联,实现vxlan跨网段互通。
- BD
bridge domain ,vxlan转发二层数据报文的广播域,是承载vxlan数据报文的实体。
- VBDIF
类似于vlan interface,是基于BD创建的三层接口,给vxlan网络提供三层网关,实现不同vxlan之间的路由,以及实现vxlan和非vxlan之间的通信和外部网络的通信。
- 网关
1.二层网关:
用于实现租户相同vxlan vni之间二层报文的互通;
2.三层网关:
用户实现不同vxlan网络之间的互通,以及和外部网络的互通;
封装
原始的以太网报文进入vxlan隧道后,首先被封装vxlan头部,vxlan头部使用24bit的vni来区分不同的网络,然后使用UDP 4789端口将数据包封装进传输层,在使用VTEP地址对数据包进行三层ip封装,最后封装本条链路的源末mac地址,完成数据包的封装。
报文封装格式:
报文封装解封装流程:
描述:
带有vlan tag的报文进入关联了vxlan BD的接口后,首先检查报文所带的vlan ID,如果vlan ID和接口配置匹配,则将vlan ID剥离后进行vxlan封装,封装完成后再ip网络上传输,报文到达vxlan隧道VTEP后,VTEP将vxlan数据报文解封装,得到数据报文vxlan头部的vni,通过vni和BD的关联关系,找到报文发出接口,如果报文发出接口要求添加vlan tag,则在添加相应的vlan tag后将报文从接口发出。
图示:
说明:
报文从PC1发出后带有vlan tag10,VTEP收到带有vlan tag10的报文后将其vlan tag10剥离,然后封装vxlan头部后重新封装ip头部和以太网头部后在ip fabric网络中传输,数据报文到达VTEP2后,VTEP2将数据解包后得到vxlan vni5010,然后将vxlan数据包头剥离后发送到PC2的接入端口,同时打上vlan tag20的标签。
由此可见,PC在和VTEP之间的链路转发的是vlan tag封装的报文,在vxlan隧道中vlan tag报文将终止,转发的是vxlan数据报文,所以同一网段在不同VTEP的接入服务器可以是不同的vlan,或者是untag都没有问题。