A brief introduction to VXLAN

本文深入探讨了VXLAN技术的核心原理,包括其在数据中心中的应用场景、封装方式、通信模型以及面临的一些关键问题。重点阐述了VXLAN如何提供更好的网络可扩展性,并详细介绍了VM间通信的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A brief introduction to VXLAN

VXLAN从IETF草案上的声明——“This document describes Virtual extensible Local Area Network(VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants. The scheme and the related protocols can be used in cloud service provider and enterprise data center networks.”——可以看出,它所主要是用来满足数据中心中对网络overlay的需求。因此VXLAN所要解决的问题,来自数据中心中应用STP和VLAN带来的限制问题(STP对与端口和网络链路的浪费和VLAN的数量限制)以及对于多用户组环境的需要和ToR交换机上的流表数量不足的问题(估计VM的数量很大的情况下才会有次问题)。

VXLAN使用MAC in UDP的方法进行封装,并在中间添加了一层VXLAN Header。VLXAN的封装结构如下图所示,

VXLAN Format

        VXLAN Header:
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |R|R|R|R|I|R|R|R|            Reserved                           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                VXLAN Network Identifier (VNI) |   Reserved    |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1. VXLAN Header:
    共计8个字节,目前被使用的是Flags中的一个标识位和24bit的VXLAN Network Identifier,其余的部分没有定义,但是在使用的时候必须设置为0x0000。
2. 外层的UDP报头:
    目的端口使用4789,但是可以根据需要进行修改。 同时UDP的校验和必须设置成全0
3. IP报文头:
    目的IP地址可以是单播地址,也可以是多播地址。
    单播情况下,目的IP地址是VXLAN Tunnel End Point(VTEP)的IP地址。
    在多播情况下引入VXLAN管理层,利用VNI和IP多播组的映射来确定VTEPs。
从封装的结构上来看,VXLAN提供了将二层网络overlay在三层网络上的能力,VXLAN Header中的VNI有24个bit,数量远远大于4096,并且UDP的封装可以穿越三层网络,因此比的VLAN更好的可扩展性。
VM之间的通信模型
transition
单播(VM <—> VETP <——-> VETP <—> VM)
  1. VTEP首先会去检查发送报文的VM所对应的VNI,
  2. 查看报文的MAC地址是不是和某个已知的VTEP存在对应关系
    2.1. 如果存在,则在报文外部添加VXLAN所需要的外层报文,
    2.2. 如果不存在,则会去多播这个报文,这里需要引入VXLAN的VNI和IP多播组的管理层概念
  3. VTEP接收到VXLAN报文之后,会通过类似网桥自学习的方式建立VTEP和内层MAC的映射。
多播或者广播
  1. 在支持多播的情况下,VTEP可以通过IGMP来加入或者离开VXLAN多播组
  2. 可以通过PIM-SM或者PIM-bidir来建立多播树
  3. 在不支持多播的情况下,VTEP需要通过广播的方式封装,不过可以预见的是网络的性能会显著下降
  这里存在一个问题:在外层网络支持多播的情况下,VXLAN中的VNI数量可能大于多播地址。
一些需要关注的问题:
  1. 需要改变外层网络的MTU,因为对内层网络的添加了外层的报文头,因此需要增加MTU的值。
  2. 外层网络的组播支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值