来源于:SDNLAB

VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)可以说是目前最热门的网络虚拟化技术。自2014年引入以来,VXLAN已逐渐成为现代数据中心网络架构的重要组成部分。

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

VLAN /VXLAN到底是什么、有什么区别、为什么有了VLAN还需要VXLAN、二者究竟在什么场景使用?让我们带着这些疑问一起看下去吧。

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

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

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

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

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

不过VLAN也并非没有缺点。

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

2、公有云提供商的业务要求将实体网络租借给多个不同的用户,这些用户对于网络的要求有所不同,而不同用户租借的网络有很大的可能会出现IP地址、MAC地址的重叠。传统的VLAN并没有涉及这个问题,因此需要一种新的技术来保证在多个租户网络中存在地址重叠的情况下依旧能有效通信的技术。

3、虚拟化技术使得单台主机可以虚拟化出多台虚拟机同时运行,而每台虚拟机都会有其唯一的MAC地址。这样,为了保证集群中所有虚机可以正常通信,交换机必须保存每台虚机的MAC地址,这样就导致了交换机中的MAC表异常庞大,从而影响交换机的转发性能。

VXLAN

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

在传统的VLAN网络中,共享同一底层 L2 网段的 VLAN 不能超过 4096 个。只有 12 比特用于对Ethernet Frame格式中的 VLAN ID 字段进行编码。

VXLAN协议定义了8个字节的VXLAN Header,引入了类似VLAN ID的网络标识,称为VNI(VXLAN Network ID),由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地址。

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

VXLAN支持大量租户:支持多达1600万个相互隔离的二层网络,解决传统二层网络VLAN资源不足问题。

VXLAN网络易于维护:基于IP网络构建大二层网络,将原始二层数据帧封装成VXLAN报文在IP网络中透传,充分利用现有IP网络技术,部署和维护更容易。

VXLAN网络保证虚拟机动态迁移:采用“MAC in UDP”的封装方式,保证虚拟机迁移前后的IP和MAC不变。

下表展示了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更好吗?

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

参考:

思科社区:VLAN和VXLAN的区别

https://zhuanlan.zhihu.com/p/36165475

https://chanjarster.github.io/post/network/vlan-vxlan/

https://iximiuz.com/en/posts/computer-networking-101/

https://info.support.huawei.com/info-finder/encyclopedia/zh/VXLAN.html

10T 技术资源大放送!包括但不限于:Linux、虚拟化、容器、云计算、网络、Python、Go 等。在 开源Linux 公众号内回复 10T,即可免费获取!

Linux学习指南
有收获,点个在看

VLAN vs. VXLAN:云时代下各施所长相关推荐

  1. 运维侠客行杭州站沙龙回顾 | 云时代下的运维管理实践(附干货下载)

    我们处在一个巨变的时代,在云计算.大数据和物联网等新技术.新理念不断更新的大背景下,企业同时面临着数字化和"互联网+"转型的双重挑战,企业对于"稳态IT"和&q ...

  2. 【云栖大会】探索云时代下的游戏开发模式

    2016杭州云栖大会在云栖小镇召开,本届大会以"飞天·进化"为主题,内容规模比去年翻倍,从原本2天的议程增加至4天,从10月13日持续到16日,超过400场主题演讲使开发者们对阿里 ...

  3. 圆桌对话:云时代下,企业运维面临的挑战与机遇

    简介:四位企业运维大咖展开对话,讨论"云时代下,企业运维面临的挑战与机遇". 编者按:上云,已经成为了企业势不可挡的选择.云计算所拥有的"软件定义一切"的特性, ...

  4. 云时代下,移动云揭秘数据库“新解”

    数据库,在IT系统中有着举足轻重的地位.绝大多数业务系统都离不开数据库的支持,更重要的是,不少数据库中存储着核心和敏感的数据. 伴随着云计算.分布式技术的逐步落地,近十年来数据库的形态也发生了很大变化 ...

  5. 技术沙龙 | 云时代下的架构演进—企业云及云原生技术落地实践

    云改变了IT行业的形态和市场格局,催生了应用的发展.随着云计算技术的不断演进,作为一名优秀的架构师,必须深入了解云计算平台的特点及架构设计,包括构建数据库.大规模落地微服务.Service Mesh和 ...

  6. 云时代下,传统和新型存储的博弈已经开始

     云时代下,传统和新型存储的博弈已经开始 ICT架构师技术交流 (微信号ICT_Architect) 分析和交流ICT行业最前沿技术,分享更多存储.服务器.数据中心.网络.软件定义和虚拟化等相关知 ...

  7. 云时代下,医药行业管理居然这么简单

    摘要:为了持续打造核心竞争力,英克康健联合华为云,基于云数据库RDS for PostgreSQL全新打造了一个高性能.大容量.高可用的SaaS医药管理系统,助力万千药企业务迈上新台阶. 本文分享自华 ...

  8. SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?

    刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...

  9. 计算机云维护是做什么的,IT运维是什么?云时代下的运维人员是怎样的?

    IT运维是当下IT最热门.最具发展的新概念,随着IT建设的不断深入和完善,计算机硬软件系统的运行维护已经成为了各行各业的信息服务部门普遍关注和不堪重负的问题.这是一个随着计算机信息技术的深入应用而产生 ...

最新文章

  1. Mozilla Firefox 54 今起支持开启e10s多进程功能
  2. 网络推广方案中解析SEO优化文章的标题设置技巧
  3. 网站在线访问人数统计并计算停留时间
  4. 三星android5.0基带,三星首款5G手机没用高通!问题来了:5G基带哪家强?
  5. 关于10g RAC监听设置,tnsnames.ora设置,VIP及客户端配置问题
  6. 阿里、美团、拼多多、网易大厂面试之Redis+多线程+JVM+微服务...
  7. python编程资料包_强力推荐,非常全的Python编程400集学习资料(今日限免)
  8. apache-xmlrpc-3.1.3-bin.tar.bz2
  9. 『号外』 排名进入2000!再创佳绩!
  10. 有没有那种免费的办公软件?
  11. 中国大陆省市区县三级、四级菜单数据整理
  12. 拉格朗日插值法与牛顿插值法
  13. 一系列自动化测试的开源项目介绍
  14. Qt:Exception at 0xeefde9, code:0x0000005: read access violation at: 0x0, flags = 0x0(first chance)
  15. 以计算机为主题的想象作文,以想象为话题的作文(通用13篇)
  16. 趋势交易大师php,大道至简——多级别均线共振交易系统
  17. 什么是法?什么是僧?
  18. java毕业设计咖啡销售平台mybatis+源码+调试部署+系统+数据库+lw
  19. thinkpad笔记本 刷bios失败,被救回方法
  20. 中国头孢菌素药物行业市场供需与战略研究报告

热门文章

  1. ARCMAP里面关于地理投影方面的知识
  2. linux添加开机启动项
  3. Bussiness Card Design
  4. python 选择文件对话框插件_Python DearPyGui 常用控件一
  5. 拉普拉斯金字塔图像融合原理
  6. 被通知一个月后离职,我改了代码。。。
  7. 前端开发与后端开发的区别是什么?
  8. ToDoListEditor 任务清单工具
  9. unity-2D游戏地面检测 三射线检测
  10. 拟插值算子(Quasi-interpolations)