CCNA07-CDP(Cisco Discovery Protocol)Cisco网络发现协议详解

【前言】
CDP是Cisco DiscoveryProtocol的缩写,它是由思科公司推出的一种私有的二层网络协
议,它能够运行在大部分的思科设备上面。通过运行CDP 协议,思科设备能够在与它们直
连的设备之间分享有关操作系统软件版本,以及IP地址,硬件平台等相关信息。

【特点和配置】

CDP 在思科设备上的配置管理非常简单。

1全局下关闭打开 CDP 功能

缺省情况下 CDP 功能是打开的。

全局配置命令cdp run //全局启用 CDP

no cdp run //全局关闭 CDP

配置范例:

R1#sh cdp//显示 CDP 全局配置信息

Global CDP information:

Sending CDP packets every 60seconds//缺省每 60 秒发送一次 CDP 通告

Sending a holdtime value of 180seconds//CDP 通告保持时间为 180

Sending CDPv2 advertisementsisenabled//发送 CDP version 2 的通告

R1#config t//进全局配置模式

Enter configuration commands, one perline.End with CNTL/Z.

R1(config)#no cdp run//全局关闭 CDP

R1(config)#exit

R1#

*Mar1 00:07:45.351: %SYS-5-CONFIG_I: Configured from console by console

R1#sh cdp

//这个时候我们再 show 相关 CDP 信息就会提示 CDP 已经关闭

% CDP is not enabled


2端口下关闭打开 CDP 功能

我们除了可以在全局状态下打开关闭CDP功能,我们也可以根据情况配置每个端口的

CDP 功能的打开关闭

配置命令:

接口配置模式下cdp enable//打开接口的 CDP 功能

nocdp enable//关闭接口的 CDP 功能

配置范例:

R1#sh cdp interface s0/0//查看接口的 CDP 配置

Serial0/0 is up, line protocol is up//接口状态

Encapsulation HDLC//接口封装格式

Sending CDP packets every 60 seconds// 60 秒发送一次 CDP 通告

Holdtime is 180 seconds//CDP 通告保持时间为 180

R1#config t//进全局配置模式

Enter configuration commands, one perline.End with CNTL/Z.

R1(config)#int s0/0//进接口配置模式

R1(config-if)#no cdp enable

R1(config-if)#exit

R1(config)#exit

R1#

//关闭接口 CDP 功能

*Mar1 00:19:23.443: %SYS-5-CONFIG_I: Configured from console by console

R1#sh cdp interface s0/0

R1#sh cdp


//这个时候我们显示 CDP 信息得到空白信息

//全局 CDP 功能还是打开


Global CDP information:

Sending CDP packets every 60seconds

Sending a holdtime value of 180seconds

Sending CDPv2 advertisementsisenabled


3调整 CDP 计时器配置

缺省情况下发送计时器为 60秒,保持计时器为 180

配置命令

全局配置模式下

cdp timer xx//配置发送计数器时间为 xx

cdp holdtime xx//配置保持计时器时间为 xx

需要说明的有两点:

第一点:保持计时器时间必须大于发送计时器时间,建议为至少 2 倍发送计时器时

间。

第二点:保持计时器是本机发送出去的 CDP通告所携带,通告接收设备,本CDP

通告保持多长时间。而非针对本机收到的 CDP 通告。

配置范例:



R1#sh cdp//先查看一下当前 CDP 计时器配置

Global CDP information:

Sending CDP packets every 80seconds

Sending a holdtime value of 180seconds

Sending CDPv2 advertisementsisenabled

R1#config t//进全局配置模式

Enter configuration commands, one perline.End with CNTL/Z.

R1(config)#cdp timer ?//看看 cdp 发送计时器的配置范围

<5-254>Rate at which CDPpackets are sent (insec)

R1(config)#cdp timer 90//配置 CDP 发送计时器为 90

R1(config)#cdp holdtime ?//查看 CDP 保持计时器的配置范围

<10-255>Lengthof time(in sec) that receiver must keepthis packet

R1(config)#cdp holdtime 200//配置 CDP 保持计时器的时间为 200

R1(config)#exit

R1#

*Mar1 00:37:43.059: %SYS-5-CONFIG_I: Configured from console by console

R1#sh cdp//通过 show cdp,发现计时器配置已经更改

Global CDP information:

Sending CDP packets every 90seconds

Sending a holdtime value of 200seconds

Sending CDPv2 advertisementsisenabled



4允许发送 CDP version2 的通告

缺省情况下思科设备是允许发送CDP version2 的通告。

我们可以通过 no cdpadvertise-v2 关闭 CDPversion2 通告的发送。

配置范例:

R1#sh cdp//检查 cdp 全局配置

Global CDP information:

Sending CDP packets every 10 seconds

Sending a holdtime value of 30seconds

Sending CDPv2 advertisements isenabled

R1#config t//进全局配置模式

Enter configuration commands, one perline.End with CNTL/Z.

R1(config)#no cdp advertise-v2//关闭发送 CDP version 通告功能

R1(config)#exit

R1#show cdp//检查 CDP 全局配置,已经关闭

Global CDP information:

Sending CDP packets every 10seconds

Sending a holdtime value of 30seconds

Sending CDPv2 advertisements is not enabled

R1#debug cdp packets//打开 CDP 报文 debug 模式

CDP packet info debugging is on

R1#//发送 version1 CDP 报文

*Mar1 00:52:23.759: CDP-PA: version 1 packet sent out on Serial0/0

对端 R2

R2#show cdp nei detail//查看 CDP 邻居详细信息

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

Device ID: R1

Entry address(es):

Platform: Cisco 3640,Capabilities: Router Switch IGMP

Interface: Serial0/0,Port ID (outgoing port): Serial0/0

Holdtime : 26 sec


Version :

CiscoIOSSoftware,3600Software(C3640-IS-M),Version12.4(10a),RELEASE

SOFTW


ARE (fc2)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2006 by Cisco Systems,Inc.

Compiled Wed 11-Oct-06 20:52 byprod_rel_tea

advertisement version: 1


5CDP相关 show 命令

Show cdp//检查 CDP 全局配置信息

Show cdp neighbor

使用范例

R1#show cdp//检查 CDP 全局配置信息

Global CDP information:


Sending CDP packets every 10seconds//发送时间间隔

Sending a holdtime value of 30seconds//保持时间间隔

Sending CDPv2 advertisements is not enabled//CDPv2 的通告功能

R1#show cdp traffic//显示 CDP Counters,包含发送接收到的 CDP 报文数量

CDP counters :

Total packets output: 96,Input: 137//总共接收发送多少 CDP 报文

Hdr syntax: 0, Chksum error: 0,Encaps failed: 1 //错误数量

No memory: 0, Invalid packet:0, Fragmented: 0 //错误数量

CDP version 1 advertisementsoutput: 62, Input: 54//CDPv1 的报文数量

CDP version 2 advertisementsoutput: 34, Input: 83//CDPv2 的报文数量

R1#clear cdp counters//CDP Counters 清零

R1#sh cdp traffic//检查 CDP Counters 清零后的效果

No memory: 0, Invalid packet:0, Fragmented: 0

CDP version 1 advertisementsoutput: 0, Input: 1

CDP version 2 advertisementsoutput: 0, Input: 1

R1#show cdp nei//显示设备发现的邻居情况

Capability Codes: R - Router, T - Trans Bridge,B - Source Route Bridge

S - Switch,H - Host, I - IGMP, r - Repeater


Device IDLocal IntrfceHoldtmeCapabilityPlatformPort ID

R2Ser 0/021R S I3640Ser 0/0

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

//Device ID设备的主机名(Hostname

//Local Intrfce :本地接口

//Holdtme:CDP 通告信息保持多长时间,单位秒

//Capability: R 代表是路由器,S 支持交换功能,I 支持 IGMP 多播管理

//Platform:平台信息

//Port ID:

R1#clear cdp table//清除发现的邻居情况

R1#show cdp nei//检查清除后的效果,所有的邻居信息被清除

Capability Codes: R - Router, T - Trans Bridge,B - Source Route Bridge

S - Switch,H - Host, I - IGMP, r - Repeater


Device IDLocal IntrfceHoldtmeCapabilityPlatformPort ID

R1#show cdp neighbors detail//显示 CDP 邻居详细信息

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

Device ID: R2

Entry address(es):

Platform: Cisco 3640,Capabilities: Router Switch IGMP

Interface: Serial0/0,Port ID (outgoing port): Serial0/0

Holdtime : 19 sec


Version :


CiscoIOSSoftware,3600Software(C3640-IS-M),Version12.4(10a),RELEASE

SOFTW

ARE (fc2)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2006 by Cisco Systems,Inc.

Compiled Wed 11-Oct-06 20:52 byprod_rel_team


advertisement version: 2

R1#show cdp interface//显示接口的 CDP 配置信息

Serial0/0 is up, line protocol is up

Encapsulation HDLC

Sending CDP packets every 10 seconds

Holdtime is 30 seconds

Serial0/1 is up, line protocol is down

Encapsulation HDLC

Sending CDP packets every 10 seconds

Holdtime is 30 seconds

Serial0/2 is up, line protocol is down

Encapsulation HDLC

Sending CDP packets every 10 seconds

Holdtime is 30 seconds

Serial0/3 is up, line protocol is down

Encapsulation HDLC

Sending CDP packets every 10 seconds

Holdtime is 30 seconds

R1#sh cdp interface s0/0//显示某个具体接口的 CDP 配置信息

Serial0/0 is up, line protocol is up

Encapsulation HDLC

Sending CDP packets every 10 seconds

Holdtime is 30 seconds

R1#show cdp entry ?

*all CDP neighborentries

WORDName of CDP neighbor entry

R1#show cdp entry R2//显示邻居 R2 的邻接信息,结果和 showcdp nei detail 一致

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

Device ID: R2

Entry address(es):

Platform: Cisco 3640,Capabilities: Router Switch IGMP

Interface: Serial0/0,Port ID (outgoing port): Serial0/0

Holdtime : 17 sec


Version

CiscoIOSSoftware,3600Software(C3640-IS-M),Version12.4(10a),RELEASE

SOFTW

ARE (fc2)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2006 by Cisco Systems,Inc.

Compiled Wed 11-Oct-06 20:52 byprod_rel_team


advertisement version: 2

6CDP相关 Debug 命令

见下例:

R2#debug cdp ?

adjacencyCDP neighbor info

eventsCDP events

ipCDP ip info

packetsCDP packet-relatedinformation

R2#debug cdp packets//打开 debug CDP 报文功能

CDP packet info debugging is on

R2#

*Mar1 01:16:20.279: CDP-PA: version 2 packet sent out on Serial0/0

*Mar1 01:16:20.283: CDP-PA: version 1 packet sent out on Serial0/0

*Mar1 01:16:26.163: CDP-PA: Packet received from R1 on interface Serial0/0

*Mar1 01:16:26.167: **Entryfoundin cache**


【补充说明】

1常见的 CDP 错误日志信息

%CDP-4-DUPLEX_MISMATCH:duplexmismatchdiscoveredon[chars]([chars]),with

[chars] [chars] ([chars]).

解释:CDP 发现双工配置不匹配。

建议:修改接口双工配置,保证它们工作在相同的双工状态下。


%CDP-4-NATIVE_VLAN_MISMATCH:NativeVLANmismatchdiscoveredon[chars]

([dec]), with [chars] [chars] ([dec]).


解释:CDP 发现某 802.1Q Trunk 端口 Native VLAN ID 不一致

建议:将两端 Native VLAN ID 配置修改为一致


2CDPVersion1 Vesion 2 的区别

CDPVersion1 Version2 的主要区别在于 Version2 支持更多 TLV,比如交换机之间的 VTP

DomainDuplexNative VLANID 等等。这样极大的扩充了CDP 的功能。



【用途】
从CDP的字面意思我们可以理解到,这是一种设备发现协议。类似的协议有HP的LLDP
(Link Layer Discovery Protocol)还有华为/H3C的NDP(邻居发现协议)协议。
CDP是一个二层的网络协议,默认每60 秒01-00-0C-CC-CC-CC这个组播地址发送一
次通告,如果在
180秒内未获得先前邻居设备的CDP通告,它将清除原来收到的CDP信息。
因为它
不依赖任何的三层协议,透过CDP协议,可以帮助我们解决一些三层错误配置的故
障,比如错误的三层地址等等。
用途一:SNMP协议通过CDPMIB发现网络拓扑
SNMP 中结合使用CDP 管理信息基础MIB,能使网络管理应用获知被管理设备类型
和相邻设备的SNMP 代理地址,并向这些设备发送SNMP 查询请求。Cisco 发现协议支
持CISCO-CDP-MIB。通过返回的响应信息,网络管理应用发现支持CDP协议的网络设备,
并依此生成发现的网络拓扑。

用途二:通过CDP协议发现相邻端口Duplex不匹配
从CDP Version2开始,CDP支持传送端口的Duplex,Native VLAN ID以及VTP Domain
等新的TLV 值。双工不匹配是一种比较难发现的网络错误,它并不会带来网络的中断但是
它会造成某些应用性能的急剧下降。
如下例:SW1--------SW2

105202534.jpg

105039689.jpg


用途三:通过CDP协议发现相邻Trunk端口的Native VLAN ID不一致
Trunk端口的Native VLAN ID 不一致会导致部分VLAN 通讯出现混乱。
交换机 SW1通过F0/1 与SW2的F0/2 连接。
如下例:

105331437.jpg



用途四:通过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适合用在那些Huband Spoke型的网络结构中(Hub and Spoke的网络拓扑结果我
们可以把它理解成一个中心点,多个分支的网络拓扑。集中分支)。我们只需要在Hub 中心
路由器上启用router odr,分支路由器会自动在它的CDP更新中添加有关它网络的TLV信息。

105502268.jpg

105540945.jpg


【报文格式】
CDP协议是一个二层协议,它主要依赖某些二层协议作为它的承载层。
LLC/SNAP:OUI值0x00000C protocol ID 值0x2000.
CiscoHDLC:Protocol ID 值为0x2000
PPP:ProtocolID 值为0x0207
CDP协议Decode例子如下:

105634889.jpg

105733941.jpg

105815602.jpg


CDP协议报文格式

105922937.jpg


本文出自 “好好活着” 博客,转载请与作者联系!

你可能感兴趣的:(IP地址,网络管理,思科设备,邻居发现)