标题：VTP
原理概述
它是一个OSI参考模型第二层的通信协议，主要用于管理在同一个域的网络范围内VLANs的建立、删除和重命名。在一台VTP Server 上配置一个新的VLAN时，该VLAN的配置信息将自动传播到本域内的其他所有交换机。这些交换机会自动地接收这些配置信息，使其VLAN的配置与VTP Server保持一致，从而减少在多台设备上配置同一个VLAN信息的工作量，而且保持了VLAN配置的统一性。 
VTP通过网络(ISL帧或cisco私有DTP帧)保持VLAN配置统一性。VTP在系统级管理增加，删除，调整的VLAN，自动地将信息向网络中其它的交换机广播。此外，VTP减小了那些可能导致安全问题的配置。便于管理,只要在vtp server做相应设置,vtp client会自动学习vtp server上的vlan信息 
* 当使用多重名字VLAN能变成交叉--连接。 
* 当它们是错误地映射在一个和其它局域网，VLAN能变成内部断开。 
VTP有三种工作模式：VTP Server、VTP Client 和 VTP Transparent。新交换机出厂时的默认配置是预配置为VLAN1，VTP 模式为服务器。 一般，一个VTP域内的整个网络只设一个VTP Server。VTP Server维护该VTP域中所有VLAN 信息列表，VTP Server可以建立、删除或修改VLAN，发送并转发相关的通告信息，同步vlan配置，会把配置保存在NVRAM中。VTP Client虽然也维护所有VLAN信息列表，但其VLAN的配置信息是从VTP Server学到的，VTP Client不能建立、删除或修改VLAN，但可以转发通告，同步vlan配置，不保存配置到NVRAM中。VTP Transparent相当于是一项独立的交换机，它不参与VTP工作，不从VTP Server学习VLAN的配置信息，而只拥有本设备上自己维护的VLAN信息。VTP Transparent可以建立、删除和修改本机上的 VLAN信息，同时会转发通告并把配置保存到NVRAM中。
VTP的用途
通常情况下，我们需要在整个园区网或者企业网中的一组的交换机中保持VLAN数据库的同步，以保证所有交换机都能从数据帧中读取相关的VLAN信息进行正确的数据转发，然而对于大型网络来说，可能有成百上千台交换机，而一台交换机上都可能存在几十乃至数百个VLAN，如果仅凭网络工程师手工配置的话是一个非常大的工作量，并且也不利于日后维护——每一次添加修改或删除VLAN都需要在所有的交换机上部署。在这种情况下，我们引入了VTP（VLAN Trunking Protocol）。
分类
要使用VTP，首先必须建立一个VTP管理域，在同一管理域中的交换机共享vlan信息，并且一个交换机只能参加一个管理域。不同域中的交换机不能共享vlan信息。VTP域VTP域也称为VLAN管理域，有一个以上共享VTP域名互相连接的交换机组成。也就是说，VTP域是一组VTP域名相同并通过中继链路相互连接的交换机。
下面是VTP域的要求：
1、域内的每台交换机都必须使用相同的域名，不论是通过配置实现，还是由交换自动学到的。
2、Calalyst交换机必须是相邻的，即相邻的交换机需要具有相同的域名。
3、在所有Calalyst交换机之间，必须配置中继链路。
如果上述条件任何一项不满足，则VTP域不能联通，信息也就无法跨越分离部分进行传送。
VTP模式有3种 服务器模式（Server）客户机模式（Client）透明模式（Transparent）服务器模式（Server）提供VTP消息：包括VLAN ID和名字信息 
学习相同域名的VTP消息 
转发相同域名的VTP消息 
可以添加、删除和更改VLAN VLAN信息写入NVRAM
该模式下不能使用扩展客户机模式（Client）请求VTP消息 
学习相同域名的VTP消息 
转发相同域名的VTP消息 
不可以添加、删除和更改VLAN VLAN信息不会写入NVRAM
该模式下不能使用增强型软件映像提供的VID，即只能使用2-1001这一段的值。1，1002-1005均为系统默认VID。要使用1006-4096作VID的值，只能关闭VTP或采用透明模式。透明模式（Transparent）不提供VTP消息 
不学习VTP消息 
转发VTP消息 
可以添加、删除和更改VLAN，只在本地有效 VLAN信息写入NVRAM
新交换机出厂时的默认配置是预配置为VLAN1，VTP 模式为服务器。
当交换机是在VTP Server或透明的模式，能在交换机配置VLAN。当交换机配置在VTP Server或透明的模式，使用CLI、控制台菜单、MIB（当使用SNMP简单网络管理协议管理工作站）修改VLAN配置。 
一个配置为VTP Server模式的交换机向邻近的交换机广播VLAN配置，通过它的Trunk从邻近的交换机学习新的VLAN配置。在Server模式下可以通过MIB，CLI，或者控制台模式添加、删除和修改VLAN。 
例如：增加了一个VLAN，VTP将广播这个新的VLAN，Server和Client机的Trunk网络端口准备接收信息。 
在交换机自动转到VTP的Client模式后，它会传送广播信息并从广播中学习新的信息。但是，不能通过MIB、CLI、或者控制台来增加、删除、修改VLAN。VTP Client端不能保持VLAN信息在非易失存储器中。当启动时，它会通过Trunk网络端口接受广播信息，学习配置信息。 
在VTP透明的模式，交换机不做广播或从网络学习VLAN配置。当一个交换机是在VTP透明的模式，能通过控制台、CLI、MIB来修改、增加、删除VLAN。 
为使每一个VLAN能够使用，必须使VTP知道。并且包含在Trunk port 的准许列表中，一个快速以太网ISL Trunk自动为VLAN传输数据，并且从一个交换机到另一个交换机。 
需要注意的是如果交换在VTP Server模式接收广播包含128多个VLAN，交换自动地转换向VTP Client模式。 
更改交换机从VTP Client模式向VTP透明的模式，交换机保持初始、唯一128VLAN并删除剩余的VLAN。 
传送VTP信息 
每个交换机用VTP广播Trunk端口的管理域，定义特定的VLAN边界，它的配置修订号，已知VLAN和特定参数。在一个VTP管理域登记后交换机才能工作。 
通过Trunk，VTP Server向其它交换机传输信息和接收更新。VTP Server也在NVRAM中保存本VTP管理域信息中 VLAN的列表。 VTP能通过统一的名字和内部的列表动态显示出管理域中的VLAN。 
VTP信息在全部Trunk连接上传输，包括ISL、IEEE802.10、LANE。VTP MIB为VTP提供SNMP工具，并允许浏览VTP参数配置。 
VTP建立共用的配置值和分布下列的共用的配置信息: 
* VLAN IDs（ISL） 
* 仿效LAN的名字（ATM LANE） 
* IEEE802.10 SAID值（FDDI） 
* VLAN中最大的传输单元（MTU）大小 
* 帧格式 
VTP协议用来确保配置的一致性，VTP的具体优点如下：
。保持了VLAN的一致性
。提供从一个交换机到另一个交换机在整个管理域中增加虚拟局域网的方法
VTP协议是思科的专用协议，大多数的Catalys交换机都支持该协议，VTP可以减少VLAN的相关管理任务。
在VTP域中有两个重要的概念：
。VTP域：也称VLAN管理域，由一个以上共享VTP域名的相互连接的交换机组成的。也就是说VTP域是一组域名相同并通过中继链路相互连接的交换机
。VTP通告：在交换机之间用来传递VLAN信息的数据包被称为VTP数据包。
VTP通告包括：汇总通告，子集通告，通告请求。
VTP通告使用组播发送，地址为01-00-0c-cc-cc-cc，且只通过中继端口传递，消息通过vlan1传递，
注意：
若给VTP配置密码，那么本域内的所有交换机的VTP密码必须保持一致。
创建VTP域命令 思科IOS系统
switch(config)#vtp domain DOMAIN_NAME
配置交换机的VTP模式
三种模式server client transparent(透明模式)
switch(config)# vtp mode server | client | transparent
配置VTP口令
switch (config) # vtp password PASSWORD
配置VTP修剪
switch (config) # vtp pruning
配置VTP版本
switch (config) # vtp version 2(默认是版本1)
查看VTP配置信息
switch# show vtp status
有关思科OS系统,如下配置
switch>〔enable〕set vtp mode server 其他配置参考此模式
在三层交换机加了一块二层档板时，命令环境改变。
比如原来需要在全局配置模式下输入vtp命令，而此时需要在vlan database模式下输入了。
VTP配置方法
进入Vlan //3640配置
Switch#vlan database
现在可以在全局模式下直接配置
switch(config)#
建立VTP域
Switch(vlan)#vtp domain name
修改交换机vtp的模式
Switch(vlan)#vtp{client|server|transparent}
配置vtp密码
Switch(vlan)#vtp password ……
配置VTP修剪
switch (vlan) # vtp pruning 
查看VTP运行状态
Switch#show vtp status
查看交换机收到和发出广告的数目
Switch#show vtp counters
VTP故障排查
很多时候按照常规配置完毕后，并不能学习到VLAN信息，通过show vtp status命来查看往前设备与VTP Server角色的交换机对比，请重点排查以下点：
SW#show vtp status
VTP Version : 2 //VTP的版本是否一致，如果不一致需配置一下
Configuration Revision : 0
Maximum VLANs supported locally : 255
Number of existing VLANs : 5
VTP Operating Mode : Client //确认当前交换机的工作角色
VTP Domain Name : cisco //交换机所在域是否和Server模式的交换机一致
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0xAA 0xB9 0x0C 0xCD 0xD7 0xE8 0xA6 0xE0 //交换机密码是否与Server模式的交换机一致，如果不一致请确认后重新配置
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
确认以上信息一致后，再确认交换机之间的互联链路是否为Trunk模式，通过命令来查看：
SW#show int trunk 
Port Mode Encapsulation Status Native vlan
Fa0/1on802.1q trunking 1 
Port Vlans allowed on trunk
Fa0/1 1-1005
Port Vlans allowed and active in management domain
Fa0/1 1
Port Vlans in spanning tree forwarding state and not pruned
Fa0/1 none
SW#
如果异常请用以下命令来配置：
SW#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SW(config)#int f0/1
SW(config-if)#sw mo trunk
SW(config-if)#exit
SW(config)#
至此，仍然不能学习到VLAN信息，请首先关闭互联的Trunk链路
SW#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SW(config)#int f0/1
SW(config-if)#shutdown
清理VTP同步计数：
Switch#clear vtp counters
再打开互联的Trunk链路，即可正常学习到VLAN信息。
VTP消息类型
汇总通告消息（Summary Advertisement）
在默认情况下，Catalyst交换机会每5分钟发送一条汇总通告消息。汇总通告消息会通知临近Catalyst交换机当前的VTP域名和配置修订号。当交换机收到汇总通告消息数据包时，交换机就会将数据包中的VTP域名与自己的VTP域名进行比较。如果名称不同，交换机就会忽略这个数据包。如果名称相同，交换机就会将自己的配置修订号与数据包的修订号进行比较。如果自己的配置修订号大于等于数据包的修订号，数据包也会被忽略。如果自己的配置修订号比较小，那么交换机就会发送通告请求消息。
子集通告消息（Subset Advertisement）
管理员在Catalyst交换机上添加、删除或修改VLAN时，配置被修改了的那台服务器交换机就会增加配置修订号，并发送一条汇总通告消息。随后，它又会发送一条或多条子集通告消息。每条子集通告消息中都包含一个VLAN信息的列表。如果有多个VLAN，交换机就会请求服务器交换机发送多条子集通告消息来通告所有这些VLAN的信息。
通告请求消息（Advertisement Reguest）
在下列情况下，交换机需要发送VTP通告请求消息。
1.交换机重启
2.VTP域名被修改
3.交换机收到了一条VTP汇总通告消息，且该消息的配置修订号高于其自身的修订号。
在收到通告请求消息之后，VTP设备就会发送一条汇总通告消息。在此之后，再发送一条或多条子集通告消息。