VLAN 中继协议(VTP)

2023-10-16 05:40
文章标签 协议 vlan 中继 vtp

本文主要是介绍VLAN 中继协议(VTP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思科 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

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

Summary Advert Packet Format

下面的表格表示每个不同的 VLAN 信息字段包含的信息(ISL VLAN ID 值最小最先发生):

不同的 VLAN 信息字段包含的信息

不同的 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

Advertisement Requests

  • Code ― advertisement request 中的该字段值为 0x03。
  • Start Value ― 适用于有多个 subset advertisement 的情况。如果已经接收到第一个(N) subset advertisement,而其后的一个(N+1)尚未接收到时,Catalyst 只发送来自第(N+1)个 subset advertisement 的 advertisement 请求。

相关协议:IEEE 802.1Q

组织来源:VTP 是思科私有协议

相关链接:
http://www.cisco.com/en/US/products/hw/switches/ps708/
products_configuration_guide_chapter09186a008019f048.html#1017196: Understanding and Configuring VLAN Trunking Protocol

这篇关于VLAN 中继协议(VTP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219425

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines