RFC7348(Vxlan)vxlan基础介绍

注意:由于RFC7348只是对vxlan做简单定义,并没有详细部署方案,更详细的请参照各设备厂商官方手册。

背景介绍

服务器虚拟化对物理网络设施提出了更高的需求,一台物理机包含多台vm,每台vm都有自己的mac地址,这就要求交换机有非常大的mac地址表象来存储。传统网络中,不同租户vm需要依靠vlan来进行隔离,而目前vlan数目被限制在4096个。DC需要满足不同的租户,不同租户需要有独立的网络域,不同租户的mac地址、vlan、IP规划需要相互独立。此时还要求DC内存在一个大二层的环境,STP技术提供防环的同时也disable很多链路,即便最新方案中网工都倾向于使用三层技术来实现ecmp技术,但还是需要使用二层来支持vm间的通信。
以上场景提出一个overlay的需求,该overlay网络能够通过隧道技术承载不同vm间的通信。

Vxlan介绍

STP和vlan域的限制

目前二层网络使用IEEE 802.1D STP来避免环路的,STP是通过阻塞备份链路的形式来实现防环的,性价比比较低。STP的局限性也体现在在同一个rack内的机器不能配置相同的ip,这和vm间使用二层通信相互矛盾。二层中使用vlan来提供广播隔离,vlan id只有12bit字段,最多4096个广播域,这对于虚拟化来说远远不够。

多租户环境

云计算在多租户环境下提供一个按需弹性资源供给,对于公有云的环境来说,云计算提供商需要在相同的物理环境下给不同租户提供一个弹性的服务。在二层网络中,vlan可以用来隔离不同租户的流量,现实中一个租户也会使用多个vlan,这就是的vlan稀缺问题更加严峻。同样在跨pod场景下,租户需要不同pod间vm相互通信,开通关闭不同pod的vm,这就需要一个更加弹性的二层环境。三层网络中,需要用到其他技术来实现不同租户需要有独立的地址分配规则。

ToR资源限制

在虚拟化场景下,ToR需要包含所有租户的相应vm的mac地址,这就需要一个更大的tor mac资源。

VxLAN基本概念

简言之 vxlan就是在一个三层网络提供二层网络的方案。
vxlan封装格式和封装位置
RFC7348(Vxlan)vxlan基础介绍_第1张图片
VNI(Vxlan Network Identifier),提供约16M(1千6百万)的Vxlan段。封装在vxlan头部,因此vxlan也可以叫做基于三层网络的二层隧道技术,无状态。隧道的端点称为VTEP(Vxlan Tunnel End Point),一般落在包含虚拟机的物理机的vSwitchr中,因此vm并不感知vxlan外层封装的字段,而VTEP同样可以封装在交换机或物理机上。

vm-to-vm vxlan通信举例

vm1想要和其他vm2同时时,vm1会想vm2发送请求给vm2,vtep查找vm1所属的vni,并且查看vm2和vm1是否在同一个网段,如果是,则根据原始报文产生外层头部进行vxlan封装,然后被转发到目的vm所在的vtep,远端vtep收到后会检查vni的有效性,查看内部携带的目的mac地址是否在本vtep下的vm中,如果有则进行解封装操作,然后发给指定的vm。除了丢给目的vm外,远端vtep也会记录下内部的源mac地址和源IP地址的对应,以便回包时无需再进行泛洪。

Vxlan帧格式

Vxlan 头部格式
RFC7348(Vxlan)vxlan基础介绍_第2张图片
Flags,共8比特,且低4bit必须设置I,其余置R。
VNI,共24比特,不同vni之间的vm不能直接通信。


外部UDP头部
RFC7348(Vxlan)vxlan基础介绍_第3张图片
源端口:通过内部字段来hash计算得出,范围:49152-65535,主要用来ecmp计算时比避免hash极化。
目的端口:固定4789
UDP校验和:vxlan建议不使用。


外部IP头
RFC7348(Vxlan)vxlan基础介绍_第4张图片


外部二层头部
RFC7348(Vxlan)vxlan基础介绍_第5张图片
ipv6格式参照rfc原文,这里不做介绍

Vxlan部署场景介绍

vxlan典型部署场景,DC内vm可能部署在不同的ToR,这些不同的ToR的业务IP在不同的网段内,可能存在跨DC,所属同一租户vm间通信的场景。
典型拓扑如下:
RFC7348(Vxlan)vxlan基础介绍_第6张图片
这里设定vtep部署在物理机上,也存在vxlan和非vxlan网络间的通信,这里就需要部署vxlan网关。
RFC7348(Vxlan)vxlan基础介绍_第7张图片
vxlan网关从vxlan接口收到vxlan包后,会解封装,然后从物理接口丢出去,同时内层vlan需要被剥离,反方向收到包,会根据数据包携带的vlan去查找所在的vxlan域,同样在封装前会剥离vlan标记。

微信:
RFC7348(Vxlan)vxlan基础介绍_第8张图片

你可能感兴趣的:(RFC7348(Vxlan)vxlan基础介绍)