VLAN:
如果把网络比作一栋办公楼,那么VLAN(Virtual Local Area Network)就是这栋楼里的隔断墙。
早期的网络都是聚在一起的,所有的电脑都在一个大广播域里。这时候只要有一台电脑发个广播包,所有设备都能监听到,不仅浪费宽带,还不安全。于是,VLAN 出现了,它通过给数据包打上一个“标签”(Tag),把大家隔离开。
VLAN的核心就在于那个802.1Q协议定义的12位(bit)标识符。一个物理网络里最多只能有4096个VLAN。
在早期时代,4096这个数字看起来很大,但是,当技术发展来到云计算和虚拟化的时代时,情况发生了变化。
随着数据中心的规模越来越大, VLAN开始显得力不从心:
1.数量完全不够用:在公有云环境下,租户成千上万。如果每个租户需要几个独立的网络环境,4096 个位置很快就会被抢光。
2.物理边界的束缚:VLAN是二层技术。如果你的虚拟机想从 A 机架迁移到 B 机架,而且还得保持原来的 IP 和 VLAN 不变,这要求中间经过的所有交换机都得配置相同的 VLAN。这种“大二层”的配置非常繁琐,而且容易出错。
3.浪费带宽的STP:为了防止二层环路,VLAN 环境通常必须开启生成树协议(STP)。这会导致很多冗余链路被直接阻塞掉,空有带宽却用不上,这在寸土寸金的数据中心里简直是浪费。
VXLAN的诞生:
为了解决这些问题,VXLAN(Virtual eXtensible Local Area Network)应运而生。
这个多出来的“X”代表了Extensible(可扩展)。我们可以把它看作是在原有的三层网络(IP网络)之上,又铺设了一层虚拟的二层公路。这种技术在专业术语里叫做 Overlay(叠加网络)。
举个例子,VXLAN就是把原本的二层数据帧(带有 MAC 地址的包裹),外面再套上一层UDP的马甲,然后让它在普通的IP网络上飞奔。
1.身份证号的长度:4096对1600 万
前面说到VLAN的标签只有12位,导致上限是4096。而VXLAN引入了一个叫 VNI(VXLAN Network Identifier)的概念,它的长度达到了24位。
从4000涨到了1600万,这个跨越直接解决了租户不够用的难题。现在的公有云巨头,可以轻轻松松给每个客户分配成百上千个独立的虚拟网络,完全不用担心撞号。
2.打包方式:打标签与换马甲
VLAN的工作方式是在原始数据帧里强行塞进去一个4字节的802.1Q标签。这就像是在信封上贴了个分类便签。
VXLAN它直接把原始的二层数据帧当作“货物”,装进一个UDP包里。这个过程叫封装。
这个UDP包有自己的源IP、目的IP。对于中间经过的路由器和交换机来说,它们根本看不见里面的二层帧,只觉得这是一个普通的 UDP流量。这种MAC in UDP的设计,让VXLAN能够跨越三层网络进行传输。
在网络层面的应用:
在VLAN时代,为了防环路,要么忍受STP阻塞链路,要么搞昂贵的堆叠(Stacking)。
而在VXLAN环境下,底层网络是纯粹的三层IP网络(我们称为 Underlay)。三层网络天然支持 ECMP(等价多路径路由)。这意味着你可以同时利用所有的物理链路进行负载均衡,不仅没有环路隐患,还能把带宽利用率压榨到极致。
业务的移动性:
虚拟机迁移层面
数据中心强调“灵活性”。一个虚拟机可能上一秒在上海的服务器上运行,下一秒就漂移到了北京。
用VLAN,这种跨地域的二层迁移几乎是不可能的。
VXLAN是在三层网络上“挖隧道”。只要底层的IP能通,隧道就能建立。虚拟机无论怎么搬家,只要还在同一个VXLAN 隧道里,它的IP地址和MAC地址都可以保持不变,业务完全不会中断。这种特性我们称之为“跨三层的大二层”。
但VLAN技术,在中小规模的网络环境中依然是绝对的主力,因为
1.配置简单:只要在交换机上划几个端口,VLAN 就通了。
2.硬件要求低:几乎所有的二层交换机都支持VLAN,而VXLAN需要专门的芯片支持(尤其是硬件 VTEP)。
3.性能损耗小:VLAN的4字节标签几乎不占用额外开销,而VXLAN 的封装会增加50字节左右的头部开销,如果MTU设置不当,还可能导致分片,影响性能。
在小型公司的办公室、校园网这种对多租户和灵活性要求不高的场景,VLAN依然是那个性价比最高的选择。而VXLAN则是为了大型数据中心、云计算和SDN而生的利器。
VLAN是经典的、基于物理设备的静态划分。
VXLAN则是现代的、基于软件定义的动态叠加。