什么是VLAN
VLAN(virtual LAN)虛擬局域網(wǎng)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來(lái),同一VLAN設(shè)備相互之間的通信就好像它們?cè)谕粋€(gè)物理網(wǎng)段中一樣,不同VLAN設(shè)備不能直接通信。
VLAN工作在OSI參考模型的第2層和第3層,一個(gè)VLAN就是一個(gè)廣播域,VLAN之間的通信是通過(guò)第3層的路由器來(lái)完成的。與傳統(tǒng)的局域網(wǎng)技術(shù)相比較,VLAN技術(shù)更加靈活。
它具有以下優(yōu)點(diǎn):
- 網(wǎng)絡(luò)設(shè)備的移動(dòng)、添加和修改的管理開銷減少;
- 可以控制廣播活動(dòng);
- 可提高網(wǎng)絡(luò)的安全性。

VLAN是如何實(shí)現(xiàn)的
VLAN是IEEE組織定義的IEEE802.1Q協(xié)議實(shí)現(xiàn)的。IEEE802.1Q協(xié)議是定義數(shù)據(jù)幀添加TAG(標(biāo)簽)來(lái)實(shí)現(xiàn)VLAN技術(shù),有兩種數(shù)據(jù)幀Untagged frame是傳統(tǒng)的以太網(wǎng)數(shù)據(jù)幀,Tagged frame是帶標(biāo)簽的數(shù)據(jù)幀。
Tagged frame中TPID(標(biāo)簽協(xié)議標(biāo)示)起到的作用和TYPE字段類似,是指明此數(shù)據(jù)幀為帶vlan標(biāo)簽的數(shù)據(jù)幀;VLAN ID字段是指明vlan的號(hào)碼,占12比特,換算成十進(jìn)制為1-4094。
打標(biāo)簽和去除標(biāo)簽的操作一般是在交換機(jī)上完成,和普通的客戶端無(wú)關(guān)(也可以說(shuō)對(duì)客戶端是透明的),也有一些服務(wù)器操作系統(tǒng)經(jīng)過(guò)配置后可以識(shí)別標(biāo)簽。
交換機(jī)添加VLAN標(biāo)簽用的最多的是基于端口進(jìn)行添加,當(dāng)然也可以是基于子網(wǎng)、基于協(xié)議和基于mac地址。

VLAN數(shù)據(jù)幀轉(zhuǎn)發(fā)流程:

端口類型
華為公司的交換機(jī)根據(jù)不同應(yīng)用類型,把接口分為3種,Access、Trunk和Hybrid。
1、Access接口
Access接口一般用來(lái)連接PC。交換機(jī)的接口再收到數(shù)據(jù)包后,先查看數(shù)據(jù)包打沒有打標(biāo)簽,如果沒有打標(biāo)簽,則打此接口所屬vlan標(biāo)簽;如果收到的數(shù)據(jù)包已經(jīng)打標(biāo)簽,看看是否和此接口所屬vlan標(biāo)簽一致,一致允許通過(guò),不一致則丟棄。

創(chuàng)建VLAN命令
[SWA]vlan 3
配置接口類型命令
[SWA-Ethernet0/0/1]port link-type access
設(shè)置接口PVID命令
[SWA-Ethernet0/0/1]port default vlan 3
2、Trunk端口
一般是交換機(jī)(交換機(jī)上有多個(gè)vlan情況下)之間端口使用Trunk端口。交換機(jī)Trunk端口也會(huì)屬于某個(gè)vlan,這就是Trunk端口的PVID,還可以明確哪個(gè)vlan可以通過(guò)此接口。
交換機(jī)的Trunk端口接收數(shù)據(jù)包時(shí),先看數(shù)據(jù)包打沒有打標(biāo)簽,沒有的話打上PVID標(biāo)簽,有的話查看是否允許此vlan通過(guò)此trunk接口,不允許就會(huì)丟棄數(shù)據(jù)包;交換機(jī)的Trunk端口發(fā)送數(shù)據(jù)包時(shí),缺省vlan的數(shù)據(jù)把標(biāo)簽去掉,允許通過(guò)的其他vlan的標(biāo)簽不變。
華為公司交換機(jī)的TRUNK端口有一個(gè)特色,就是vlan1的數(shù)據(jù)不管有沒有明確允許在TRUNK端口通過(guò),vlan1的數(shù)據(jù)都能通過(guò)TRUNK端口,是因?yàn)橐恍┕芾頂?shù)據(jù)幀在vlan1中發(fā)送。而TRUNK端口上的缺省vlan如果沒有明確允許則不能通過(guò)。

配置端口類型命令:
[SWA-Ethernet0/0/3]port link-type trunk
配置Trunk-Link端口PVID命令:
[SWA-Ethernet0/0/3]port trunk pvid vlan 3
配置Trunk-Link所允許通過(guò)的VLAN(permitted VLAN)命令:
[SWA-Ethernet0/0/3] port trunk allow-pass vlan 2-5
3、Hybrid端口
Hybrid端口允許多個(gè)VLAN通過(guò),可以接收和發(fā)送多個(gè)VLAN的數(shù)據(jù)幀,可以非常靈活的設(shè)置端口是否打標(biāo)簽。Hybrid端口允許多個(gè)VLAN的以太網(wǎng)幀不帶標(biāo)簽,Trunk端口只允許缺省VLAN的以太網(wǎng)幀不帶標(biāo)簽。
Hybrid端口的應(yīng)用環(huán)境:一般是多個(gè)PC之間不能互訪,而這些PC又能同時(shí)訪問一臺(tái)服務(wù)器,又不想利用路由器實(shí)現(xiàn)這個(gè)目的的環(huán)境。
例如在下圖中,PCA屬于vlan10和vlan30,缺省vlan是vlan10;PCB屬于vlan20和vlan30,缺省vlan是vlan20;PCC屬于vlan10、vlan20和vlan30,缺省vlan是vlan30;這樣PCA能和PCC通信,PCB能和PCC通信,而PCA和PCB不能通信。當(dāng)然PCC也可以作為上行端口到達(dá)網(wǎng)關(guān)。

驗(yàn)證VLAN原理的實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)拓?fù)洵h(huán)境:
通過(guò)對(duì)下圖的拓?fù)洵h(huán)境連接,并按圖示配置vlan接口后,所有PC設(shè)置的IP地址在同一網(wǎng)段。如果Access接口配置正確,PC10和PC4能ping通,PC1、PC2、PC3和PC4之間不能ping通,則證明同一交換機(jī)中同一vlan能直接通信,不同vlan不能直接通信。
如果交換機(jī)間接口設(shè)置為Trunk接口,配置PVID為2,僅允許vlan3通過(guò),如果配置正確就可以實(shí)現(xiàn)PC1和PC5能ping通,PC2和PC6不能ping通,PC3和PC7能ping通,PC4和PC8不能ping通,也就驗(yàn)證了華為公司交換機(jī)的TRUNK端口中vlan1的數(shù)據(jù)不管有沒有明確允許,vlan1的數(shù)據(jù)都能通過(guò)TRUNK端口,而缺省vlan數(shù)據(jù)沒有明確允許則不能通過(guò)。

注意:上面的實(shí)驗(yàn)環(huán)境中的配置是為了驗(yàn)證VLAN的特性,在真實(shí)的實(shí)驗(yàn)環(huán)境中,vlan1、vlan2、vlan3和vlan4的IP地址不能設(shè)置為同一地址段,這4個(gè)vlan應(yīng)該分別設(shè)置為像192.168.1.0、192.168.2.0、192.168.3.0、192.168.4.0。他們之間的通信,是通過(guò)路由器或三層交換機(jī)轉(zhuǎn)發(fā),然后才能通信的。
歡迎關(guān)注我的頭條號(hào),私信交流,學(xué)習(xí)更多網(wǎng)絡(luò)技術(shù)!