殷麗
1中國礦業大學計算機學院 江蘇 221116
2徐州師范大學信息網絡中心 江蘇 221116
隨著校園信息化建設的深入發展,高等院校校園網已成為實現教學、科研、管理、資源共享等多種應用服務的重要基礎設施。交換式以太網以其高帶寬、技術成熟、成本低廉、易于建設和管理等優勢,成為高等院校校園網建設的主流方案。用交換機取代集線器建立的局域網有效地隔離了沖突域,但從整體上仍處于一個廣播域。隨著局域網內主機數的增加和用戶對帶寬的需要越來越高,交換機通過各種方式的連接將網絡范圍擴大,引起網絡性能的急劇下降,因為多個交換機互連的網絡仍處在一個廣播域中。為了解決這個問題,人們開發了虛擬局域網(Virtual LAN,VLAN)技術,其主要特征是:控制廣播、安全性高、靈活性及可擴展性好。本文分析了 VLAN的組播/廣播流量泛洪形成的原因,提出存在的問題,并針對問題給出了VLAN裁剪的解決方案。
徐州師范大學校園網采用千兆交換式以太網接入,分四個校區,校區之間以千兆光纖互連,全校共計近20000個信息點。主校區采用思科C6509作為核心設備,匯聚層和接入層設備采用思科和銳捷等多品牌設備互連。由于網絡規模龐大、信息點覆蓋面廣、用戶數多,劃分虛擬局域網未實施VLAN裁剪之前在運行過程中暴露出因VLAN的組播/廣播流量泛洪造成無謂的帶寬消耗嚴重。
在交換式網絡中配置VLAN后,交換機會根據端口不同的鏈路類型決定對通過的幀采取怎樣的處理方式。
該鏈路類型的端口只屬于一個VLAN,僅向該VLAN轉發數據幀,不能與其他VLAN的設備進行通信,除非數據包是被路由轉發的。所屬的VLAN需要手工配置,端口所連一般為客戶機。
所謂中繼鏈路,是指能夠轉發多個不同VLAN通信的端口。通俗地講,就是將上例中用于交換機間同一VLAN互連的多根網線集中到一根上。中繼鏈路一般是兩個交換機之間100Mbps或1000Mbps的點到點鏈路,也可以用于交換機與路由器之間或交換機與服務器之間。它承載多個VLAN的通信量(1~1005個VLAN),使單個端口同時屬于多個VLAN,可以透明傳輸交換機上所有VLAN的幀,作為跨交換機的相同VLAN傳輸數據用。
圖1顯示了不同的鏈路怎樣用在交換式網絡中。位于不同交換機相同VLAN的主機A和主機B能夠通信,正是因為它們之間有中繼鏈路。

圖1 交換式網絡中的訪問鏈路和中繼鏈路
那么,設置為中繼鏈路的端口是如何識別不同VLAN信息的呢?
2.2.1 VLAN劃分的標準問題
在交換機的中繼鏈路上,可以通過對數據幀附加VLAN信息,構建跨越多臺交換機的VLAN。附加VLAN信息的涉及對以太網數據鏈路幀的處理,最具代表性的處理方式有兩個標準:一個是開放標準IEEE 802.1Q,一個是Cisco公司的私有標準 ISL。由于徐州師范大學校園網中同時使用了思科及銳捷設備,這里對這兩個標準進行簡要介紹。
(1)IEEE 802.1Q
1996年3月,IEEE 802.1 Internet Working委員會結束了對VLAN初期標準的修訂工作。新標準進一步完善了VLAN的體系結構,統一了Frame-Tagging方式中不同廠商的標簽格式,并制定802.1Q VLAN標準。我們先看看標準以太幀格式(圖2)和802.1Q幀格式(圖3)的比較。

圖2 以太網幀格式

圖3 802.1Q幀格式
通過對比發現,IEEE 802.1Q將原有數據幀拆幀后,加入新字段進行重新封裝,使用 4字節的標記頭定義 Tag(標記),4字節的Tag頭包括2字節的TPID(Tag Protocol Identifier)和2字節TCL(Tag Control Information)。其中TPID是固定的值0X8100。標識該數據幀承載802.1Q的Tag信息。TCL包含組件:3比特用戶優先級;1比特 CFI(Canonical Format Indicator),默認值為0;12比特的VID(VLAN Identifier,VLAN標識符)。VID的取值范圍為1~4094,其中VLAN1是不可刪除的默認VLAN。
(2)ISL
ISL(Interior Switching Link)是Cisco產品支持的一種與IEEE 802.1Q類似的、用于在中繼鏈路上附加VLAN信息的私有協議,它在原有數據幀基礎上加上新字段后再進行封裝。使用ISL后,每個數據幀頭部都會被附加26字節的“ISL包頭(ISL Header)”,并且在幀尾帶上通過對包括ISL包頭在內的整個數據幀進行計算后得到的4字節 CRC值。換而言之,就是總共增加了30字節的信息。
在使用ISL的環境下,當數據幀離開中繼鏈路時只要簡單地去除ISL包頭和新CRC就可以了。由于原來的數據幀及其CRC都被完整保留,因此無需重新計算CRC。由于ISL有如用ISL包頭和新CRC將原數據幀整個包裹起來,因此也被稱為“封裝型VLAN(Encapsulated VLAN)”。
需要注意的是,不論是IEEE 802.1Q的“Tagging VLAN”,還是ISL的“Encapsulated VLAN”,都不是很嚴密的稱謂。不同的書籍與參考資料中,上述詞語有可能被混合使用。同時,由于ISL是Cisco的私有協議,因此只能用于Cisco網絡設備之間的互連(目前Cisco公司自己的一些交換設備中也不一定支持ISL)。如果在網絡架構時選擇了多個廠家的設備,應注意在中繼鏈路配置時將其封裝為802.1Q標準格式。
下面以 802.1Q標準為例簡要了解中繼鏈路端口識別不同VLAN信息的過程。
2.2.2 中繼鏈路端口對VLAN的識別過程
802.1 Q協議使跨交換機的相同VLAN端口間的通信成為可能。基于802.1Q的Tag VLAN用VID來劃分不同的VLAN,當數據幀通過交換機時,交換機根據幀中Tag頭的VID信息來識別它們所在的VLAN(若幀中無Tag頭,則應用幀所通過端口的默認VID信息來識別它們所在的VLAN),這使得所有屬于該VLAN的數據幀,不管是單播幀、多播幀還是廣播幀,都將限制在該邏輯VLAN中傳播。這將使組中主機之間能夠相互通信,而不受其他主機的影響,就像它們存在于單獨的VLAN中一樣。
示例:拓撲結構如圖4所示,在兩臺RG-S2126G上分別劃分兩個VLAN:VLAN10和VLAN20,設置第一臺的第24口及第二臺的第24口為trunk模式,作為兩臺交換機的級聯口。主機A和C屬于VLAN10,主機B和D屬于VLAN20。

圖4 兩臺交換機網絡拓撲結構
主機A向主機C發送數據,必須跨兩臺交換機,其工作過程如下:
(1)主機A發送數據,在進入交換機端口之前,數據幀的頭部并沒有被加入Tag標識,當數據幀進入交換機端口后,數據幀的頭部首先被加入該端口所屬的VID=10。
(2)交換機 S1按照該數據幀中封裝的目標地址轉發,在VID=10的VLAN中廣播該幀。由于S1上沒有連接主機C,所以數據幀只能發往潛在連接主機C的級聯端口24。
(3)S1的24口是一個中繼鏈路端口,當數據幀從該端口轉發時,即加入Tag標識,此時主機A發出的數據幀已經帶上了Tag標識。
(4)數據幀通過S1的級聯口24流向S2的級聯口24,在S2的端口24根據Tag標識將此數據幀在VLAN10中廣播出去。
(5)根據MAC地址,連接主機C的端口接收到數據幀,端口24去掉Tag標識后,轉發該數據幀到主機C。
這樣,就完成了跨交換機的VLAN內通信。同理主機C也可以發給主機A,主機B與主機D之間也可以實現數據通信。
可以看出,當同一VLAN中相互通信的主機不在一臺交換機上時,數據幀只能通過中繼鏈路端口來進行轉發。在默認條件下,中繼鏈路端口會轉發本交換機支持的所有VLAN的流量。換一個角度看,可以認為中繼鏈路端口同時屬于交換機上所有的VLAN。圖4描述了兩臺交換機的情況,假設網絡中存在幾百臺交換機時,會發生什么情況呢?
拓撲結構如圖5所示,主機A向主機B發送信息。由于A、B不在一個交換機上,所以S1只能通過潛在連接主機B的Trunk口將其轉發到S2。同理,在默認情況下,S3、S4、S5、S6都將收到該信息。其實理想的情況是只要S4收到該信息,再根據MAC地址轉發給主機B就可以了。Trunk接口默認是用來承載所有的VLAN信息,換句話說Trunk接口默認屬于所有的VLAN,因此來至任何VLAN的組播/廣播流量將被泛洪到整個交換區域中。LAN的范圍越大,Trunk鏈路越多,泛洪造成的無謂帶寬消耗就越嚴重。

圖5 多臺交換機網絡拓撲結構
由于實際應用中,中繼鏈路端口可能并不需要轉發所有VLAN的數據,因此為了減輕交換機的負擔,同時也減少對帶寬的浪費,我們通過設定限制能夠經由中繼鏈路互連的VLAN,也將不需要轉發的VLAN信息過濾掉。這也被稱為“VLAN裁剪”。
假設在交換機2上將其與交換機3的級連口進行VLAN裁剪,則主機A發給主機B的信息不會泛洪到交換機3上(如圖6)。

圖6 進行VLAN剪裁后交換機通信示意圖
為了高效、穩定地完成VLAN裁剪工作,盡可能減少實施過程中因誤操作對用戶造成的影響,徐州師范大學信息網絡中心制定了嚴密的實施流程。
(1)精確統計校園網范圍內所有交換機必須包含的VLAN信息
基于我校已建立二級網絡管理體系,這部分的工作主要交由各院系部門的二級網絡管理員完成,由二級網管負責本單位信息點的分布統計,再由信息網絡中心從整體上把握各臺交換機所必須包含的VLAN信息。
(2)思科設備、銳捷設備分開處理
由于校園網范圍內采用了思科和銳捷兩個廠商的設備,且這兩個廠商的設備在配置上存在差異,因此在VLAN裁剪實施過程中必須注意交換機的配置差異,特別需要注意上下級聯交換機分屬不同廠家的情況,注意兼容性配置。
(3)分片區實施
分片區實施的好處在于即使在實施過程中發生了誤操作,也能及時總結經驗,縮小影響范圍。
現以銳捷交換機為例,給出實現VLAN裁剪的一般配置方法。在交換機的特權配置模式,可以修改一個Trunk口的許可VLAN列表:
步驟1.進入全局配置模式。
Switch#configure terminal
步驟2.輸入要修改許可VLAN列表的Trunk口的端口號,進入接口配置模式。
Switch(config)#interface type number
步驟3.定義該接口為中繼鏈路類型。
Switch(config-if)#switchport mode trunk
步驟4.配置該Trunk口的許可VLAN列表。
Switch(config-if)#switchport trunk allowed vlan {all|[add| emove|except]} vlan-list
參數 vlan-list可以是一個 VLAN,也可以是一系列VLAN,以小的VLAN ID開頭,以大的VLAN ID結尾,中間用“-”號連接,如“10-20”。all的含義是許可VLAN列表包含所有支持的VLAN;add表示將指定VLAN列表加入許可VLAN列表,remove表示將指定VLAN列表從許可VLAN列表中刪除,except表示將除列出的VLAN列表外的所有VLAN加入許可VLAN列表。注意:不能將VLAN1從許可VLAN列表中移出。
步驟5.退回到特權命令模式。
Switch(config-if)#end
步驟6.檢查接口的完整信息。
Switch#show interfaces type number switchport
步驟7.將配置保存進配置文件。
Switch#copy running-config startup-config
注意:使用no switchport trunk allowed vlan接口配置命令把Trunk的許可VLAN改為默認。
綜上所述,通過VLAN裁剪我們可以減少沒有必要擴散的通信量,提高中繼鏈路的帶寬利用率。VLAN裁剪是為了方便VLAN的管理,但是使用不當也會給管理人員造成一定的麻煩,只有細致的掌握了VLAN裁剪的原理和使用方法,合理地進行使用才能更好地管理和使用好VLAN。
[1]秦森,楊艷.VLAN技術在企業網絡中的設計及應用[J].電腦知識與技術.2006.
[2]李文琴,汪大清.VLAN技術在組建校園網中的應用[J].計算機與現代化.2007.
[3]商陽.VLAN技術及其在校園網中的應用[J].科技信息(科學教研).2007.
[4]楊亞洲.高職院校校園網建設的規劃與研究[D].吉林大學.2007.