0×1.VTP協議介紹
Cisco交換機一旦通過某種方式激活了干線(Trunk),這些交換機會通過通告報文來指示哪些VLAN是可用的,并且會維持這些VLAN的相關信息,這種功能就叫做VTP(Vlan Trunking Protocol,VLAN中繼協議)。VTP是思科私有的協議,但大多數交換機都支持該協議。
a.VTP的作用
使用VTP可以將一臺交換機配置成VTP Server,將其余的交換機配置成VTP Client,那么作為VTP Client的交換機會自動同步VTP Server交換機上面配置的VLAN信息,這樣就不需要在每一臺交換機上配置相同的VLAN信息;對VTP Server上VLAN的添加和刪除重命名等操作會自動同步到VTP Client,確保了整個網絡配置的一致性。
b.VTP的特點
VTP是一種消息協議,使用第二層幀,通過VLAN1傳輸;可以用VTP管理網絡的VLAN范圍從1到1005,VTP不能管理擴展的VLAN(大于1005)。VTP協議使用VTP通告(VTP advertisements)在交換機間交互VLAN信息,VTP通告只能在Trunk(主干)鏈路上上互交信息。
c.如何查看VTP信息
一臺思科交換機的默認VTP信息大致如下,通過下面的命令來查看:
01
Switch#
show
vtp
status
02
VTP Version : 2
03
Configuration Revision : 0
04
Maximum VLANs supported locally : 255
05
Number of existing VLANs : 5
06
VTP Operating Mode : Server
07
VTP Domain Name :
08
VTP Pruning Mode : Disabled
09
VTP V2 Mode : Disabled
10
VTP Traps Generation : Disabled
11
MD5 digest : 0x7D 0x5A 0xA6 0x0E 0x9A 0x72 0xA0 0x3A
12
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
13
Local updater ID is 0.0.0.0 (
no
valid
interface
found)
14
Switch#
15
16
/*
17
"VTP Version:2"
表示這臺交換支持兩種VTP版本(1和2),默認運行的是版本1,
18
- 這里顯示的2,不代表默認運行的版本是 Version 2,只代表支持幾種版本。
19
20
"Configuration Revision:0"
配置修正號是0,
21
- 交換機上VLAN配置信息發生改變時,配置修正號自動加1,
22
- 配置修正號暗示了交換機VLAN配置信息的新舊。
23
24
"Maximum VLANs supported locally:255"
25
- 表示交換機最大可配置的VLAN數量是255個,這個值和交換機的型號有關。
26
27
"Number of existing VLANs:5"
當前已經有5個VLAN,
28
- 交換機默認VLAN就是5個(VLAN1、VLAN1002-1005)。
29
30
"VTP Operating Mode:Server"
交換機當前的VTP模式是VTP Server。
31
32
"VTP Domain Name"
VTP域名,沒有配置的時候為空。
33
34
"VTP Pruning Mode:Disabled"
是否開啟了VTP裁剪功能,默認沒有開啟。
35
36
"VTP V2 Mode:Disabled"
VTP版本2沒有開啟,所以默認是使用版本1,
37
- 可以使用下面這條命令修改VTP使用的版本:
38
- Switch(config)#
vtp
version
1或2。
39
40
"VTP Traps Generation"
Trap主要用來為SNMP服務器發送消息,默認沒有開啟。
41
42
"MD5 digest"
從VTP計算得出的散列值,如果VLAN信息發生改變該值也會改變。
43
44
"Configuration last modified"
最后配置改變的時間。
45
46
"Local updater ID"
發送VTP信息的端口IP地址,可以手動指定發送VTP信息的端口。
47
*/
d.什么是VTP域名
VTP協議允許在一臺交換機上集中配置,所做的配置會被自動傳播到網絡中所有其他的交換機上,前提是這些交換機都在一個VTP域中;同一個域中的交換機擁有相同的VTP域名;默認的域名為空,此時交換機不會向外傳播VTP通告,并且一個交換機只能加入一個VTP域。
可以使用下面的命令更改VTP域名:
01
/*修改VTP域名為
"qingsword.com"
*/
02
Switch(config)#
vtp
domain qingsword.com
03
Changing VTP domain name from NULL to qingsword.com
04
Switch(config)#
end
05
06
/再次查看VTP狀態,可以看到域名已經修改/
07
Switch#
show
vtp
status
08
VTP Version : 2
09
...
10
VTP Domain Name : qingsword.com
11
...
12
Switch#
注意,當VTP域名被改變或刪除閃存中的VLAN配置文件"vlan.dat",重啟后配置修正號會自動歸零;另外,當交換機處于Transparent模式時,因為不需要和其他交換機同步VTP信息,配置修正號始終為0;當網絡中的交換機配置修正號都為0的時候,他們之間不會同步VLAN配置信息。
在同一個域中,如果沒有設置VTP密碼,只要域名相同,配置修正號大的交換機的VLAN配置將覆蓋配置修正號小的交換機的VLAN配置,這樣非常不安全,可以通過下面的命令配置一個VTP密碼,只有域名和密碼都相同的情況下,才會互交VLAN配置信息:
1
Switch(config)#
vtp
password
ccna
在后面的綜合試驗中會演示這些命令。
e.什么是VTP通告
1)VTP幀結構
VTP被封裝在802.1Q或ISL幀中(交換機間主干鏈路的封裝協議),VTP幀以組播的方式發送,目的MAC是保留的MAC地址"01-00-0C-CC-CC-CC"。
VTP幀包括幀頭和信息內容:
VTP幀頭中包含了VTP域名、域名長度、VTP版本、VTP配置修正號、VTP信息類型(包含了三種信息類型,總匯、子集、查詢)等。VTP信息內容包括MD5散列值、幀的格式(ISL或802.1Q)、每個VLAN的配置信息(配置信息中包括:VLAN ID、VLAN名稱、類型、狀態等)。
2)VTP通告類型
VTP通告有三種類型:
匯總通告(Summary Advertisements):匯總通告包含VTP域名、配置修正號以及配置的一些細節。匯總通告有兩種發送方式:周期性發送,每隔5分鐘被VTP Server或VTP Client發送。觸發發送,如果VTP配置發生變化VTP通告立即發送。子集通告(Subset Advertisements):在創建或刪除VLAN、掛起或激活VLAN、更改VLAN名稱、改變VLAN UTM時會發送子集通告。查詢通告(Request Advertisements):當VTP Server收到一個查詢通告時,VTP Server會發送一個VTP匯總通告和一個VTP子集通告。下面這些情況會發送查詢通告:VTP域名發生變化時、交換機收到一個匯總通告,通告中的配置修正號高于本交換機的配置修正號、因為某些原因子集通告丟失、交換機重啟。
f.VTP模式有哪幾種
思科交換機可以被配置成3種VTP模式:
Server模式:Server模式是思科交換機默認的VTP模式,在這種模式下的交換機可以創建、修改、刪除VLAN,VTP Server交換機通告自己的VLAN信息給同一個域中的其他交換機,同時也與收到的VTP通告同步VLAN信息,VLAN的配置信息保存在閃存的vlan.dat文件中。Client模式:工作在這種模式下的交換機不可以創建、修改、刪除VLAN,當工作在這種模式下的交換機重啟時,它發送一個查詢通告給VTP Server,請求更新的VLAN信息。這種模式下的交換機VLAN配置信息也保存在閃存的vlan.dat文件中。Transparent模式:工作在這種模式下的交換機可以創建、修改、刪除VLAN,但所做的修改只影響當前交換機。在這種模式下,交換機可以轉發收到的VTP通告給網絡中的其他交換機,但只是轉發,Transparent模式下的交換機并不發送自己的VTP信息給其他交換機,也不與網絡中的其他交換機同步信息。這種模式下的交換機的VLAN配置信息保存在running-config中,并非保存在vlan.dat中。
0×2.VTP配置實例
a.VTP綜合實驗
下面用一個綜合實驗來演示VTP三種模式、VTP密碼和域名、VTP版本的選擇等。需要注意幾點,VTP的域名是區分大小寫的,VTP版本1和版本2是不兼容的。
實驗拓撲如下(本例實驗在GNS3+IOU環境下完成,也同樣可以在Cisco Packet Tracer 6.2模擬器中完成):

1)將交換機之間的鏈路全部配置成主干鏈路
IOU1配置:
1
IOU1#
conf
t
2
IOU1(config)#
int
e0/1
3
IOU1(config-if)#
swi
mod
tr
4
IOU1(config-if)#
swi
tr enc dot
5
IOU1(config-if)#
swi
tr all vl all
6
IOU1(config-if)#
int
e0/2
7
IOU1(config-if)#
swi
mod
tr
8
IOU1(config-if)#
swi
tr enc dot
9
IOU1(config-if)#
swi
tr all vl all
IOU2配置:
1
IOU2#
conf
t
2
IOU2(config)#
int
e0/1
3
IOU2(config-if)#
swi
mod
trunk
4
IOU2(config-if)#
swi
trunk
enc dot1q
5
IOU2(config-if)#
swi
trunk
allow vlan all
IOU3配置:
1
IOU3#
conf
t
2
IOU3(config)#
int
e0/2
3
IOU3(config-if)#
swi
mod
tr
4
IOU3(config-if)#
swi
tr enc dot
5
IOU3(config-if)#
swi
tr all vl all
6
IOU3(config-if)#
int
e0/3
7
IOU3(config-if)#
swi
mod
tr
8
IOU3(config-if)#
swi
tr enc dot
9
IOU3(config-if)#
swi
tr all vl all
IOU4配置:
1
IOU4#
conf
t
2
IOU4(config)#
int
e0/3
3
IOU4(config-if)#
swi
mod
tr
4
IOU4(config-if)#
swi
tr enc dot
5
IOU4(config-if)#
swi
tr all vl all
2)首先配置網絡中的VTP Transparent交換機
IOU3配置:
01
/配置交換機VTP模式為Transparent/
02
IOU3(config)#
vtp
mode
transparent
03
04
/配置VTP域名為
"www.qingsword.com"
,也可以配置成和VTP Server不同的任意名字,transparent模式下的交換機并不需要和其他交換機擁有相同的域名,也不需要配置密碼,它只負責轉發收到的VTP報文/
05
IOU3(config)#
vtp
domain www.qingsword.com
06
Changing VTP domain name from NULL to www.qingsword.com
07
08
/創建一個VLAN2/
09
IOU3(config)#vlan 2
10
IOU3(config-vlan)#name ind_vlan2
11
12
/將和PC2相連的接口接入VLAN2/
13
IOU3(config-vlan)#
int
e0/0
14
IOU3(config-if)#
swi
mod
acc
15
IOU3(config-if)#
swi
acc
vlan 2
16
IOU3(config-if)#
exit
3)配置VTP Server交換機
IOU1配置:
01
/將交換機VTP模式配置成Server/
02
IOU1(config)#
vtp
mode
server
03
04
/配置VTP域名/
05
IOU1(config)#
vtp
domain www.qingsword.com
06
07
/配置VTP密碼/
08
IOU1(config)#
vtp
password
123456
09
10
/將VTP版本改成2/
11
IOU1(config)#
vtp
version
2
4)配置VTP Client
IOU2配置:
1
/配置VTP模式為Client/
2
IOU2(config)#
vtp
mode
client
3
4
/域名要和VTP Server相同/
5
IOU2(config)#
vtp
domain www.qingsword.com
6
7
/密碼也要和VTP Server配置的相同/
8
IOU2(config)#
vtp
pass
123456
IOU4配置:
1
IOU4(config)#
vtp
mod
cl
2
IOU4(config)#
vtp
do www.qingsword.com
3
IOU4(config)#
vtp
pass
123456
5)在VTP Server上測試新增VLAN,在VTP client交換機上查看是否同步成功
1
/新增vlan2和vlan3/
2
IOU1(config)#vlan 2
3
IOU1(config-vlan)#name vlan2
4
IOU1(config-vlan)#vlan 3
5
IOU1(config-vlan)#name vlan3
6
IOU1(config-vlan)#
exit
IOU2-4的VTP以及VLAN顯示信息:
01
/*
02
- IOU2和IOU4上面的VTP信息發生了變化,同步了IOU1的配置,
03
- 配置修正號
"Configuration Revision"
變成了5,
04
- VLAN數也增加到了7,VTP版本也變成了版本2。
05
*/
06
IOU2#
show
vtp
status
07
VTP Version capable : 1 to 3
08
VTP
version
running : 2
09
VTP Domain Name : www.qingsword.com
10
VTP Pruning Mode : Disabled
11
VTP Traps Generation : Disabled
12
Device ID : aabb.cc00.0200
13
14
Feature VLAN:
15
16
VTP Operating Mode : Client
17
Maximum VLANs supported locally : 1005
18
Number of existing VLANs : 7
19
Configuration Revision : 3
20
21
/IOU2和IOU4的VLAN信息和IOU1保持同步/
22
IOU2#
show
vlan b
23
24
VLAN Name Status Ports
25
26
1 default active Et0/0, Et0/2, Et0/3, Et1/0
27
Et1/1, Et1/2, Et1/3, Et2/0
28
Et2/1, Et2/2, Et2/3, Et3/0
29
Et3/1, Et3/2, Et3/3
30
2 vlan2 active
31
3 vlan3 active
32
1002 fddi-default act/unsup
33
1003 trcrf-default act/unsup
34
1004 fddinet-default act/unsup
35
1005 trbrf-default act/unsup
36
37
/*
38
- IOU3被配置成了Transparent模式,這種模式不和其他交換機同步VLAN信息,
39
- 同時它的配置修正號也始終為0,VTP版本也是默認的版本1,
40
- 但它仍然轉發IOU1的VTP通告給IOU4。
41
*/
42
43
IOU3#
show
vtp
status
44
VTP Version capable : 1 to 3
45
VTP
version
running : 1
46
VTP Domain Name : www.qingsword.com
47
48
Feature VLAN:
49
50
VTP Operating Mode : Transparent
51
Maximum VLANs supported locally : 1005
52
Number of existing VLANs : 6
53
Configuration Revision : 0
54
55
/IOU3的VLAN并沒有和IOU1同步/
56
IOU3#
show
vlan b
57
58
VLAN Name Status Ports
59
60
1 default active Et0/1, Et1/0, Et1/1, Et1/2
61
Et1/3, Et2/0, Et2/1, Et2/2
62
Et2/3, Et3/0, Et3/1, Et3/2
63
Et3/3
64
2 ind_vlan2 active Et0/0
65
1002 fddi-default act/unsup
66
1003 token-ring-default act/unsup
67
1004 fddinet-default act/unsup
68
1005 trnet-default act/unsup
69
70
/IOU4的輸出和IOU2是一樣的,這里就不列出了,大家可以在IOU1上去添加刪除VLAN,測試IOU1和IOU4是否會和IOU1的VLAN信息同步。/
6)將PC1和PC3加入到VLAN2中,并且測試PC1、PC2、PC3的通信是否能夠成功
01
/IOU2配置/
02
IOU2#
conf
t
03
IOU2(config)#
int
e0/0
04
IOU2(config-if)#
swi
mod
acc
05
IOU2(config-if)#
swi
acc
vlan 2
06
IOU2(config-if)#
end
07
08
/IOU4配置/
09
IOU4#
conf
t
10
IOU4(config)#
int
e0/0
11
IOU4(config-if)#
swi
mod
acc
12
IOU4(config-if)#
swi
acc
vlan 2
13
IOU4(config-if)#
end
14
15
/PC1-3配置/
16
VPCS> set pcname PC1
17
PC1>
ip
192.168.1.1/24
18
19
VPCS> set pcname PC2
20
PC2>
ip
192.168.1.2/24
21
22
VPCS> set pcname PC3
23
PC3>
ip
192.168.1.3/24
24
25
/三臺計算機能夠相互通信/
26
PC2>
ping
192.168.1.1
27
84 bytes from 192.168.1.1 icmp_seq=1 ttl=64 time=1.419 ms
28
PC2>
ping
192.168.1.3
29
84 bytes from 192.168.1.3 icmp_seq=1 ttl=64 time=1.128 ms
這一部分實驗到此結束。
b.VTP裁剪(Pruning)實例
VTP Pruning(VTP裁剪),是VTP的一個重要功能,能夠減少中繼端口上不必要的信息量,默認情況下思科的VTP裁剪是關閉的。在下圖中,IOU1和IOU2之間的鏈路被配置成了主干,IOU1被配置成VTP Server,IOU2被配置成VTP Client,PC1-4是用VPCS模擬出來的4臺計算機,PC1被劃分到VLAN2中,PC2被劃分到VLAN3中,PC3被劃分到VLAN3中,PC4被劃分到VLAN4中;IOU1和IOU2在沒有開啟VTP裁剪以前,在主干端口"e3/3"上會發送全部VLAN信息的VTP通告,如果開啟了VTP裁剪,那么IOU1發給IOU2的VTP通告中將不會包含VLAN2的信息,因為SW2上面沒有屬于VLAN2的接口,同理IOU2發給IOU1的通告中不會包含VLAN4的信息。
"Cisco Packet Tracer 6.2"不支持VTP裁剪命令,實驗在GNS3+IOU環境中模擬,拓撲圖如下:

1)將IOU1和IOU2之間的鏈路配置成主干
01
/IOU1配置/
02
IOU1#
conf
t
03
IOU1(config)#
int
e3/3
04
IOU1(config-if)#
swi
mod
tr
05
IOU1(config-if)#
swi
tr enc dot
06
IOU1(config-if)#
swi
tr all vl all
07
IOU1(config-if)#
exit
08
09
/IOU2配置/
10
IOU2#
conf
t
11
IOU2(config)#
int
e0/0
12
IOU2(config-if)#
swi
mo tr
13
IOU2(config-if)#
swi
tr enc dot
14
IOU2(config-if)#
swi
tr all vl all
15
IOU2(config-if)#
exit
2)將IOU1配置成VTP Server
1
IOU1(config)#
vtp
mod
server
2
IOU1(config)#
vtp
domain www.qingsword.com
3
IOU1(config)#
vtp
pass
123456
4
IOU1(config)#
vtp
ver
2
3)將IOU2配置成VTP Client
1
IOU2(config)#
vtp
mod
client
2
IOU2(config)#
vtp
do www.qingsword.com
3
IOU2(config)#
vtp
pass
123456
4)在IOU1上增加VLAN2-4,然后在IOU1和IOU2上劃分端口到新增的VLAN中
01
/IOU1配置/
02
IOU1(config)#vlan 2
03
IOU1(config-vlan)#name vlan2
04
IOU1(config-vlan)#vlan 3
05
IOU1(config-vlan)#name vlan3
06
IOU1(config-vlan)#vlan 4
07
IOU1(config-vlan)#name vlan 4
08
IOU1(config-vlan)#
int
e0/0
09
IOU1(config-if)#
swi
mod
acc
10
IOU1(config-if)#
swi
acc
vlan 2
11
IOU1(config-if)#
int
e0/1
12
IOU1(config-if)#
swi
mod
acc
13
IOU1(config-if)#
swi
acc
vlan 3
14
IOU1(config-if)#
end
15
16
/IOU2配置/
17
/配置前先用下面這個命令確保已經從IOU1學習到了新的VLAN信息/
18
IOU2#
show
vlan b
19
20
IOU2#
conf
t
21
IOU2(config)#
int
e0/0
22
IOU2(config-if)#
swi
mod
acc
23
IOU2(config-if)#
swi
acc
vlan 3
24
IOU2(config-if)#
int
e0/1
25
IOU2(config-if)#
swi
mod
acc
26
IOU2(config-if)#
swi
acc
vlan 4
27
IOU2(config-if)#
end
5)在沒有開啟裁剪前查看主干鏈路信息
01
IOU1#
show
interfaces
trunk
02
03
Port Mode Encapsulation Status Native vlan
04
Et3/3 desirable 802.1q trunking 1
05
06
Port Vlans allowed on
trunk
07
Et3/3 1-4094
08
09
Port Vlans allowed and active in management domain
10
Et3/3 1-4
11
12
/這一項顯示了VTP裁剪情況,現在還沒有VLAN被裁剪/
13
Port Vlans in spanning tree forwarding state and not pruned
14
Et3/3 1-4
6)在IOU1上開啟VTP裁剪(只需要在VTP Server上開啟即可)
01
IOU1#
conf
t
02
/開啟VTP裁剪/
03
IOU1(config)#
vtp
pruning
04
Pruning switched on
05
06
/再次查看IOU1主干信息/
07
IOU1#
show
interfaces
trunk
08
09
Port Vlans in spanning tree forwarding state and not pruned
10
Et3/3 1,3-4
11
/*
12
- IOU1的主干端口上面裁剪掉了VLAN2的信息,
13
- 因為IOU2上沒有端口在VLAN2下,
14
- 同理,在IOU2上運行上面的命令,會看到1-3,即裁剪掉了Vlan4的信息。
15
*/
16
17
/*
"VTP Pruning Mode:Enabled"
表明VTP裁剪已經開啟*/
18
IOU2#
show
vtp
status
19
VTP Version capable : 1 to 3
20
VTP
version
running : 2
21
VTP Domain Name : www.qingsword.com
22
VTP Pruning Mode : Enabled
0×3.VTP配置需要注意的問題
VTP配置需要注意下面幾點:
VTP版本1不兼容版本2;確保同一個域中VTP密碼要一致;確保同一個域中VTP域名要一致;VTP模式要配置正確,VTP域中至少要有一臺VTP Server;在一臺交換機加入VTP域中時,最好先將它的配置修正號歸零,方法就是隨便給它配置一個域名,然后再將它的域名改成正確的域名,再將它接入VTP域中。