VTP, VLAN Trunking Protocol

Aunque la configuración de VLANs en una red o entorno pequeño pueda ser fácilmente administrable en entornos grandes puede resultar una configuración muy engorrosa el ir configurando todas las VLANs en todos los switches y puede ser fácil el que alguna VLAN no se configure en alguno de los switches, sobre todo si utilizamos el diseño de VLAN extremo a extremo.

En el caso que tengamos una red con un tamaño ya considerable y queramos mantener una consistencia en las VLANs que se van creando resulta muy recomendable disponer de algún mecanismo que nos permita tener todos los switches sincronizados en cuanto a las VLANs de la red.

Un protocolo que nos permite tener todos los switches de la red sincronizados en cuanto a las VLANs disponibles en la red es VTP – VLAN Trunking Protocol. VTP es un protocolo propietario de Cisco de capa 2 que nos permite intercambiar información sobre VLANs entre trunks de forma que los switches de la red tengan la base de datos de VLANs sincronizadas en todo momento desde un punto central de la red.

En el caso de no utilizar switches Cisco o de querer interconectar switches Cisco con otros de otro fabricante no podríamos utilizar VTP y deberíamos utilizar algún protocolo abierto como es GVRP, que tiene unas funcionalidades muy similares al VTP, pero se trata de un protocolo abierto, al contrario que VTP.

VTP nos permite crear VLANs, editarlas o borrarlas desde un switch central en todos los switches de la red.

Características de VTP

Dominios de VTP

VTP utiliza dominios para agrupar a los switches que van a compartir la misma información de VLANs.

Dentro de un dominio de VTP se intercambia la siguiente información gracias a los anuncios de VTP:

  • Nombre del Dominio
  • Versión de VTP
  • Lista de VLANs
  • Parámetros específicos de cada VLAN

Modos de VTP

Los switches dentro de un dominio de VTP pueden funcionar de tres formas diferentes:

  • Modo servidor: Los servidores son los encargados de crear y mantener la información de todas las VLANs en la red y son los encargados de pasar esta información al resto de switches. Por defecto los switches Cisco estan en modo servidor.
  • Modo cliente: Los switches en modo cliente no pueden hacer ninguna modificación en las VLANs y mantienen la información de VLANs gracias a los mensajes que son enviados desde los servidores
  • Modo transparente: Los switches en modo transparente no participan en el proceso de VTP y reenvian los mensajes de VTP, pero de forma diferente dependiendo de la versión de VTP. Si es VTP versión 1 sólo se reenvían los mensajes de VTP que tengan como versión 1 y que correspondan al nombre de dominio que tengan configurado. En VTP versión 2 sin embargo los switches transparentes son capaces de reenviar los mensajes VTP aunque no correspondan ni a la versión que tiene el switch configurado ni al dominio en el que esté incluido este switch en modo transparente.

Anuncios de VTP

Los switches que utilizan VTP versión 1 o versión 2 anuncian las VLANs (sólo desde la 1 hasta la 1005), números de versión de configuración y parámetros de cada VLAN por los trunks para notificar esta información al resto de los switches de dominio mediante mensajes de multicast, la versión 3 de VTP ya permitiría la utilización de VLANs en el rango 1-4096, lo que haría a VTP compatible con el estándar IEEE 802.1Q.

Es importante comentar que el número de versión de configuración empieza siempre en 0 y que cada vez que se produce un cambio el número de versión de configuración se incrementa en 1 y el mensaje con número de versión de configuración más alto se considera el último y por tanto el que hay que sincronizar.

Y también es importante comentar que por defecto los anuncios de VTP se transmiten en texto plano y sin password, es decir, sin encriptación, con lo que no se realiza un intercambio de información seguro realizando un intercambio de passwords.

Una vez comentado esto nos encontramos con un problema bastante serio. Teniendo en cuenta que los switches Cisco por defecto están en modo servidor y que los clientes VTP van a almacenar la información que tenga el número de versión de configuración más alto, es posible que se utilice un switch incorporado de algún otro sitio donde su número de versión de configuración sea más alto, y estar por defecto en modo servidor, existe la posibilidad que este nuevo switch incorporado en la red sobreescriba la configuración de todos los switches de la red borrando y/o creando VLANs y por tanto modificando la configuración y dando lugar a fallos. Por su puesto si ese switch se introdujera en modo cliente y tuviera un número de versión de configuración más alto que el servidor ignoraría las actualizaciones y esto significaría que el switch no actualizaría su configuración.

Asi pues es sumamente importante antes de incorporar un switch nuevo en la red asegurarnos que el número de versión de la configuración se establece a 0, pero como no tenemos ningún comando que haga esto directamente tenemos que hacerlo de forma indirecta de la siguiente forma:

  • Cambiando el modo del switch a transparente y posteriormente otra vez a servidor, o bien
  • Cambiar el nombre del dominio de VTP a uno cualquiera que no usemos y volviendo a configurar el dominio de VTP correcto.

Una vez tenidas estas precauciones ya podríamos proceder a instalar el nuevo switch.

En cuanto a los anuncios de VTP tenemos que tener en cuenta que se generan de tres formas diferentes:

  • Summary Advertisements: Estos anuncios se generan por el server cada 300 segundos o cada vez que se ha realizado un cambio en la base de datos de VLANs.
  • Subsets Advertisements: Estos anuncios se generan cada vez que se genera un cambio en alguna VLAN.
  • Advertisements Requested from Clients: Este tipo de anuncios se generan cada vez que un cliente necesita que se le actualice la configuración, por ejemplo después de un reset del equipo.

Los switches que operan en modo servidor no necesitan que se les pase la configuración después de un reset ya que guardan la información de VTP y de las VLANs en el fichero vlan.dat en la Flash, con lo que los resets no implican pérdida alguna de información.

Configuración de VTP

La configuración de VTP en los switches Cisco con IOS es bastante sencilla ya que lo único que tenemos que configurar es el dominio de VTP y el modo, opcionalmente la versión, passsword, etc…

Por defecto la configuración que se utilizará al configurar VTP es la versión 1, aunque la versión 2 tiene las siguientes ventajas sobre la versión 1:

  • En los switches en modo transparente la versión 2 permitirá que se reenvien los anuncios recibidos de VTP independientemente de su versión o dominio.
  • La versión 2 realiza una comprobación de consistencia al introducir los comandos por CLI o mediante SNMP, pero no realizaría esta comprobación en los anuncios recibidos desde otros switches.
  • Soporte para Token Ring

Configurar la versión de VTP es tan simple como introducir este comando de configuración global:

switch(config)#vtp version {1 | 2 | 3}

Para configurar el modo y la password en las actualizaciones VTP utilizaremos estos comandos:

switch(config)#vtp mode { server | transparent | client}
switch(config)#vtp password password

Así pues un ejemplo de configuración podría ser el siguiente:

switch(config)#vtp version 2
switch(config)#vtp mode server
switch(config)#vtp password mi_super_password

VTP Pruning

El VTP Pruning es un método que impide que las actualizaciones de VTP se reenvíen por todos lo spuertos de trunk, de esta forma podemos limitar la propagación de VTP a una porción de la red bien definida, reduciendo así el proceso de información y el tráfico innecesario por los trunks. Recordemos que VTP utiliza mensajes multicast y estos al igual que los mensajes de broadcast por defecto se reeenvian por todos los puertos de la VLAN excepto por el que se ha recibido.

La configuraicón de VTP Pruning tampoco resulta ser demasiado engorrosa, lo único que tenemos que tener en cuenta es que por defecto viene deshabilitado y será necesario habilitarlo de la siguiente forma:

switch(config)#vtp pruning
switch(config-if)#switchport trunk pruning vlan { add | except | none | remove } lista-de-vlans

Como se puede apreciar se utiliza la misma terminología que en los comandos de configuración de trunks, con lo que no es necesario explicar ya que se han explicado con aterioridad.

Troubleshooting de VTP

VTP es un protocolo sencillo de configurar, pero complicado teniendo en cuenta los parámetros globales entre switches a tener en cuenta, por eso es importante reparar la siguiente lista en caso de problemas:

  • Si el switch es transparente comprobar la versión que se está utilizando, hay que tener en cuenta que si no reenvía anuncios de VTP puede ser por estar utilizando la versión 1 que es la que viene por defecto
  • Comprobar que no haya más de un switch en modo servidor
  • Comprobar que todos los trunks estén configurados como trunk y no como puertos de acceso
  • Comprobar que el nombre de dominio VTP sea el mismo en todos los switches
  • Comprobar que la password sea la misma
  • Comprobar la versión en todos los switches para que coincida

Los siguientes comandos son los que nos van a ayudar a realizar el troubleshooting de VTP:

Switch# show vtp status
VTP Version : 2
Configuration Revision : 250
Maximum VL nabled
VTP V2 Mode : Enabled
VTP Traps Generation : Disabled
MD5 digest : 0xE6 0xF8 0x3E 0xDD 0xA4 0xF5 0xC2 0x0E
Configuration last modified by 172.20.52.18 at 9-22-99 11:18:20
Local updater ID is 172.20.52.18 on interface Vl1 (lowest numbered VLAN interfac
e found)
Switch#

Switch# show vtp counters
VTP statistics:
Summary advertisements received : 1
Subset advertisements received : 1
Request advertisements received : 0
Summary advertisements transmitted : 31
Subset advertisements transmitted : 1
Request advertisements transmitted : 0
Number of config revision errors : 0
Number of config digest errors : 0
Number of V1 summary errors : 0

VTP pruning statistics:

Trunk Join Transmitted Join Received Summary advts received from
non-pruning-capable device
—————- —————- —————- —————————
Fa5/9 1555 1564 0
Switch#

Switch# show vlan brief
VLAN Name Status Ports
—- ——————————– ——— ——————————-
1 default active Fa5/9
2 VLAN0002 active Fa5/9
3 VLAN0003 active Fa5/9
4 VLAN0004 active Fa5/9
5 VLAN0005 active Fa5/9
10 VLAN0010 active Fa5/9
.
.
Switch# show interfaces switchport module 1
Name:Gi1/1
Switchport:Enabled
Administrative Mode:dynamic auto
Operational Mode:down
Administrative Trunking Encapsulation:negotiate
Negotiation of Trunking:On
Access Mode VLAN:1 (default)
Trunking Native Mode VLAN:1 (default)
Administrative private-vlan host-association:none
Administrative private-vlan mapping:none
Operational private-vlan:none
Trunking VLANs Enabled:ALL
Pruning VLANs Enabled:2-1001