在VTP中,网络被划分为一个或多个VTP域,同一个域中的交换机可以共享VLAN信息。域中的交换机可以设置为三种模式:Server、Client和Transparent。
**Server模式**是VTP域中的核心。在这种模式下,交换机可以创建、修改和删除VLAN,并将这些变更广播给域中的其他交换机。Server模式下的交换机会将VLAN信息保存在非易失性随机存储器(NVRAM)中,即使交换机重启,这些信息也不会丢失。
**Client模式**的交换机则不能创建或修改VLAN,但可以接收Server模式交换机发送的VLAN信息,并更新自己的vlan配置。这些信息被保存在随机存储器(RAM)中,因此重启后信息会丢失。
**Transparent模式**的交换机既不发送也不接收VLAN信息,但它会转发其他交换机发送的VTP通告。这意味着Transparent模式的交换机可以看作是VTP域中的一个透明中继,它可以在不影响其他交换机的情况下独立管理自己的VLAN。
VTP通过三种类型的通告来同步VLAN信息:总结通告、子集通告和请求通告。总结通告每300秒发送一次,包含VTP域名和修订号等信息。子集通告包含具体的VLAN信息,如VLAN ID和名称。请求通告用于请求Server发送最新的VLAN信息。
VTP通告通过组播帧发送,地址为01-00-0C-CC-CC-CC,并且只能通过中继端口传递,默认情况下使用NATive VLAN(默认VLAN 1)传送。
VTP修剪是一种优化网络流量的功能。它可以根据链路上的流量自动计算哪些VLAN的数据包应该被修剪,从而减少不必要的流量。
在配置VTP时,需要注意以下几点: - 确保所有交换机的VTP域名一致,否则它们无法同步VLAN信息。 - VTP密码用于防止未经授权的交换机加入VTP域。 - VTP版本只需在Server模式下的交换机上配置,Client模式会自动学习Server的版本。 - 修剪功能只需在Server模式下的交换机上启用,其他交换机会自动启用。
在实际操作中,管理员需要清除交换机的配置以确保VTP信息的正确同步。此外,由于黑客可能会通过模拟交换机发送假的VTP通告来破坏网络,因此使用VTP密码可以增加安全性。
总之,VTP协议为大型网络环境中的VLAN管理提供了一个高效、自动化的解决方案,减少了人工配置的复杂性和错误可能性,确保了网络的高效运行。
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域中的作用不同,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配置详细信息等。
子集通告:
触发子集通告的情况:创建或删除VLAN、暂停或激活VLAN、更改VLAN名称和更改VLAN的MTU。
子集通告包含的信息:VLAN信息。
请求通告:
当向VTP域中的VTP服务器发送请求通告时,VTP服务器的响应方式是:先发送总结通告,接着送出子集通告。
触发请求通告的情况:VTP域名变动、交换机收到的总结通告包含比自身更高的修订号、子集通告消息由于某些原因丢失、交换机被重置。
VTP通告说明:
①使用组播发送,地址为01-00-0C-CC-CC-CC;
②只通过中继端口传递;
③VTP消息通过Native VLAN(默认Vlan 1)传送。
VTP修剪
VTP修剪功能会自动计算哪些链路应该修剪哪些VLAN的数据包,管理员只需要启用该功能即可。
实验
命令:
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模式,但仍会提示不匹配消息:
③在准备向网络添加非刚出厂的交换机时,应先把交换机的配置清除干净,否则有可能会使VLAN信息反向覆盖。
④黑客很容易在现有网络中接入一台交换机或者用软件模拟一台交换机,通告高修订号的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域的状态
sw1#show vtp password //查看VTP的密码
sw1#show vtp counters //查看VTP的统计