(南昌航空大學信息中心,江西 南昌 330034)
VTP疑難解析
袁智勇 劉文林
(南昌航空大學信息中心,江西 南昌 330034)
本文介紹了VTP的作用和機制,對VTP和VLAN關系的一些常見誤區(qū)做了澄清。本文也討論了VTP和對應IEEE國際標準的關系,以及手工配置VLAN分布信息的方法。
VTP;VLAN;GVRP;MVRP
提起VLAN,很多人都會想到VTP(VLAN Trunk Protocol)。的確,兩者的關系非常密切。但是大家也該清楚,VLAN的運行并不依賴VTP,VTP的作用是優(yōu)化VLAN的運行效率。支持VLAN的交換機,其端口可以設置為Access模式或者Trunk模式。Access模式的端口必須綁定到某個VLAN,只允許這個VLAN的流量通過。Trunk模式的端口用于兩個支持VLAN的交換機之間的級聯(lián),它并不綁定到特定的VLAN。默認情況下,Trunk模式的端口允許任何VLAN的流量通過。假設交換機S的某個端口收到VLAN n的廣播幀,S需要決定是否向其它端口轉(zhuǎn)發(fā)廣播幀。其它端口要么是Access端口,要么是Trunk端口。如果它是Access端口,而且也屬于VLAN n,S將復制一份廣播幀到這個端口;如果端口不屬于VLAN n,則忽略這個端口;如果它是Trunk端口,S將無條件的復制一份廣播幀到這個些端口,以便將廣播幀轉(zhuǎn)發(fā)到其它交換機,因為其它交換機也可能包換VLAN n的成員。
請看圖1,主機A屬于VLAN 5,正向交換機S1發(fā)送廣播幀。假設交換機S2并無VLAN 5的成員,S1收到廣播幀后,其實是沒必要向S2轉(zhuǎn)發(fā)的。從這個例子可以看出,如果交換機能預先知道某個VLAN在網(wǎng)絡中的分布情況,可以避免一些不必要的數(shù)據(jù)轉(zhuǎn)發(fā),提高VLAN的運行效率。而VTP的作用正是為交換機收集VLAN在網(wǎng)絡中的分布信息,說的更具體些是VLAN在trunk端口上的分布情況。
VTP的原理并不復雜,類似某些動態(tài)路由協(xié)議,通過相鄰交換機之間交換VLAN分別信息,最終收集到完整的VLAN分布信息。請看圖2,假設S1包含VLAN 2和VLAN 3的成員,但S2和S3并未定義VLAN 2和VLAN 3,所以S2和S3最初并不知道VLAN 2和VLAN 3的存在。S1首先把VLAN 2和VLAN 3的信息告知S2,于是S2知道它的端口p1上包含VLAN2和VLAN3的成員。S2會更新它的VLAN分布信息,將VLAN 2和VLAN 3也加入其中。下一次S2和S3交換VLAN分布信息的時候,S2會將VLAN 2和VLAN 3的分布信息告知S3,于是S3最終也知道它的端口p2包含VLAN 2和VLAN 3的成員。
圖1
圖2
支持VLAN的交換機,VTP協(xié)議默認是自動運行的,而且是即插即用,無需配置的。但要注意的是,VTP是Cisco私有的協(xié)議。因此不同廠家的設備互聯(lián)可能會導致兼容性的問題。和VTP對應的國際標準是IEEE的GVRP(GARP VLAN Registration Protocol), 它 是 基于 GARP(Generic Attribute Registration Protocol)的。GARP是個通用的信息注冊協(xié)議,可以用來注冊VLAN信息。GARP另一個應用是注冊多播組,相應的協(xié)議GMRP(GARP Multicast Registration Protocol)。GARP最 新 版 是Multiple Registration Protocol (MRP),用于替代GARP。相應的,GVRP升級為Multiple VLAN Registration Protocol (MVRP)。不同廠家設備互聯(lián),最好采用國際標準GVRP或者MVRP,否則只能使用VTP??紤]到Cisco的影響,不少其它廠商的設備也支持VTP。如果不同設備對VTP或則GVRP的支持不能達成一致,那么我們只能手工配置VLAN分布信息了。默認情況下,Trunk端口,允許任意VLAN的流量通過,但實際當中,網(wǎng)絡中定義的VLAN數(shù)量是有限的,通過特定Trunk的VLAN數(shù)量更是如此。一般地,只有少量VLAN,甚至只有一個VLAN通過特定Trunk端口。我們可以通過配置腳本,明確定義通過Trunk口的VLAN。比如下面的腳本只允許VLAN 11通過Trunk端口:
s1# configure terminal
s1(config)#interface f0/1
s1(config-if)#switchport trunk allowed vlan none
——先禁止任何VLAN通過
s1(config-if)#switchport trunk allowed vlan add 11
——只允許VLAN 11通過
[1]VLAN Trunking Protocol[Z]. http:// en.wikipedia.org/wiki/VLAN_Trunking_ Protocol.
[2]Understanding VLAN Trunk Protocol[Z].http://www.cisco.com/c/en/us/support/ docs/lan-switching/vtp/10558-21.html.
TP393
:A