Cisco Discovery Protocol (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:
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
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
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.