标题：VTP域
简介
VTP域（VTP domain)
也被称为VLAN管理域（VLAN management domain)，网络内的一个VTP域是一组通过trunk相互连接，并使用相同VTP域名的交换机。缺省方式下，所有Cisco Catalyst交换机都被配置为 VTP 服务器。这种情形适用于 VLAN 信息量小且易存储于任意交换机（NVRAM）上的小型网络。对于大型网络，由于每台交换机都会进行 NVRAM 存储操作，但该操作对于某些点是多余的，所以在这些点必须设置一个“判决呼叫”（Judgment Call）。基于此，网络管理员所使用的 VTP 服务器应该采用配置较好的交换机，其它交换机则作为客户机使用。此外需要有某些 VTP 服务器能提供网络所需的一定量的冗余。
版本
VTP具有三种版本。其中VTPv2与VTPv1区别不大，主要不同在于：VTPv2支持令牌环VLANs，而VTPv1不支持。通常只有在使用TokenRingVLANs时，才会使用到VTPv2，否则一般情况下并不使用VTPv2。
VTPv3不能直接处理VLANs事务，它只负责管理域（AdministrativeDomain）内不透明数据库的分配任务。  VTP域与前两版相比，VTPv3具有以下改进：
支持扩展VLANs（4K)。
支持专用VLANs的创建和通告。
提供服务器认证性能以防止错误的同步新插入的交换机的Vlan database。
与VTPv1和VTPv2交互作用。
支持每端口（OnaPer-PortBasis）配置。
支持传播VLAN数据库和其它数据库类型。
支持明文和密文认证。
优化了资源处理和信息传递。[1]
故障排查
在show run命令输出中无法看到VLAN的详细情况　在 CatOS 中进行配置更改后，这些更改会立即写入 NVRAM。 相反，除非 发出copy running-config startup-config命令， Cisco IOS软件不保存对NVRAM的配置更改。 VTP 客户端和服务器系统要求在没有用户干预的情况下，立即将来自其他 VTP 服务器的 VTP 更新保存到 NVRAM 中。 默认 CatOS 操作符合 VTP 更新要求，但是 Cisco IOS 更新模型需要替代的更新操作。
为了满足这一变更，Cisco IOS 软件中引入了 VLAN 数据库，将其作为一种立即保存 VTP 客户端和服务器的 VTP 更新的方法。 在某些软件的版本中，此 VLAN 数据库在 NVRAM 中以单独文件的形式出现，称为 vlan.dat 文件。 如果发出 show vtp status 命令，则可以查看存储在 VTP 客户端或 VTP 服务器的 vlan.dat 文件中的 VTP/VLAN 信息。
如果在处于 VTP 服务器/客户端模式的交换机上发出 copy running-config startup-config 命令，则这些系统不会将整个 VTP/VLAN 配置保存到 NVRAM 中的启动配置文件。 系统会将配置保存到 vlan.dat 文件。 这不适用于以 VTP 透明模式运行的系统。 当您发出 copy running-config startup-config 命令时，VTP 透明系统会将整个 VTP/VLAN 配置保存到 NVRAM 中的启动配置文件。 例如，如果在服务器或客户端模式下配置 VTP 后删除了 vlan.dat 文件，然后重新加载交换机，则 VTP 配置会重置为默认设置。 但是，如果在透明模式下配置 VTP，然后删除 vlan.dat 文件并重新加载交换机， VTP 配置将保持不变。 
以下是默认 VTP 配置的一个示例：
Switch#show vtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 5
VTP Operating Mode : Client
VTP Domain Name : CISCO
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0xD3 0x78 0x41 0xC8 0x35 0x56 0x89 0x97
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00 
当交换机处于 VTP 服务器模式或 VTP 透明模式时，可配置正常范围内的 VLAN（2 到 1000）。 但是，只能在处于 VTP 透明模式的交换机中配置扩展范围内的 VLAN（1025 到 4094）。
必须发出 show vlan 命令，才能显示二进制文件中存储的所有 VLAN 配置、VLAN ID、名称等。
您可以使用 show vtp status 命令来显示 VTP 信息、模式、域等。
当交换机处于 VTP 服务器/客户端模式时，show running-config 命令输出中不会显示 VLAN 信息和 VTP 信息。 这是正常的交换机行为。
Router#show run | include vlan
vlan internal allocation policy ascending 
Router#show run | include vtp
处于 VTP 透明模式的交换机可在 show running-config 命令输出中显示 VLAN 和 VTP 配置，因为此信息也存储在配置文本文件中。
Router#show run | include vlan
vlan internal allocation policy ascending
vlan 1
tb-vlan1 1002
tb-vlan2 1003
vlan 20-21,50-51 
vlan 1002
tb-vlan1 1
tb-vlan2 1003
vlan 1003
tb-vlan1 1
tb-vlan2 1002
vlan 1004
vlan 1005 
Router#show run | include vtp
vtp domain cisco
vtp mode transparent 
注意： 3500XL 不支持扩展范围内的 VLAN。 2900XL 和 3500XL 只能使用 1-1001 范围内的 VLAN，它们不支持扩展范围内的 VLAN。 如果升级交换机的软件，这不会使交换机增强为支持配置扩展范围内的 VLAN。
Catalyst 交换机不交换 VTP 信息VTP 允许交换机在相同 VTP 域中的其他成员之间通告 VLAN 信息。 通过使用 VTP，所有交换机之间可具有一致的交换网络视图。 有几个原因会导致无法交换 VLAN 信息。
如果运行 VTP 的交换机无法交换 VLAN 信息，请检查以下项目：
VTP 信息只通过中继端口。 确保实现交换机互连的所有端口均配置为中继，并且实际正在进行中继。
确保当两台交换机之间创建了 EtherChannel 时，只有第 2 层 EtherChannel 传播 VLAN 信息。
确保 VLAN 在所有设备中都处于活动状态。
在 VTP 域中，必须有一台交换机是 VTP 服务器。 所有的 VLAN 更改都必须在此交换机上进行，以便将更改传播到 VTP 客户端。
VTP 域名必须匹配，并且要区分大小写。 CISCO 和 cisco 是两个不同的域名。
确保服务器与客户端之间未设置口令。 如果设置了口令，确保两端的口令相同。
VTP 域中的每台交换机必须使用相同的 VTP 版本。 相同 VTP 域中的交换机上的 VTP V1 和 VTP V2 不兼容。 除非 VTP 域中的每台交换机都支持 VTP V2，否则不要启用 VTP V2。
注意： 默认情况下，支持 VTP V2 的交换机上的 VTP V2 处于禁用状态。 在一台交换机上启用 VTP V2 后，VTP 域中支持 VTP V2 的每台交换机都会启用 VTP V2。 您只能在处于 VTP 服务器模式或透明模式的交换机上配置版本。
如果在透明模式下运行的交换机不在相同的 VTP 域中，则这些交换机会丢弃 VTP 通告。 
不能传播扩展范围内的 VLAN。 因此，必须在每台网络设备上手动配置扩展范围内的 VLAN。
注意： Catalyst 6500 Cisco IOS 软件交换机将来会支持 VTP 版本 3。 该版本能够传输扩展范围内的 VLAN。 目前，只有 CatOS 支持 VTP 版本 3。 有关 VTP 版本 3 的详细信息，请参阅配置 VTP 的了解 VTP 版本 3 的工作方式部分。
安全关联标识符 (SAID) 值必须是唯一的。 SAID 是可由用户配置的 4 字节 VLAN 标识符。 SAID 标识属于特定 VLAN 的流量。 SAID 还确定每个数据包被交换到的 VLAN。 SAID 值是 100,000 与 VLAN 编号之和。 以下是两个示例：
VLAN 8 的 SAID 是 100008。
VLAN 4050 的 SAID 是 104050。
如果客户端已经有较高的 VTP 修订版号，则来自 VTP 服务器的更新内容不会在客户端进行更新。 此外，如果客户端的修订版号比 VTP 服务器发送的修订版号高，则客户端不允许这些更新流入其下游 VTP 客户端。Catalyst 交换机自动将VTP 模式从客户端模式切换到透明模式　某些 Catalyst 第 2 层和第 3 层固定配置交换机自动将 VTP 模式从客户端模式切换到透明模式，并生成以下错误消息：
%SW_VLAN-6-VTP_MODE_CHANGE: VLAN manager changing device mode from 
CLIENT to TRANSPARENT. 
以下任一原因都可能导致这些交换机自动切换 VTP 模式：
基于生成树协议 (STP) 运行的 VLAN 的数量超过交换机可以支持的 VLAN 数量。 
在使用每 VLAN 生成树+ (PVST+) 协议的情况下，Catalyst 第 2 层和第 3 层固定配置交换机支持的最大 STP 实例数会有所不同。 例如，在 PVST+ 模式下，Catalyst 2940 支持 4 个 STP 实例，而 Catalyst 3750 支持 128 个 STP 实例。 如果 VTP 中定义的 VLAN 数量超过最大值，则剩余的 VLAN 会在禁用 STP 的情况下运行。
如果已在使用的 STP 实例的数量超过最大值，则可以禁用其中一个 VLAN 上的 STP，然后在您希望运行 STP 的 VLAN 上启用 STP。 发出 no spanning-tree vlan vlan-id 全局配置命令可禁用特定 VLAN 上的 STP。 然后，发出 spanning-tree vlan vlan-id 全局配置命令可启用所需 VLAN 上的 STP。
注意： 不运行 STP 的交换机仍会转发其收到的网桥协议数据单元 (BPDU)。 这样，VLAN 中其他正在运行 STP 的交换机就可以断开环路。 因此，要断开网络中的所有环路，必须在足够多的交换机上运行 STP。 例如，VLAN 中的每个环路上至少一台交换机必须运行 STP。 不需要在 VLAN 中的所有交换机上运行 STP。 但是，如果只在极少数交换机上运行 STP，则网络变更可能会使网络中产生环路，从而可能导致广播风暴。
应急方案： 
将配置的 VLAN 的数量减少到交换机可以支持的数量。
在交换机上配置 IEEE 802.1s 多重 STP (MSTP)，以便将多个 VLAN 映射到单个 STP 实例。
使用支持更大数量的 VLAN 的交换机和/或映像（增强映像 [EI]）。
交换机从相连的交换机接收到的 VLAN 数量超过其可支持的 VLAN 数量。 
如果交换机收到的 VLAN 配置数据库消息中所包含的 VLAN 数量超过设置的 VLAN 数量，则也会自动进行 VTP 模式切换。 当 Catalyst 第 2 层和第 3 层固定配置交换机所连接到的 VTP 域中包含的 VLAN 数量超过本地支持的 VLAN 数量时，这些交换机中通常会出现上述情况。
应急方案： 
在连接的交换机的中继端口上配置允许的 VLAN 列表，以便限制传递给客户端交换机的 VLAN 数量。
在 VTP 服务器交换机上启用修剪。
使用支持更大数量的 VLAN 的交换机和/或映像 (EI)。
VTP 域间的数据流量被阻塞有时需要连接属于两个不同 VTP 域的交换机。 例如，有两个名为 Switch1 和 Switch2 的交换机。 Switch1 属于 VTP 域 cisco1，而 Switch2 属于 VTP 域 cisco2。 使用动态中继协商 (DTP) 配置这两台交换机之间的中继时，中继协商失败，并且交换机之间的中继未形成，这是因为 DTP 在 DTP 数据包中发送 VTP 域名。 因此，数据流量无法在交换机之间传输。
Switch1#show vtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 9
VTP Operating Mode : Server
VTP Domain Name : cisco1
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
Switch2#show vtp status
VTP Version : 2
Configuration Revision : 2
Maximum VLANs supported locally : 1005
Number of existing VLANs : 42
VTP Operating Mode : Server
VTP Domain Name : cisco2
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
Switch1#show interface fastethernet 1/0/23 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/23 auto 802.1q not-trunking 1
Port Vlans allowed on trunk
Fa1/0/23 1
Port Vlans allowed and active in management domain
Fa1/0/23 1
Port Vlans in spanning tree forwarding state and not pruned
Fa1/0/23 1 
您可能还会看到以下错误消息。 
注意： 某些交换机不显示以下错误消息。
4w2d: %DTP-SP-5-DOMAINMISMATCH: Unable to perform trunk negotiation on port Fa3/
3 because of VTP domain mismatch. 
此问题的解决方案是手动强制形成中继，而不是依赖于 DTP。 使用 switchport mode trunk 命令配置交换机之间的中继端口。
Switch1(config)#interface fastethernet 1/0/23
switch1(config-if)#switchport mode trunk
Switch2(config)#interface fastethernet 3/3
switch2(config-if)#switchport mode trunk
switch1#show interface fastethernet 1/0/23 trunk
Port Mode Encapsulation Status Native vlan
Fa1/0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa1/0/23 1-4094
Port Vlans allowed and active in management domain
Fa1/0/23 1-5
Port Vlans in spanning tree forwarding state and not pruned
Fa1/0/23 1-5如何确定交换机是否可能受影响？此 CatOS 版本中有一个保护功能，用于防止监视器超时。 Catalyst 交换机可从 VTP 服务器或客户端模式切换到 VTP 透明模式。如何确定交换机是否已切换到 VTP 透明模式来防止监视器超时？　如果 VTP 的日志记录级别上升到 4，则说明交换机已切换到 VTP 透明模式。
Console> (enable) set logging level vtp 4 default 
进行切换时，您可以看到以下消息：
VTP-4-UNSUPPORTEDCFGRCVD:Rcvd VTP advert with unsupported vlan config on trunk mod/port- VTP mode changed to transparent交换机切换到 VTP 透明模式后有什么负面影响？　如果启用了修剪，则中继将关闭。
如果中继关闭且该 VLAN 中没有其他端口，则安装的 Multilayer Switch Feature Card (MSFC) 中的 VLAN 接口将关闭。
如果出现这些情况，并且此交换机位于网络的核心位置，则网络可能受到负面影响。最近添加的交换机无法从 VTP 服务器获取 VLAN　新的交换机可能不会立即收到来自 VTP 服务器的已配置 VLAN 列表。 要解决此问题，请对 VLAN 数据库进行以下任一种修改：
创建任意 VLAN。
删除任意 VLAN。
修改任何当前 VLAN 的属性。
在相同域中的任何 VTP 服务器上修改 VLAN 数据库。
Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 50 Switch(config-vlan)#name 50thVLAN Switch(config-vlan)#endSwitch# 
修改完成后，新添加的交换机就能收到来自 VTP 服务器的 VLAN 信息。