目录

前言
Neighbors
CDP Timer 与 Hold Time
关掉 CDP

前言

Cisco Discovery Protocol (CDP) 是 Cisco 独家的 Protocol,只可在 Cisco 产品上执行。透过 CDP,网管人员可以查看该设备的物理连接,得到相邻设备的资讯,例如:型号、IOS 版本等等。现在一般都会使用 CDP Version 2,而 Cisco 设备预设亦会是 Version 2。

Neighbors

cdp

用上图网络为例子,由於 CDP 预设是开启的,因此只要输入 show cdp neighbors 即可看到相邻 Router 的资料。以下用 R1 作示範。

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               Eth 0/0            128        R S I      3640      Eth 0/0
R3               Eth 0/1            133          R        7206VXR   Fas 0/0

Device ID

相邻设备的 hostname。

Local Intrfce

即 Local Interface,是本设备连接相邻设备的 Interface。

Holdtme

CDP packet 预设每 60 秒传送一次,如果过了预设 Hold Time 180 秒也收不到 CDP packet,则判断对方已死掉。所以 Hold Time 会由 180 秒开始倒数,直至收到 CDP packet 再回到 180 秒,如果 Hold Time 数到 0 也收不到 CDP packet 的话,此条纪录便会被移除。

Capability

相邻设备是一件什麽东西呢?只要查看 Capability Code 便知道了。

Platform

相邻设备的型号。

Port ID

正在连接相邻设备的那一个 Interface。

如果想看得详细一点的话,可以用 show cdp neighbors detail,连 IP Address、IOS Version 也赤裸裸的显示出来了,没有私隐!

R1#show cdp neighbors detail
-------------------------
Device ID: R2
Entry address(es):
  IP address: 192.168.1.1
Platform: Cisco 3640,  Capabilities: Router Switch IGMP
Interface: Ethernet0/0,  Port ID (outgoing port): Ethernet0/0
Holdtime : 173 sec

Version :
Cisco IOS Software, 3600 Software (C3640-JK9S-M), Version 12.4(16), RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Wed 20-Jun-07 11:43 by prod_rel_team

advertisement version: 2
VTP Management Domain: ''
Duplex: half

-------------------------
Device ID: R3
Entry address(es):
  IP address: 192.168.2.1
Platform: Cisco 7206VXR,  Capabilities: Router
Interface: Ethernet0/1,  Port ID (outgoing port): FastEthernet0/0
Holdtime : 174 sec

Version :
Cisco IOS Software, 7200 Software (C7200-IK9S-M), Version 12.4(17a), RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Wed 07-Nov-07 21:02 by prod_rel_team

advertisement version: 2
Duplex: full

CDP Timer 与 Hold Time

如果这时候我们更改 R2 的 hostname,会发现要等一段时间後纪录才出现,而且旧纪录也没有立刻消失,这可能会造成一点困扰。

R2(config)#hostname Router2
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               Eth 0/0            128        R S I      3640      Eth 0/0
Router2          Eth 0/0            168        R S I      3640      Eth 0/0
R3               Eth 0/1            133          R        7206VXR   Fas 0/0

如果想更新快一点的话,可以修改 CDP Timer,缩短更新时间。但此举会增加网络负荷,请小心使用。现在试把 R2 的 CDP timer 改成 5 秒 (预设是 60 秒)。

Router2(config)#cdp timer ?
   Rate at which CDP packets are sent (in  sec)

Router2(config)#cdp timer 5

show cdp 指令可查看 Timer 值。

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

观察 R1 的 CDP Neighbor,会发现 Router2 的 HoldTme 每数到 175 便会回到 180,證明 CDP Timer 已改成 5 秒。

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
Router2          Eth 0/0            179        R S I      3640      Eth 0/0
R3               Eth 0/1            169          R        7206VXR   Fas 0/0

现在尝试在 R2 更改 CDP holdtime。

R2(config)#cdp holdtime ?
   Length  of time  (in sec) that receiver must keep this packet

R2(config)#cdp holdtime 10
R2#show cdp
Global CDP information:
        Sending CDP packets every 5 seconds
        Sending a holdtime value of 10 seconds
        Sending CDPv2 advertisements is  enabled

在 R1 看 CDP Neighbor,现在 Router2 的 Holdtime 会由 10 秒开始倒数,如果过了 10 秒都收不到 Router2 传送 CDP packet,就会删掉纪录。这样子,不存在的设备就可以快一点消失。

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
Router2          Eth 0/0            6          R S I      3640      Eth 0/0
R3               Eth 0/1            121          R        7206VXR   Fas 0/0

关掉 CDP

由於 CDP 会暴露重要资讯,有时我们并不希望启动 CDP,例如:我是 ISP ,我不想我的客户知道我 Router 的资料,那便要关掉 CDP 了。

我们可以在 Interface 用 no cdp enable,这样,只有这个 Interface 的 CDP 会被关掉。

R2(config)#interface ethernet 0/0
R2(config-if)#no cdp enable

又或者使用 Global 指令 no cdp run,这样就所有 Interface 都不会发 CDP 了。

R2(config)#no cdp run

关掉 CDP 後,R1 便看不到 Router2 的资料。

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
R3               Eth 0/1            134          R        7206VXR   Fas 0/0