VXLAN
文章:https://support.huawei.com/enterprise/zh/doc/EDOC1100218020/f95c6e68
# 一、为什么会有 VXLAN?
VXLAN(Virtual Extensible LAN,虚拟可扩展局域网)的出现是为了解决传统 VLAN 技术在现代云计算和数据中心环境中的局限性,主要包括以下问题:
VLAN ID 数量限制
- VLAN 的标识符范围为 1~4094,无法满足大规模云平台多租户隔离需求(如公有云可能需要数万甚至百万级租户)。
二层网络扩展性不足
- VLAN 基于二层网络(数据链路层),广播域受限于物理网络规模,跨三层网络(如跨数据中心)时无法直接扩展。
租户网络隔离与灵活性
- 传统 VLAN 难以支持复杂的多租户网络叠加(Overlay)需求,例如跨物理网络构建逻辑隔离的虚拟网络。
虚拟机迁移限制
- 虚拟机(VM)迁移时需保持 IP 和网络配置不变,但传统 VLAN 无法跨三层网络实现无缝迁移。
# 二、VXLAN 是什么?
VXLAN 是一种网络虚拟化技术,通过 隧道封装(Tunneling) 在现有三层网络(如 IP 网络)上构建虚拟的二层网络,核心特点包括:
- 大范围标识:使用 24 位的 VXLAN 网络标识符(VNI),支持 1600 万(2^24)个逻辑网络。
- 跨三层扩展:基于 UDP 封装,突破物理二层网络限制,实现跨数据中心、跨广域网的虚拟网络。
- 多租户隔离:不同 VNI 的流量完全隔离,适用于云计算多租户场景。
类比:
- VLAN 是“物理局域网内的虚拟分房间”,而 VXLAN 是“用快递箱(隧道)在全球物流网(IP 网络)中运输整个房间的物品”。
# 三、VXLAN 与 VLAN 的区别
特性 | VLAN | VXLAN |
---|---|---|
标识符范围 | 12 位(1~4094) | 24 位(16,777,216 个 VNI) |
工作层级 | 数据链路层(Layer 2) | 基于 UDP 的三层网络(Layer 3) |
扩展性 | 受限于物理网络规模 | 支持跨数据中心、广域网扩展 |
广播域控制 | 同一 VLAN 内广播 | 通过组播或单播复制实现广播 |
应用场景 | 传统企业内网 | 云计算、虚拟化、多租户数据中心 |
封装方式 | 802.1Q 标签(4 字节) | VXLAN 头部 + UDP 封装(50 字节) |
设备依赖 | 二层交换机 | VTEP(VXLAN Tunnel Endpoint) |
# 四、VXLAN 的原理
# 1. 核心组件
VTEP(VXLAN Tunnel Endpoint)
- 负责封装和解封装 VXLAN 流量的设备(如物理交换机、虚拟交换机或服务器网卡)。
- 每个 VTEP 至少有一个 IP 地址,用于在底层 IP 网络中通信。
VNI(VXLAN Network Identifier)
- 24 位标识符,用于区分不同的虚拟网络(类似 VLAN ID)。
# 2. 数据封装流程
原始帧处理
- 当虚拟机发送以太网帧时,源 VTEP 根据目标 MAC 地址判断是否需要跨 VXLAN 传输。
VXLAN 封装
- 外层 UDP 头:源端口随机生成,目的端口固定为 4789(IANA 标准)。
- 外层 IP 头:源 IP 为本地 VTEP IP,目的 IP 为远端 VTEP IP。
- VXLAN 头部:包含 24 位 VNI,标志位等。
传输与解封装
- 封装后的报文通过底层 IP 网络传输到目标 VTEP。
- 目标 VTEP 剥离外层头部,根据 VNI 将原始帧转发到对应虚拟机。
# 3. 控制平面
MAC 地址学习:
- 传统方式依赖数据平面的泛洪学习,可能通过 组播(Multicast) 实现。
- 现代方案使用 集中式控制平面(如 SDN 控制器) 或 BGP EVPN 分发 VTEP 和 MAC 地址信息。
ARP 优化:
- 通过 ARP 代理 或 分布式网关 减少广播流量。
# 4. 典型组网场景
- 同数据中心互通:
- 同一 VNI 的虚拟机通过 VTEP 通信,流量在 IP 网络内隧道传输。
- 跨数据中心互通:
- 不同数据中心的 VTEP 建立隧道,实现虚拟机跨广域网迁移。
# 五、VXLAN 的优缺点
# 优点
- 大规模扩展:支持超大规模多租户网络。
- 灵活组网:摆脱物理网络拓扑限制,实现逻辑网络任意编排。
- 兼容现有网络:基于 IP 网络构建,无需改造底层设施。
# 缺点
- 封装开销:每个帧增加约 50 字节头部,可能影响小包传输性能。
- 配置复杂度:依赖 VTEP 和集中式控制平面(如 SDN 控制器)。
# 六、VXLAN 的应用场景
- 云计算多租户网络
- 公有云中为每个租户分配独立的 VNI,实现网络隔离。
- 容器网络
- 为 Kubernetes 集群中的每个 Pod 提供跨主机的二层连通性。
- 虚拟机动态迁移
- 保持虚拟机 IP 不变,跨数据中心迁移业务。
- 混合云组网
- 通过 VXLAN 隧道连接公有云与私有云资源。
# 总结
VXLAN 通过 逻辑网络叠加(Overlay) 和 大规模虚拟化 解决了传统 VLAN 的扩展性难题,成为现代云计算和数据中心网络的核心技术。其核心价值在于:
- 突破物理限制:用 IP 网络承载虚拟二层网络。
- 支持超大规模多租户:24 位 VNI 满足海量隔离需求。
- 无缝集成 SDN:与软件定义网络结合,实现灵活策略控制。
# 一、VXLAN 与 VPC 的关系
VXLAN(虚拟可扩展局域网)和 VPC(虚拟私有云)是现代云计算和网络虚拟化中的关键技术,二者在功能和应用场景上存在协同关系:
# 1. VXLAN 作为 VPC 的底层技术
- VPC 的网络隔离需求:
VPC 需要为每个租户提供逻辑隔离的私有网络环境,而 VXLAN 的大规模虚拟网络能力(支持 1600 万 VNI) 天然适合实现多租户隔离。 - 跨区域扩展:
VPC 需要跨可用区(AZ)或跨数据中心互联,VXLAN 的 三层 Overlay 网络特性 能够通过 IP 网络实现跨地域的二层网络扩展,支撑 VPC 的弹性架构。 - 示例:
公有云(如 AWS、阿里云)可能使用 VXLAN 技术构建 VPC 的底层网络,通过 VNI 区分不同租户的流量,同时利用 VTEP 实现跨物理服务器的虚拟网络通信。
# 2. VPC 作为 VXLAN 的应用场景
- VPC 的虚拟网络架构:
VPC 中的子网、路由表、安全组等功能需要底层网络支持灵活的逻辑划分和流量控制,VXLAN 的 逻辑网络叠加(Overlay) 和 集中式控制平面(如 SDN)可高效实现这些需求。 - 混合云与多租户:
VPC 通过 VXLAN 隧道与本地数据中心或其他云平台互联,形成混合云架构;同时,不同租户的 VPC 通过不同 VNI 实现隔离。
# 3. 总结关系
- VXLAN 是网络虚拟化技术,解决二层网络扩展和隔离问题。
- VPC 是云计算服务,提供完整的网络管理能力(IP 分配、路由、安全等)。
- VXLAN 支撑 VPC 的实现:
云服务商通过 VXLAN 构建 VPC 的底层虚拟网络,而 VPC 向用户提供简化的网络配置界面。
# 二、VXLAN 的互通情况与原理
# 1. VXLAN 的互通场景
场景 | 描述 |
---|---|
同一 VNI 内互通 | 同一 VXLAN 网络(相同 VNI)的终端可直接二层通信,流量通过 VTEP 隧道传输。 |
不同 VNI 间互通 | 需通过 三层网关 实现跨 VNI 的路由,类似不同子网间的通信。 |
VXLAN 与 VLAN 互通 | 通过 VXLAN 网关 将 VXLAN 流量转换为传统 VLAN 流量,实现混合组网。 |
跨数据中心互通 | 不同数据中心的 VTEP 建立隧道,通过广域网传输 VXLAN 封装流量。 |
# 2. VXLAN 的互通原理
同一 VNI 内的互通
- 流程:
- 虚拟机 VM1(VNI 100)发送数据帧到 VM2(VNI 100)。
- 源 VTEP 封装原始帧为 VXLAN 报文(外层目的 IP 为 VM2 所在 VTEP 的 IP)。
- 底层 IP 网络将报文传输到目标 VTEP。
- 目标 VTEP 解封装,根据 VNI 将原始帧转发给 VM2。
- 关键点:
- VTEP 需要学习目标 MAC 地址与远端 VTEP IP 的映射关系(通过控制平面如 BGP EVPN)。
- 流程:
不同 VNI 间的互通
- 流程:
- VM1(VNI 100)发送数据到 VM3(VNI 200)。
- 流量被路由到 VXLAN 三层网关(如分布式网关或集中式网关)。
- 网关剥离 VXLAN 封装,根据目标 IP 路由到目标 VNI 对应的 VTEP。
- 目标 VTEP 重新封装报文并转发给 VM3。
- 关键点:
- 需配置网关接口的 IP 地址作为不同 VNI 的默认路由。
- 流程:
VXLAN 与 VLAN 互通
- 流程:
- VXLAN 网关接收 VXLAN 封装流量(VNI 100)。
- 网关解封装并转换为传统 VLAN 10 的 802.1Q 帧。
- 通过物理交换机将流量转发至 VLAN 10 的终端。
- 流程:
# 三、VXLAN 互通的实现方案
# 方案 1:基于 BGP EVPN 的控制平面
- 原理:
使用 BGP EVPN(Ethernet VPN) 协议分发 VTEP 的 IP 地址、MAC 地址和 VNI 信息,实现自动化的地址学习和路由。 - 优势:
- 避免传统泛洪学习带来的广播风暴。
- 支持跨数据中心的大规模 VXLAN 网络。
- 配置示例:
// VTEP 配置(以 Cisco Nexus 为例) feature bgp feature nv overlay vtep 192.168.1.1 router bgp 65001 neighbor 192.168.2.1 remote-as 65001 address-family l2vpn evpn send-community extended
1
2
3
4
5
6
7
8
# 方案 2:集中式 SDN 控制器
- 原理:
通过 SDN 控制器(如 VMware NSX、OpenStack Neutron)集中管理 VTEP 和 VNI 信息,动态下发流表。 - 优势:
- 灵活的策略控制(如安全组、QoS)。
- 简化网络运维,适合云原生环境。
# 方案 3:分布式网关(Anycast Gateway)
- 原理:
在多个 VTEP 上配置相同的网关 IP 地址(Anycast IP),实现流量的本地化路由和负载均衡。 - 优势:
- 减少跨设备流量,提升性能。
- 支持虚拟机迁移时网关 IP 不变。
# 方案 4:VXLAN 与传统 VLAN 互通
- 原理:
部署 VXLAN 网关设备(如华为 CE 系列交换机),配置 VLAN 与 VNI 的映射关系。 - 配置示例:
// VXLAN 网关配置(华为) bridge-domain 10 vlan 10 vxlan vni 100 interface Vbdif10 ip address 192.168.10.1 255.255.255.0
1
2
3
4
5
6
# 四、VXLAN 互通的关键技术总结
技术 | 作用 | 适用场景 |
---|---|---|
BGP EVPN | 自动化分发 VTEP 和 MAC 信息 | 大规模跨数据中心 VXLAN |
SDN 控制器 | 集中管理 VXLAN 网络策略 | 云平台、容器网络 |
分布式网关 | 本地化路由,减少跨设备流量 | 高可用性和低延迟需求 |
VXLAN-VLAN 网关 | 实现 VXLAN 与传统网络的互通 | 混合云或老旧系统集成 |
# 五、VXLAN 与 VPC 协同的典型架构
- 公有云 VPC 架构
- 每个租户的 VPC 分配独立 VNI,底层通过 VXLAN 实现流量隔离。
- VPC 的子网对应不同 VXLAN 网段,通过分布式网关实现跨子网路由。
- 混合云网络
- 本地数据中心通过 VXLAN 网关与云上 VPC 互联,形成统一的 Overlay 网络。
- 容器网络
- Kubernetes 集群中,每个 Pod 接入 VXLAN 网络,VPC 提供安全组和负载均衡能力。
# 总结
- VXLAN 与 VPC 的关系:VXLAN 是 VPC 实现多租户隔离和跨区域组网的底层技术,而 VPC 向用户抽象了复杂的网络配置。
- VXLAN 互通的核心:依赖控制平面(BGP EVPN/SDN)实现地址学习,通过三层网关或分布式架构解决跨 VNI 通信。
- 实际应用:在云计算、容器网络和混合云中,VXLAN 与 VPC 共同构建了灵活、可扩展的虚拟化网络基础设施。
上次更新: 2025/05/13, 13:10:35