用于解决数据中心内部和数据之间互联互通问题,同时支持多租户的数据中心设计
使用场景:
- 大型的数据中心内部,由于跨越多个核心交换后,要使用二层技术实现互通,数据中心内部的L3 switch和router运行的路由协议,是为了DC内的公网或私网IP能有路由
- 公网IP通常是分配给客户的网段,用于让客户能通过ssl VPN, ipsec VPN等方式访问自己在DC内部的设备
- 私网IP分为两种
- DC内部管理网段,登录设备
- DC属于私有云或公有云架构,体现在DC内的租户,都有自己的独立私网IP段,保证每个租户完全隔离
- 客户要求在DC内,能够跨越三层网络,让二层网络之间互访
- DC管理员可以为客户提供纯L2的接入,中间用trunk打通。
传统的网络无法满足于规模大、灵活性要求高的云数据中心的要求,于是便有了 overlay 网络的概念。overlay 网络中被广泛应用的就是 vxlan 技术。
挑战:
虚拟机迁移范围收到网络架构限制
STP 防止网络风暴,在二层网络里选择一个根(root bridge),其它交换机当作树的树杈,每个树杈自然有一个根末梢(root port),这个就是交换机的上游接口,除了根末梢,其它的接口都是下游接口,至于下游接口是畅通的、还是阻断的,取决于到根的路径成本cost,谁更接近根,谁就畅通(Forwarding) ,即常说的Designated Port; 谁远离根,谁就需要被阻断(Blocked), 即常说的 Non Designated Port。
虚拟机规模受网络设备表项规格的限制
- 网络隔离/分离能力限制(12比特,4096个vlan的划分不足)
VxLAN

VxLAN网络中出现了新元素
- VTEP(VxLAN隧道端点) : VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN报文的相关处理均在这上面进行。总之,它是VXLAN网络中绝对的主角。VTEP既可以是独立的网络设备(比如华为的CE系列交换机),也可以是虚拟机所在的服务器。
- VNI (VXLAN网络标识符):以太网数据帧中VLAN只占了12比特的空间,这使得VLAN的隔离能力在数据中心网络中力不从心。而VNI的出现,就是专门解决这个问题的。VNI是一种类似于VLAN ID的用户标示,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VXLAN报文封装时,给VNI分配了足够的空间使其可以支持海量租户的隔离。
- VxLAN隧道:
隧道是一个逻辑上的概念,它并不新鲜,比如大家熟悉的GRE。说白了就是将原始报文“变身”下,加以“包装”,好让它可以在承载网络(比如IP网络)上传输。从主机的角度看,就好像原始报文的起点和终点之间,有一条直通的链路一样。而这个看起来直通的链路,就是隧道。顾名思义,“VXLAN隧道”便是用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。解决问题
- 虚拟机迁移范围受网络架构限
在IP网络中, “明”里传输的是跨越三层网络的UDP报文,“暗”里却已经悄悄将源VM的原始报文送达目的VM。就好像在三层的网络之上,构建出了一个虚拟的二层网络,而且只要IP网络路由可达,这个虚拟的二层网络想做多大就做多大。
- 虚拟机规模受网络设备表项规格限制
VTEP会将VM发出的原始报文封装成一个新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,对网络中的其他设备只表现为封装后的参数。也就是说,网络中的其他设备看不到VM发送的原始报文。
如果服务器作为VTEP,那从服务器发送到接入设备的报文便是经过封装后的报文,这样,接入设备就不需要学习VM的MAC地址了,它只需要根据外层封装的报文头负责基本的三层转发就可以了。因此,虚拟机规模就不会受网络设备表项规格的限制了。
- 解决网络隔离/分离能力限制
一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VTEP在对报文进行VXLAN封装时,给VNI分配了24比特的空间,这就意味着VXLAN网络理论上支持多达16M(即:2^24-1)的租户隔离。相比VLAN,VNI的隔离能力得到了巨大的提升,有效得解决了云计算中海量租户隔离的问题。

