江中散人

V1

2022/11/20阅读:13主题:默认主题

【重识云原生】第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计

 《重识云原生系列》专题索引: 

  1. 第一章——不谋全局不足以谋一域
  2. 第二章计算第1节——计算虚拟化技术总述
  3. 第三章云存储第1节——分布式云存储总述
  4. 第四章云网络第一节——云网络技术发展简述
  5. 第四章云网络4.2节——相关基础知识准备
  6. 第四章云网络4.3节——重要网络协议
  7. 第四章云网络4.3.1节——路由技术简述
  8. 第四章云网络4.3.2节——VLAN技术
  9. 第四章云网络4.3.3节——RIP协议
  10. 第四章云网络4.3.4节——OSPF协议
  11. 第四章云网络4.3.5节——EIGRP协议
  12. 第四章云网络4.3.6节——IS-IS协议
  13. 第四章云网络4.3.7节——BGP协议
  14. 第四章云网络4.3.7.2节——BGP协议概述
  15. 第四章云网络4.3.7.3节——BGP协议实现原理
  16. 第四章云网络4.3.7.4节——高级特性
  17. 第四章云网络4.3.7.5节——实操
  18. 第四章云网络4.3.7.6节——MP-BGP协议
  19. 第四章云网络4.3.8节——策略路由
  20. 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
  21. 第四章云网络4.3.10节——VXLAN技术
  22. 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
  23. 第四章云网络4.3.10.3节——VXLAN隧道机制
  24. 第四章云网络4.3.10.4节——VXLAN报文转发过程
  25. 第四章云网络4.3.10.5节——VXlan组网架构
  26. 第四章云网络4.3.10.6节——VXLAN应用部署方案
  27. 第四章云网络4.4节——Spine-Leaf网络架构
  28. 第四章云网络4.5节——大二层网络
  29. 第四章云网络4.6节——Underlay 和 Overlay概念
  30. 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
  31. 第四章云网络4.7.2节——virtio网络半虚拟化简介
  32. 第四章云网络4.7.3节——Vhost-net方案
  33. 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
  34. 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
  35. 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
  36. 第四章云网络4.7.8节——SR-IOV方案
  37. 第四章云网络4.7.9节——NFV
  38. 第四章云网络4.8.1节——SDN总述
  39. 第四章云网络4.8.2.1节——OpenFlow概述
  40. 第四章云网络4.8.2.2节——OpenFlow协议详解
  41. 第四章云网络4.8.2.3节——OpenFlow运行机制
  42. 第四章云网络4.8.3.1节——Open vSwitch简介
  43. 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
  44. 第四章云网络4.8.4节——OpenStack与SDN的集成
  45. 第四章云网络4.8.5节——OpenDayLight
  46. 第四章云网络4.8.6节——Dragonflow

2 VXLAN Overlay网络设计

2.1 Overlay网络方案

        VXLAN 本质上是一种重叠封装技术,它创建了一个覆盖在现有物理网络基础架构之上的虚拟网络。使用underlay IP网络,并在其上构建灵活的二层overlay逻辑网络。通过覆盖,任何第 2 层连接都可以跨越第 3 层网络。

使用覆盖网络有很多优点。

  • 最明显的是它的分割。
  • 覆盖和底层网络是完全独立的,因此如果底层网络拓扑发生变化,覆盖网络不会受到影响(设计方面)。
  • 无需添加、移除或更新网络设备,即可重新设计覆盖网络。

        当然,影响底层性能或正常运行时间的物理问题将反映在覆盖层上。例如,如果没有足够的设备来提供足够的带宽,覆盖也会受到影响。

2.2 叶脊(Underlay)+ VxLAN(Overlay)

        Overlay VxLAN如何避免受到underlay变化的影响?答案是:使用交换结构,称为 Spine-and-Leaf。

        在允许底层更改的同时保证 VxLAN 覆盖的性能、可扩展性、可靠性和灵活性的最佳方法是充分利用交换结构拓扑。交换结构拓扑的最佳示例是 Spine-and-Leaf,它通常用作底层网络。Spine-and-Leaf 是一个独立的架构,它不是 VxLAN 独有的,但通常与 VxLAN 相关联。通常叶脊是 VxLAN 的底层,VxLAN 是覆盖。

Spine-and-Leaf 两层:

  • Spine:Spine层交换机仅用于通过 Leaf 交换机传递流量,他们不知道 VxLAN。
  • Leaf:交换机的叶层互连主干和端点,叶层交换机创建 VxLAN 隧道、封装并将 VLAN 映射到 VNI,执行 VxLAN 功能的叶子交换机称为 VTPE(VxLAN 隧道端点);

        所有的叶子交换机都有一个链接到每个骨干交换机,枝叶和交换机之间的每条链路都通过 IGP 路由协议(例如 BGP 或 OSPF)通过 IP 地址进行路由。这种拓扑使每个目的地只有两跳的距离。Leaf-and-switch 也可以使用 ECMP(等价多路径)在主干交换机或链路发生故障时恢复或平衡流量负载。叶脊结构拓扑与 VxLAN 高度相关,因为随着覆盖网络的扩展,支持底层可以物理增长或减小大小,而不会影响覆盖的设计。在叶脊底层之上添加 VxLAN 可实现东西向流量模式的 IP 移动性、完全可扩展性和容错性。

        随着您的网络扩展,您的设计不需要改变。您只需要向底层添加更多交换机、IP 地址和链接即可。

2.3 VXLAN协议封装

2.3.1 VXLAN协议格式简述

        到目前为止,我们知道 VxLAN 将第 2 层子网延伸到第 3 层网络限制,它在像 Spine-and-Leaf 这样的交换结构之上构建了一个逻辑覆盖网络。

        为了实现这一点,VxLAN 将第 2 层以太网帧封装在 VxLAN 数据包中,该数据包也封装在 IP UDP 标头中。下图显示了 VxLAN 数据包格式。

VXLAN 将以下字段添加到原始第 2 层帧:

  • 部 MAC 报头:这是包含下一跳传输信息的报头,它包括 VxLAN 端点的目标和源 MAC 地址、VLAN ID(16 位)和类型,外层 MAC 头的大小为 14 字节。
  • P 标头:此标头允许跨 IP 网络传输,它包括 VxLAN 端点的目标和源 IP 地址,外层 IP 报头的大小为 20 字节。
  • UDP 标头:此标头将数据包标识为 VxLAN,它包含 UDP 源端口、VxLAN 端口和 UDP 长度,UDP 报头的大小为 8 个字节。
  • LAN 标头,此标头也称为 VxLAN 网络标识符 (VNI)。VNID 用于标识 VxLAN 网段,它类似于 MAC 报头上的 VLAN ID 标记(16 位),但大小为 24 位,最多允许 1600 万个不同的段。

2.3.2 VXLAN报文格式详述

  1. VXLAN是IETF定义的NVO3(Network Virtualization over Layer3)标准技术之一。
  2. 采用Mac in UDP封装方式将二层报文用三层协议进行封装。
  3. 支持24bits的VNI ID,满足数据中心大二层VM迁移和多租户需求。

VXLAN header(VXLAN头封装):

  • VXLAN Flags:标记位,8比特,取值为00001000。
  • VNI:VXLAN网络标识,用于区分VXLAN段,由24比特组成,支持多达16M的租户。一个租户可以有一个或多个VNI,不同VNI的租户之间不能直接进行二层相互通信。
  • Reserved:保留未用,分别由24比特和8比特组成,设置为0。

Outer UDP header(外层UDP头封装):

  • DestPort:目的UDP端口号,设置为4789。
  • Source Port:源UDP端口号,根据内层以太报文头通过哈希算法计算后的值。

Outer IP header(外层IP头封装):

  • IP SA:源IP地址,VXLAN隧道源端VTEP的IP地址。
  • IP DA:目的IP地址,VXLAN隧道目的端VTEP的IP地址。

Outer Ethernet header(外层Ethernet头封装,Outer MAC Header):

  • MAC DA:目的MAC地址,为到达目的VTEP的路径上,下一跳设备的MAC地址。
  • MAC SA:源MAC地址,发送报文的源端VTEP的MAC地址。
  • 802.1Q Tag:可选字段,该字段为报文中携带的VLAN Tag。
  • Ethernet Type:以太报文类型,IP协议报文中该字段取值为0x0800。

2.3.3 VXLAN报文封装过程        

        VXLAN首部由8个字节组成,第1个字节为标志位,其中标志位I设为1表示是一个合法的VXLAN首部,其余标志则保留,在传输过程中必须置为0;第2-4字节为保留部分,第5-7字节为VXLAN标识符,用来表示唯一的一个逻辑网络;第8个字节同样为保留字段,暂未使用。

        VXLAN传输过程中,将逻辑链路网络的数据帧添加VXLAN首部后,依次添加UDP首部,IP首部,以太网帧首部后,在物理网络中传输,数据帧的封装格式可以用下图来描述:

图:VXLAN数据封装过程

参考链接

解读VXLAN_佳的技术博客_51CTO博客

什么是 VxLAN ?它的优点有哪些? - 知乎

深度:什么是VxLAN?

关于VLAN和VXLAN的理解_octopusflying的博客-CSDN博客_vlan vxlan

VXlan 技术实现原理_轻飘风扬的博客-CSDN博客_vxlan原理

最好的vxlan介绍

VXLAN:云时代的虚拟化数据中心网络

分类:

后端

标签:

云计算

作者介绍

江中散人
V1