思科 VLAN 中继协议(VTP)是思科第 2 层信息传送协议,主要控制网络内 VLAN 的添加、删除和重命名。VTP 减少了交换网络中的管理工作。用户在 VTP 服务器上配置新的 VLAN,该 VLAN 信息就会分发到所有交换机,这样可以避免到处配置相同的 VLAN 。VTP 是思科专有协议,它支持大多数的 Cisco Catalyst 系列产品。
通过 VTP,其域内的所有交换机都清楚所有的 VLA N 情况。然而 VTP 会产生不必要的网络流量。这时,所有未知的单播和广播在整个 VLAN 内进行扩散,使得网络中的所有交换机接收到所有广播,即使 VLAN 中没有几个连接用户,情况也不例外。而 VTP pruning 技术正可以消除该多余流量。
缺省方式下,所有 Cisco Catalyst 交换机都被配置为 VTP 服务器。这种情形适用于 VLAN 信息量小且易存储于任意交换机 (NVRAM)上的小型网络。对于大型网络,由于每台交换机都会进行 NVRAM 存储操作,但该操作对于某些点是多余的,所以在这些点必须设置一个“判决呼叫”(judgment call)。基于此,网络管理员所使用的 VTP 服务器应该采用配置较好的交换机,其它交换机则作为客户机使用。选择作为 VTP 服务器的交换机数量应能提供网络所需的冗余。
到目前为止,VTP 具有三种版本。其中 VTPv2 与 VTPv1 区别不大,主要区别在于:VTPv2 支持令牌环 VLAN,而 VTPv1 不支持。通常只有在使用 Token Ring VLAN 时,才会使用到 VTPv2,否则一般情况下并不使用 VTPv2。
VTPv3 不能直接处理 VLAN 事务,它只负责管理域(administrative domain)内不透明数据库的分配任务。与前两版相比,VTPv3 具有以下改进:
支持扩展 VLAN 。
支持专用 VLAN 的创建和通告。
改进的服务器认证性能。
避免“错误”数据库进入 VTP 域。
与 VTP v1 和 VTP v2 交互作用。
支持每端口(on a per-port basis)配置。
支持传播 VLAN 数据库和其它数据库类型。
协议结构
VTP 头结构格式可以改变,这主要取决于 VTP 信息类型。但是它们都包括以下字段:
- VTP 协议版本:1、2或3。
- VTP 信息类型:
- Summary advertisements
- Subset advertisement
- Advertisement requests
- VTP join messages
- 管理域大小
- 管理域名称
Summary Advertisements
当交换机接收到一个 summary advertisement 数据包时,它将该数据包的 VTP 域名称与其自己的 VTP 域名称相比。如果名称不同,那么该交换机忽略该数据包。如果名称相同,那么再比较两者的配置修订(configuration revision)。如果该交换机自己的配置修订高于或等于发送的 summary advertisement 数据包的修订,那么忽略该数据包。反之,就发送一个广告请求(advertisement request)。
Summary Advert Packet Format
- Followers 表示该数据包后面跟随一个Subset Advertisement 数据包。
- updater identity 表示最后一个增加配置修订的交换机的IP地址。
- Update timestamp指配置修订的最后增量的日期和时间。
- Message Digest 5 (MD5),在配置密码的情况下,用于传送VTP密码;还用于认证VTP 更新的有效性。
Subset Advertisements
当交换机中需要添加、删除或改变一个 VLAN 时,发生改变的服务器交换机会增加配置修订并发送出一个 summary advertisement,其后跟随的是一个或多个 subset advertisement。一个 subset advertisement 包括一列 VLAN 信息。如果有多个 VLAN,那么需要提供更多 subset advertisement 来广告所有 VLAN。
Summary Advert Packet Format
下面的表格表示每个不同的 VLAN 信息字段包含的信息(ISL VLAN ID 值最小最先发生):
不同的 VLAN 信息字段包含的信息
该数据包中的大多数字段比较容易理解。主要说明以下两点:
- Code ― ubset advertisement 中的该字段值为0x02。
- Sequence number ― 指 summary advertisement 后的数据包流中的数据包序列。序列号从1开始。
Advertisement Requests
在以下情况下,交换机需要 VTP advertisement request:
- 交换机被重新设置;
- VTP 域名被改变;
- 交换机接收到高于自己配置修订的 VTP summary advertisement。
一旦接收到 advertisement request,VTP 设备便发送一个 summary advertisement,接着是一个或多个 subset advertisement。实例如下:
Advertisement Requests
- Code ― advertisement request 中的该字段值为 0x03。
- Start Value ― 适用于有多个 subset advertisement 的情况。如果已经接收到第一个(N) subset advertisement,而其后的一个(N+1)尚未接收到时,Catalyst 只发送来自第(N+1)个 subset advertisement 的 advertisement 请求。