網絡硬件性能的不斷提高、成本的不斷降低,目前新建立的校園網基本上都采用了性能先進的千兆網技術,其核心交換機采用三層交換機,它能很好地支持虛擬局域網(VLAN)技術,虛擬網絡技術打破了地理環(huán)境的制約,在不改動網絡物理連接的情況下可以任意將工作站在工作組或子網之間移動,工作站組成邏輯工作組或虛擬子網,提高信息系統(tǒng)的運作性能,均衡網絡數據流量,合理利用硬件及信息資源。同時,利用虛擬網絡技術,大大減輕了網絡管理和維護工作的負擔,降低網絡維護費用。隨著虛擬網絡技術的應用,隨之必然產生了在虛擬網間如何通訊的問題.
VLAN 概 述
VLAN是一個根據作用、計劃組、應用等進行邏輯劃分的交換式網絡。與用戶的物理位置沒有關系。舉個例子來說,幾個終端可能被組成一個部分,可能包括工程師或財務人員。當終端的實際物理位置比較相近,可以組成一個局域網(LAN)。如果他們在不同的建筑物中,就可以通過VLAN將他們聚合在一起。同一個VLAN中的端口可以接受VLAN中的廣播包。但別的VLAN中的端口卻接受不到。
VLAN提供以下一些特性
1 簡化了終端的刪除、增加、改動
當一個終端從物理上移動到一個新的位置,它的特征可以從網絡管理工作站通過SNMP或用戶界面菜單中重新定義。而對于僅在同一個VLAN中移動的終端來說,它會保持以前定義的特征。在不同VLAN中移動的終端來說,終端可以獲得新的VLAN定義。
2 控制通訊活動
VLAN可以由相同或不同的交換機端口組成。廣播信息被限制在VLAN中。這個特征限定了只在VLAN中的端口才有廣播、多播通訊。管理域(management domain)是一個僅有單一管理者的多個VLAN的集合。
3 工作組和網絡安全
將網絡劃分不同的域可以增加安全性。VLAN可以限制廣播域的用戶數。控制VLAN的大小和組成可以控制廣播域的相應特性。
TRUNK的介紹
Trunk(干道)是一種封裝技術,它是一條點到點的鏈路,主要功能就是僅通過一條鏈路就可以連接多個交換機從而擴展已配置的多個VLAN。還可以采用通過Trunk技術和上級交換機級連的方式來擴展端口的數量,可以達到近似堆疊的功能,節(jié)省了網絡硬件的成本,從而擴展整個網絡。
TRUNK承載的VLAN范圍。缺省下是1~1005,可以修改,但必須有1個Trunk協議。使用Trunk時,相鄰端口上的協議要一致。
Trunk工作過程
要傳輸多個VLAN的通信,需要用專門的協議封裝或者加上標記(tag),以便接收設備能區(qū)分數據所屬的VLAN。VLAN標識從邏輯上定義了,哪個數據包是它有多種協議,而我們最常用到的是基于:IEEE802.1Q和CISCO專用的協議:ISL。下面我簡要的介紹一下這兩種協議。
1.交換機間鏈路(ISL)是一種CISCO專用的協議,用于連接多個交換機。當數據在交換機之間傳遞時負責保持VLAN信息的協議。在一個ISL干道端口中,所有接收到的數據包被期望使用ISL頭部封裝,并且所有被傳輸和發(fā)送的包都帶有一個ISL頭。從一個ISL端口收到的本地幀(non-tagged)被丟棄。它只用在CISCO產品中。
2.IEEE802.1Q正式名稱是虛擬橋接局域網標準,用在不同的產家生產的交換機之間。一個IEEE802.1Q干道端口同時支持加標簽和未加標簽的流量。一個802.1Q干道端口被指派了一個缺省的端口Vlan ID(PVID),并且所有的未加標簽的流量在該端口的缺省PVID上傳輸。一個帶有和外出端口的缺省PVID相等的Vlan ID的包發(fā)送時不被加標簽。所有其他的流量發(fā)送是被加上Vlan標簽的。
在設置trunk后,trunk 鏈路不屬于任何一個VLAN。trunk鏈路在交換機之間起著VLAN管道的作用,交換機會將該trunk以外并且和trunk中的端口處于一個vlan中的其它端口的負載自動分配到該trunk中的各個端口。因為同一個vlan中的端口之間會相互轉發(fā)數據報,而位于trunk中的trunk端口被當作一個端口來看待,如果vlan中的其它非trunk端口的負載不分配到各個trunk端口,則有些數據報可能隨機的發(fā)往trunk而導致幀順序混亂。由于trunk口作為1個邏輯端口看待,因此在設置了trunk后,該trunk將自動加入到這些vlan中它的成員端口所屬的vlan中,而其成員端口則自動從vlan中刪除。
在中TRUNK線路上傳輸不同的VLAN的數據時,可使用有兩種方法識別不同的VLAN的數據:幀過濾和幀標記。幀過濾法根據交換機的過濾表檢查幀的詳細信息。每一個交換機要維護復雜的過濾表,同時對通過主干的每一個幀進行詳細檢查,這會增加網絡延遲時間。目前在VLAN中這種方法已經不使用了。現在使用的是幀標記法。數據幀在中繼線上傳輸的時候,交換機在幀頭的信息中加標記來指定相應的VLAN ID。當幀通過中繼以后,去掉標記同時把幀交換到相應的VLAN端口。幀標記法被IEEE選定為標準化的中繼機制。它至少有如下三種處理方法:
1) 靜態(tài)干線配置
靜態(tài)干線配置最容易理解。干線上每一個交換機都可由程序設定發(fā)送及接收使用特定干
線連接協議的幀。在這種設置下,端口通常專用于干線連接,而不能用于連接端節(jié)點,至少
不能連接那些不使用干線連接協議( trunking protocol)的端節(jié)點。當自動協商機制不能正常工作或不可用時,靜態(tài)配置是非常有用的,其缺點是必須手工維護。
2) 干線功能通告
交換機可以周期性地發(fā)送通告幀,表明它們能夠實現某種干線連接功能。例如,交換機
可以通告自己能夠支持某種類型的幀標記V L A N,因此按這個交換機通告的幀格式向其發(fā)送幀是不會有錯的。交換機的功能還止這些,它還可以通告它現在想為哪個V L A N提供干線連接服務。這類干線設置對于一個由端節(jié)點和干線混合組成的網段可能會很有用。
3) 干線自動協商
干線也能通過協商過程自動設置。在這種情況下,交換機周期性地發(fā)送指示幀,表明它
們希望轉到干線連接模式。如果另一端的交換機收到并識別這些幀,并自動進行配置,那么
這兩部交換機就會將這些端口設成干線連接模式。這種自動協商通常依賴于兩部交換機(在同一網段上)之間已有的鏈路,并且與這條鏈路相連的端口要專用于干線連接,這與靜態(tài)干線設置非常相似。
Trunk的優(yōu)點:
1、可以在不同的交換機之間連接多個VLAN,可以將VLAN擴展到整個網絡中。
2、Trunk可以捆綁任何相關的端口,也可以隨時取消設置,這樣提供了很高的靈活性。
3、Trunk可以提供負載均衡能力以及系統(tǒng)容錯。由于Trunk實時平衡各個交換機端口和服務器接口的流量,一旦某個端口出現故障,它會自動把故障端口從Trunk組中撤消,進而重新分配各個Trunk端口的流量,從而實現系統(tǒng)容錯。
實例應用
V L A N交換機的主要特點是能夠在單個交換機內部或多個交換機之間支持多個獨立的V L A N。對于多個V L A N交換機來說,一條干線就是兩個交換機之間的連接,它在兩個或兩個以上的V L A N之間傳輸數據流。這與兩個普通網橋之間的一條鏈路不同,因為每個交換機必須確定它所收到的幀屬于哪個V L A N。雖然這增加了某種復雜性,但同時也帶來了很大的靈活性。
下面以3550交換機為例,簡要的介紹以下重要的配置。
創(chuàng)建VLAN如下:
3550switch#vlan database
3550switch(vlan)#vlan 2 name A2
3550switch(vlan)#vlan 3 name A3
3550switch(vlan)#vlan 4 name A4
把各個端口分配到適當的VLAN中:
3550switch(config)#interface range fastEthernet 0/5 – 8
3550swutcg(config-if)#switchport access vlan 2 (5 至 8 端口放入VLAN2中)
3550switch(config)#interface range fastEthernet 0/9 – 11
3550swutcg(config-if)#switchport access vlan 3 (9 至 11 端口放入VLAN3中)
3550switch(config)#interface range fastEthernet 0/12 – 15
3550swutcg(config-if)#switchport access vlan 4 (11 至 15 端口放入VLAN4中)
應該注意,interface range fastEthernet X/X –X 是應用在Cisco IOS 軟件12.1以上的版本,如果你使用的是CiscoIOS軟件12.1以前的發(fā)布的版本的話,應該用命令:switchport access vlan vlanID ,把端口加入VLAN。
在特權模式下使用命令:show vlan 來檢查是否將端口分配給正確的VLAN。
可以看出其它的端口全默認在VLAN1中。
在這個應用中,我把3550的fastE 0/2和2950的fastE 0/1端口分別設配為TRUNK口,并在每一個端口都采用ISL干道封裝:
3550switch(config)#interfasce fa0/2
3550switch(config-if)#switchport mode trunk
3550switch(config-if)#switchport trunk encapsulation isl
需要注意的是,trunk 端口缺省情況下會傳送所有的VLAN的通信。
要查看trunk端口的信息和允許的VLAN
可以使用命令:show interfas interface-id switchport。
Name: Fa0/1
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Voice VLAN: none (Inactive)
Appliance trust: none
要限制trunk傳送的VLAN,從允許的VLAN 列表中去除某些VLAN。
可以使用接口配置命令:
3550switch(config-if)#switchport trunk allowed vlan remove vlan-list
對于2950的設置和上面的3500交換機的配置一樣,在這就不再贅述。而只把端口3至6分配到VLAN2中,7至10分配到VLAN3中,11至13分配到VLAN4中,其它端口在默認的VLAN1中。重要的是在2950交換機封裝TRUNK的協議要相同。
如果在這個例子中,在Catalyst3550交換機的VLAN2中有一主機hostA其IP地址設置為:192.168.0.2/24,在Catalyst2950交換機的VLAN2中也有一主機hostB其IP地址設置為:192.168.0.6/24。如果在2950的交換機的hostA PING對方hostB的話,可以看到,交換機2950用標識為VLAN2的ISL頭封裝數據幀,并通過trunk 鏈路發(fā)送到3550的交換機中。而3550接收到其數據幀的話,首先除去ISL頭,然后封裝自已的信息,從重復2950的過程并轉發(fā)給2950。但是如果在這兩臺交換機之中,這兩個工作站分別在不同的VLAN之中,則相互PING對方的話,是不通的。從而說明,不同交換機之間的工作站通過TRUNK相連接,只有這些工作站在同一個VLAN之中才可以相互通信,而不同VLAN中的工作站是不能通過TRUNK來通信的。