资深网络工程师对于vlan和vxlan应该可以区别开,可是刚入行、或者平时不太关注技术栈的网工们对于vlan和vxlan经常混淆,甚至都没有听过vxlan,那么今天我带着你们来剖析一下这两种技术,相信你们可以看得懂!安全
以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波侦听多路访问/冲突检测)的共享通信介质的数据网络通信技术,当主机数目较多时会致使冲突严重、广播泛滥、性能显著降低甚至使网络不可用等问题。经过交换机实现LAN互联虽然能够解决冲突(Collision)严重的问题,但仍然不能隔离广播报文。在这种状况下出现了VLAN(Virtual Local Area Network,虚拟局域网)技术,这种技术能够把一个LAN划分红多个逻辑的LAN——VLAN,每一个VLAN是一个广播域,VLAN内的主机间通讯就和在一个LAN内同样,而VLAN间则不能直接互通,这样,广播报文被限制在一个VLAN内。网络
对于规模较大的组网场景,广播报文的泛滥对于网络通讯将会形成较大的影响。VLAN技术为这一问题提供了解决方案,VLAN将同一网络划分为多个逻辑上的虚拟子网,并规定当收到广播报文时,仅仅在其所在VLAN中进行广播从而防止广播报文泛滥。VLAN技术在链路层的层次中实现了广播域的隔离。架构
一、虚拟化技术的发展促使大数据、云计算技术公司采用单个物理设备虚拟多台虚拟机的方式来进行组网,所以对于支持VLAN的数量要求也在提高,加上VLAN技术最多支持4094个VLAN,所以已经没法知足需求。负载均衡
二、公有云提供商的业务要求将实体网络租借给多个不一样的用户,这些用户对于网络的要求有所不一样,而不一样用户租借的网络有很大的可能会出现IP地址、MAC地址的重叠,传统的VLAN仅仅解决了同一链路层网络广播域隔离的问题,而并无涉及到网络地址重叠的问题,所以须要一种新的技术来保证在多个租户网络中存在地址重叠的状况下依旧能有效通讯的技术。ide
三、虚拟化技术的出现增长了交换机的负担,对于大型的数据中心而言,单台交换机必须支持数十台以上主机的通讯链接才足以知足应用需求,而虚拟化技术使得单台主机能够虚拟化出多台虚拟机同时运行,而每台虚拟机都会有其惟一的MAC地址。这样,为了保证集群中全部虚机能够正常通讯,交换机必须保存每台虚机的MAC地址,这样就致使了交换机中的MAC表异常庞大,从而影响交换机的转发性能。工具
基于以上需求,VXLAN技术被提出。性能
英文全称为Virtualextensible Local Area Network
,中文意思即虚拟扩展局域网。学习
VXLAN是一种基于IP网络构建逻辑拓扑、采用“MAC in UDP”封装方式的二层***技术。大数据
VXLAN可以为分散的物理站点提供二层和三层互联,并能为不一样用户提供业务隔离服务。云计算
VLAN能支持的二层网络数量有限。VLAN Tag总共4个字节,其中有12bit用来标识不一样的二层网络,这样总共是4000多个。而VXLAN header有8个字节,有24bit用来标识不一样的二层网络,这样总共是1600多万个。
数据中心的虚拟化给网络设备带来的最直接影响就是:以前TOR(Top Of Rack)交换机的一个端口链接一个物理主机对应一个MAC地址,但如今交换机的一个端口虽然仍是链接一个物理主机可是可能进而链接几十个甚至上百个虚拟机和相应数量的MAC地址。传统交换机是根据MAC地址表实现二层转发。以下图所示,交换机在收到一个数据帧以后,根据VLAN和目的MAC地址,查找到相应的交换机端口,再将数据帧从相应的端口发出。
这个MAC地址表是经过交换机的flood-learn学习并记录在交换机的内存。交换机的内存比较宝贵,因此MAC地址表的大小一般是有限的。如今由于虚拟化,整个数据中心的MAC地址多了几十倍,那相应的交换机里面的MAC地址表也须要扩大几十倍。若是交换机不支持这么大的MAC地址表,那么就会致使MAC地址表溢出。溢出以后,交换机不能将新的MAC地址学习到本身的MAC地址表。若是交换机收到这些MAC地址的数据帧,由于不能经过查表转发,会flood到全部的端口。这不但增长了交换机的负担,还增长了网络中其余设备的负担。为了不这个问题,能够用一些更大容量的交换机,可是相应的成本也要上升,并且还不能从根本上解决这个问题。
若是使用VXLAN,虚拟机的Ethernet Frame被VTEP封装在UDP里面,一个VTEP能够被一个物理主机上的全部虚拟机共用。从交换机的角度,交换机看到的是VTEP之间在传递UDP数据。一般,一个物理主机对应一个VTEP,因此交换机的MAC地址表,只须要记录与物理主机数量至关条目就能够了,虚拟化带来的MAC地址表暴增的问题也不存在了。这是VXLAN能解决的,而现有的VLAN没有办法回避的问题。
为了保证VXLAN机制通讯过程的正确性,rfc7348标准中规定,涉及到VXLAN通讯的IP报文一概不容许分片,这就要求物理网络的链路层实现中必须提供足够大的MTU值,保证VXLAN报文的顺利传输,这一点能够理解为当前VXLAN技术的局限性。
VLAN已用于解决不一样的问题,例如第2层网络隔离,泛洪和用做路由接口。VLAN支持功能现已在大多数系统和网络设备(如以太网交换机,路由器和防火墙)中提供。可是,本文的比较主要集中在VLAN标记上。为了实现不一样VLAN之间的通讯,VLAN标记是必不可少的部分。
如上所述,VLAN标记使用协议IEEE 802.1Q或ISL(交换机间连接)来标记流经不一样VLAN的帧。用此方法标记的帧只有一个标记。
可是,与VLAN相比,QinQ技术更加灵活。一方面,它能够有选择地将标签添加到传入的帧或数据包。另外一方面,外部VLAN标记解决了VLAN ID受限的问题。独特的内部标签避免了专用VLAN ID和公用VLAN ID之间的冲突,从而为小型或大型企业网络提供了简单的第2层***解决方案。
注意:VLAN属于公共网络
对于VXLAN,它在某种程度上提供了与QinQ相同的功能,但其工做层具备更高的可扩展性。
VXLAN经过MAC-in-UDP封装数据包,极大地扩展了第2层网络。众所周知,随着云计算的发展,租户对网络建设(尤为是虚拟数据中心)的要求愈来愈高,这增长了对第2层网络的需求。
MAC-in-UDP支持使用24位VIND,这使数据中心能够容纳多个租户并打破物理距离限制和部署。这就是为何近年来VXLAN在云计算和虚拟化数据中心变得愈来愈流行的缘由。
可是,与VLAN和QinQ相比,VXLAN技术更昂贵,更复杂。所以,并不是全部的VLAN交换机都支持此功能。
尽管VXLAN要复杂一些,提出的晚一些,普及率也要低一些,可是随着数据中心规模的发展和虚拟化的普及,VXLAN逐渐成为构建数据中心网络的趋势。
不过理智点看,VXLAN有这么多优势,在能够预见的将来,仍是不能彻底替代VLAN。首先VXLAN是一种overlay网络,不能独立存在,必须依赖underlay网络,而在构建underlay网络时,仍是须要借助VLAN。其次,这里介绍的VXLAN的优点,都是在大规模环境下,若是你的数据中心的规模,不论虚机仍是物理的,就百十台的样子,那直接用VLAN也能够了,不必上VXLAN。
VXLAN最可能是在构建数据中心时的一个选项,而不是惟一的选项。套用马斯洛的“工具法则”:当你只有一个锤子时,任何东西看起来都像是个钉子。在设计数据中心网络时,也应该避免用一种方法解决全部问题,VXLAN,VLAN,BGP,E***,OpenStack应该综合考虑。