轉自(http://bbs.51cto.com/thread-238018-1-1.html)
cisco的vlan.trunk技術
Vlan中的Trunk技術在園區網中的應用
随着網絡硬體性能的不斷提高、成本的不斷降低,目前建立立的校園網基本上都采用了性能先進的千兆網技術,其核心交換機采用三層交換機,它能很好地支援虛拟區域網路(VLAN)技術,虛拟網絡技術打破了地理環境的制約,在不改動網絡實體連接配接的情況下可以任意将工作站在工作組或子網之間移動,工作站組成邏輯工作組或虛拟子網,提高資訊系統的運作性能,均衡網絡資料流量,合理利用硬體及資訊資源。同時,利用虛拟網絡技術,大大減輕了網絡管理和維護工作的負擔,降低網絡維護費用。随着虛拟網絡技術的應用,随之必然産生了在虛拟網間如何通訊的問題.
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技術和上級交換機級連的方式來擴充端口的數量,可以達到近似堆疊的功能,節省了網絡硬體的成本,進而擴充整個網絡。
TRUNK承載的VLAN範圍。預設下是1~1005,可以修改,但必須有1個Trunk協定。使用Trunk時,相鄰端口上的協定要一緻。
Trunk工作過程
要傳輸多個VLAN的通信,需要用專門的協定封裝或者加上标記(tag),以便接收裝置能區分資料所屬的VLAN。VLAN辨別從邏輯上定義了,哪個資料包是它有多種協定,而我們最常用到的是基于:IEEE802.1Q和CISCO專用的協定:ISL。下面我簡要的介紹一下這兩種協定。
1.交換機間鍊路(ISL)是一種CISCO專用的協定,用于連接配接多個交換機。當資料在交換機之間傳遞時負責保持VLAN資訊的協定。在一個ISL幹道端口中,所有接收到的資料包被期望使用ISL頭部封裝,并且所有被傳輸和發送的包都帶有一個ISL頭。從一個ISL端口收到的本地幀(non-tagged)被丢棄。它隻用在CISCO産品中。
2.IEEE802.1Q正式名稱是虛拟橋接區域網路标準,用在不同的産家生産的交換機之間。一個IEEE802.1Q幹道端口同時支援加标簽和未加标簽的流量。一個802.1Q幹道端口被指派了一個預設的端口Vlan ID(PVID),并且所有的未加标簽的流量在該端口的預設PVID上傳輸。一個帶有和外出端口的預設PVID相等的Vlan ID的包發送時不被加标簽。所有其他的流量發送是被加上Vlan标簽的。
在設定trunk後,trunk 鍊路不屬于任何一個VLAN。trunk鍊路在交換機之間起着VLAN管道的作用,交換機會将該trunk以外并且和trunk中的端口處于一個vlan中的其它端口的負載自動配置設定到該trunk中的各個端口。因為同一個vlan中的端口之間會互相轉發資料報,而位于trunk中的trunk端口被當作一個端口來看待,如果vlan中的其它非trunk端口的負載不配置設定到各個trunk端口,則有些資料報可能随機的發往trunk而導緻幀順序混亂。由于trunk口作為1個邏輯端口看待,是以在設定了trunk後,該trunk将自動加入到這些vlan中它的成員端口所屬的vlan中,而其成員端口則自動從vlan中删除。
在中TRUNK線路上傳輸不同的VLAN的資料時,可使用有兩種方法識别不同的VLAN的資料:幀過濾和幀标記。幀過濾法根據交換機的過濾表檢查幀的詳細資訊。每一個交換機要維護複雜的過濾表,同時對通過主幹的每一個幀進行詳細檢查,這會增加網絡延遲時間。目前在VLAN中這種方法已經不使用了。現在使用的是幀标記法。資料幀在中繼線上傳輸的時候,交換機在幀頭的資訊中加标記來指定相應的VLAN ID。當幀通過中繼以後,去掉标記同時把幀交換到相應的VLAN端口。幀标記法被IEEE標明為标準化的中繼機制。它至少有如下三種處理方法:
1) 靜态幹線配置
靜态幹線配置最容易了解。幹線上每一個交換機都可由程式設定發送及接收使用特定幹
線連接配接協定的幀。在這種設定下,端口通常專用于幹線連接配接,而不能用于連接配接端節點,至少
不能連接配接那些不使用幹線連接配接協定( trunking protocol)的端節點。當自動協商機制不能正常工作或不可用時,靜态配置是非常有用的,其缺點是必須手工維護。
2) 幹線功能通告
交換機可以周期性地發送通告幀,表明它們能夠實作某種幹線連接配接功能。例如,交換機
可以通告自己能夠支援某種類型的幀标記V L A N,是以按這個交換機通告的幀格式向其發送幀是不會有錯的。交換機的功能還止這些,它還可以通告它現在想為哪個V L A N提供幹線連接配接服務。這類幹線設定對于一個由端節點和幹線混合組成的網段可能會很有用。
3) 幹線自動協商
幹線也能通過協商過程自動設定。在這種情況下,交換機周期性地發送訓示幀,表明它
們希望轉到幹線連接配接模式。如果另一端的交換機收到并識别這些幀,并自動進行配置,那麼
這兩部交換機就會将這些端口設成幹線連接配接模式。這種自動協商通常依賴于兩部交換機(在同一網段上)之間已有的鍊路,并且與這條鍊路相連的端口要專用于幹線連接配接,這與靜态幹線設定非常相似。
Trunk的優點:
1、可以在不同的交換機之間連接配接多個VLAN,可以将VLAN擴充到整個網絡中。
2、Trunk可以捆綁任何相關的端口,也可以随時取消設定,這樣提供了很高的靈活性。
3、Trunk可以提供負載均衡能力以及系統容錯。由于Trunk實時平衡各個交換機端口和伺服器接口的流量,一旦某個端口出現故障,它會自動把故障端口從Trunk組中撤消,進而重新配置設定各個Trunk端口的流量,進而實作系統容錯。
執行個體應用
V L A N交換機的主要特點是能夠在單個交換機内部或多個交換機之間支援多個獨立的V L A N。對于多個V L A N交換機來說,一條幹線就是兩個交換機之間的連接配接,它在兩個或兩個以上的V L A N之間傳輸資料流。這與兩個普通網橋之間的一條鍊路不同,因為每個交換機必須确定它所收到的幀屬于哪個V L A N。雖然這增加了某種複雜性,但同時也帶來了很大的靈活性。
本例解釋了如何在3550交換機和2950交換機之間的一條鍊路上建立承載不同交換機之間VLAN通信的ISL TRUNK。 在Catalyst3550交換機和Catalyst2950交換機這間配置一條Trunk線路相聯,在這個應用中我劃分了4個VLAN,其中有3個動手配置的VLAN并對它們命名分别為:A2、A3、A4。其中VLAN1采用預設的配置。并對2950和3550交換機的各端口配置設定到适當的VLAN中。
下面以3550交換機為例,簡要的介紹以下重要的配置。
建立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以前的釋出的版本的話,應該用指令:switchport access vlan vlanID ,把端口加入VLAN。
在特權模式下使用指令:show vlan 來檢查是否将端口配置設定給正确的VLAN。
VLAN Name Status Ports
---- -------------------------------- --------- ——————————————
1 default active Fa0/2, Fa0/4, Fa0/16, Fa0/17
Fa0/18, Fa0/19, Fa0/20,
Fa0/22, Fa0/23, Fa0/24,
Gi0/1 Gi0/2
2 A2 active Fa0/5, Fa0/6, Fa0/7, Fa0/8
3 A3 active Fa0/9, Fa0/10, Fa0/11
4 A4 active Fa0/12, Fa0/13, Fa0/14, Fa0/15
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
可以看出其它的端口全預設在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 鍊路發送到3550的交換機中。而3550接收到其資料幀的話,首先除去ISL頭,然後封裝自已的資訊,從重複2950的過程并轉發給2950。但是如果在這兩台交換機之中,這兩個工作站分别在不同的VLAN之中,則互相PING對方的話,是不通的。進而說明,不同交換機之間的工作站通過TRUNK相連接配接,隻有這些工作站在同一個VLAN之中才可以互相通信,而不同VLAN中的工作站是不能通過TRUNK來通信的。