目錄

前言
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 ?
  <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