1.前言
CDP是cisco discovery protocol的縮寫,他是思科公司推出的一種私有的二層網絡協議,它能夠運行在大部分的思科設備上面。通過運行CDP協議,思科設備能夠在與它們直連的設備之間分享有關操作系統軟件版本,以及IP地址,已經硬件平臺。
2.用途
從CDP的字面意思我們可以理解到,這是一種設備發現協議,類似的協議有HP的LLDP(Link layer discovery Protocol)還有華爲/H3C的NDP(鄰居發現協議)協議。
CD是一個二層的網絡協議,默認每60S向01-00-0C-CC-CC-CC這個組播地址發送一次通告,如果在180S內未獲得先前鄰居設備的CDP通告,它將清除原來收到的CDO信息。
因爲它不依賴任何的三層協議,透過CDP協議,可以幫助我們解決一些三層錯誤配置的故障,比如錯誤的三層地址等等。
下圖是思科設備的CDP鄰居信息:
用途一:SNMP協議通過CDP MIB發現網絡拓撲
SNM中結合使用CDP管理信息基礎MIB,能使網絡管理應用獲知被管理設備類型和相鄰的SNMP代理地址,並向這些設備發送SNMP查詢請求。CISCO發現協議支持CISCO-CDP-MIB,通過返回的響應信息,網絡管理應用發現支持CDP協議的網絡設備,並依次生成發現的網絡拓撲。
用途二:通過CDP協議發現相鄰端口的Duplex不匹配
從CDP Version 2 開始,CDP支持傳送的端口的Duplex,Native VLAN ID 以及VTP Domain等新的TLV值。雙工不匹配是一種比較難發現的網絡錯誤,它並不會帶來網絡的中斷但是它會造成某些應用性能的幾句下降。
如下例SW1-------SW2
用途三:通過CDP協議發現相鄰的Trunk端口的Native VLAN ID 不一致
Trunk端口的Native VLAN ID 不一致會導致部分VLAN通訊出現混亂。
交換機SW1通過F0/1與SW2的F0/2連接。
如下例:
用途四:通過CDP協議PoE受電設備申請PoE電源分配
PoE是Power Over Ethernet的縮寫,也就是我們常常說的Inline Power,爲解決一些小型以太網設備需要單獨供電的而退出的集中化供電方式。利用現有的5類雙絞線爲那些小型設備如IP Phone,無線的AP提供電力供應。
在PoE供電系統中,我們把提供店裏供應的設備較PSE(Power Supply Equipment)接收電力供應的叫PD(Powered Device)。在思科設備中PSE往往是那些中心斷電支持PoE
供電的交換機或者交換模塊。而PD設備則是那些需要遠程供電的IP Phone,無線AP等等。
對於PSE和PD設備都爲思科的設備,思科允許它們之間通過CDP交換信息,以期讓PSE設備獲得PD設備的真是需要的電源供應功率。
用途五:協同ODR工作
ODR是On-Demand Routing的縮寫,直譯可以翻譯成按需路由,我們可以把它看做是基於CDP協議的一種路由協議或者把它看做CDP協議的一種增強功能。在IOS 11.2及以後版本開始支持這個特性。
ODR適合用在那些Hub and Spoke型的網絡結構中(Hub and Spoke的網絡結構結果我們可以把它理解成一箇中心點,多個分支的網絡拓撲,集中分支)。我們只需要在Hub中心路由器上啓用Router odr,分支路由器會自動在它的CDP更新中添加有關它的TLV信息。
報文格式:
CDP協議是一個二層協議,它只要依賴某些二層協議作爲它的承載層(VLAN1 承載)
LLC/SNAP:OUI值0x00000C protocol ID值 0x2000
Cisco HDLC: Protocol ID值爲0x2000
PPP:Protocol ID值爲0x0207
CDP協議Decode例子如下:
CDP協議報文格式: