VLAN(Virtual Local Area Network)即虛擬局域網(wǎng),是將一個(gè)物理的LAN在邏輯上劃分成多個(gè)廣播域的通信技術(shù)。VLAN內(nèi)的主機(jī)間可以直接通信,而VLAN間不能直接互通,從而將廣播報(bào)文限制在一個(gè)VLAN內(nèi)。
目的
以太網(wǎng)是一種基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通訊介質(zhì)的數(shù)據(jù)網(wǎng)絡(luò)通訊技術(shù)。當(dāng)主機(jī)數(shù)目較多時(shí)會導(dǎo)致沖突嚴(yán)重、廣播泛濫、性能顯著下降甚至造成網(wǎng)絡(luò)不可用等問題。通過交換機(jī)實(shí)現(xiàn)LAN互連雖然可以解決沖突嚴(yán)重的問題,但仍然不能隔離廣播報(bào)文和提升網(wǎng)絡(luò)質(zhì)量。
在這種情況下出現(xiàn)了VLAN技術(shù),這種技術(shù)可以把一個(gè)LAN劃分成多個(gè)邏輯的VLAN,每個(gè)VLAN是一個(gè)廣播域,VLAN內(nèi)的主機(jī)間通信就和在一個(gè)LAN內(nèi)一樣,而VLAN間則不能直接互通,這樣,廣播報(bào)文就被限制在一個(gè)VLAN內(nèi)。
圖5-1 VLAN示意圖
是一個(gè)典型的VLAN應(yīng)用組網(wǎng)圖。兩臺交換機(jī)放置在不同的地點(diǎn),比如寫字樓的不同樓層。每臺交換機(jī)分別連接兩臺服務(wù)器,這四臺服務(wù)器分別屬于兩個(gè)不同的VLAN。
受益
使用VLAN能給用戶帶來以下受益:
· 限制廣播域:廣播域被限制在一個(gè)VLAN內(nèi),節(jié)省了帶寬,提高了網(wǎng)絡(luò)處理能力。
· 增強(qiáng)局域網(wǎng)的安全性:不同VLAN內(nèi)的報(bào)文在傳輸時(shí)是相互隔離的,即一個(gè)VLAN內(nèi)的用戶不能和其它VLAN內(nèi)的用戶直接通信。
· 提高了網(wǎng)絡(luò)的健壯性:故障被限制在一個(gè)VLAN內(nèi),本VLAN內(nèi)的故障不會影響其他VLAN的正常工作。
· 靈活構(gòu)建虛擬工作組:用VLAN可以劃分不同的用戶到不同的工作組,同一工作組的用戶也不必局限于某一固定的物理范圍,網(wǎng)絡(luò)構(gòu)建和維護(hù)更方便靈活。
5.2 原理描述
介紹VLAN的實(shí)現(xiàn)原理。
5.2.1 VLAN基本概念
VLAN的幀格式
傳統(tǒng)的以太網(wǎng)數(shù)據(jù)幀在目的mac地址和源MAC地址之后封裝的是上層協(xié)議的類型字段,如圖5-2所示。
圖5-2 傳統(tǒng)的以太網(wǎng)數(shù)據(jù)幀格式
IEEE 802.1Q是虛擬橋接局域網(wǎng)的正式標(biāo)準(zhǔn),對Ethernet幀格式進(jìn)行了修改,在源MAC地址字段和協(xié)議類型字段之間加入4字節(jié)的802.1Q Tag,如圖5-3所示。
圖5-3 802.1Q幀格式
802.1Q Tag包含4個(gè)字段,各字段解釋如表5-1所示:
表5-1 802.1Q Tag各字段含義介紹
每臺支持802.1Q協(xié)議的交換機(jī)發(fā)送的數(shù)據(jù)包都會包含VLAN ID,以指明交換機(jī)屬于哪一個(gè)VLAN。因此,在一個(gè)VLAN交換網(wǎng)絡(luò)中,以太網(wǎng)幀有以下兩種形式:
· 有標(biāo)記幀(tagged frame):加入了4字節(jié)802.1Q Tag的幀
· 無標(biāo)記幀(untagged frame):原始的、未加入4字節(jié)802.1Q Tag的幀
鏈路類型
如圖5-4所示,VLAN中有以下兩種鏈路類型:
· 接入鏈路(Access Link):用于連接用戶主機(jī)和交換機(jī)的鏈路。通常情況下,主機(jī)并不需要知道自己屬于哪個(gè)VLAN,主機(jī)硬件通常也不能識別帶有VLAN標(biāo)記的幀。因此,主機(jī)發(fā)送和接收的幀都是untagged幀。
· 干道鏈路(Trunk Link):用于交換機(jī)間的互連或交換機(jī)與路由器之間的連接。干道鏈路可以承載多個(gè)不同VLAN數(shù)據(jù),數(shù)據(jù)幀在干道鏈路傳輸時(shí),干道鏈路的兩端設(shè)備需要能夠識別數(shù)據(jù)幀屬于哪個(gè)VLAN,所以在干道鏈路上傳輸?shù)膸际荰agged幀。
圖5-4 鏈路類型示意圖
說明:
· 對于主機(jī)來說,它不需要知道VLAN的存在。主機(jī)發(fā)出的是untagged報(bào)文。
· 交換設(shè)備接收到報(bào)文后,根據(jù)配置規(guī)則(如接口信息)判斷出報(bào)文所屬的VLAN后,再進(jìn)行處理。
· 如果報(bào)文需要通過另一臺交換機(jī)轉(zhuǎn)發(fā),則該報(bào)文必須通過干道鏈路透傳到對端交換設(shè)備上。為了保證其它交換設(shè)備能夠正確處理報(bào)文中的VLAN信息,在干道鏈路上傳輸?shù)膱?bào)文必須都打上了VLAN標(biāo)記。
· 當(dāng)交換設(shè)備最終確定報(bào)文出接口后,將報(bào)文發(fā)送給主機(jī)前,需要將VLAN標(biāo)記從幀中刪除,這樣主機(jī)接收到的報(bào)文都是不帶VLAN標(biāo)記的以太網(wǎng)幀。
所以,一般情況下,干道鏈路上傳輸?shù)亩际莟agged幀,接入鏈路上傳送到的都是untagged幀。這樣處理的好處是:網(wǎng)絡(luò)中配置的VLAN信息可以被所有交換設(shè)備正確處理,而主機(jī)不需要了解VLAN信息。
接口類型
在802.1Q中定義VLAN幀后,將接口分為4類:
· Access接口
如所示,Access接口是交換機(jī)上用來連接用戶主機(jī)的接口,它只能連接接入鏈路。僅僅允許唯一的VLAN ID通過本接口,這個(gè)VLAN ID與接口的缺省VLAN ID相同,Access接口發(fā)往對端設(shè)備的以太網(wǎng)幀永遠(yuǎn)是不帶標(biāo)簽的幀。
· Trunk接口
如所示,Trunk接口是交換機(jī)上用來和其他交換機(jī)連接的接口,它只能連接干道鏈路,允許多個(gè)VLAN的幀(帶Tag標(biāo)記)通過。
· Hybrid接口
如所示,Hybrid接口是交換機(jī)上既可以連接用戶主機(jī),又可以連接其他交換機(jī)的接口。Hybrid接口既可以連接接入鏈路又可以連接干道鏈路。Hybrid接口允許多個(gè)VLAN的幀通過,并可以在出接口方向?qū)⒛承¬LAN幀的Tag剝掉。
圖5-5 接口示意圖
· QinQ接口
QinQ(802.1Q-in-802.1Q)接口是使用QinQ協(xié)議的接口。QinQ接口可以給幀加上雙重Tag,即在原來Tag的基礎(chǔ)上,給幀加上一個(gè)新的Tag,從而可以支持多達(dá)4094×4094個(gè)VLAN,滿足網(wǎng)絡(luò)對VLAN數(shù)量的需求。
QinQ幀的格式如圖5-6所示。外層的標(biāo)簽通常被稱作公網(wǎng)Tag,用來存放公網(wǎng)的VLAN ID。內(nèi)層標(biāo)簽通常被稱作私網(wǎng)Tag,用來存放私網(wǎng)的VLAN ID。
圖5-6 QinQ幀格式
QinQ協(xié)議的詳細(xì)描述,請參見QinQ。
缺省VLAN
每種類型的接口都可以配置一個(gè)缺省VLAN,對應(yīng)的VLAN ID為PVID(Port Default VLAN ID)。接口類型不同,缺省VLAN的含義也有所不同。
關(guān)于不同類型接口的PVID以及對以太網(wǎng)幀的處理方式請參見各類型接口對數(shù)據(jù)幀的處理方式。
VLAN的劃分
劃分VLAN是VLAN的基本配置,VLAN劃分成功后,即可實(shí)現(xiàn)同一VLAN中的用戶可以互相通信。不同的場景采用不同的劃分方式,如表5-2所示。
表5-2 VLAN劃分方式差異表
設(shè)備同時(shí)支持多種方式劃分VLAN,規(guī)定的優(yōu)先使用順序是(優(yōu)先級高低順序從左至右):基于MAC地址劃分VLAN或基于子網(wǎng)劃分VLAN->基于協(xié)議劃分VLAN->基于接口劃分VLAN。
· 如果報(bào)文同時(shí)匹配了基于MAC地址劃分VLAN和基于子網(wǎng)劃分VLAN,缺省情況下,優(yōu)先基于MAC地址劃分VLAN。但是可以通過命令改變基于MAC地址劃分VLAN和基于子網(wǎng)劃分VLAN的優(yōu)先級,從而決定優(yōu)先劃分VLAN的方式。
· 基于接口劃分VLAN的優(yōu)先級最低,但卻是最常用的VLAN劃分方式。
5.2.2 VLAN通信原理
VLAN基本通信原理
為了提高處理效率,交換機(jī)內(nèi)部的數(shù)據(jù)幀一律都帶有VLAN Tag,以統(tǒng)一方式處理。當(dāng)一個(gè)數(shù)據(jù)幀進(jìn)入交換機(jī)接口時(shí),如果沒有帶VLAN Tag,且該接口上配置了PVID(Port Default VLAN ID),那么,該數(shù)據(jù)幀就會被標(biāo)記上接口的PVID。如果數(shù)據(jù)幀已經(jīng)帶有VLAN Tag,那么,即使接口已經(jīng)配置了PVID,交換機(jī)不會再給數(shù)據(jù)幀標(biāo)記VLAN Tag。
由于接口類型不同,交換機(jī)對數(shù)據(jù)幀的處理過程也不同。下面根據(jù)不同的接口類型分別介紹。
表5-3 各類型接口對數(shù)據(jù)幀的處理方式
說明:
由于設(shè)備所有的接口都默認(rèn)加入VLAN1,因此當(dāng)網(wǎng)絡(luò)中存在VLAN1的未知單播、組播或者廣播報(bào)文時(shí),可能會引起廣播風(fēng)暴。對于不需要加入VLAN1的接口及時(shí)退出VLAN1,避免環(huán)路。
VLAN內(nèi)跨越交換機(jī)通信原理
有時(shí)屬于同一個(gè)VLAN的用戶被連接在不同的交換機(jī)上。當(dāng)VLAN跨越交換機(jī)時(shí),就需要交換機(jī)間的接口能夠同時(shí)識別和發(fā)送跨越交換機(jī)的VLAN報(bào)文。這時(shí),需要用到Trunk Link技術(shù)。
Trunk Link有兩個(gè)作用:
· 中繼作用
把VLAN報(bào)文透傳到互聯(lián)的交換機(jī)。
· 干線作用
一條Trunk Link上可以傳輸多個(gè)VLAN的報(bào)文。
圖5-7 Trunk Link通信方式示意圖
例如在圖5-7所示的網(wǎng)絡(luò)中,為了讓DeviceA和DeviceB之間的鏈路既支持VLAN2內(nèi)的用戶通訊又支持VLAN3內(nèi)的用戶通訊,需要配置連接接口同時(shí)加入兩個(gè)VLAN。即應(yīng)配置DeviceA的以太網(wǎng)接口Port2和DeviceB的以太網(wǎng)接口Port1同時(shí)加入VLAN2和VLAN3。
當(dāng)用戶UserA發(fā)送數(shù)據(jù)給用戶UserB時(shí),數(shù)據(jù)幀的發(fā)送過程如下:
1. 數(shù)據(jù)幀首先到達(dá)DeviceA的接口Port4。
2. 接口Port4給數(shù)據(jù)幀加上Tag,Tag的VID字段填入該接口所屬的VLAN的編號2。
3. DeviceA查詢自己的MAC地址表中是否存在目的地址為DeviceB的MAC地址的轉(zhuǎn)發(fā)表項(xiàng)。
· 如果存在,DeviceA將數(shù)據(jù)幀轉(zhuǎn)發(fā)給接口Port2。
· 如果不存在,DeviceA會將數(shù)據(jù)幀發(fā)送到本設(shè)備上除port4接口外的所有屬于VLAN2的接口。
4. 接口Port2將幀轉(zhuǎn)發(fā)到DeviceB上。
5. DeviceB收到數(shù)據(jù)幀后,會查詢自己的MAC地址表中是否存在目的地址為UserB的MAC地址的轉(zhuǎn)發(fā)表項(xiàng)。
· 如果存在,DeviceB會將數(shù)據(jù)幀發(fā)送給出接口Port3。
· 如果不存在,DeviceB會將數(shù)據(jù)幀發(fā)送到本設(shè)備上除port1接口外的所有屬于VLAN2的接口。
6. 接口Port3將數(shù)據(jù)幀發(fā)送給UserB。
VLAN間通信原理
劃分VLAN后,不同VLAN之間不能直接通信。如果要實(shí)現(xiàn)VLAN間通信,可以采取以下方案:
· 子接口
如圖5-8所示,DeviceA為支持配置子接口的三層設(shè)備,DeviceB為二層交換設(shè)備。LAN通過DeviceB的以太網(wǎng)接口(交換式以太網(wǎng)接口)與DeviceA的以太網(wǎng)接口(路由式以太網(wǎng)接口)相連。用戶主機(jī)被劃分到兩個(gè)VLAN:VLAN2和VLAN3。可通過如下配置實(shí)現(xiàn)VLAN間互通。
· 在DeviceA的以太網(wǎng)接口(與DeviceB相連的以太網(wǎng)接口)上創(chuàng)建2個(gè)子接口Port1.1和Port2.1,并配置802.1Q封裝與VLAN2和VLAN3分別對應(yīng)。
· 配置子接口的IP地址,保證兩個(gè)子接口對應(yīng)的IP地址路由可通。
· 將DeviceB與DeviceA相連的以太網(wǎng)接口類型配置為Trunk或Hybrid類型,允許VLAN2和VLAN3的幀通過。
· 將用戶設(shè)備的缺省網(wǎng)關(guān)設(shè)置為所屬VLAN對應(yīng)子接口的IP地址。
圖5-8 通過子接口實(shí)現(xiàn)VLAN間的通信
主機(jī)A和C的通信過程如下:
1. 主機(jī)A將主機(jī)C的IP地址和自己所在網(wǎng)段進(jìn)行比較,發(fā)現(xiàn)主機(jī)C和自己不在同一個(gè)子網(wǎng)。
1. 主機(jī)A發(fā)送ARP請求給自己的網(wǎng)關(guān)DeviceA,請求網(wǎng)關(guān)的MAC地址。
1. DeviceA收到該ARP請求后,返回ARP應(yīng)答報(bào)文,報(bào)文中源MAC地址為VLAN2對應(yīng)子接口的MAC地址。
1. 主機(jī)A學(xué)習(xí)到網(wǎng)關(guān)的MAC地址。
1. 主機(jī)A向網(wǎng)關(guān)發(fā)送目的MAC為子接口MAC地址、目的IP為主機(jī)C的IP地址的報(bào)文。
1. DeviceA收到該報(bào)文后進(jìn)行三層轉(zhuǎn)發(fā),發(fā)現(xiàn)主機(jī)C的IP地址為直連路由,報(bào)文將通過VLAN3關(guān)聯(lián)的子接口進(jìn)行轉(zhuǎn)發(fā)。
1. DeviceA作為VLAN3內(nèi)主機(jī)的網(wǎng)關(guān),向VLAN3內(nèi)發(fā)送一個(gè)ARP廣播,請求主機(jī)C的MAC地址。
1. 主機(jī)C收到網(wǎng)關(guān)發(fā)送的ARP廣播后,對此請求進(jìn)行ARP應(yīng)答。
1. 網(wǎng)關(guān)收到主機(jī)C的應(yīng)答后,就把主機(jī)A的報(bào)文發(fā)送給主機(jī)C。主機(jī)A之后要發(fā)給C的報(bào)文都先發(fā)送給網(wǎng)關(guān),由網(wǎng)關(guān)做三層轉(zhuǎn)發(fā)。
1. VLANIF接口
三層交換技術(shù)是將路由技術(shù)與交換技術(shù)合二為一的技術(shù),在交換機(jī)內(nèi)部實(shí)現(xiàn)了路由,提高了網(wǎng)絡(luò)的整體性能。三層交換機(jī)通過路由表傳輸?shù)谝粋€(gè)數(shù)據(jù)流后,會產(chǎn)生一個(gè)MAC地址與IP地址的映射表。當(dāng)同樣的數(shù)據(jù)流再次通過時(shí),將根據(jù)此表直接從二層通過而不是通過三層,從而消除了路由器進(jìn)行路由選擇而造成的網(wǎng)絡(luò)延遲,提高了數(shù)據(jù)包轉(zhuǎn)發(fā)效率。
為了保證第一次數(shù)據(jù)流通過路由表正常轉(zhuǎn)發(fā),路由表中必須有正確的路由表項(xiàng)。因此必須在三層交換機(jī)上部署三層接口并部署路由協(xié)議,實(shí)現(xiàn)三層路由可達(dá)。VLANIF接口由此而產(chǎn)生。
VLANIF接口是三層邏輯接口,可以部署在三層交換機(jī)上,也可以部署在路由器上。
在所示的網(wǎng)絡(luò)中,交換機(jī)上劃分了2個(gè)VLAN:VLAN2和VLAN3。可通過如下配置實(shí)現(xiàn)VLAN間互通。
. 在Device上創(chuàng)建2個(gè)VLANIF接口并配置VLANIF接口的IP地址,保證兩個(gè)VLANIF接口對應(yīng)的IP地址路由可通。
. 將用戶設(shè)備的缺省網(wǎng)關(guān)設(shè)置為所屬VLAN對應(yīng)VLANIF接口的IP地址。
圖5-9 通過VLANIF接口實(shí)現(xiàn)VLAN間的通信
主機(jī)A和C的通信過程如下:
2. 主機(jī)A將主機(jī)C的IP地址和自己所在網(wǎng)段進(jìn)行比較,發(fā)現(xiàn)主機(jī)C和自己不在同一個(gè)子網(wǎng)。
2. 主機(jī)A發(fā)送ARP請求給自己的網(wǎng)關(guān)Device,請求網(wǎng)關(guān)的MAC地址。
2. Device收到該ARP請求后,返回ARP應(yīng)答報(bào)文,報(bào)文中源MAC地址為VLANIF2的MAC地址。
2. 主機(jī)A學(xué)習(xí)到網(wǎng)關(guān)的MAC地址。
2. 主機(jī)A向網(wǎng)關(guān)發(fā)送目的MAC為VLANIF接口MAC地址、目的IP為主機(jī)C的IP地址的報(bào)文。
2. Device收到該報(bào)文后進(jìn)行三層轉(zhuǎn)發(fā),發(fā)現(xiàn)主機(jī)C的IP地址為直連路由,報(bào)文將通過VLANIF3接口進(jìn)行轉(zhuǎn)發(fā)。
2. Device作為VLAN3內(nèi)主機(jī)的網(wǎng)關(guān),向VLAN3內(nèi)發(fā)送一個(gè)ARP廣播,請求主機(jī)C的MAC地址。
2. 主機(jī)C收到網(wǎng)關(guān)發(fā)送的ARP廣播后,對此請求進(jìn)行ARP應(yīng)答。
2. 網(wǎng)關(guān)收到主機(jī)C的應(yīng)答后,就把主機(jī)A的報(bào)文發(fā)送給主機(jī)C。主機(jī)A之后要發(fā)給C的報(bào)文都先發(fā)送給網(wǎng)關(guān),由網(wǎng)關(guān)做三層轉(zhuǎn)發(fā)。
5.2.3 VLAN Aggregation
產(chǎn)生背景
交換網(wǎng)絡(luò)中,VLAN技術(shù)以其對廣播域的靈活控制和部署方便而得到了廣泛的應(yīng)用。但是在一般的三層交換機(jī)中,通常是采用一個(gè)VLAN對應(yīng)一個(gè)三層邏輯接口的方式實(shí)現(xiàn)廣播域之間的互通,這樣導(dǎo)致了IP地址的浪費(fèi)。例如,設(shè)備內(nèi)VLAN劃分如圖5-10所示。
圖5-10 普通VLAN網(wǎng)絡(luò)示意圖
表5-4 普通VLAN服務(wù)器地址劃分示例
如表5-4所示,VLAN2預(yù)計(jì)未來有10個(gè)服務(wù)器地址的需求,給其分配一個(gè)掩碼長度是28的子網(wǎng)10.1.1.0/28,其中10.1.1.0為子網(wǎng)號,10.1.1.15為子網(wǎng)定向廣播地址,這兩個(gè)地址都不能用作服務(wù)器地址,此外,10.1.1.1作為子網(wǎng)缺省網(wǎng)關(guān)地址也不可作為服務(wù)器地址,剩下范圍在10.1.1.2~10.1.1.14的地址可以被服務(wù)器使用,共13個(gè)。這樣,盡管VLAN2只需要10個(gè)地址,但是按照子網(wǎng)劃分卻要分給它13個(gè)地址。
同理,VLAN3預(yù)計(jì)未來有5個(gè)服務(wù)器地址的需求,至少需要分配一個(gè)掩碼長度是29的子網(wǎng)10.1.1.16/29。VLAN4預(yù)計(jì)未來只有1個(gè)服務(wù)器,則分配一個(gè)掩碼長度是30的子網(wǎng)10.1.1.24/30。
上述VLAN一共需要10+5+1=16個(gè)地址,但是按照普通VLAN的編址方式,即使最優(yōu)化的方案也需要占用16+8+4=28個(gè)地址,浪費(fèi)了將近一半的地址。而且,如果VLAN2后來并沒有10臺服務(wù)器,而實(shí)際只接入了3臺服務(wù)器,那么多出來的地址也會因不能再被其他VLAN使用而被浪費(fèi)掉。
同時(shí),這種劃分也給后續(xù)的網(wǎng)絡(luò)升級和擴(kuò)展帶來了很大不便。假設(shè)VLAN4今后需要再增加2臺服務(wù)器,而又不愿意改變已經(jīng)分配的IP地址。并且在10.1.1.24后面的地址已經(jīng)分配給了其他人的情況下,只能再給VLAN4的新用戶重新分配一個(gè)的29位掩碼的子網(wǎng)和一個(gè)新的VLAN。這樣VLAN4中的客戶雖然只有3臺服務(wù)器,但是卻被分配在兩個(gè)子網(wǎng)中,并且也不在同一個(gè)VLAN內(nèi),不利于網(wǎng)絡(luò)管理。
綜上所述,很多IP地址被子網(wǎng)號、子網(wǎng)定向廣播地址、子網(wǎng)缺省網(wǎng)關(guān)地址消耗掉,而不能用于VLAN內(nèi)的服務(wù)器地址。同時(shí),這種地址分配的約束也降低了編址的靈活性,使許多閑置地址也被浪費(fèi)掉。為了解決這一問題VLAN Aggregation就應(yīng)運(yùn)而生。
實(shí)現(xiàn)原理
VLAN Aggregation(VLAN聚合,也稱Super VLAN)技術(shù)就是在一個(gè)物理網(wǎng)絡(luò)內(nèi),用多個(gè)VLAN隔離廣播域,使不同的VLAN屬于同一個(gè)子網(wǎng)。它引入了Super-VLAN和Sub-VLAN的概念。
· Super-VLAN:和通常意義上的VLAN不同,它只建立三層接口,與該子網(wǎng)對應(yīng),而且不包含物理接口。可以把它看作一個(gè)邏輯的三層概念—若干Sub-VLAN的集合。
· Sub-VLAN:只包含物理接口,用于隔離廣播域的VLAN,不能建立三層VLANIF接口。它與外部的三層交換是靠Super-VLAN的三層接口來實(shí)現(xiàn)的。
一個(gè)Super-VLAN可以包含一個(gè)或多個(gè)保持著不同廣播域的Sub-VLAN。Sub-VLAN不再占用一個(gè)獨(dú)立的子網(wǎng)網(wǎng)段。在同一個(gè)Super-VLAN中,無論服務(wù)器屬于哪一個(gè)Sub-VLAN,它的IP地址都在Super-VLAN對應(yīng)的子網(wǎng)網(wǎng)段內(nèi)。
這樣,Sub-VLAN間共用同一個(gè)三層接口,既減少了一部分子網(wǎng)號、子網(wǎng)缺省網(wǎng)關(guān)地址和子網(wǎng)定向廣播地址的消耗,又實(shí)現(xiàn)了不同廣播域使用同一子網(wǎng)網(wǎng)段地址的目的。消除了子網(wǎng)差異,增加了編址的靈活性,減少了閑置地址浪費(fèi)。
仍以所示例子進(jìn)行說明。用戶需求不變。仍舊是VLAN2預(yù)計(jì)未來有10個(gè)服務(wù)器地址的需求,VLAN3預(yù)計(jì)未來有5個(gè)服務(wù)器地址的需求,VLAN4預(yù)計(jì)未來有1個(gè)服務(wù)器地址的需求。
按照VLAN Aggregation的實(shí)現(xiàn)方式,新建VLAN10并配置為Super-VLAN,給其分配一個(gè)掩碼長度是24的子網(wǎng)10.1.1.0/24,其中10.1.1.0為子網(wǎng)號,10.1.1.1為子網(wǎng)網(wǎng)關(guān)地址如圖5-11所示。Sub-VLAN(VLAN2、VLAN3、VLAN4)的地址劃分如表5-5所示。
圖5-11 VLAN Aggregation網(wǎng)絡(luò)示意圖
表5-5 VLAN Aggregation服務(wù)器地址劃分示例
VLAN Aggregation的實(shí)現(xiàn)中,各Sub-VLAN間的界線也不再是從前的子網(wǎng)界線了,它們可以根據(jù)其各自服務(wù)器的需求數(shù)目在Super-VLAN對應(yīng)子網(wǎng)內(nèi)靈活的劃分地址范圍。
從中可以看到,VLAN2、VLAN3和VLAN4共用同一個(gè)子網(wǎng)(10.1.1.0/24)、子網(wǎng)缺省網(wǎng)關(guān)地址(10.1.1.1)和子網(wǎng)定向廣播地址(10.1.1.255)。這樣,普通VLAN實(shí)現(xiàn)方式中用到的其他子網(wǎng)號(10.1.1.16、10.1.1.24)和子網(wǎng)缺省網(wǎng)關(guān)(10.1.1.17、10.1.1.25),以及子網(wǎng)定向廣播地址(10.1.1.15、10.1.1.23、10.1.1.27)就都可以用來作為服務(wù)器IP地址使用。
這樣,3個(gè)VLAN一共需要10+5+1=16個(gè)地址,實(shí)際上在這個(gè)子網(wǎng)里就剛好分配了16個(gè)地址(10.1.1.2~10.1.1.17)。這16個(gè)服務(wù)器地址加上子網(wǎng)號(10.1.1.0)、子網(wǎng)缺省網(wǎng)關(guān)(10.1.1.1)和子網(wǎng)定向廣播地址(10.1.1.255),一共用去了19個(gè)IP地址,網(wǎng)段內(nèi)仍剩余255-19=236的地址可以被任意Sub-VLAN內(nèi)的服務(wù)器使用。
VLAN間通信
· 概述
VLAN Aggregation在實(shí)現(xiàn)不同VLAN間共用同一子網(wǎng)網(wǎng)段地址的同時(shí)也帶來了Sub-VLAN間的三層轉(zhuǎn)發(fā)問題。
普通VLAN實(shí)現(xiàn)方式中,VLAN間的服務(wù)器可以通過各自不同的網(wǎng)關(guān)進(jìn)行三層轉(zhuǎn)發(fā)來達(dá)到互通的目的。但是VLAN Aggregation方式下,同一個(gè)Super-VLAN內(nèi)的服務(wù)器使用的是同一個(gè)網(wǎng)段的地址和共用同一個(gè)網(wǎng)關(guān)地址。即使是屬于不同的Sub-VLAN的服務(wù)器,由于它們同屬一個(gè)子網(wǎng),彼此通信時(shí)只會做二層轉(zhuǎn)發(fā),而不會通過網(wǎng)關(guān)進(jìn)行三層轉(zhuǎn)發(fā)。而實(shí)際上不同的Sub-VLAN的服務(wù)器在二層是相互隔離的,這就造成了Sub-VLAN間無法通信的問題。
解決這一問題的方法就是使用Proxy ARP。
說明:
關(guān)于Proxy ARP的原理,請參見《IP業(yè)務(wù)》中的"ARP"。
· 不同Sub-VLAN間的三層互通
例如,Super-VLAN(VLAN10)包含Sub-VLAN(VLAN2和VLAN3),具體組網(wǎng)如圖5-12所示。
圖5-12 Proxy ARP實(shí)現(xiàn)不同Sub-VLAN間的三層互通組網(wǎng)圖
VLAN2內(nèi)的服務(wù)器A與VLAN3內(nèi)的服務(wù)器B的通信過程如下:(假設(shè)服務(wù)器A的ARP表中無服務(wù)器B的對應(yīng)表項(xiàng)并且網(wǎng)關(guān)上使能了Sub-VLAN間的Proxy ARP)。
1. 服務(wù)器A將服務(wù)器B的IP地址(10.1.1.3)和自己所在網(wǎng)段10.1.1.0/24進(jìn)行比較,發(fā)現(xiàn)服務(wù)器B和自己在同一個(gè)子網(wǎng),但是服務(wù)器A的ARP表中無服務(wù)器B的對應(yīng)表項(xiàng)。
2. 服務(wù)器A發(fā)送ARP廣播,請求服務(wù)器B的MAC地址。
3. 服務(wù)器B并不在VLAN2的廣播域內(nèi),無法接收到服務(wù)器A的這個(gè)ARP請求。
4. 由于網(wǎng)關(guān)上使能Sub-VLAN間的Proxy ARP,當(dāng)網(wǎng)關(guān)收到服務(wù)器A的ARP請求后,開始在路由表中查找,發(fā)現(xiàn)ARP請求中的服務(wù)器B的IP地址(10.1.1.3)為直連接口路由,則網(wǎng)關(guān)向所有其他Sub-VLAN接口發(fā)送一個(gè)ARP廣播,請求服務(wù)器B的MAC地址。
5. 服務(wù)器B收到網(wǎng)關(guān)發(fā)送的ARP廣播后,對此請求進(jìn)行ARP應(yīng)答。
6. 網(wǎng)關(guān)收到服務(wù)器B的應(yīng)答后,就把自己的MAC地址當(dāng)作B的MAC地址回應(yīng)給服務(wù)器A。
7. 網(wǎng)關(guān)的ARP表項(xiàng)中存在服務(wù)器B的對應(yīng)表項(xiàng)。
8. 服務(wù)器A之后要發(fā)給B的報(bào)文都先發(fā)送給網(wǎng)關(guān),由網(wǎng)關(guān)做三層轉(zhuǎn)發(fā)。
服務(wù)器B發(fā)送報(bào)文給服務(wù)器A的過程和上述的A到B的報(bào)文流程類似,不再贅述。
· Sub-VLAN與外部網(wǎng)絡(luò)的二層通信
在基于接口的VLAN二層通信中,無論是數(shù)據(jù)幀進(jìn)入接口還是從接口發(fā)出都不會有針對Super-VLAN的報(bào)文。如圖5-13所示。
圖5-13 Sub-VLAN與外部網(wǎng)絡(luò)的二層通信組網(wǎng)圖
從ServerA側(cè)Port1進(jìn)入設(shè)備Switch1的幀會被打上VLAN2的Tag,在設(shè)備Switch1中這個(gè)Tag不會因?yàn)閂LAN2是VLAN10的Sub-VLAN而變?yōu)閂LAN10的Tag。該數(shù)據(jù)幀從Trunk類型的接口Port3出去時(shí),依然是攜帶VLAN2的Tag。
也就是說,設(shè)備Switch1本身不會發(fā)出VLAN10的報(bào)文。就算其他設(shè)備有VLAN10的報(bào)文發(fā)送到該設(shè)備上,這些報(bào)文也會因?yàn)樵O(shè)備Switch1上沒有VLAN10對應(yīng)物理接口而被丟棄。
Super-VLAN中是不存在物理接口的,這種限制是強(qiáng)制的,表現(xiàn)在:
. 如果先配置了Super-VLAN,再配置Trunk接口時(shí),Trunk的VLAN allowed表項(xiàng)里就自動濾除了Super VLAN。
如所示,雖然Switch1的Port3允許所有的VLAN通過,但是也不會有做為Super-VLAN的VLAN10的報(bào)文從該接口進(jìn)出。
. 如果先配好了Trunk接口,并允許所有VLAN通過,則在此設(shè)備上將無法配置Super VLAN。本質(zhì)原因是有物理接口的VLAN都不能被配置為Super VLAN。而允許所有VLAN通過的Trunk接口是所有VLAN的tagged接口,當(dāng)然任何VLAN都不能被配置為Super VLAN。
對于設(shè)備Switch1而言,有效的VLAN只有VLAN2和VLAN3,所有的數(shù)據(jù)幀都在這兩個(gè)VLAN中轉(zhuǎn)發(fā)的。
· Sub-VLAN與外部網(wǎng)絡(luò)的三層通信
圖5-14 Sub-VLAN與外部網(wǎng)絡(luò)的三層通信組網(wǎng)圖
如所示,Switch1上配置了Super-VLAN 4,Sub-VLAN 2和Sub-VLAN 3,并配置一個(gè)普通的VLAN10;Switch2上配置兩個(gè)普通的VLAN 10和VLAN 20。假設(shè)Super-VLAN 4中的Sub-VLAN 2下的服務(wù)器A想訪問與Switch2相連的服務(wù)器C,通信過程如下:(假設(shè)Switch1上已配置了去往10.1.3.0/24網(wǎng)段的路由,Switch2上已配置了去往10.1.1.0/24網(wǎng)段的路由)
4. 服務(wù)器A將服務(wù)器C的IP地址(10.1.3.2)和自己所在網(wǎng)段10.1.1.0/24進(jìn)行比較,發(fā)現(xiàn)服務(wù)器C和自己不在同一個(gè)子網(wǎng)。
4. 服務(wù)器A發(fā)送ARP請求給自己的網(wǎng)關(guān),請求網(wǎng)關(guān)的MAC地址。
4. Switch1收到該ARP請求后,查找Sub-VLAN和Super-VLAN的對應(yīng)關(guān)系,從Sub-VLAN 2發(fā)送ARP應(yīng)答給服務(wù)器A。ARP應(yīng)答報(bào)文中的源MAC地址為Super-VLAN 4對應(yīng)的VLANIF4的MAC地址。
4. 服務(wù)器A學(xué)習(xí)到網(wǎng)關(guān)的MAC地址。
4. 服務(wù)器A向網(wǎng)關(guān)發(fā)送目的MAC為Super-VLAN 4對應(yīng)的VLANIF4的MAC、目的IP為10.1.3.2的報(bào)文。
4. Switch1收到該報(bào)文后進(jìn)行三層轉(zhuǎn)發(fā),下一跳地址為10.1.2.2,出接口為VLANIF10,把報(bào)文發(fā)送給Switch2。
4. Switch2收到該報(bào)文后進(jìn)行三層轉(zhuǎn)發(fā),通過直連出接口VLANIF20,把報(bào)文發(fā)送給服務(wù)器C。
4. 服務(wù)器C的回應(yīng)報(bào)文,在Switch2上進(jìn)行三層轉(zhuǎn)發(fā)到達(dá)Switch1。
4. Switch1收到該報(bào)文后進(jìn)行三層轉(zhuǎn)發(fā),通過Super-VLAN,把報(bào)文發(fā)送給服務(wù)器A。
5.2.4 VLAN Damping