VLAN(Virtual Local Area Network)的中文名為“虛擬局域網(wǎng)”。VLAN是一種將局域網(wǎng)設(shè)備從邏輯上劃分成一個(gè)個(gè)網(wǎng)段,從而實(shí)現(xiàn)虛擬工作組的數(shù)據(jù)交換技術(shù)。這一技術(shù)主要應(yīng)用于交換機(jī)和路由器中,但主流應(yīng)用還是在交換機(jī)之中。但又不是所有交換機(jī)都具有此功能,只有VLAN協(xié)議的第二層以上交換機(jī)才具有此功能。802.1Q的標(biāo)準(zhǔn)的出現(xiàn)打破了虛擬網(wǎng)依賴(lài)于單一廠(chǎng)商的僵局,從一個(gè)側(cè)面推動(dòng)了VLAN的迅速發(fā)展。
1、交換機(jī)端口工作模式簡(jiǎn)介
交換機(jī)端口有三種工作模式,分別是Access,Hybrid,Trunk。
Access類(lèi)型的端口只能屬于1個(gè)VLAN,一般用于連接計(jì)算機(jī)的端口;
Trunk類(lèi)型的端口可以允許多個(gè)VLAN通過(guò),可以接收和發(fā)送多個(gè)VLAN的報(bào)文,一般用于交換機(jī)之間連接的端口;
Hybrid類(lèi)型的端口可以允許多個(gè)VLAN通過(guò),可以接收和發(fā)送多個(gè)VLAN的報(bào)文,可以用于交換機(jī)之間連接,也可以用于連接用戶(hù)的計(jì)算機(jī)。
Hybrid端口和Trunk端口在接收數(shù)據(jù)時(shí),處理方法是一樣的,唯一不同之處在于發(fā)送數(shù)據(jù)時(shí):Hybrid端口可以允許多個(gè)VLAN的報(bào)文發(fā)送時(shí)不打標(biāo)簽,而Trunk端口只允許缺省VLAN的報(bào)文發(fā)送時(shí)不打標(biāo)簽。
2、基本概念(tag,untag,802.1Q)
untag就是普通的ethernet報(bào)文,普通PC機(jī)的網(wǎng)卡是可以識(shí)別這樣的報(bào)文進(jìn)行通訊;
tag報(bào)文結(jié)構(gòu)的變化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag頭;一般來(lái)說(shuō)這樣的報(bào)文普通PC機(jī)的網(wǎng)卡是不能識(shí)別的
下圖說(shuō)明了802.1Q封裝tag報(bào)文幀結(jié)構(gòu)
帶802.1Q的幀是在標(biāo)準(zhǔn)以太網(wǎng)幀上插入了4個(gè)字節(jié)的標(biāo)識(shí)。其中包含:
2個(gè)字節(jié)的協(xié)議標(biāo)識(shí)符(TPID),當(dāng)前置0x8100的固定值,表明該幀帶有802.1Q的標(biāo)記信息。
2個(gè)字節(jié)的標(biāo)記控制信息(TCI),包含了三個(gè)域。
Priority域,占3bits,表示報(bào)文的優(yōu)先級(jí),取值0到7,7為最高優(yōu)先級(jí),0為最低優(yōu)先級(jí)。該域被802.1p采用。
規(guī)范格式指示符(CFI)域,占1bit,0表示規(guī)范格式,應(yīng)用于以太網(wǎng);1表示非規(guī)范格式,應(yīng)用于Token Ring。
VLAN ID域,占12bit,用于標(biāo)示VLAN的歸屬。
3、交換機(jī)接口出入數(shù)據(jù)處理過(guò)程
3-1、端口接收?qǐng)?bào)文時(shí)的處理:
Acess端口收?qǐng)?bào)文:
收到一個(gè)報(bào)文,判斷是否有VLAN信息:如果沒(méi)有則打上端口的PVID,并進(jìn)行交換轉(zhuǎn)發(fā),如果有則直接丟棄(缺省)
trunk端口收?qǐng)?bào)文:
收到一個(gè)報(bào)文,判斷是否有VLAN信息:如果沒(méi)有則打上端口的PVID,并進(jìn)行交換轉(zhuǎn)發(fā),如果有判斷該trunk端口是否允許該 VLAN的數(shù)據(jù)進(jìn)入:如果允許則報(bào)文攜帶原有VLAN標(biāo)記進(jìn)行轉(zhuǎn)發(fā),否則丟棄該報(bào)文。
hybrid端口收?qǐng)?bào)文:
收到一個(gè)報(bào)文,判斷是否有VLAN信息:如果沒(méi)有則打上端口的PVID,并進(jìn)行交換轉(zhuǎn)發(fā),如果有則判斷該hybrid端口是否允許該VLAN的數(shù)據(jù)進(jìn)入:如果可以則轉(zhuǎn)發(fā),否則丟棄。
備注:PVID為Port-base Vlan ID,也就是端口的虛擬局域網(wǎng)ID號(hào),關(guān)系到端口收發(fā)數(shù)據(jù)幀時(shí)的VLAN TAG 標(biāo)記。
3-2、端口發(fā)送報(bào)文時(shí)的處理
Acess端口發(fā)報(bào)文:
將報(bào)文的VLAN信息剝離,直接發(fā)送出去
trunk端口發(fā)報(bào)文:
比較端口的PVID和將要發(fā)送報(bào)文的VLAN信息,如果兩者相等則剝離VLAN信息,再發(fā)送,否則報(bào)文將攜帶原有的VLAN標(biāo)記進(jìn)行轉(zhuǎn)發(fā)。
hybrid端口發(fā)報(bào)文:
判斷該VLAN在本端口的屬性
如果是untag則剝離VLAN信息,再發(fā)送,如果是tag則比較端口的PVID和將要發(fā)送報(bào)文的VLAN信息,如果兩者相等則剝離VLAN信息,再發(fā)送,否則報(bào)文將攜帶原有的VLAN標(biāo)記進(jìn)行轉(zhuǎn)發(fā)。
4、示例講解
多交換機(jī)的情況下,VLAN是怎么工作的呢?下圖所示的這種情況,兩個(gè)交換機(jī)VLAN相同,都是默認(rèn)VLAN 1,即兩個(gè)交換機(jī)之間的聯(lián)系同在VLAN 1之內(nèi)。路由器是所有節(jié)點(diǎn)的出口。
這時(shí)單播,多播和廣播數(shù)據(jù)自由傳輸,所有節(jié)點(diǎn)屬于同一IP地址。這時(shí)節(jié)點(diǎn)之間的通信不會(huì)有問(wèn)題,因?yàn)榻粨Q機(jī)的SAT顯示它們?cè)谕籚LAN。
而下面這種連接方式就會(huì)有問(wèn)題。由于VLAN在連接端口的主機(jī)之間創(chuàng)建了三層邊界,它們將無(wú)法通信。
仔細(xì)看上圖,這里有很多問(wèn)題。第一,所有主機(jī)都在同一IP網(wǎng),盡管連接到不同的VLAN。第二,路由器在VLAN 1,因此與所有節(jié)點(diǎn)隔離。最后,兩臺(tái)交換機(jī)通過(guò)不同的VLAN互連。每一點(diǎn)都會(huì)造成通信阻礙,合在一起,網(wǎng)絡(luò)各元素之間會(huì)完全無(wú)法通信。
交換機(jī)用滿(mǎn)或同一管理單元物理上彼此分離的情形是很常見(jiàn)的。這種情況下,VLAN需要通過(guò)trunk延伸至相鄰交換機(jī)。trunk能夠連接交換機(jī),在網(wǎng)絡(luò)間傳載VLAN信息。如下圖所示:
對(duì)之前的拓?fù)涞母倪M(jìn)包括:
PC 1和PC 2分配到192.168.1.0網(wǎng)段以及VLAN 2。
PC 3和PC 4分配到192.168.2.0網(wǎng)段以及VLAN 3。
路由器接口連接到VLAN 2和VLAN 3。
交換機(jī)間通過(guò)trunk線(xiàn)互連。
注意到trunk端口出現(xiàn)在VLAN 1,他們沒(méi)有用字母T來(lái)標(biāo)識(shí)。trunk在任何VLAN都沒(méi)有成員。現(xiàn)在VLAN跨越多交換機(jī),同一VLAN下的節(jié)點(diǎn)可以物理上位于任何地方。
再次解釋下什么是Trunk:
Trunk是在兩個(gè)網(wǎng)絡(luò)設(shè)備之間承載多于一種VLAN的端到端的連接,將VLAN延伸至整個(gè)網(wǎng)絡(luò)。沒(méi)有VLAN Trunk,VLAN也不會(huì)非常有用。VLAN Trunk允許VLAN數(shù)據(jù)流在交換機(jī)間傳輸,所以設(shè)備在同一VLAN,但連接到不同交換機(jī),能夠不通過(guò)路由器來(lái)進(jìn)行通信。
一個(gè)VLAN trunk不屬于某一特定VLAN,而是交換機(jī)和路由器間多個(gè)VLAN的通道。如下圖所示,交換機(jī)S1和S2,以及S1和S3之間的鏈路,配置為傳輸從VLAN10,20,30以及90的數(shù)據(jù)流。該網(wǎng)絡(luò)沒(méi)有VLAN trunk就無(wú)法工作。
當(dāng)安裝好trunk線(xiàn)之后,幀在trunk線(xiàn)傳輸是就可以使用trunk協(xié)議來(lái)修改以太網(wǎng)幀。這也意味著交換機(jī)端口有不止一種操作模式。缺省情況下,所有端口都稱(chēng)為接入端口。當(dāng)一個(gè)端口用于交換機(jī)間互連傳輸VLAN信息時(shí),這種端口模式改變?yōu)閠runk,節(jié)點(diǎn)也路由器通常不知道VLAN的存在并使用標(biāo)準(zhǔn)以太網(wǎng)幀或“untagged”幀。trunk線(xiàn)能夠使用“tagged”幀來(lái)標(biāo)記VLAN或優(yōu)先級(jí)。
因此,在trunk端口,運(yùn)行trunk協(xié)議來(lái)允許幀中包含trunk信息。如下圖所示:
PC 1在經(jīng)過(guò)路由表處理后向PC 2發(fā)送數(shù)據(jù)流。這兩個(gè)節(jié)點(diǎn)在同一VLAN但不同交換機(jī)。步驟如下:
以太網(wǎng)幀離開(kāi)PC 1到達(dá)Switch 1。
Switch 1的SAT表明目的地是trunk線(xiàn)的另一端。
Switch 1使用trunk協(xié)議在以太網(wǎng)幀中添加VLAN id。
新幀離開(kāi)Switch 1的trunk端口被Switch 2接收。
Switch 2讀取trunk id并解析trunk協(xié)議。
源幀按照Switch 2的SAT轉(zhuǎn)發(fā)至目的地(端口4)。
5、工程實(shí)踐
我們利用cisco packet trace工具來(lái)對(duì)上述描述的vlan的技術(shù)點(diǎn)進(jìn)行工程實(shí)踐,內(nèi)容包括通過(guò)四臺(tái)PC、兩臺(tái)交換機(jī),通過(guò)一個(gè)trunk鏈路建立兩個(gè)vlan的過(guò)程。
1、通過(guò)cisco packet trace我們首先建立一個(gè)如下圖的網(wǎng)絡(luò)拓?fù)浣Y(jié)果。pc1接switch1的0/1端口;pc2接switch1的0/2端口;laptop0接switch2的0/1端口;laptop1接switch2的0/2端口;trunk鏈路有兩臺(tái)交換機(jī)的普通端口0/3互聯(lián)。
2、分別為四臺(tái)PC分配靜態(tài)的IP。如圖所示PC3為192168.10.1;根據(jù)vlan規(guī)劃,PC2的IP為192.168.20.1;laptop0的IP192.168.20.1;laptop1的IP192.168.20.2;
3、配置switch1,命令如下
Switch》enable
Switch#configure terminal
Switch(config)#hostname SA
SA(config)#vlan 10
SA(config-vlan)#exit
SA(config)#vlan 20
SA(config-vlan)#exit
SA(config)#interface fa0/1
SA(config-if)#switchport access vlan 10
SA(config-if)#exit
SA(config)#interface fa0/2
SA(config-if)#switchport access vlan 20
SA(config-if)#exit
SA(config)#interface fa0/3
SA(config-if)#switchport mode trunk
SA(config-if)#switchport trunk allowed vlan all
通過(guò)測(cè)試
4、配置switch2,命令如下
Switch》enable
Switch#configure terminal
Switch(config)#hostname SB
SB(config)#vlan 10
SB(config-vlan)#exit
SB(config)#vlan 20
SB(config-vlan)#exit
SB(config)#interface fa0/1
SB(config-if)#switchport access vlan 10
SB(config-if)#exit
SB(config)#interface fa0/2
SB(config-if)#switchport access vlan 20
SB(config-if)#exit
SB(config)#interface fa0/3
SB(config-if)#switchport mode trunk
SB(config-if)#switchport trunk allowed vlan all
通過(guò)測(cè)試
5、檢查vlan間的互通性,從PC3(192.168.10.1)ping PClaptop0和laptop1情況如下:
評(píng)論
查看更多