Configuring Cisco Discovery Protocol

Cisco Discovery Protocol (CDP) is a media- and protocol-independent protocol that runs on all Cisco-manufactured equipment including routers, bridges, access and communication servers, and switches. Using CDP, you can view information about all the Cisco devices that are directly attached to the device.

Prerequisites for Implementing CDP

You must be in a user group associated with a task group that includes the proper task IDs. The command reference guides include the task IDs required for each command. If you suspect user group assignment is preventing you from using a command, contact your AAA administrator for assistance.


Note

CDP is an optional package. You must check if this package is installed on your system by running the command show install active summary .


Information About Implementing CDP

CDP is primarily used to obtain protocol addresses of neighboring devices and discover the platform of those devices. CDP can also be used to display information about the interfaces your router uses. CDP is media- and protocol-independent, and runs on all equipment manufactured by Cisco, including routers, bridges, access servers, and switches.

Use of SNMP with the CDP MIB allows network management applications to learn the device type and the SNMP agent address of neighboring devices and to send SNMP queries to those devices. CDP uses the CISCO-CDP-MIB.

CDP runs on all media that support Subnetwork Access Protocol (SNAP), including LAN, Frame Relay, and ATM physical media. CDP runs over the data link layer only. Therefore, two systems that support different network-layer protocols can learn about each other.

Each device configured for CDP sends periodic messages, known as advertisements, to a multicast address. Each device advertises at least one address at which it can receive SNMP messages. The advertisements also contain time-to-live, or hold-time, information, which indicates the length of time a receiving device holds CDP information before discarding it. Each device also listens to the periodic CDP messages sent by others to learn about neighboring devices and determine when their interfaces to the media go up or down.

CDP Version-2 (CDPv2) is the most recent release of the protocol and provides more intelligent device tracking features. These features include a reporting mechanism that allows for more rapid error tracking, thereby reducing costly downtime. Reported error messages can be sent to the console or to a logging server, and can cover instances of unmatching native VLAN IDs (IEEE 802.1Q) on connecting ports, and unmatching port duplex states between connecting devices.

CDPv2 show commands can provide detailed output on VLAN Trunking Protocol (VTP) management domain and duplex modes of neighbor devices, CDP-related counters, and VLAN IDs of connecting ports.

Type-length-value fields (TLVs) are blocks of information embedded in CDP advertisements. This table summarizes the TLV definitions for CDP advertisements.

Table 1. Type-Length-Value Definitions for CDPv2
TLV Definition

Device-ID TLV

Identifies the device name in the form of a character string.

Address TLV

Contains a list of network addresses of both receiving and sending devices.

Port-ID TLV

Identifies the port on which the CDP packet is sent.

Capabilities TLV

Describes the functional capability for the device in the form of a device type; for example, a switch.

Version TLV

Contains information about the software release version on which the device is running.

Platform TLV

Describes the hardware platform name of the device, for example, Cisco 4500.

VTP Management Domain TLV

Advertises the system’s configured VTP management domain name-string. Used by network operators to verify VTP domain configuration in adjacent network nodes.

Native VLAN TLV

Indicates, per interface, the assumed VLAN for untagged packets on the interface. CDP learns the native VLAN for an interface. This feature is implemented only for interfaces that support the IEEE 802.1Q protocol.

Full/Half Duplex TLV

Indicates status (duplex configuration) of CDP broadcast interface. Used by network operators to diagnose connectivity problems between adjacent network elements.

How to Implement CDP on Cisco IOS XR Software

Enabling CDP

To enable CDP, you must first enable CDP globally on the router and then enable CDP on a per-interface basis. This task explains how to enable CDP globally on the router and then enable CDP on an interface.

SUMMARY STEPS

  1. configure
  2. cdp
  3. interface type interface-path-id
  4. cdp
  5. Use the commit or end command.

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters mode.

Step 2

cdp

Example:


RP/0/RP0/CPU0:router(config)# cdp

Enables CDP globally.

Step 3

interface type interface-path-id

Example:


RP/0/RP0/CPU0:router(config)# int TenGigE 0/5/0/11

Enters interface configuration mode.

Step 4

cdp

Example:


RP/0/RP0/CPU0:router(config-if)# cdp

Enables CDP on an interface.

Step 5

Use the commit or end command.

commit —Saves the configuration changes and remains within the configuration session.

end —Prompts user to take one of these actions:
  • Yes — Saves configuration changes and exits the configuration session.

  • No —Exits the configuration session without committing the configuration changes.

  • Cancel —Remains in the configuration session, without committing the configuration changes.

Modifying CDP Default Settings

This task explains how to modify the default version, hold-time setting, and timer settings.


Note

The commands can be entered in any order.


SUMMARY STEPS

  1. configure
  2. cdp advertise v1
  3. cdp holdtime seconds
  4. cdp timer seconds
  5. Use the commit or end command.
  6. (Optional) show cdp

DETAILED STEPS

  Command or Action Purpose

Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters mode.

Step 2

cdp advertise v1

Example:


RP/0/RP0/CPU0:router(config)# cdp advertise v1

Configures CDP to use only version 1 (CDPv1) in communicating with neighboring devices.

  • By default, when CDP is enabled, the router sends CDPv2 packets. CDP also sends and receives CDPv1 packets if the device with which CDP is interacting does not process CDPv2 packets.

  • In this example, the router is configured to send and receive only CDPv1 packets.

Step 3

cdp holdtime seconds

Example:


RP/0/RP0/CPU0:router(config)# cdp holdtime 30

Specifies the amount of time that the receiving networking device will hold a CDP packet sent from the router before discarding it.

  • By default, when CDP is enabled, the receiving networking device holds a CDP packet for 180 seconds before discarding it.

    Note 

    The CDP hold time must be set to a higher number of seconds than the time between CDP transmissions, which is set with the cdp timer command.

  • In this example, the value of hold-time for the seconds argument is set to 30.

Step 4

cdp timer seconds

Example:


RP/0/RP0/CPU0:router(config)# cdp timer 20

Specifies the frequency at which CDP update packets are sent.

  • By default, when CDP is enabled, CDP update packets are sent at a frequency of once every 60 seconds.

    Note 

    A lower timer setting causes CDP updates to be sent more frequently.

  • In this example, CDP update packets are configured to be sent at a frequency of once every 20 seconds.

Step 5

Use the commit or end command.

Example:

RP/0/RP0/CPU0:router(config)# commit
OR
RP/0/RP0/CPU0:router(config)# end

commit —Saves the configuration changes and remains within the configuration session.

end —Prompts user to take one of these actions:
  • Yes — Saves configuration changes and exits the configuration session.

  • No —Exits the configuration session without committing the configuration changes.

  • Cancel —Remains in the configuration session, without committing the configuration changes.

Step 6

(Optional) show cdp

Example:


RP/0/RP0/CPU0:router# show cdp
(Optional)

Displays global CDP information.

The output displays the CDP version running on the router, the hold time setting, and the timer setting.

Monitoring CDP

This task shows how to monitor CDP.


Note

The commands can be entered in any order.


SUMMARY STEPS

  1. show cdp entry {* | entry-name} [protocol | version]
  2. show cdp interface [type interface-path-id | location node-id]
  3. show cdp neighbors [type interface-path-id | location node-id] [detail]
  4. show cdp traffic [location node-id]

DETAILED STEPS

  Command or Action Purpose

Step 1

show cdp entry {* | entry-name} [protocol | version]

Example:


RP/0/RP0/CPU0:router# show cdp entry *

Displays information about a specific neighboring device or all neighboring devices discovered using CDP.

Step 2

show cdp interface [type interface-path-id | location node-id]

Example:


RP/0/RP0/CPU0:router# show cdp interface pos 0/0/0/1

Displays information about the interfaces on which CDP is enabled.

Step 3

show cdp neighbors [type interface-path-id | location node-id] [detail]

Example:


RP/0/RP0/CPU0:router# show cdp neighbors

Displays detailed information about neighboring devices discovered using CDP.

Step 4

show cdp traffic [location node-id]

Example:


RP/0/RP0/CPU0:router# show cdp traffic

Displays information about the traffic gathered between devices using CDP.

Configuration Examples for Implementing CDP

Enabling CDP: Example

The following example shows how to configure CDP globally and then enable CDP on Ethernet interface TenGigE 0/5/0/11:


cdp
interface 0/5/0/11
cdp
  

Modifying Global CDP Settings: Example

The following example shows how to modify global CDP settings. In this example, the timer setting is set to 20 seconds, the hold-time setting is set to 30 seconds, and the version of CDP used to communicate with neighboring devices is set to CDPv1:


cdp timer 20
cdp holdtime 30
cdp advertise v1
  

The following example shows how to use the show cdp command to verify the CDP global settings:


RP/0/RP0/CPU0:router# show cdp
  
  Global CDP information:
  Sending CDP packets every 20 seconds
		Sending a holdtime value of 30 seconds
		Sending CDPv2 advertisements is not enabled