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