VTP(VLANTrunk Protocol,VLANTrunk协议)是Cisco专用的一种用于维护和管理动态VLAN(如基于MAC地址、IP地址、网络协议、VLAN管理策略等划分方式的VLAN)的二层消息的协议。它可以用来在Trunk链路上自动传播、交换VLAN配置信息,使得同一个VTP域中的交换机VLAN配置保持一致。
使用VTP的好处是可以只需在一台交换机上配置好所需的VLAN后,在同一VTP域中的交换机自动创建相同ID、名称和配置的VLAN,大大减轻了管理员重复创建、配置VLAN的工作量,还可以减少多重配置和可能会引起各种问题的配置冲突,如重复的VLAN名、不正确的VLAN类型说明和安全配置。
VTP使用了域的概念,即VTP域,包括了网络中共享相同VTP域参数(如VTP域名、VLAN配置等)的一组交换机。在网络中可以创建多个VTP域,但一台交换机仅可以在一个VTP域中。
一个VTP域中至少有一台VTP服务器,默认情况下,所有交换机都为VTP服务器模式。
VTP 1和VTP 2仅可通告VLAN ID在1~1005范围内的基本VLAN,VTP 3才支持1006~4094范围的扩展VLAN配置信息通知
从VTP服务器到达VTP客户端的路径中存在不能转发VTP通告的交换机,即它们的VTP为off模式,此时这些交换机不会转发VLAN配置信息。或者路径中有些接口不允许对应VLAN通过。
如要同步VLAN信息的交换机配置成了不能同步VLAN配置信息的透明模式或者Off模式。
仅支持VTP 1版本的交换机不能与运行VTP 2、VTP 3版本的交换机交互,建议都配置成相同的VTP版本。
当启用了VTP修剪功能,则对应Trunk接口下面没有连接加入对应VLAN的设备时,会不发送对应VLAN配置信息。
如下图所示,Switch 1配置工作在VTP服务器模式,其它交换机均配置工作在VTP客户端模式。
不能进行VTP同步VLAN配置信息的故障排除示例
现在Switch 1上手动创建了VLAN 10、VLAN 20和VLAN 30,现在发现Switch 6上不能通过VTP自动创建VLAN 10、VLAN 20和VLAN 30。
VTP客户端不能同步VLAN配置信息可能的原因在上面已有分析,当然本示例中要同步的VLAN ID(10、20、30)是基本范围VLAN,所有VTP版本均支持通告的,所以下面仅就其它几个方面的故障原因逐一排查(各show命令均在特权模式下执行,执行到相应步骤排除了故障时即停止检查)
Step 1 通过在各交换机上执行show vtp status命令确认网络中至少配置了一台VTP服务器交换机,且至少要有一台VTP服务器交换机上手动创建了VTP客户端交换机要同步的VLAN,可通过在这台交换机上执行showvlan命令验证。
Switch1#showvtp status
VTP Version : 2
Configuration Revision : 1
Maximum VLANs supported locally : 1005
Number of existing VLANs : 6
VTP Operating Mode : Server
VTP Domain Name : test
VTP Pruning Mode : Disabled
VTP V2 Mode : Enabled
VTP Traps Generation : Disabled
MD5 digest : 0xDD 0x52 0x89 0xF5 0x75 0xB8 0xDA 0xFA
Configuration last modified by 0.0.0.0 at 3-1-9300:59:01
Local updater ID is 0.0.0.0 (novalid interface found)
Switch1#showvlan
VLAN Name Status Ports
---- -------------------------------- ----------------------------------------
1 default active Fa0/4, Fa0/5, Fa0/6, Fa0/7
Fa0/8, Fa0/9, Fa0/10, Fa0/11
Fa0/12, Fa0/13, Fa0/14, Fa0/15
Fa0/16, Fa0/17, Fa0/18, Fa0/19
Fa0/20, Fa0/21, Fa0/22, Fa0/23
Fa0/24, Gig0/1, Gig0/2
10 VLAN0010 active
20 VLAN0020 active
30 VLAN0030 active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
本示例中是Switch 1交换机配置为VTP服务器交换机,并且手动创建了VLAN 10、VLAN 20和VLAN 30这三个VLAN。如果没有,则在VTP服务器是创建。
Step 2 分别在不能同步VLAN配置信息的VTP客户端和VTP服务器交换机上通过showvtp status命令查看相关的VTP配置信息。
本步首先查看它们的配置修订号,验证不能同步VLAN配置信息的Switch 6 VTP客户端的配置修订号是否低于VTP服务器上配置修订号,最好使VTP客户端的配置修订号为0,并且确认其配置的VTP域名与VTP服务器交换机上配置的VTP域名一致,以确保客户端交换机能成功加入到VTP服务器上所创建的VTP域。
Switch6#showvtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 255
Number of existing VLANs : 5
VTP Operating Mode : Client
VTP Domain Name :
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x7D 0x5A 0xA6 0x0E 0x9A 0x72 0xA0 0x3A
Configuration last modified by 0.0.0.0 at 0-0-0000:00:00
Local updater ID is 0.0.0.0 (novalid interface found)
如果VTP客户端交换机上的配置修订号不小于VTP服务器交换机上的修订号,则在VTP客户端交换机上执行以下命令操作:
(1)configureterminal
(2)vtp domain XXX
此处的XXX为任意与原VTP域名不一样的域名,相当于修改本交换机的VTP域名。因为一台交换机上只能有一个VTP域,所以新配置的VTP域名将直接替换原域名。其目的是使其配置修订号恢复为默认的0。
(3)end #---直接返回到特权模式
(4)show vtp status
查看此时的配置修订号是否已恢复为0。
(5)vtp domain xxxx
此处的xxxx为原来客户端交换机所创建的VTP域名,即与VTP服务器交换机上配置的VTP域名一致。
(6)end
(7)show vtp status
确认重新加入VTP域后的配置修订号已恢复为0,此时客户端可成功加入VTP服务器交换机所配置的VTP域了。
Step 3 通过show vtp status和show running-config interface 命令验证途经交换机均有能力转发VLAN配置信息数据包。
这里包括三层含义:一是,途经交换机均不能配置VTP off模式,其它三种模式均有能力转发VLAN配置信息;二是,如果对应VTP服务器交换机是VTP 3版本,则不能在到达VTP客户端交换机路径上的Trunk接口上禁用VTP,三是从VTP服务器到达不能同步VLAN配置信息的Switch 6 VTP客户端的路径上必须存在Trunk接口(只有Trunk接口才能传播VLAN配置信息),且要允许所要同步的VLAN通过。
Step 4 在不能同步配置信息的Switch 6交换机上通过showvtp status命令查看其VTP配置是否正确,VTP版本号与VTP服务器的VTP版本号是否兼容。
这里包括Switch 6的VTP模式,VTP域名、密码(必须与VTP服务器一致)等。只有Server(服务器)和Client(客户端)两种模式可以同步其它VTP服务器发来的VLAN配置信息,Transparent(透明)和off(关闭)模式是不能同步VTP服务器的VLAN配置信息的。
在版本号兼容方面,仅支持VTP 1版本的交换机不能与支持VTP2和VTP 3版本的交换机交互信息,但支持VTP 2和VTP 3的交换机配置为VTP 1版本时可以与VTP 2和VTP 3版本的交换机交互信息。尽可能不要配置为VTP 1版本,否则建议VTP域中所有交换机都配置VTP 1版本。
Switch6#showvtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 255
Number of existing VLANs : 5
VTP Operating Mode : Client
VTP Domain Name : test
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x75 0x4A 0x67 0x29 0x54 0x7D 0x93 0xC4
Configuration last modified by0.0.0.0 at 0-0-00 00:00:00
Step 5,在从VTP服务器到达不能同步VLAN配置信息的路径中有设备上使用show vtp status命令查看是否有设备启用了VTP修剪功能,使用showinterface trunk命令查看各Trunk上的VLAN修剪配置,看是否把要同步的VLAN修剪掉了。
Switch2#showvtp status
VTP Version : 2
Configuration Revision : 7
Maximum VLANs supported locally : 1005
Number of existing VLANs : 8
VTP Operating Mode : Client
VTP Domain Name : test
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0xC7 0x2C 0x77 0x78 0x85 0x3B 0x00 0xF5
Configuration last modified by 0.0.0.0 at 3-1-9300:01:41
Switch2#show interface trunk
Port Mode Encapsulation Status Native vlan
Fa0/1 on 802.1q trunking 1
Fa0/2 on 802.1q trunking 1
Fa0/3 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/1 1-1005
Fa0/2 1-1005
Fa0/3 1-1005
Port Vlans allowed and active in management domain
Fa0/1 1,10,20,30
Fa0/2 1,10,20,30
Fa0/3 1,10,20,30
Port Vlans in spanning tree forwarding state and not pruned
Fa0/1 1,10,20,30
Fa0/2 1,10,20,30
Fa0/3 1,10,20,30
如果是因为VTP修剪功能,或者Trunk接口的VLAN配置影响了VLAN配置信息的传输,则在对应设备取消VTP修剪功能,在对应Trunk接口上取消对应VLAN功能的修剪配置。
通过以上各步检查,就可以找到故障原因,并加以排除,结果在Switch 6 VTP客户端上通过show vlan命令查看到也能同步Switch 1 VTP服务器上所创建的三个VLAN配置信息了。
Switch6#showvlan
VLAN Name Status Ports
---- -------------------------------- ----------------------------------------
1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5
Fa0/6, Fa0/7, Fa0/8, Fa0/9
Fa0/10, Fa0/11, Fa0/12, Fa0/13
Fa0/14, Fa0/15, Fa0/16, Fa0/17
Fa0/18, Fa0/19, Fa0/20, Fa0/21
Fa0/22, Fa0/23, Fa0/24, Gig0/1
Gig0/2
10 VLAN0010 active
20 VLAN0020 active
30 VLAN0030 active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup