VTP

VTP(VLAN中继协议/虚拟局域网干道协议 VLAN Trunking Protocol),它是思科私有协议。在稍微大型一点的网络中,会有多个交换机,同时也会有多个VLAN,如果在每个交换机上分别把VLAN创建一遍,这会是一个工作量很大的任务。假设网络中有M个交换机,共划分了N个VLAN,则为了保证网络正常工作,需要在每个交换机上都创建N个VLAN,共M×N个VLAN,随着M和N的增大,这项任务将会枯燥而繁重。VTP协议可以帮助我们减少这些枯燥繁重的工作。管理员在网络中设置一个或者多个VTP Server,然后在Server上创建和修改VLAN,VTP协议会将这些修改通告其它交换机上,这些交换机更新VLAN信息(VLAN ID和VLAN Name)。VTP使得VLAN的管理自动化得多了。

VTP原理

VTP Domain(VTP域):

由需要共享相同VLAN信息的交换机组成,只有在同一个VTP域(即VTP域的名字相同)的交换机才能同步VLAN信息。

VTP基本配置_第1张图片

根据交换机在VTP域中的作用不同,VTP可以分为以下三种模式:

Server(服务器模式):在VTP服务器上能创建、修改和删除VLAN,同时这些信息会在Trunk链路上通告给域中的

     其它交换机;VTP服务器收到其它交换机的VTP通告后会更改自己的VLAN信息,并进行转发。VTP服务器会把

     VLAN信息保存在NVRAM(即flash:vlan.dat文件)中,就是重新启动交换机这些VLAN还会存在。默认情况下,

     交换机是服务器模式。每个VTP域必须至少有1台服务器,当然也可以有多台。

Client(客户机模式):在VTP客户机上不允许创建、修改和删除VLAN,但它会监听来自其它交换机的VTP通告并

     更改自己的VLAN信息,接收到的VTP信息也会在Trunk链路上向其它交换机转发,因此这种交换机还能充当

     VTP中继;VTP Client把VLAN信息保存在RAM中,交换机重启动后这些信息会丢失。

Transparent(透明模式):的交换机不完全参与VTP。可以在这种模式的交换机上创建、修改和删除VLAN,但是

     这些VLAN信息并不会通告给其它交换机,它也不接受其它交换机的VTP通告而更新自己的VLAN信息。然而,

     它会通过Trunk链路转发收到的VTP通告从而充当了VTP中继的绝色,因此完全可以把该交换机看成是透明

     的。VTP Transparent仅会把本交换机上的VLAN信息保存在NVRAM中。

说明:根据Cisco资料,VTP Client不会在flash:vlan.dat文件存放VLAN信息,然而多次试验并不是这样的。

VTP通告

VLAN信息的同步是通过VTP通告来实现的,VTP通告只能在Trunk链路上传输(因此交换机之间的链路必须成功配置Trunk)。VTP通告是以组播帧的方式发送的,VTP通告中有一个字段称为修订号(Revision),代表VTP帧的修订级别,它是一个32位的数字。交换机的默认修订号为0。每次添加或删除VLAN时,修订号都会递增。修订号用于确定从另一台交换机收到的VLAN信息是否比储存在本交换机上的信息更新。如果收到的VTP通告修订号更高,则本交换机将根据此通告更新自身的VLAN信息。如果交换机收到的修订号更低的通告,会用自己的VLAN信息反向覆盖。需要注意的是:高Revision的通告会覆盖低Revision的通告,而不管自己或者对方是Server还是Client。

VTP通告包含以下三种通告类型:

总结通告:

触发总结通告的情况:VTP服务器或客户机每300s发送一次给邻居交换机;执行配置操作后也会立即发送。

总结通告包含的信息:VTP域名、当前修订版号、VTP配置详细信息等。

VTP基本配置_第2张图片

子集通告:

触发子集通告的情况:创建或删除VLAN、暂停或激活VLAN、更改VLAN名称和更改VLAN的MTU。

子集通告包含的信息:VLAN信息。

VTP基本配置_第3张图片

请求通告:

当向VTP域中的VTP服务器发送请求通告时,VTP服务器的响应方式是:先发送总结通告,接着送出子集通告。

触发请求通告的情况:VTP域名变动、交换机收到的总结通告包含比自身更高的修订号、子集通告消息由于某些

     原因丢失、交换机被重置。

VTP基本配置_第4张图片

VTP通告说明:

①使用组播发送,地址为01-00-0C-CC-CC-CC;

②只通过中继端口传递;

③VTP消息通过Native VLAN(默认Vlan 1)传送。

VTP修剪

VTP修剪功能会自动计算哪些链路应该修剪哪些VLAN的数据包,管理员只需要启用该功能即可。

VTP基本配置_第5张图片

实验

命令:

sw1#delete flah:vlan.dat

sw1#erase startup-config

sw1#reload

sw1(config)#vtp mode server       //配置VTP为Server模式,默认即为Server

sw1(config)#vtp domain VTP-Test       //配置VTP域名,默认为空

sw1(config)#vtp password cisco       //配置VTP密码

sw1(config)#vtp version 2       //配置VTP版本,只需在Server上配置

sw1(config)#vtp pruning       //启用VTP修剪,只需在Server上配置

sw2#delete flah:vlan.dat

sw2#erase startup-config

sw2#reload

sw2(config)#vtp mode transparent       //配置VTP为Transparent模式

sw2(config)#vtp domain VTP-Test

sw2(config)#vtp password cisco

sw3#delete flah:vlan.dat

sw3#erase startup-config

sw3#reload

sw3(config)#vtp mode client        //配置VTP为Client模式

sw3(config)#vtp domain VTP-Test

sw3(config)#vtp password cisco

说明:    

①重启3台交换机的时间不能相差太长,要保证任何交换机重启之前另一交换机没有启动完毕,避免重新启动的

 交换机从未重新启动的交换机上学到旧的VTP信息。

②VTP可以在全局模式下配置,也可以在vlan database模式下配置。

③VTP默认修订号为0,每当VLAN信息变化时修订号会增加1(当为Transparent时,修订号始终为0)。

④默认VTP信息:模式为Server,域名为空,版本1。

⑤在一个VTP域中可以有多个VTP Server,在任何一个VTP Server上都可以创建和修改VLAN信息,并通告到其它

 交换机上;不同的VTP域之间是不能传播VLAN信息的。

⑥Transparent交换机上可以转发VTP通告,但是并不会根据VTP通告更新自己的任何信息,Transparent交换机上

 也可以更改VLAN信息,但是这些VLAN信息并不会通告出去。

⑦Client交换机上不仅可以转发VTP通告,并且会根据VTP通告更新自己的VLAN信息。

⑧配置VTP的密码为了防止不明身份的交换机加入到域中,任何密码都是区分大小写的。

⑨VTP的版本只需要在Server上启用,其它交换机会自动学习并启用该功能,但是Transparen模式是不会学习到

 的,Client模式是不能配置版本的。

⑩配置VTP修剪的时候只需在其中域中的一个Server上启用即可,其它交换机会自动学习并启用。

注意:

①当交换机的VTP域名为空时,如果它收到的VTP通告中带有域名,该交换机将把VTP域名自动更改为VTP通告中的

 域名。即没有VTP域名的交换机能从邻居自动学习VTP域名;VTP域名不为空时交换机就不会学习了。

②如果相邻的交换机处于不同的VTP域中,将导致交换机之间的链路Trunk自动协商失败不能成为Trunk模式,并

 会提示不匹配消息;除非强制Trunk模式,但仍会提示不匹配消息:

 VTP基本配置

③在准备向网络添加非刚出厂的交换机时,应先把交换机的配置清除干净,否则有可能会使VLAN信息反向覆盖。

④***很容易在现有网络中接入一台交换机或者用软件模拟一台交换机,通告高修订号的VTP通告来破坏网络,

 可以配置VTP密码防止***的破坏,但是VTP密码是不能被加密的。

VTP基本配置

sw1#delete flah:vlan.dat

sw1#erase startup-config

sw1#reload

sw1(config)#int f0/15

sw1(config-if)#switchport trunk encapsulation dot1q

sw1(config-if)#switchport mode trunk

sw1(config)#vtp mode server

sw1(config)#vtp domain VTP-Test

sw1(config)#vtp password cisco

sw1(config)#vlan 2

sw1(config-vlan)#name two

sw2#delete flah:vlan.dat

sw2#erase startup-config

sw2#reload

sw2(config)#int range f0/1 - 2

sw2(config-if-range)#switchport trunk encapsulation dot1q

sw2(config-if-range)#switchport mode trunk

sw2(config)#vtp mode transparent

sw2(config)#vtp domain VTP-Test

sw2(config)#vtp password cisco

sw3#delete flah:vlan.dat

sw3#erase startup-config

sw3#reload

sw3(config)#int f0/15

sw3(config-if)#switchport trunk encapsulation dot1q

sw3(config-if)#switchport mode trunk

sw3(config)#vtp mode client

sw3(config)#vtp domain VTP-Test

sw3(config)#vtp password cisco

sw1#show vtp status        //查看VTP域的状态
VTP基本配置_第6张图片

sw1#show vtp password       //查看VTP的密码

VTP基本配置

sw1#show vtp counters       //查看VTP的统计