大家都在用VLAN,为什么我选择VxLAN?

中午好,我的网工朋友。

VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)可以说是目前最热门的网络虚拟化技术

自2014年引入以来,VXLAN已逐渐成为现代数据中心网络架构的重要组成部分。

而同样作为网络虚拟化技术之一的VLAN(Virtual Local Network,虚拟局域网)早在1998年就已经提出,可以说是网络虚拟化技术的“骨灰级元老”,长期以来得到了广泛的应用。

VLAN /VXLAN到底是什么、有什么区别、为什么有了VLAN还需要VXLAN、二者究竟在什么场景使用?

今天咱就一起来说道说道,这篇的图解很有意思,欢迎阅读、转发、推荐,轻松易懂。

今日文章阅读福利:《 图解网络系列全套书籍(电子版)》

私信我,发送暗号“图解”,即可获得网工行业经典读物《图解HTTP》《图解TCP/IP》《图解网络硬件》三件套。

01 VLAN

01 VLAN的原理

交换机是一个 L2 设备,插在同一个交换机的网络设备组成了一个 L2 网络,L2 网络之间通过 MAC 地址通信,同时这个 L2 网络也是一个广播域。

同属于一个广播域的两个设备想要通信,一设备须得向网络中的所有设备发送请求信息,只有对应MAC地址的设备才是真正的接收方。

实际上却是数据帧传遍整个网络,所有设备都会收到,且直接丢弃。

| 早期以太网,来源:iximiuz.com

如此一来,将造成一系列不好的后果:网络整体带宽被占用、潜在的信息安全风险、占用CPU资源……

因此,VLAN应运而生!

| L2 Ethernet Frame,来源:iximiuz.com

VLAN 是一项把 L2 网络再做分区隔离的技术。

VLAN直接在Ethernet Frame的头部加上4个字节的VLAN ID用来标识不同的二层网络,处理起来也比较简单。

在读取Ethernet数据的时候,只需要根据EtherType相应的偏移4个字节就行。

从技术上讲,VLAN 是一种用“数字”(也就是VLAN ID)标记单个 L2 网段Ethernet Frame的机制。

简单来说就像是一个交换机被拆成了多个虚拟交换机,原本的一个广播域也分成了多个。

举例来看,下图的交换机在接口上设置了两个 VLAN,ID 分别是 1 和 2,两个同时也分割出了两个广播域。

因为这种分割是虚拟的不是物理的,所以叫做 Virtual LAN

| 单个网桥上的两个虚拟 LAN,来源:iximiuz.com

连接到特定单个 VLAN 的计算机和服务器只能看到属于同一 VLAN 的帧。不同ID的帧在逻辑上属于不同的网络。

| VLAN 网络基础设施,来源:codilime

02 VLAN的好处

VLAN的原理我们大概已经了解了,总结一下,VLAN究竟能够解决什么问题

1、限制广播域。

广播域被限制在一个局域网内,节省了带宽,提高了网络处理能力。

2、增强局域网的安全性。

不同局域网内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需要通过路由器或三层交换机等三层设备。

3、灵活构建虚拟工作组。

用局域网可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

03 VLAN的缺点

VLAN也并非没有缺点。

1、随着虚拟化技术的发展,一台物理服务器往往承载了多台虚拟机,公有云或其它大型虚拟化云数据中心动辄需容纳上万甚至更多租户,VLAN技术最多支持4000多个VLAN,逐渐无法满足需求。

2、公有云提供商的业务要求将实体网络租借给多个不同的用户,这些用户对于网络的要求有所不同,而不同用户租借的网络有很大的可能会出现IP地址、MAC地址的重叠。

传统的VLAN并没有涉及这个问题,因此需要一种新的技术来保证在多个租户网络中存在地址重叠的情况下依旧能有效通信的技术。

3、虚拟化技术使得单台主机可以虚拟化出多台虚拟机同时运行,而每台虚拟机都会有其唯一的MAC地址。

这样,为了保证集群中所有虚机可以正常通信,交换机必须保存每台虚机的MAC地址,这样就导致了交换机中的MAC表异常庞大,从而影响交换机的转发性能。

02 VXLAN

01 VXLAN是什么?

VXLAN另一种网络虚拟化技术,有点类似于 VLAN,但功能更强大

在传统的VLAN网络中,共享同一底层 L2 网段的 VLAN 不能超过 4096 个

只有 12 比特用于对Ethernet Frame格式中的 VLAN ID 字段进行编码。

VXLAN协议定义了8个字节的VXLAN Header,引入了类似VLAN ID的网络标识,称为VNI(VXLAN Network ID)。

VNI由24比特组成,这样总共是1600多万个,从而满足了大规模不同租户之间的标识、隔离需求。

VXLAN 是基于 L3 网络构建的虚拟 L2 网络,是一种Overlay网络。

VXLAN 不关心底层物理网络拓扑,它将Ethernet Frame封装在 UDP 包中,只要它能承载 UDP 数据包,就可以在远端网段之间提供以太网L2连接。

| VXLAN 网络包结构,来源:iximiuz.com

每个 VXLAN 节点上的出站L2 Ethernet Frame都会被捕获,然后封装成 UDP 数据包,并通过 L3 网络发送到目标 VXLAN 节点。

当 L2 Ethernet Frame 到达 VXLAN 节点时,就从 UDP 数据包中提取(解封装),并注入目标设备的网络接口。

这种技术称为隧道

因此,VXLAN 节点会创建一个虚拟 L2 网段,从而创建一个 L2 广播域。

| VXLAN 网络,来源:iximiuz.com

因为VXLAN通过UDP传输Ethernet Frame,那相应的可以在一个L3网络上传递L2的数据。

又或者说是在一个L3网络上构建了L2网络。

物理网络的二层边界还存在,但是现在虚机的网络数据可以跨越物理二层网络的限制,在三层网络传输。

下面看一下VXLAN报文

| VXLAN报文格式(以外层IP头为IPv4格式为例),来源:华为

如上图所示,VTEP对VM发送的原始以太帧(Original L2 Frame)进行了以下“包装”

  • VXLAN Header:
    增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。
    此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。
  • UDP Header:
    VXLAN头和原始以太帧一起作为UDP的数据。
    UDP头中,目的端口号(VXLAN Port)固定为4789,源端口号(UDP Src. Port)是原始以太帧通过哈希算法计算后的值。
  • Outer IP Header:
    封装外层IP头。
    其中,源IP地址(Outer Src. IP)为源VM所属VTEP的IP地址,目的IP地址(Outer Dst. IP)为目的VM所属VTEP的IP地址。
  • Outer MAC Header:
    封装外层以太头。
    其中,源MAC地址(Src. MAC Addr.)为源VM所属VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)为到达目的VTEP的路径中下一跳设备的MAC地址。

02 VXLAN的好处

同样的,我们再来总结一下VXLAN解决了哪些问题:

  • VXLAN支持大量租户:
    支持多达1600万个相互隔离的二层网络,解决传统二层网络VLAN资源不足问题。
  • VXLAN网络易于维护:
    基于IP网络构建大二层网络,将原始二层数据帧封装成VXLAN报文在IP网络中透传,充分利用现有IP网络技术,部署和维护更容易。@ 网 络 工 程 师 俱 乐 部
  • VXLAN网络保证虚拟机动态迁移:
    采用“MAC in UDP”的封装方式,保证虚拟机迁移前后的IP和MAC不变。

03 VLAN和VXLAN的区别?

下表展示了VLAN和VXLAN的一些区别

| VLAN vs. VXLAN

VLAN 和 VXLAN 之间存在不少差异。但是一个就真的比另一个更好吗?

尽管前文谈到了VXLAN的种种优点,但在可以预见的未来,VXLAN还是不能完全替代VLAN

VXLAN最多是在构建数据中心时的一个选项,而不是唯一的选项。

首先VXLAN是一种Overlay网络,不能独立存在,必须依赖Underlay网络,而在构建Underlay网络时,还是需要借助VLAN

其次,VXLAN的优势主要体现在大规模环境下,如果数据中心的规模只有百十台,那直接用VLAN就可以了,没必要上VXLAN。

此外,支持VXLAN的网络设备虽然也很常见,但通常要贵得多

另外,正确配置 VXLAN 隧道需要大量人工配置使用复杂的自动配置工具

一种常见的方法是使用 BGP EVPN,但这对底层网络设备必须支持的协议的要求也增加了。

所以VXLAN就一定比VLAN更好吗?

这没有一个标准的答案,而是取决于我们试图解决的问题。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

<think> 嗯,用户这次想要一个关于VXLAN概念的白话解释。从对话历史看,用户之前可能接触过一些网络虚拟化的技术术语,但显然对官方文档式的描述感到吃力。ta特意强调"用白话",说明需要摆脱技术文档的晦涩感。 用户提供的两个引用挺有意思。[^1]提到VXLAN在不同网段间的通信作用,[^2]则展示了Calico这种非覆盖网络的对比方案。不过用户明确表示这些引用仅供参考,核心诉求还是通俗化解释VXLAN。看来ta可能是个刚接触云网络的技术人员,或是备考认证的学习者。 我联想到一个快递系统的比喻应该能形象说明问题:传统VLAN就像老式邮局限定同城寄件(网段隔离),而VXLAN相当于现代物流公司,通过给包裹套新纸箱(封装)实现全国配送(跨三层通信)。这个类比可以自然带出封装、隧道、VTEP等关键概念。 需要特别注意避免三个技术陷阱:一是不能把VNI直接说成"新VLAN"(本质不同),二是隧道建立过程要简化为"设备自动协商通道",三是区分underlay/overlay时用"物理公路"和"虚拟物流网"的比喻会更易懂。 用户没提具体应用场景,但补充容器网络的应用实例很重要。可以举个K8s跨主机pod通信的例子,正好呼应ta引用的Calico对比。最后用"大二层"这种工程师常用黑话收尾,既保持通俗又不失专业性。 对了,那个快递单号4170万的细节(实际VXLAN ID范围)虽然有趣,但初次解释反而会造成干扰,果断舍弃。 </think> 好的,咱们用最直白的“人话”来解释 VXLAN 这个概念,就像聊天一样: **想象一下快递系统:** 1. **你要寄东西(数据):** 假设你是在一个巨大的数据中心或云环境里工作,一台虚拟机(VM)或者一个容器(比如 Pod)想把数据(包裹)发送给另一台不在同一个物理服务器上的虚拟机/容器(收件人)。 2. **地址不够用了(VLAN 限制):** 传统的网络划分方法(叫 VLAN)就像老式的邮政编码系统,它能划分的区域(网段)数量非常有限(最多大约 4000 个)。在现代大型数据中心,动辄几万甚至几十万台虚拟机或者容器,这点“邮政编码”根本不够分!很多设备需要被分到同一个大区域里,但物理网络又要求它们不能全挤在一起。 3. **物理网络是“公路”(Underlay 网络):** 数据中心里连接所有服务器、路由器、交换机的物理网络,就像现实世界的高速公路网。它负责把包裹从起点物理设备运到终点物理设备。这个网络只认物理设备的真实 IP 地址(就像卡车只认仓库的地址)。 4. **VXLAN 是“快递公司”(Overlay 网络):** VXLAN 就是一家聪明的快递公司,它建立在已有的“公路网”(物理网络)之上,专门解决虚拟机/容器的“包裹”投递问题,特别是当它们数量庞大且分散在不同地方时。 5. **关键步骤 - “打包”和“贴新单”(封装):** * 当虚拟机 A 想发给虚拟机 B 一个数据包(包裹): * 虚拟化环境中的一种专门设备(叫 VTEP),它就安装在虚拟机 A 所在的物理服务器上,相当于快递公司的本地网点。 * **VTEP 拿到包裹:** 虚拟机 A 发出的原始数据包,里面有 A 自己的 IP(发件人地址)和 B 的 IP(收件人地址)。 * **VTEP “打包”:** VTEP 把这个原始数据包整个当作 **“内件”**,放进一个新的、更大的“快递包装箱”里。这个过程叫 **封装**。 * **VTEP “贴新单”:** 在这个新包装箱外面: * **新发件人地址:** 写上 **VTEP A 自己**的物理网络 IP 地址(本地快递网点地址)。 * **新收件人地址:** 写上 **目标虚拟机 B 所在物理服务器上的 VTEP B** 的物理网络 IP 地址(目的地快递网点地址)。 * **最重要的“快递单号”(VNI):** 贴上一个大大的、独特的 **VXLAN Network Identifier** 。这个号码超级大(最多约 1600 万个!),远远解决了传统 VLAN 号码不够用的问题。它标识了这个包裹属于哪个 **“虚拟快递网络”**(即哪个租户或哪个逻辑大二层域)。即使物理网络里有成千上万个虚拟网络,靠这个 VNI 就能完美区分开。 6. **“公路运输”(在物理网络中传输):** 封装好的这个大包裹(VXLAN 数据包)就被扔到物理网络(公路)上传输了。物理网络的路由器、交换机只看最外面的“新快递单”(源/目的VTEP的物理IP地址),完全不在乎里面包裹的内容(原始数据包)和那个“虚拟快递单号”(VNI)。它们只负责把这个大包裹从物理服务器 A (VTEP A)运到物理服务器 B (VTEP B)。 7. **“目的地网点拆包”(解封装):** 包裹到达物理服务器 B 上的 VTEP B(目的地快递网点)。 * VTEP B 拆掉最外面的“快递包装箱”(去掉 VXLAN 包头)。 * 露出里面的原始数据包(发件人 A 的 IP -> 收件人 B 的 IP)。 * VTEP B 把这个原始数据包交给本地的虚拟机 B。 8. **效果:** * **虚拟机 A 和 B 感觉像在同一个局域网:** 它们互相通信完全不知道中间经过了复杂的封装、物理网络路由和解封装过程,感觉就像在同一个传统的二层网络里聊天一样。这就实现了 **“大二层”** 的扩展。 * **突破了物理限制:** 数量庞大的 VM/容器可以被灵活地划分到不同的逻辑网络(靠 VNI 区分),不受物理位置和传统 VLAN 数量限制。无论它们分散在哪个机架、哪个服务器上,只要物理网络 IP 能通,VTEP 之间就能建立隧道。 * **物理网络只当“公路”:** 物理网络设备完全不需要理解内部的虚拟机网络结构,大大简化了运维。它只管根据物理 IP 地址转发 VXLAN 这个大包裹就行。 **总结成一句话:** > **VXLAN 就是一个聪明的“快递包装术”。它通过在原始数据包外面再套一层“包装”,写上物理设备的地址和一个超大的虚拟网络号码(VNI),让数量庞大的虚拟机/容器感觉自己在同一个本地大网络里,从而轻松跨越复杂的物理三层网络进行通信,彻底突破了传统网络划分的限制。[^1]** **简单类比:** * **原始数据包:** 你要寄的信(里面写清张三寄给李四)。 * **VTEP:** 快递网点。 * **封装:** 网点把你的信塞进快递信封,信封上写“北京网点A寄 -> 上海网点B收,快递单号:9527”。 * **物理网络:** 航空、铁路、公路运输系统,只管把快递信封从北京运到上海。 * **VNI (9527):** 标识这批货属于“欢乐购公司内部邮件”。 * **解封装:** 上海网点B拆开快递信封,拿出你的信,交给李四。 **相关问题:** 1. **VXLAN 里的 VTEP 具体是什么设备?它一定需要硬件支持吗?** 2. **VXLAN 的“隧道”是如何建立起来的?需要手动配置吗?** 3. **除了解决 VLAN 数量限制,VXLAN 还有什么其他的优点?** 4. **VXLAN 有没有缺点?比如它对网络性能有什么影响?** 5. **像引用[2]中提到的 Calico 这种“纯三层”方案(不用覆盖网络VXLAN),它的工作原理和 VXLAN 有什么本质区别?各适合什么场景?[^2]**
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值