FeelingLife FeelingLife
首页
  • Go

    • Go基础知识
  • Python

    • Python进阶
  • 操作系统
  • 计算机网络
  • MySQL
  • 学习笔记
  • 常用到的算法
  • Docker
  • Kubernetes
  • Observability
  • 容器底层
其他技术
  • 友情链接
  • 收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xuqil

一介帆夫
首页
  • Go

    • Go基础知识
  • Python

    • Python进阶
  • 操作系统
  • 计算机网络
  • MySQL
  • 学习笔记
  • 常用到的算法
  • Docker
  • Kubernetes
  • Observability
  • 容器底层
其他技术
  • 友情链接
  • 收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 应用层
  • 运输层
  • 抓包

  • 网络编程

  • 云网络

  • 虚拟网络

    • VLAN
    • VXLAN
      • VXLAN互通实验
    • 常见面试题
    • 《计算机网络知识》
    • 虚拟网络
    xuqil
    2025-05-13
    目录

    VXLAN

    文章:https://support.huawei.com/enterprise/zh/doc/EDOC1100218020/f95c6e68

    # 一、为什么会有 VXLAN?

    VXLAN(Virtual Extensible LAN,虚拟可扩展局域网)的出现是为了解决传统 VLAN 技术在现代云计算和数据中心环境中的局限性,主要包括以下问题:

    1. VLAN ID 数量限制

      • VLAN 的标识符范围为 1~4094,无法满足大规模云平台多租户隔离需求(如公有云可能需要数万甚至百万级租户)。
    2. 二层网络扩展性不足

      • VLAN 基于二层网络(数据链路层),广播域受限于物理网络规模,跨三层网络(如跨数据中心)时无法直接扩展。
    3. 租户网络隔离与灵活性

      • 传统 VLAN 难以支持复杂的多租户网络叠加(Overlay)需求,例如跨物理网络构建逻辑隔离的虚拟网络。
    4. 虚拟机迁移限制

      • 虚拟机(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. 数据封装流程

    1. 原始帧处理

      • 当虚拟机发送以太网帧时,源 VTEP 根据目标 MAC 地址判断是否需要跨 VXLAN 传输。
    2. VXLAN 封装

      • 外层 UDP 头:源端口随机生成,目的端口固定为 4789(IANA 标准)。
      • 外层 IP 头:源 IP 为本地 VTEP IP,目的 IP 为远端 VTEP IP。
      • VXLAN 头部:包含 24 位 VNI,标志位等。
      • img
    3. 传输与解封装

      • 封装后的报文通过底层 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 的应用场景

    1. 云计算多租户网络
      • 公有云中为每个租户分配独立的 VNI,实现网络隔离。
    2. 容器网络
      • 为 Kubernetes 集群中的每个 Pod 提供跨主机的二层连通性。
    3. 虚拟机动态迁移
      • 保持虚拟机 IP 不变,跨数据中心迁移业务。
    4. 混合云组网
      • 通过 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 内的互通

      • 流程:
        1. 虚拟机 VM1(VNI 100)发送数据帧到 VM2(VNI 100)。
        2. 源 VTEP 封装原始帧为 VXLAN 报文(外层目的 IP 为 VM2 所在 VTEP 的 IP)。
        3. 底层 IP 网络将报文传输到目标 VTEP。
        4. 目标 VTEP 解封装,根据 VNI 将原始帧转发给 VM2。
      • 关键点:
        • VTEP 需要学习目标 MAC 地址与远端 VTEP IP 的映射关系(通过控制平面如 BGP EVPN)。
    • 不同 VNI 间的互通

      • 流程:
        1. VM1(VNI 100)发送数据到 VM3(VNI 200)。
        2. 流量被路由到 VXLAN 三层网关(如分布式网关或集中式网关)。
        3. 网关剥离 VXLAN 封装,根据目标 IP 路由到目标 VNI 对应的 VTEP。
        4. 目标 VTEP 重新封装报文并转发给 VM3。
      • 关键点:
        • 需配置网关接口的 IP 地址作为不同 VNI 的默认路由。
    • VXLAN 与 VLAN 互通

      • 流程:
        1. VXLAN 网关接收 VXLAN 封装流量(VNI 100)。
        2. 网关解封装并转换为传统 VLAN 10 的 802.1Q 帧。
        3. 通过物理交换机将流量转发至 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 协同的典型架构

    1. 公有云 VPC 架构
      • 每个租户的 VPC 分配独立 VNI,底层通过 VXLAN 实现流量隔离。
      • VPC 的子网对应不同 VXLAN 网段,通过分布式网关实现跨子网路由。
    2. 混合云网络
      • 本地数据中心通过 VXLAN 网关与云上 VPC 互联,形成统一的 Overlay 网络。
    3. 容器网络
      • Kubernetes 集群中,每个 Pod 接入 VXLAN 网络,VPC 提供安全组和负载均衡能力。

    # 总结

    • VXLAN 与 VPC 的关系:VXLAN 是 VPC 实现多租户隔离和跨区域组网的底层技术,而 VPC 向用户抽象了复杂的网络配置。
    • VXLAN 互通的核心:依赖控制平面(BGP EVPN/SDN)实现地址学习,通过三层网关或分布式架构解决跨 VNI 通信。
    • 实际应用:在云计算、容器网络和混合云中,VXLAN 与 VPC 共同构建了灵活、可扩展的虚拟化网络基础设施。
    上次更新: 2025/05/13, 13:10:35
    VLAN
    VXLAN互通实验

    ← VLAN VXLAN互通实验→

    最近更新
    01
    VXLAN互通实验
    05-13
    02
    VLAN
    05-13
    03
    ip命令的使用
    11-02
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 FeelingLife | 粤ICP备2022093535号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式