Cisco Discovery Protocol (CDP)

cdp

Cisco, dentro de todos sus protocolos propietarios, posee CDP.

CDP es un protocolo que trabaja en la capa 2 del modelo OSI (enlace de datos), el cual permite intercambiar información entre dispositivos que están directamente conectados. La información entregada por CDP es la siguiente:

  • Nombre del dispositivo
  • Plataforma
  • Versión del software del equipo remoto
  • Su dirección IP
  • Interfaz remota
  • Nombre dominio VTP
  • VLAN nativa
  • Estado del duplex

Los datos anteriormente mencionados se muestran en una captura de una trama CDP:

cdp

Como se comentó al principio del post, este es un protocolo de Cisco, el cual se encuentra presente en la mayoría de sus dispositivos, tales como: APs, WLCs, Switches, Routers, entre otros. También hay empresas que trabajan en conjunto con Cisco y que tienen implementado este protocolo, como es el caso de VMware.

En la mayoría de los equipos Cisco, CDP viene habilitado por defecto, y este puede ser comprobado con el comando show cdp.

CDP habilitado:

R1#show cdp
Global CDP information:
 Sending CDP packets every 60 seconds
 Sending a holdtime value of 180 seconds
 Sending CDPv2 advertisements is enabled

CDP deshabilitado:

R1#show cdp 
% CDP is not enabled

Este comando nos muestra si el protocolo se encuentra habilitado o no de forma global, esto nos indica que podemos ser más granular al configurarlo, y hacerlo por interfaz. Es necesario entender que CDP es un protocolo muy inseguro, debido que no se necesita autenticación para aceptar los mensajes CDP, por lo tanto, cualquiera puede habilitar este protocolo y saber información con respecto al equipo que estamos conectados. Al saber información del dispositivo al que estamos conectados, podemos buscar algún exploit para realizar un ataque y comprometer la red. Por este motivo es recomendable solo habilitarlo donde sea necesario. si estamos conectados a un equipo Cisco que soporte este protocolo, podemos utilizar el comando show cdp neighbors o ***show cdp neighbors *** para obtener una información resumida del o los equipos remotos:

R1#show cdp neighbors 
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
 S - Switch, H - Host, I - IGMP, r - Repeater

Device ID Local Intrfce Holdtme Capability Platform Port ID
R2 Fas 1/1 147 R S I 2691 Fas 1/2

Si se desea obtener una información más detallada del dispositivo, se pueden utilizar múltiples comandos, tales como: show cdp neighbors detail, ***show cdp interface detail***, ***show cdp entry ***.

R1#show cdp entry R2
-------------------------
Device ID: R2
Entry address(es): 
 IP address: 192.168.1.2
Platform: Cisco 2691, Capabilities: Router Switch IGMP 
Interface: FastEthernet1/1, Port ID (outgoing port): FastEthernet1/2
Holdtime : 175 sec

Version :
Cisco IOS Software, 2600 Software (C2691-ADVIPSERVICESK9-M), Version 12.4(15)T10, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Mon 14-Sep-09 13:27 by prod_rel_team

advertisement version: 2
VTP Management Domain: 'PRUEBA'
Native VLAN: 1
Duplex: full

Para poder deshabilitar CDP de forma global, se utiliza el comando no cdp run:

R1(config)#no cdp run
R1(config)#do sh cdp ne
% CDP is not enabled

Para volver a habilitarlo, se usa el comando cdp run (en configuración global).

Si se desea deshabilitar solo en una interfaz específica, se utiliza el comando de interfaz no cdp enable (para volver a habilitarlo se usa el comando cdp enable).

R1(config)#interface f1/0
R1(config-if)#no cdp enable
R1(config-if)#do sh cdp int f1/0

R1(config-if)#do sh cdp int f1/1
FastEthernet1/1 is up, line protocol is up
 Encapsulation ARPA
 Sending CDP packets every 60 seconds
 Holdtime is 180 seconds

En caso que se necesite trabajar con equipos multi-marca, existe un protocolo estándar de la IEEE llamado LLDP, el cual, entrega información similar a CDP.

Para habilitar LLDP de forma global se utiliza el comando lldp run y en las interfaces se utiliza el comando lldp transmit para enviar mensajes y lldp receive para aceptar mensajes.