# VLAN Trunking Protocol

VTP son las siglas de VLAN Trunking Protocol, un protocolo de mensajes de nivel 2 usado para configurar y administrar VLANs en equipos Cisco. Permite centralizar y simplificar la administración en un dominio de VLANs, pudiendo crear, borrar y renombrar las mismas, reduciendo así la necesidad de configurar la misma VLAN en todos los nodos. El protocolo VTP nace como una herramienta de administración para redes de cierto tamaño, donde la gestión manual se vuelve inabordable.
VTP opera en 3 modos distintos:
* Servidor
* Cliente
* Transparente
Servidor:
    Es el modo por defecto. Desde él se pueden crear, eliminar o modificar VLANs. Su cometido es anunciar su configuración al resto de switches del mismo dominio VTP y sincronizar dicha configuración con la de otros servidores, basándose en los mensajes VTP recibidos a través de sus enlaces trunk. Debe haber al menos un servidor. Se recomienda autenticación MD5.
Cliente:
    En este modo no se pueden crear, eliminar o modificar VLANs, tan sólo sincronizar esta información basándose en los mensajes VTP recibidos de servidores en el propio dominio. Un cliente VTP sólo guarda la información de la VLAN para el dominio completo mientras el switch está activado. Un reinicio del switch borra la información de la VLAN.
Transparente:
    Desde este modo tampoco se pueden crear, eliminar o modificar VLANs que afecten a los demás switches. La información VLAN en los switches que trabajen en este modo sólo se puede modificar localmente. Su nombre se debe a que no procesa las actualizaciones VTP recibidas, tan sólo las reenvía a los switches del mismo dominio.
Los administradores cambian la configuración de las VLANs en el switch en modo servidor. Después de realizar cambios, estos son distribuidos a todos los demás dispositivos en el dominio VTP a través de los enlaces permitidos en el trunk (VLAN 1, por defecto), lo que minimiza los problemas causados por las configuraciones incorrectas y las inconsistencias. Los dispositivos que operan en modo transparente no aplican las configuraciones VLAN que reciben, ni envían las suyas a otros dispositivos. Sin embargo, aquellos que usan la versión 2 del protocolo VTP, enviarán la información que reciban (publicaciones VTP) a otros dispositivos a los que estén conectados con una frecuencia de 5 minutos. Los dispositivos que operen en modo cliente, automáticamente aplicarán la configuración que reciban del dominio VTP. En este modo no se podrán crear VLANs, sino que sólo se podrá aplicar la información que reciba de las publicaciones VTP.
Para que dos equipos que utilizan VTP puedan compartir información sobre VLAN, es necesario que pertenezcan al mismo dominio. Los switches descartan mensajes de otro dominio VTP.
Las configuraciones VTP en una red son controladas por un número de revisión. Si el número de revisión de una actualización recibida por un switch en modo cliente o servidor es más alto que la revisión anterior, entonces se aplicará la nueva configuración. De lo contrario se ignoran los cambios recibidos. Cuando se añaden nuevos dispositivos a un dominio VTP, se deben resetear los números de revisión de todo el dominio VTP para evitar conflictos. Se recomienda tener mucho cuidado al usar VTP cuando haya cambios de topología, ya sean lógicos o físicos. Realmente no es necesario resetear todos los números de revisión del dominio. Sólo hay que asegurarse de que los switches nuevos que se agreguen al dominio VTP tengan números de revisión más bajos que los que están configurados en la red. Si no fuese así, bastaría con eliminar el nombre del dominio del switch que se agrega. Esa operación vuelve a poner a cero su contador de revisión.
El VTP sólo aprende sobre las VLAN de rango normal (ID de VLAN 1 a 1005). Las VLAN de rango extendido (ID mayor a 1005) no son admitidas por el VTP. El VTP guarda las configuraciones de la VLAN en la base de datos de la VLAN, denominada vlan.dat.

## Seguridad VTP

VTP puede operar sin autenticación, en cuyo caso resulta fácil para un atacante falsificar paquetes VTP para añadir, cambiar o borrar la información sobre las VLANs. Existen herramientas disponibles gratuitamente para realizar esas operaciones. Debido a eso se recomienda establecer un password para el dominio VTP y usarlo en conjunto con la función hash MD5 para proveer autenticación a los paquetes VTP. Resulta de vital importancia para los enlaces troncales de la VLAN.

## Mensajes VTP

Los paquetes VTP se pueden enviar tanto en tramas Inter-Switch Link (ISL) como en tramas IEEE 802.1Q (dot1q). El formato de los paquetes VTP encapsulados en tramas ISL es el siguiente:
En el caso de paquetes VTP encapsulados en dot1q, tanto la cabecera ISL (ISL Header) como CRC son sustituidos por etiquetas dot1q. Por otro lado, salvo el formato de la cabecera VTP (VTP Header), que puede variar, todos los paquetes VTP contienen los siguientes campos en la cabecera:
* Versión del protocolo VTP: 1, 2 o 3
* Tipos de mensaje VTP:
   * Resumen de advertencias
   * Subconjunto de advertencias
   * Peticiones de advertencias
   * Mensajes de unión VTP
* Longitud del dominio de control
* Nombre del dominio de control

## Número de configuración de revisión

El número de configuración de revisión es un número de 32 bits que indica el nivel de revisión del paquete VTP. Cada nodo VTP rastrea el número de configuración de revisión que le ha sido asignado. La mayoría de paquetes VTP contienen el número de configuración de revisión del emisor.
La información que aporta el número de configuración de revisión se usa para saber si la información recibida es más reciente que la actual. Cada vez que hay un cambio en la configuración de la VLAN en algún dispositivo VTP del dominio, el número de configuración de revisión se incrementa en una unidad. Para resetearlo, basta con cambiar el nombre del dominio VTP y después restablecerlo.

## Publicación de resúmenes

Los switches Catalyst emiten, por defecto, publicaciones resumidas que informan a los demás switches del nombre actual del dominio VTP, así como de su número de revisión.
Cuando un switch recibe un paquete de resumen, compara su propio nombre de dominio VTP con el recibido. Si el nombre es diferente ignora el paquete, y si es igual, compara el número de revisión propio con el recibido. Si el número de revisión es menor o igual, ignora el paquete, y si no, envía una solicitud de publicación (ya que el switch está desactualizado).
El formato de los paquetes de resumen es el siguiente:
La siguiente lista aclara los campos del paquete de publicación de resúmenes:
* El campo Followers (seguidores) indica que el paquete precede a un paquete de publicación de subconjunto.
* El campo Updater Identity (identidad del actualizador) es la dirección IP del último switch que incrementó el número de configuración de revisión.
* El campo Update Timestamp (sello de momento de actualización) indica la fecha y la hora del último incremento del número de configuración de revisión.
* El campo Message Digest 5 (algoritmo MD5) porta la contraseña VTP, si se configura y usa MD5 para autenticar la validación de una actualización VTP.

## Publicaciones de subconjuntos

Cuando se cambia la configuración VLAN en un switch, este incrementa el número de revisión y envía una publicación de resumen. A una publicación de resumen le pueden seguir una o más publicaciones de subconjunto, que contienen una lista de información referente a VLANs. Si hay varias VLANs, se puede requerir más de una publicación para informar a todas ellas.
El formato de los paquetes de subconjunto es el siguiente:
Este ejemplo muestra que los campos de información VLAN son exclusivos de cada VLAN:
Hay dos aclaraciones pertinentes respecto a los campos del paquete:
* El campo Code (código) tiene un formato de 0x02 para publicaciones de subconjunto.
* El campo Sequence number (número de secuencia) contiene el número de secuencia (que empieza por 1) del paquete en el flujo de paquetes tras una publicación de resumen.

## Solicitudes de publicación

Un switch necesita solicitar publicaciones VTP en las siguientes situaciones:
* El switch ha sido reseteado.
* El nombre del dominio VTP ha sido cambiado.
* El switch ha recibido una publicación de resumen cuyo número de revisión es mayor que el suyo propio.
Cuando un nodo VTP recibe una solicitud de publicación, envía una publicación de resumen y, como se ha descrito antes, una o más publicaciones de subconjunto. Por ejemplo:
* En este caso, el campo Code (código) tiene un formato de 0x03 para publicaciones de subconjunto.
* El campo Start value (valor de comienzo) se usa cuando hay varios subconjuntos.

## VTP Pruning (Poda)

El protocolo
El siguiente gráfico muestra el tráfico broadcast en una red sin poda:
Los puertos 1 y 2 de los switches A y D respectivamente están asignados a la VLAN roja. Si una trama broadcast se envía desde algún host conectado al switch A, este reenvía dicha trama a todos los switches de la red (inundación, flooding), recibiéndola incluso los switches C, E y F, que no tienen puertos asignados a la VLAN roja.
En contraposición, el gráfico siguiente muestra los beneficios del pruning:
En este caso, el tráfico broadcast del switch A no es reenviado a los switches C, E y F, ya que el tráfico de la VLAN roja ha sido filtrado en los puertos 4 y 5 de los switches D y B respectivamente.
Cuando está habilitada la poda VTP en un servidor VTP, lo está para todo el dominio. Cabe destacar que el tráfico de las VLANs 1002-1005 no puede ser podado (filtrado).

## Sobre el uso de VTP

El modo por defecto de los switches es el de servidor VTP. Se recomienda el uso de este modo para redes de pequeña escala en las que la información de las VLANs es pequeña y por tanto de fácil almacenamiento en las NVRAMs de los switches.
En redes de mayor tamaño, el administrador debe elegir qué switches actúan como servidores, basándose en las capacidades de éstos (los mejor equipados serán servidores y los demás, clientes).

## Configuración VTP

Los comandos IOS más utilizados para la configuración de un dominio VTP son los siguientes:
Switch#vlan database
Selecciona el modo de creación y edición de VLANs.
Switch(vlan)#vtp domain nombre-dominio
Nombre del dominio VTP.
Switch(vlan)#vtp [mode] {server | client | transparent}
Selección del modo VTP del switch.
Switch(vlan)#vtp pruning
Permite la poda en el dominio VTP.
Switch#show vtp status
Permite verificar la configuración del dominio VTP.
Switch(config-if)# switchport mode trunk
Configura un puerto en modo trunk.
Switch(config-if)# switchport trunk native vlan 2
Configura la VLAN como predeterminada.
Switch(config-if)# switchport trunk {allowed | pruning} vlan [add|all|except|remove] vlan-list
Configura las VLANs permitidas (allowed) o filtradas (pruning).
Para más detalles y ejemplos sobre cómo configurar adecuadamente una red en un dominio VTP, se remite al lector a la referencia 3.