Antes de nada, ¡muy buenas! Sed bienvenidos a este, mi primer post en el blog para intentar adentrarnos un poco en los protocolos CDP y LLDP.
Son las 8 de la mañana y me encuentro en un cliente con una instalación por delante, varios terminales Cisco, varios SW y algún que otro terminal Yealink. No tengo datos sobre las VLAN, modelos concretos, versión de FW que tienen… ¿seré capaz de completar el despliegue a tiempo?
Antes de entrar en materia, vamos a explicar un poco el sistema de provisioning habitual de los terminales. En un entorno limpio, en el que disponemos de un switch configurado para el uso exclusivo de Voz IP, el provisioning se acerca al tan deseado Zero Touch Config AutoProvisioning:
- Conectamos el teléfono a la toma de red.
- El terminal pide IP por DHCP.
- El servidor DHCP, además de servirle una IP y una puerta de enlace por defecto, le indica por medio de la opción 66 cuál es su servidor TFTP.
En este punto, el terminal ya dispone de todo lo necesario para empezar su proceso de provisión y, siempre y cuando el servidor TFTP sirva los archivos en el orden y formato adecuado, el terminal se provisionará y funcionará automágicamente.
Pero, por desgracia, no siempre es todo tan bonito y nos encontramos con un switch configurado para el uso y disfrute exclusivo de la telefonía: lo más habitual es trabajar en entornos en los que conviven distintas redes lógicas utilizando una misma red física utilizando VLANes (IEEE 802.1Q). El entorno más habitual es en el que la red de voz convive, al menos, con la red de datos. Además, la red de datos suele ser la principal, por lo que si conectamos un teléfono obtendremos una IP de la red de datos…
¿Significa esto que nuestro sueño de Zero Touch Config AutoProvisioning se desvanece en entornos con múltiples VLANs? ¡No! Es aquí donde entran nuestros protagonistas del post de hoy, CDP y LLDP 🙂
Con ellos, el teléfono es capaz de, entre otras cosas, averiguar la VLAN de voz y realizar los pasos anteriores dentro de esa VLAN. En el post de hoy vamos a conocer un poco más a estos 2 protocolos que tanto simplifican los despliegues masivos.
CDP (Cisco Discovery Protocol)
CDP es un protocolo de red de nivel 2 (enlace de datos), el cual fue desarrollado por Cisco y que actualmente se encuentra en la mayoría de los equipos. Es utilizado para compartir información sobre otros equipos Cisco que están directamente conectados (que son “vecinos”/neighbours). De esta manera, y con la ayuda de CDP, podemos recibir la información del dispositivo que tenemos conectado sin necesidad de conocer la IP del equipo al que queremos acceder ni conocer realmente ningún dato sobre el mismo. También es utilizado para realizar encaminamiento bajo demanda (ODR, On-Demand Routing) que es utilizado para incluir información en cada anuncio CDP para facilitar la labor del encaminamiento dinámico en redes simples.
Los dispositivos Cisco se encargan de enviar anuncios periódicos (cada 60 segundos) a la dirección de destino de multidifusión 01:00. Entonces es cuando cada dispositivo que soporta CDP almacena la información recibida de otros dispositivos en una tabla. Para poder consultarla:
show cdp neighbor
Añadiremos detail para ver una vista más detallada.
Esta información se refresca en cada anuncio realizado por el dispositivo origen y es descartada tras 3 anuncios no recibidos por el mismo.
La información obtenida mediante CDP varía según el tipo de dispositivo y la versión de S.O. que esté corriendo en el mismo. Esta puede contener:
- Versión del S.O.
- Nombre del equipo
- Direcciones de los protocolos configurados en el puerto al que se envía la trama CDP (Por ejemplo: IP)
- Identificador del puerto por el que se envía el anuncio
- VLAN nativas
- Consumo energético (solo para dispositivos PoE)
- …
Aquí podemos ver un ejemplo de una tabla CDP.
Este protocolo está habilitado por defecto en todas las interfaces de los equipos Cisco. En caso de tener dispositivos en nuestra red que no son de nuestra confianza es recomendable deshabilitarlo, para ello simplemente utilizaremos el comando:
no cdp run
Y para deshabilitarlo en una interfaz específica utilizaremos entonces:
no cdp run [en la configuración de dicha interfaz]
**Para más información: ** http://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/configuration/guide/ffun_c/fcf015.html
http://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/command/reference/ffun_r/frf015.html
LLDP (Link Layer Discovery Protocol)
LLDP, al igual que CDP, es un protocolo de red de nivel 2 utilizado para recibir/transmitir información de los equipos que tenemos conectados (“vecinos”/neighbours). Una de las diferencias que tiene con CDP consiste en que en el caso de LLDP solo pueden recibir o enviar información a dispositivos adyacentes (no trata con direcciones IP), los cuales estén conectados directamente entre sí por el mismo enlace. Esta información nunca se reenvía a otros dispositivos en la red. Además, LLDP permite la comunicación de dicha información entre dispositivos de distintos fabricantes.
De esta manera, por ejemplo, un switch puede descubrir qué dispositivos son vecinos y los puertos por donde se conectan entre sí.
Cada dispositivo tiene su propio agente LLDP, el cual administra la accesibilidad a capas superiores y recoge la información de puntos terminales de los dispositivos adyacentes. Es decir, el agente LLDP se encarga de la recepción, envío y gestión de LLDP.
Para visualizar el “vecindario” LLDP se utilizan los siguientes comandos:
Para SW HP > show lldp info remote-device
Para SW Cisco > show lldp neighbours
Uno de los usos más extendidos es para identificar los teléfonos VoIP.
LLDP-MED (Media Endpoint Discovery) es una mejora con respecto a LLDP que permite compartir la información entre dispositivos no adyacentes y provee de información adicional:
- Las políticas de red (configuración de las VLAN, configuración de los servicios diferenciados,…)
- La localización de los dispositivos de manera que pueda crear una base de datos de ubicación y en el caso de VoIP mejorar los servicios 911.
- Aumentar y automatizar la administración de energía a través de PoE.
- Gestión del inventario, permitiendo así determinar las características de los dispositivos de red.
- …
Tales datos son transmitidos periódicamente por los dispositivos basados en LLDP a los dispositivos cercanos en mensajes denominados TLV (Type Length Value).
Sobre TLV , LLDP y LLDP-MED añaden nuevos tipos de mensajes, específicamente relacionados con la telefonía VoIP.
Uno de ellos sería el TLV de PoE Management, el cual permite a los puntos extremos “advertir” del nivel de energía eléctrica que precisan, y de sus prioridades en este sentido.
Por ejemplo, un conmutador podría comparar la energía requerida por el dispositivo de extremo con lo que él puede ofrecer y si no tiene capacidad para satisfacer la demanda, suministraría selectivamente la energía a los dispositivos finales designados como de alta prioridad (por ejemplo, un teléfono IP).
El TLV Network Policy Discovery simplifica el despliegue de grandes redes multi-marca y ayuda a localizar y resolver problemas. Además, permite a los puntos extremos y a los conmutadores comunicarse sus VLAN, IEEE Priority…
De esta manera LLDP-MED funcionaría de la siguiente manera:
- El conmutador transmite atributos sobre la capacidad de energía en sus puertos, las VLAN destinadas a los sistemas de voz, el DiffServ Code Point y datos de localización.
- El terminal IP transmite sus requerimientos y prioridades de energía, las VLAN previstas para los sistemas de voz, el DiffServ Code Point y su propia información de inventario.
- El sistema de gestión de red pide al conmutador LAN información de inventario detallada de los terminales IP para crear mapas topológicos de la infraestructura de voz y datos.
**Para más información: **
https://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol
http://www.cisco.com/en/US/technologies/tk652/tk701/technologies_white_paper0900aecd804cd46d.html
Por último, no quiero acabar el post sin hacer mención al proyecto OpenLLDP el cual se encarga de implementar la interpretación del protocolo LLDP para los casos en los que la electrónica no sea capaz de manejar LLDP.
Como vemos, estos protocolos realizan una labor muy importante ya que nos facilitan el tratamiento de toda la estructura de red permitiéndonos conocer cuantiosos datos de los dispositivos conectados en nuestra red sin tener que configurar ni complicarnos mucho. Y gracias a ellos he podido realizar esta instalación sin demorarme mucho más en las configuraciones.
Y vosotros, ¿os apoyáis en CDP y LLDP en vuestras instalaciones?
1 Comentario
¿Por qué no comentas tú también?
Muy interesante el artículo.
Tengo una anotación que no veo mencionada en el artículo. Que yo recuerde, CDP tiene una desventaja con respecto a LLDP, en CDP los mensajes no viajan cifrados, espero que me aclares si estoy confundido en ese aspecto.
Nelson Hace 8 años
Me retracto, estaba confundiendo peras con manzanas. Los que presentan esa diferencia sonTelnet y SSH
Nelson Hace 8 años
Buenas Nelson,
Primero de todo, gracias por pasarte por el blog y dejar un comentario en el post.
Respecto a la gran diferencia que existe entre LLDP y CDP, es que en el protocolo LLDP solo es posible compartir la información entre dispositivos que estén adyacentes. En ninguno de los casos esta información va cifrada. Realizando los siguientes comandos se puede visualizar esta infomración sin problemas:
En el caso de LLDP:
Para SW HP > show lldp info remote-device
Para SW Cisco > show lldp neighbours
En el caso de CDP:
show cdp neighbor
Veo además que te referías a otro tipo de protocolos ;).
Espero haberte sido de ayuda.
Un saludo!
Iván Romero Jiménez Hace 8 años
Buen dia Ivan.
Solo para comentarte que me tu artículo me ayudó para comprender un poco más sobre LLDP.
Saludos!!
Víctor Garduño Hace 7 años
Buenas Victor,
Muchas gracias por pasarte por el blog y por tu comentario!
Me alegro de que te haya servido para comprender los entresijos de estos protocolos.
Un saludo!
Iván Romero Jimenez Hace 7 años
Hola Iván.
Apenas encuentro ejemplos en la red de como configurar LLDP-MED con lldptool para el caso de asignar la VLAN de voz a los teléfonos.
¿Podrías publicar algunos?
Saludos.
Juan Ramón Larrea Hace 7 años
Estuve revisando y mencionas que para habilitar o deshabilitar CDP en una interfaz no es con el comando «cdp run» (ese es el comando para la configuracion global), el comando para la interfaz es «cdp enable».
Exitos !!!!
Erick Preciado Hace 7 años
Queremos tu opinión :)