(南昌航空大學(xué)信息中心,江西 南昌 330034)
VTP疑難解析
袁智勇 劉文林
(南昌航空大學(xué)信息中心,江西 南昌 330034)
本文介紹了VTP的作用和機(jī)制,對VTP和VLAN關(guān)系的一些常見誤區(qū)做了澄清。本文也討論了VTP和對應(yīng)IEEE國際標(biāo)準(zhǔn)的關(guān)系,以及手工配置VLAN分布信息的方法。
VTP;VLAN;GVRP;MVRP
提起VLAN,很多人都會想到VTP(VLAN Trunk Protocol)。的確,兩者的關(guān)系非常密切。但是大家也該清楚,VLAN的運行并不依賴VTP,VTP的作用是優(yōu)化VLAN的運行效率。支持VLAN的交換機(jī),其端口可以設(shè)置為Access模式或者Trunk模式。Access模式的端口必須綁定到某個VLAN,只允許這個VLAN的流量通過。Trunk模式的端口用于兩個支持VLAN的交換機(jī)之間的級聯(lián),它并不綁定到特定的VLAN。默認(rèn)情況下,Trunk模式的端口允許任何VLAN的流量通過。假設(shè)交換機(jī)S的某個端口收到VLAN n的廣播幀,S需要決定是否向其它端口轉(zhuǎn)發(fā)廣播幀。其它端口要么是Access端口,要么是Trunk端口。如果它是Access端口,而且也屬于VLAN n,S將復(fù)制一份廣播幀到這個端口;如果端口不屬于VLAN n,則忽略這個端口;如果它是Trunk端口,S將無條件的復(fù)制一份廣播幀到這個些端口,以便將廣播幀轉(zhuǎn)發(fā)到其它交換機(jī),因為其它交換機(jī)也可能包換VLAN n的成員。
請看圖1,主機(jī)A屬于VLAN 5,正向交換機(jī)S1發(fā)送廣播幀。假設(shè)交換機(jī)S2并無VLAN 5的成員,S1收到廣播幀后,其實是沒必要向S2轉(zhuǎn)發(fā)的。從這個例子可以看出,如果交換機(jī)能預(yù)先知道某個VLAN在網(wǎng)絡(luò)中的分布情況,可以避免一些不必要的數(shù)據(jù)轉(zhuǎn)發(fā),提高VLAN的運行效率。而VTP的作用正是為交換機(jī)收集VLAN在網(wǎng)絡(luò)中的分布信息,說的更具體些是VLAN在trunk端口上的分布情況。
VTP的原理并不復(fù)雜,類似某些動態(tài)路由協(xié)議,通過相鄰交換機(jī)之間交換VLAN分別信息,最終收集到完整的VLAN分布信息。請看圖2,假設(shè)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的交換機(jī),VTP協(xié)議默認(rèn)是自動運行的,而且是即插即用,無需配置的。但要注意的是,VTP是Cisco私有的協(xié)議。因此不同廠家的設(shè)備互聯(lián)可能會導(dǎo)致兼容性的問題。和VTP對應(yīng)的國際標(biāo)準(zhǔn)是IEEE的GVRP(GARP VLAN Registration Protocol), 它 是 基于 GARP(Generic Attribute Registration Protocol)的。GARP是個通用的信息注冊協(xié)議,可以用來注冊VLAN信息。GARP另一個應(yīng)用是注冊多播組,相應(yīng)的協(xié)議GMRP(GARP Multicast Registration Protocol)。GARP最 新 版 是Multiple Registration Protocol (MRP),用于替代GARP。相應(yīng)的,GVRP升級為Multiple VLAN Registration Protocol (MVRP)。不同廠家設(shè)備互聯(lián),最好采用國際標(biāo)準(zhǔn)GVRP或者M(jìn)VRP,否則只能使用VTP??紤]到Cisco的影響,不少其它廠商的設(shè)備也支持VTP。如果不同設(shè)備對VTP或則GVRP的支持不能達(dá)成一致,那么我們只能手工配置VLAN分布信息了。默認(rèn)情況下,Trunk端口,允許任意VLAN的流量通過,但實際當(dāng)中,網(wǎng)絡(luò)中定義的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