一、背景
敲黑板: VLAN是你理解云网络的门槛石,要想通往云网络的世界,这一扇大门一定得理解透彻。
二、为什么需要VLAN
在前面的课程里面,我们知道了局域网的概念。一个局域网里面有N台电脑互相通信,ARP广播通知到各家各户。把你想象为村里的一户人家,平时送快递收快递,偶尔村里广播找人,派个人到你家询问询问情况,整体看似挺和谐的。 但是这里注意了哦,广播找人,那可一定是全村每家每户都派人通知到的。
然而当村子大了,问题就出来了: 就是这个各路的广播通知的大使啊,不停的往你家门口赶啊,一个又一个,无尽的骚扰着你家,已经困扰到你正常的作息了。
那你可能好奇,一个村里面,这个广播大使能有这么多吗? 嗯,大概你门口就这么多吧(夸张手法)
所以这个村子也得分分组了:上半村,下半村。上半村的事情,广播大使,你别来下半村咨询了,上半村跑完了就噢了。
因此,一个局域网里面的电脑的分组需求就开始了。一个物理世界的人,实际上又分成了各个门派,门派之间各不相干。这种抽象决定了你虽然和邻居很近,然而你们互相不认识,也不通信。
VLAN就是用来给村里人分组用的,每个人贴个标签。代表了你是哪个门派。
三、如何理解VLAN
站在网络报文的角度,我们重新梳理一下这个里面分组的道道。
最开始,一个网线上面跑着很多运输车(IP报文),到达目的地后,把IP头去掉,剩下货物交给对方,就像这样:
在对通知大使分组之后,这些报文可就带了标记了,一眼就看出来,这是不同门派的报文。就像这样:
这样一来,每一台机器,只会收到自己门派的报文,不会受到另一个门派的骚扰。一个局域网就这样根据报文的标记,分裂为多个不同的门派。找其中一个门派单独看,它又像是是一个更小的局域网,因为它们只与同一门派的人通信。所以单独的一个门派又叫做“虚拟的”局域网。英文Virtual LAN(也就是VLAN)。
下图显示一个局域网,分裂为两个虚拟的局域网。
那么怎么来给报文打标签区分类别呢? 搞报文协议的前辈,掐指一算。算了,就给报文头里面加个字段吧,用来写门派号。
注意这里VID留了12bit位,也就是最大4095个门派。 搞协议的人觉得,一个局域网里面的电脑嘛,搞那么多门派干嘛,分组数量绝对够了啊。呵呵~都是坑,跟IPV4一样一样的。
带了VLAN头的报文,我们叫VLAN标签。它是一个长得不太一样的报文。
四、交换机的VLAN口
在一个局域网里面,分组这件事,你可以任性的随机选电脑分一个组,更多的是按照位置和属性分组。一般为了方便管理,都将一个“虚拟局域网”的电脑放在一起。把它们接入一个交换机的一个网口上面,这个网口对应的下属电脑,属于同一个“虚拟局域网”。
在图上可以看到,一个交换机端口可以设置VLAN属性,代表允许的报文类型(门派)。 那这里有一个深层次的概念:一个端口,报文有进,有出的。分别怎么处理的呢?
这种打上标签,和去除标签的功能,是一个带VLAN功能的常见情况。也就是tag,untag的实际含义。因为也有端口是需要在收到报文的时候untag的,所以这个打标签的活需要注意,门派理清楚。
五、Trunk又是什么鬼?
一般情况,一个交换机端口,都是设置为只允许一种VLAN报文通过,这样比较好理解。但是有时候,我们需要设置一个端口,允许N种VLAN报文,都可以通过。
比如:
在一个大的局域网里面(比如学校),我们需要将两个位置的(比例两幢楼)的VLAN电脑通连起来,字母派一个组,数字派一个组。类似图示这样:
这种情况下,如果按照一个端口设置一个VLAN的原则,只需要在两个交换机之间,接额外2根线就行了。像这样:
由于带了VLAN标签的报文,只能通过对于的VLAN端口,所以两个“虚拟局域网”互相不干扰。但是如果门派变多了呢??
难道每增加一个门派,两个交换机之间就得加一根网线??
所以聪明的我们就想出来,一个端口允许N种VLAN标签不就行了。意思是各门派均可通过~
这个就是Trunk端口了。
六、VLAN的不足,大哥VXLAN来帮忙
之前提过,第一个想出门派的VLAN协议设计者,觉得12bit的标记,也就是4千多种门派就够了。实际情况是,这玩意很好用啊,特别是这种“虚拟的局域网”概念,可以模拟出很多“虚拟的网络”出来给用户使用,特别适合云计算这种一个用户需要自己独立的网络这种场景,所以使用的越来也多,需求量超大。
表面上一根物理网线,可以虚拟出N根“虚拟网线”的效果。
所以结果就是:VLAN这种分出来门派的数量完全不够用啊! 因为需求量可能比下面的还要多:
所以,一种新的区分报文门派的方法需要出来。所以人们就想方法,最终有两个方法出来:一种就是 VXLAN,X就是扩展的意思; 还有一种是GRE网络。
这两种分门派的方法有一个共同点,就是在小货车运输的货物上打标签。而不再是对货车分类(因为IP报文头已经没有多余字段可用来发挥作用了)。
1. VXLAN分门派方法:
2. GRE分门派方法:
七、结束
因为VLAN技术的出现,使得同一根物理线路上,同时传递2种完全相互隔离的信息。效果看上去似乎是2条独立的线路分别在传递信息。
所以再进一步想象下:抽象的云计算里面的虚拟机,其实就是这种情况,两台虚拟机可能挨很近(运行在同一台物理机上),然而它们之间是完全没关系的,因为是分别被两个不同的人购买的。
云网络的雏形就这样长出来了。敲黑板~
附录:
要是想要深入搞这个VLAN技术,可以看看这篇文章《小白都能看明白的VLAN原理解释》。仅了解概念,看本文就够了。