欢迎光临
我们一直在努力

VXLAN 学习笔记(上篇)

VXLAN 学习笔记(上篇)

一、为什么需要VXLAN?——从VLAN的局限性说起

1.1 VLAN的“天花板”

传统VLAN用12位的VLAN ID来标识网络,最多只能支持 4096个(实际可用4094个)隔离的网络。在传统企业网里这够用,但到了云计算时代——

  • 一个公有云可能有成千上万个租户,每个租户需要独立的网络

  • 虚拟机需要在不改变IP地址的情况下跨物理机甚至跨数据中心迁移

  • 4096个VLAN根本不够分

通俗理解:VLAN就像一栋只有4096个房间的大楼,云计算时代租户太多,房间不够用了。VXLAN就是把这栋楼拆掉,重新盖一栋有1600多万个房间的超大公寓。

1.2 VXLAN是什么?

VXLAN全称 Virtual eXtensible Local Area Network(虚拟扩展局域网)。

一句话概括:VXLAN是一种“隧道技术”——它在现有的三层IP网络(Underlay)之上,搭建出一个虚拟的二层网络(Overlay)。

打个比方:

  • Underlay网络 = 现实中的高速公路网(物理设备、光纤、交换机)

  • Overlay网络 = 在高速公路上跑的“虚拟隧道”,隧道里跑的车(数据包)根本不用关心外面走的是哪条路

  • VXLAN隧道 = 隧道本身,把数据从A点“打包”送到B点再“拆包”

租户只知道自己在一个二层网络里,完全感知不到底下复杂的物理网络。

1.3 VXLAN vs VLAN:一张图看懂

对比维度VLANVXLAN
标识符 12位 VLAN ID 24位 VNI(VXLAN Network Identifier)
最大数量 4096个 约1600万个(2²⁴)
技术层级 数据链路层(L2) Overlay网络(L2 over UDP)
跨三层网络 ❌ 不能跨三层 ✅ 可以在三层网络上跑二层
适用场景 传统企业网隔离 云计算、多租户数据中心

核心差异一句话:VLAN是“在一个楼层里隔房间”,VXLAN是“在不同楼之间拉隧道”。

二、VXLAN核心概念(必须掌握的术语)

2.1 租户(Tenant)

租户就是使用网络资源的人或组织——可以是不同的业务部门、不同的公司客户。

在VXLAN里,每个租户通过一个VNI来标识和隔离。不同租户的流量就像住在不同公寓楼里的人,各走各的门,互不干扰。

2.2 VNI(VXLAN Network Identifier)⭐ 重中之重

VNI是VXLAN里最重要的概念,没有之一。

  • 占 24位,取值范围 1 到 16777215

  • 作用类似于VLAN ID,用来区分不同的VXLAN段

  • 同一个VNI内的主机可以二层互通,不同VNI之间不能直接二层通信

记忆口诀:VNI = VXLAN的“门牌号”,24位足够给地球上一人发一个虚拟网络。

在分布式网关场景下,VNI还分为两种:

  • 二层VNI:映射到广播域BD,负责同子网转发

  • 三层VNI:关联VPN实例,负责跨子网转发

2.3 Underlay网络和Overlay网络

  • Underlay(底层网络) :物理网络——交换机、路由器、光纤、网线。负责把VXLAN封装后的报文从A点送到B点

  • Overlay(覆盖网络) :虚拟网络——建立在Underlay之上。租户只看到这个网络

通俗理解:Underlay是“公路”,Overlay是“公路上的隧道”。车在隧道里跑,不用管公路怎么拐弯。

2.4 NVE(Network Virtualization Edge)

NVE是实现网络虚拟化功能的实体,负责VXLAN报文的封装和解封装。

可以部署在:

  • 硬件模式:物理交换机上(性能高)

  • 软件模式:虚拟交换机vSwitch上(灵活)

  • 混合模式:两者结合

2.5 VTEP(VXLAN Tunnel Endpoint)⭐ 核心组件

VTEP是VXLAN隧道的起点和终点,位于NVE内部。

每个VTEP有一个物理网络的IP地址,VXLAN报文的源IP和目的IP就是两端的VTEP IP。

一对VTEP IP地址就对应一条VXLAN隧道。

通俗理解:VTEP就是隧道的“入口”和“出口”——数据从A点的VTEP进去,封装好,穿过Underlay网络,从B点的VTEP出来,拆封。

2.6 BD(Bridge Domain,广播域)

BD是VXLAN网络中的二层广播域。

VNI和BD是 1:1映射 的关系——一个VNI对应一个BD,一个BD就是一个广播域。

通俗理解:BD就是VXLAN里的“虚拟交换机”,同一个BD里的主机可以互相“喊话”(广播)。

2.7 VBDIF接口(Virtual Bridge Domain Interface)

基于BD创建的三层逻辑接口,可以配置IP地址。

作用:实现不同网段的VXLAN之间通信,以及VXLAN和非VXLAN网络的通信。

通俗理解:VBDIF就是VXLAN里的“虚拟路由器”,让不同子网能互相访问。

2.8 VAP(Virtual Access Point,虚拟接入点)

VXLAN的业务接入点,可以是二层子接口或VLAN。

作用:把用户的流量“接进”VXLAN网络。

2.9 VXLAN网关

VXLAN网关分为两种:

  • 二层网关:让终端接入VXLAN网络,同VNI内通信

  • 三层网关:跨子网通信、访问外部网络

三层网关又有两种部署方式(后面详细讲):

  • 集中式网关:一台设备管所有跨子网流量

  • 分布式网关:每台Leaf都是网关

三、VXLAN报文封装格式(数据包长什么样)

3.1 封装层次(从内到外)

VXLAN采用 MAC-in-UDP 的封装方式。

原始数据包从内到外依次被包了四层“衣服”:

第1层(最内层) :原始二层以太网帧

  • 包含源MAC、目的MAC、原始数据

第2层:VXLAN头部(8字节)

  • 最关键的是 24位的VNI

  • 还包含标志位、保留字段等

第3层:UDP头部(8字节)

  • 目的端口号固定为 4789(VXLAN标准端口)

  • 源端口号通常基于内层报文做哈希计算(用于负载均衡)

第4层(最外层) :IP头部(20字节)+ 外层以太网头部

  • 源IP = 源端VTEP的IP

  • 目的IP = 目的端VTEP的IP

3.2 封装开销

VXLAN封装总共增加约 50字节 的开销:

  • VXLAN头:8字节

  • UDP头:8字节

  • IP头:20字节

  • 外层以太网头:约14字节

重要提醒:由于多了50字节的封装,网络MTU必须调整!建议 MTU ≥ 1550,否则报文会被分片,导致性能下降甚至通信失败。

3.3 通俗理解报文封装

想象一下寄快递:

  • 原始数据 = 你要寄的物品

  • VXLAN头 = 快递单(写上VNI门牌号)

  • UDP头 = 快递公司的运单号

  • IP头 = 寄件地址和收件地址(VTEP IP)

  • 外层以太网头 = 快递包装盒

VTEP就是“快递收发站”——收件时打包,送件时拆包。

四、VXLAN通信过程(数据怎么走的)

4.1 同VNI内通信(二层通信)

场景:VM1(VNI 100)要和VM2(VNI 100)通信,两台VM挂在不同的VTEP下。

步骤:

  • VM1发出数据帧:目的MAC = VM2的MAC

  • 源VTEP收到:查询本地MAC表,找到VM2的MAC对应哪个远端VTEP

  • 封装:加上VXLAN头(VNI=100)→ UDP头(端口4789)→ IP头(源=本端VTEP IP,目的=远端VTEP IP)→ 外层以太网头

  • Underlay传输:封装后的报文在物理IP网络中路由转发

  • 目的VTEP收到:解封装 → 去掉外层头 → 检查VNI → 把原始帧发给VM2

  • 核心要点:对VM1和VM2来说,它们就像连在同一个交换机上,完全不知道中间经历了封装和解封装。

    4.2 跨VNI通信(三层通信)

    不同VNI之间不能直接二层通信,需要三层网关(VBDIF接口)。

    流程:

  • VM1发数据给网关MAC(VBDIF接口的MAC)

  • VTEP封装后发给三层网关所在的VTEP

  • 三层网关解封装 → 查路由表 → 重新封装(VNI换成目标VNI)→ 发给目标VTEP

  • 目标VTEP解封装 → 发给目标VM

  • 通俗理解:不同VNI就像不同小区,进出要过“门卫”(三层网关)。

    五、VXLAN的两种网关模式

    5.1 集中式网关

    特点:所有跨子网流量都集中到一台设备上处理。

    优点:

    • 管理简单,所有三层转发集中在一处

    缺点:

    • 转发路径不是最优(流量要绕到集中网关再回来)

    • ARP表项有瓶颈(所有终端的ARP都在这台设备上)

    • 单点故障风险

    适用场景:小型VXLAN网络,跨子网流量不大的情况。

    5.2 分布式网关 ⭐ 主流方案

    特点:在Spine-Leaf架构中,每台Leaf节点都是VTEP,同时也是三层网关。

    优点:

    • 流量路径最优(就近转发)

    • 无ARP瓶颈(ARP表分散在各Leaf上)

    • 高可用性好

    适用场景:大型数据中心、云计算环境(绝大多数生产环境)。

    5.3 控制平面的两种方式

    方式一:Flood & Learn(泛洪学习)

    • 早期实现方式,靠ARP广播来学习MAC地址

    • 缺点:广播流量大,有广播风暴风险

    方式二:BGP EVPN ⭐ 主流方案

    • 通过BGP协议在VTEP之间交换MAC/IP路由信息

    • 优点:主动学习、支持VM迁移、可扩展性强

    • 生产环境几乎都用这个

    赞(0)
    未经允许不得转载:171主机测评 » VXLAN 学习笔记(上篇)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址