Lab 6-2: UNIX CDP Configuration

Sometimes it is convenient to use the Cisco Discovery Protocol (CDP) to get an overview over a Cisco topology, especially when familiarizing yourself with an unknown network. CDP is also helpful when dealing with integration of UNIX gateways into an existing Cisco Works network management infrastructure. Cisco Works, for example, heavily relies on CDP. UNIX workstations can send CDP packets to Cisco neighbors.

Depending on the tool, these packets are either CDPv1 or CDPv2. Four UNIX CDP implementations pretty much achieve the same:

  • cdpd

  • cdpr

  • scdp

  • lcdpd (Linux kernel patch)

Because UNIX workstations usually do not care about CDP neighbors, they transmit only CDP packets; they do not digest received protocol information. Example 6-18 shows the CDP configurations of the lab gateways. The callisto scdp crontab entry is activated every 60 seconds to match the Cisco default timers.

Example 6-18. CDP Configuration

Castor: /usr/local/libexec/cdpd ?a

Callisto crontab entry: * * * * * /usr/local/bin/scdp -i eth0 -v2

Scar: Cisco CDP can be enabled per-interface via the cdp enable command


The result of this setup is shown in Example 6-19, and Example 6-20 shows a sniffer trace of the CDP protocol traffic.

Example 6-19. CDP Lab Operation

scar# 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

callisto         Eth 1              124          H        Linux     eth0

castor           Eth 0              147          H        i386      ed0



scar# show cdp neighbors detail

-------------------------

Device ID: callisto

Entry address(es):

  IP address: 192.168.14.1

Platform: Linux,  Capabilities: Host

Interface: Ethernet1,  Port ID (outgoing port): eth0

Holdtime : 178 sec

Version : 2

advertisement version: 1

-------------------------

Device ID: castor

Entry address(es):

  IP address: 192.168.7.7

Platform: i386,  Capabilities: Host

Interface: Ethernet0,  Port ID (outgoing port): ed0

Holdtime : 142 sec

Version :

FreeBSD 4.9-RELEASE FreeBSD 4.9-RELEASE #0: Tue Nov

advertisement version: 1


Example 6-20. CDP Protocol Behavior?Sniffer Output

[root@callisto:~#] tcpdump -i eth0 ether dst 01:00:0c:cc:cc:cc

tcpdump: listening on eth0

14:41:00.784334 CDP v1, ttl=180s

         DevID 'callisto'

         Addr (1): IPv4 192.168.14.1

         PortID 'eth0'

         CAP 0x10

         Version: (suppressed)

         Platform: 'Linux'

14:41:04.922217 CDP v2, ttl=180s

         DevID 'scar'

         Addr (1): IPv4 192.168.14.254

         PortID 'Ethernet1'

         CAP 0x01

        [!cdp]

14:41:04.923162 CDP v1, ttl=180s

         DevID 'scar'

         Addr (1): IPv4 192.168.14.254

         PortID 'Ethernet1'

         CAP 0x01

        [!cdp]



[root@castor~#] tcpdump -i ed0 ether dst 01:00:0c:cc:cc:cc

tcpdump: listening on ed0

14:09:04.837219 CDP v2, ttl=180s

         DevID 'scar'

         Addr (1): IPv4 192.168.7.254

         PortID 'Ethernet0'

         CAP 0x01

        [!cdp]

14:09:04.838186 CDP v1, ttl=180s

         DevID 'scar'

         Addr (1): IPv4 192.168.7.254

         PortID 'Ethernet0'

         CAP 0x01

        [!cdp]

14:11:24.686029 CDP v1, ttl=180s

         DevID 'castor'

         Addr (1): IPv4 192.168.7.7

         PortID 'ed0'

         CAP 0x10

        [!cdp]