「VXLAN」- 虚拟扩展局域网(Virtual Extensible LAN)

  CREATED BY JENKINSBOT

问题描述

虚拟化技术具有降低 IT 成本、提高业务部署灵活性和降低运维成本等优势。越来越多的企业选择在数据中心或园区 IT 设施使用云计算或虚拟化技术。在企业选择虚拟化架构后,业务将以虚拟机方式部署于服务器集群中;

虚拟化对网络的要求

二层扩展:虚拟化 / 云计算集群内允许虚拟机任意迁移,导致相同业务(相同网段)虚拟机可能运行在不同的服务器,或同个虚拟机(一个 IP)先后运行在不同的服务器(物理位置)。物理服务器可能分布在地理位置跨度非常大的机房,因此需要使用三层进行互联。服务器虚拟化后,业务被封装在虚拟机中。虚拟机允许在集群内任意主机中热迁移。热迁移的特性之一是网络状态不改变,这要求在不同的物理位置中虚拟机的 IP 地址保持不变,为此需要大二层网络解决此问题;

多租户相隔离:云化场景一般支持多租户,即不同用户共享物理资源。这对网络提出两个需求,租户间隔离和租户内互访。租户间隔离,即租户可能配置相同的 MAC 和 IP 地址,需要考虑物理网络承载隔离的问题,并且存在海量的用户需要进行隔离。租户内互访,即租户内相同网段能够直接进行二层通信,即便处于不同物理位置的机房中;

传统网络面临的问题

虚拟机规模受设备表项规格限制:服务器虚拟化后,VM 的数量比原有的物理机发生巨大的增长,而接入侧二层设备的 MAC 地址表规格较小,无法满足快速增长的 VM 数量;

网络隔离能力限制:VLAN Tag 仅 12bit;对于大型虚拟化云计算服务的场景而言,租户数目远大于 VLAN 可用个数;传统二层网络的 VLAN 无法满足网络动态调整的需求;

虚拟机迁移范围受限:虚拟机迁移必须发生在同个二层网络中;传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内;

解决方案

RFC 定义 VLAN 扩展方案 VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网);

VXLAN 解决传统网络遇到的问题:

虚拟机规模受网络规格限制
1)VXLAN 将虚拟机发出的数据包封装在 UDP 中,并使用物理网络的 IP、MAC 地址作为外层头进行封装,对网络只表现为封装后的参数;
2)除 VXLAN 网络边缘设备,网络中的其他设备不需要识别虚拟机的 MAC 地址,减轻设备的 MAC-ADDR 学习压力,提升设备性能;

网络隔离能力限制
1)VXLAN 引入类似 VLAN ID 的用户标识(VNI),由 24bit 组成,支持多达 16M 的 VXLAN 段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户;

虚拟机迁移范围受网络架构限制
1)对于具有同个网段 IP 地址的 VM 而言,即使其物理位置不在同个二层网络中。但从逻辑上看,相当于处于同个二层域。即 VXLAN 技术在三层网络之上,构建出一个虚拟的大二层网络

原理简述

VXLAN 通过采用 MAC in UDP 封装方式,来延伸二层网络,将 Ethernet Frame 封装在 IP Packet 内,
然后,通过路由在网络中传输,底层网络无需关注虚拟机的 MAC 地址;

特性特征

是 NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术;
VXLAN 在本质上属于是种 VPN 技术,能够在任意路由可达的物理网络(Underlay Network)上叠加二层虚拟网络(Overlay Network);
通过 VXLAN Gateway 间的 VXLAN Tunnel 实现 VXLAN Network 内部的互通,同时亦能实现与传统的非 VXLAN 网络的互通;
且其所利用的三层网络无网络结构限制,具备大规模扩展能力。通过路由网络,数据中心虚拟机迁移不受网络架构限制;

应用场景

数据中心

VXLAN 早已被广泛应用于数据中心网络,数据中心的业务均由 VXLAN 承载。在数据中心中,采用 Spine-Leaf 两层物理架构,结合 VXLAN 应用。Spine 节点执行路由转发,转发时不感知 VXLAN,而 Leaf 节点负责资源接入,完成 VXLAN 封装及解封装;

注意,在 Leaf 间,其并非直连,其为 VXLAN 的终点;

园区网络

随着园区网络的业务需求越来越灵活、园区网络虚拟化的需求及网络自动化的需求越来越强烈,VXLAN 开始进入园区网络,搭配 园区 SDN 控制器 实现更多用户价值;

通过引入虚拟化技术,在园区网络中基于一张物理网络创建多张虚拟网络(VN,Virtual Network),不同的虚拟网络承载于不同的业务(例如办公、视讯、安防等等)使用 VXLAN 实现“一网多用”;

选择 VXLAN 实现园区网络虚拟化的原因:
1)VXLAN 可构建在任意复杂的三层网络之上
2)支持三层虚拟网络
3)搭配 SDN 控制器实现集中部署及自动化,已有成功实践;

注意,VXLAN 更多解决的是数据中心网络中的需求,在传统企业园区网络中使用 VXLAN 更多的是使用其构建虚拟网络,而不是解决所谓的某些急需解决的问题;