Cisco Discovery Protocol (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 ?
   <5-254>  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 ?
   <10-255>  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

相關主題

发表回复

2021-07-22

Posted In: Layer 2 网络技术

Leave a Comment