上回说到,令狐冲通过设计CLOS架构的交换机,把交换机的端口扩展能力大大增加,最高可以支撑数百个接口。
CLOS架构的名字来源于发明这种网络交换方式的科学家Clarles Clos。CLOS交换网的示意图如下:
每个线卡的上行流量均匀分配到多个交换网,任意两个线卡之间的流量,都要通过所有交换网进行转发。
CLOS交换也有包交换与信元交换的区别,这个是后话了。
我们很容易可以得出,如果每个交换网Fabric具有M条Higig总线的无阻塞交换能力,而线卡具有N条上行Higig总线,那么,整网最多可以支持通过N个交换网板支持M张线卡,总交换容量为M x N x Higig速率。
当然,基于成本考虑,截止到2019年初,市场上公开销售的最大容量的交换机单机具有16张线卡,768个100G接口。这是哪一款呢?
话说,令狐冲设计出的正交CLOS架构交换机大大提升了交换机的扩展能力,但很快,大家发现,网络的工作效率并没有因此大幅度提升。
这是为什么呢?
让我们复习一下交换机工作的三条基本规则——
1. 交换机从一个接口收到数据报文的时候,根据目的MAC地址,匹配转发表项,找到目的接口并发送,同时,将数据包的源地址和入接口记录在转发表项数据库中;
2. 交换机如果找不到目的MAC地址所在的转发表项,(未知单播)则向除了入接口以外的每个接口复制一份这个数据包并发送(泛洪);
3. 对于广播数据包和组播数据包,交换机也向除了入接口以外的每个接口复制一份这个数据包并发送(泛洪)。
我们发现了什么?
如果交换机构建的二层网络过大,如终端数到达1000个时,假设每个终端每秒钟发送1个需要泛洪的数据包,整网中每秒钟出现的泛洪数据包将达到999 x 999 = 998001个。
我们在开篇就学过,千兆网络每秒钟最多只能处理1488095个数据包。也就是说,当二层以太网足够大的时候,网络中大部分流量是泛洪数据包。这是大家无法接受的。
这是因为,交换机只隔离了冲突域(大家共享的线路),而没有隔离广播域。广播域是BUM(广播 Broadcast &未知单播 Unknown-unicast & 组播 Multicast)包的泛洪范围,所有的BUM包均会在广播域内被复制到所有的接口,这会使得以太网通讯效率显著下降。
华山派考虑到二层交换机的这一缺陷,集合五岳剑派商议,终于制定出了在局域网标准上的一个补丁——802.1q,用以实现隔离广播域。
802.1q在二层数据包的二层包头和数据包净载荷之间插入了一个4字节的标签,被称为VLAN标签。如下图:
图中,0x8100是大家熟知的VLAN标志,紧随后面的是PRI优先级,CFI标准格式标志以及VLAN ID。VLAN ID的编号可以从1到4095。
在这里也请大家思考一个冷门问题,VLAN ID=0的数据包代表什么?它是在什么协议中用到?
VLAN这个词是Virtual LAN的缩写。有的同学问,为什么不是 Virtual Ethernet呢?
原来,VLAN不仅可以用于以太网,还可以用于WLAN(802.11),令牌环(802.5)等其他局域网技术。
有了VLAN,实现了广播域隔离,可以将不同的用户组划分进不同的VLAN。交换机上最常见的VLAN划分是基于接口的,把不同接口分到不同VLAN。
华山派由于弟子众多,就将整个山寨划分为多个VLAN,多个VLAN之间通过一个路由器进行互通,一时VLAN内部通信效率大为提高,而由于华山地域甚广,不同VLAN之间往来不多,因此路由器也并不繁忙。
好景不长。林平之暗恋岳灵珊已久,对令狐冲心有嫉妒,找了个机会向岳不群进了谗言,岳不群将令狐冲派去思过崖。
令狐冲到了思过崖,发现思过崖与小师妹岳灵珊被分到了不同的VLAN,二人只能通过路由器传书。在路由器早晚繁忙时,情书往往被丢包。
而此时,林平之却与岳灵珊在同一个VLAN内无阻塞交换。
令狐冲不由悲从中来。
一日,令狐冲无心练剑,在思过崖前闷头发呆。突然,一位仙风道骨的老者见令狐冲魂不守舍,便走过去,问:
少侠为何沉思?
令狐冲倾诉了自己与小师妹之间被VLAN隔离之苦。
老者微微一笑:少侠,今夜三更,到思过崖后山洞见我!
欲知后事如何,请看下回分解。