标题：VTP协议
VTP概述
VTP协议的作用VLAN中继协议（VTP）利用第2层中继帧，在一组交换机之间进行VLAN通信．VTP从一个中心控制点开始，维护整个企业网上VLAN的添加和重命名工作，确保配置的一致性。VTP的优点>保持配置的一致性
>提供跨不同介质类型如ATM FDDI和以太网配置虚拟局域网的方法  >提供跟踪和监视虚拟局域网的方法
>提供检测加到另一个交换机上的虚拟局域的方法
>提供从一个交换机在整个管理域中增加虚拟局域网的方法
VTP的工作原理
VTP概述和工作原理VTP是一种消息协议，使用第2层帧，在全网的基础上管理VLAN的添加、删除和重命名，以实现VLAN配置的一致性。可以用VTP管理网络中VLAN1到1005。
有了VTP，就可以在一台机换上集中过时行配置变更，所作的变更会被自动传播到网络中所有其他的交换机上。（前提是在同一个VTP域）
为了实现此功能，必须先建立一个VTP管理域，以使它能管理网络上当前的VLAN。在同一管理域中的交换机共享它们的VLAN信息，并且，一个交换机只能参加到一个VTP管理域，不同域中的交换机不能共享VTP信息。
交换机间交换下列信息：
>管理域域名
>配置的修订号
>已知虚拟局域网的配置信息．
交换机使用配置修正号，来决定当前交换机的内部数据是否应该接受从其他交换机发来的VTP更新信息．
>如果接收到的VTP更新配置修订号与内部数据库的修订号相同域者比它小，交换机忽略更新．
>否则，就更新内部数据库，接受更新信息．
VTP管理域在安全模式下，必须配置一个在VTP域中所有交换机惟一的口令．
VTP的运行有如下特点：
>VTP通过发送到特定MAC地址01－00－0C－CC－CC－CC的组播VTP消息进行工作．
>VTP通告只通过中继端口传递．
>VTP消息通过VLAN1传送．（这就是不能将VLAN1从中继链路中去除的原因）
>在经过了DTP自动协商，启动了中继之后，VTP信息就可以沿着中继链路传送．
>VTP域内的每台交换机都定期在每个中继端口上发送通告到保留的VTP组播地址
VTP通告可以封装在ISL或者IEEE802.1Q帧内．VTP域VTP域，也称为VLAN管理域，由一个以上共享VTP域名的相互接连的交换机组成．
交换机缺省VTP域名为空．VTP信息只能在VTP域内保持．一台交换机可属于并且只属于一个VTP域．
缺省情况下，CATALYST交换机处于VTP服务器模式，并且不属于任何管理域，直到交换机通过中继链路接收了关于一个域的通告，或者在交换机上配置了一个VLAN管理域，交换机才能在VTP服务器上把创建或者更改VLAN的消息通告给本管理域内的其他交换机
如果在VTP服务器上进行了VLAN配置变更，所做的修改会传播到VTP域内的所有交换机上．
如果交换机配置为"透明"模式，可以创建或者修改VLAN，但所做的修改只影响单个的交换机
控制VTP功能的一项关键参数是VTP配置修改编号．这个32位的数字表明了VTP配置的特定修改版本．配置修改编号的取值从0开始，每修改一次，就增加1直到达到4294967295，然后循环归0，并重新开始增加．每个VTP设备会记录自己的VTP配置修改编号；VTP数据包会包含发送者的VTP配置修改编号．这一信息用于确定接收到的信息是否比当前的信息更新．
要将交换机的配置修改号置为0，只需要禁中继，改变VTP的名称，并再次启用中继．
VTP域的要求：
>域内的每台交换机必须使用相同的VTP域名，不论是通过配置实现，还是由交换机自动学动
>CATALYST交换机必须是相邻的，这意味着，VTP域内的所有交换机形成了一颗相互连接的树．每台交换机都通过这棵树与其他交换机相互．
>在所有的交换机之间，必须启用中继．VTP的运行模式VTP模式有3种，分别是：
>服务器模式（SERVER　缺省）
VTP服务器控制着它们所在域中VALN的生成和修改．所有的VTP信息都被通告在本域中的其他交换机，而且，所有这些VTP信息都是被其他交换机同步接收的．
>客户机模式（CLIENT）
VTP客户机不允许管理员创建、修改或删除VLAN。它们监听本域中其他交换机的VTP通告，并相应修改它们的VTP配置情况．
>透明模式（TRANSPARENT）
VTP透明模式中的交换机不参与VTP．当交换机处于透明模式时，它不通告其VLAN配置信息．而且，它的VLAN数据库更新与收到的通告也不保持同步．但它可以创建和删除本地的VLAN．不过，这些VLAN的变更不会传播到其他任何交换机上．
各种运行模式的状态
功能 服务器模式 客户端模式 透明模式
提供VTP消息 √ √ ×
监听VTP消息 √ √ ×
修改VLAN √ × √(本地有效）
记住VLAN √ ×√（在不同的版本有不同的结果） √（本地有效）VTP的通告1.VTP通告概述
使用VTP时，加入VTP域的每台交换机在其中继端口上通告如下信息．
>管理域
>配置版本号
>它所知道的VLAN
>每个已知VLAN的某些参数
这些通告数据帧被发送到一个多点广播地址（组播地址），以使所有相邻设备都能收到这些帧．
新的VLAN必须在管理域内的一台牌服务器模式的交换机上创建和配置．该信息可被同一管理域中所有其他设备学到
VTP帧是作为一种特殊的帧发送到中继链路上的．
有2种类型的通告：
>来自客户机的请求，由客户机在启动时发出，用以获取信息．
>来自服务器的响应
有3种类型的消息：
>来自客户机的通告请求
>汇总通告
>子集通告
VTP通告中可包含如下信息：
>管理域名称
>配置版本号
>MD5摘要－－当配置了口令后，MD5是与VTP一起发送的口令．如果口令不匹配，更新将被忽略．
>更新者身份－－发送VTP汇总通告的交换机的身份．
VTP通告处理以配置修订号为0为起点．每当随后的字段变更一项时，这个修订号就加1，直到VTP通告被发送出去为止．
VTP修订号存储在NVRAM中，交换机的电源开关不会改变这个设定值．要将修订号初始化为0，可以用下列方法：
>将交换机的VTP模式更改为透明模式，然后再改为服务器模式．
>将交换机VTP的域名更改一次，再更改回原来的域名．
>使用clear config all命令，清除交换机的配置和VTP信息．再次启动．
2. 3种VTP消息类型
（1）汇总通告
用于通知邻接的CATALYST交换机目前的VTP域名和配置修改编号．缺省情况下，CATALYST交换机每5分钟发送一次汇总通告．
当交换机收到了汇总通告数据包时，它会对比VTP域名：
>如果域名不同，就忽略此数据包
>如果域名相同，则进一步对比配置修改编号
>如果交换机自身的配置修改编号更高或与之相等，就忽略此数据包．如果更小，就发送通告请求．
（2）子集通告
如果在VTP服务器上增加、删除或者修改了VLAN，"配置修改编号"就会增加，交换机会首先发送汇总通告，然后发送一个或多个子集通告．挂起或激活某个VLAN，改变VLAN的名称或者MTU，都会触发子集通告．
子集通告中包括VLAN列表和相应的VLAN信息．如果有多个VLAN，为了通告所有的信息，可能需要发送多个子集通告．
（3）通告请求
交换机在下列情况下会发出VTP通告请求：
>交换机重新启动后
>VTP域名变更后
>交换机接到了配置修改编号比自己高的VTP汇总通告VTP域内安全为了使管理域更安全，域中每个交换机都需要配置域名和口令，并且域名和口令必须相同．
例（将TEST管理域设置为安全管理域）：
>进入配置模式：
switch#configure terminal
>配置VTP域名：
switch(config)#vtp domain test
>配置VTP运行模式：
switch(config)#vtp mode server
>配置VTP口令：
switch(config)#vtp password 2 3 7
switch(config-if)#end
switch#show interface fa0/3 switchport
-
trunking vlans active:1-4,6,7,200
pruning vlans enable :4-6,8-1001
例3（在管理域中关闭VTP修剪）
switch#config t
switch(config)#no vtp pruning
switch#show vtp status
-
vtp pruning mode :disabled（修剪已关闭）
<3>VTP版本设置
switch(config)#vtp version 2（配置为版本2）
switch(config)#no vtp version 2(回到版本1）
switch#show vtp terminal
VTP V2 mode :enable
只有在VTP服务器模式下才能变更VTP版本VTP裁剪VTP修剪（VTP Pruning）是VTP的一个功能，它能减少中继链路上不必要的广播流量，默认情况下，某个VLAN的广播会从中继链路发送到每一个中继借口承载该VLAN的交换机上，即使交换机上没有那个VLAN的端口也是如此，这也就意味着，中继链路可能会传送最终被该交换机丢弃的广播流量。
VTP通过修剪减少没有必要扩散的流量，从而可以提高中继链路的带宽利用率，仅当中继链路接收端上的交换机在那个VLAN中有的端口时，才会将VLAN的广播和位置单播帧转发到该中继链路上。VTP修剪采用了附加的VTP报文类型，当Catalyst交换机连接到VLAN的端口时，它会给在该VLAN上有活动端口的邻接交换机发送通告。邻接交换机会保留这个信息，用它来帮助交换机确定来自一个VLAN的通信量是否应当使用终极端口转发。
在VTP域内增加、减少交换机的配置方法
<1>增加交换机
新加入的交换机的VTP配置号比所要加入的域中原来的VTP服务器上的配置号要低．
添加过程：
>清除配置：（或其他的方法）
switch(config)#erase startup-config
switch(config)#end
switch#reload
>配置VTP运行模式：
switch(config)#vtp domain test
>配置VTP运行模式
switch(config)#vtp mode server
switch(config)#end
switch#show vtp status
<2>减少交换机
switch(config)#vtp domain test-a
switch(config)#end
switch#show vtp status
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信息。