CDP是Cisco Discovery Protocol的缩写,它是由思科公司推出的一种私有的二层网络协议,它能够运行在大部分的思科设备上面。通过运行CDP 协议,思科设备能够在与它们直连的设备之间分享有关操作系统软件版本,以及IP地址,硬件平台等相关信息。
协议简介
CDP是思科私有的一种设备发现协议。类似的协议有HP的
LLDP(Link Layer Discovery Protocol)还有华为/H3C的
NDP(邻居发现协议)协议。
CDP是一个二层的网络协议,默认每60 秒向01-00-0C-CC-CC-CC这个组播地址发送一次通告,如果在180秒内未获得先前邻居设备的CDP通告,它将清除原来收到的CDP信息。因为它不依赖任何的三层协议,透过CDP协议,可以帮助我们解决一些三层错误配置的故障,比如错误的三层地址等等。
版本
版本1
CDP版本1支持以下参数:
版本2
在CDP版本2中,除了支持CDP版本1中所有字段,还引入了另外的协议字段。但下列可以是特别有用的在交换的环境和用于 CatcOs。
注意当交换机运行CDP版本1时,将丢弃版本2的帧。当运行CDP版本2的交换机在接口接收到一个CDP版本1的帧时,将会在这个接口上发出CDP版本1的帧。
配置说明
cdp
配置命令:cdp { advertise-v2 | holdtime | log | run | source-interface| timer }
Router(config)#cdp run (全局启用CDP)
cdp enable
接口下配置CDP命令,指定端口下开启使用cdp enable,关闭使用no cdp enable。
Router(config)#no cdp run
Router(config)#int fa0/1
Router(config-if)#no cdp enable
show cdp
查看CDP全局配置信息
Router#show cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled
show cdp neighbors
使用show cdp neighbors 可以显示直接相连的设备的信息,如下:
Router#show cdp neighbors
一些选项的解释如下:
1.Device ID:直接相连的设备的主机名
2.Local Interface:接收CDP 包的接口
3.Holdtime:某设备从相邻设备收到的包的保持时间,如果过了这个时间仍然没收到新的CDP包,设备信息将被清除。
4.Capability:见输出最顶部信息
5.Platform:Cisco 设备的类型
6.Port ID:相连设备的接受CDP 包信息的接口要查看更为详细的CDP 信息可以使用show cdp neighbor detail 或show cdp entry*(这条命令在交换机中不能用)命令。
show cdp traffic
使用show cdp traffic 命令显示接口CDP 包流量信息,如下:
Router#sh cdp traffic
CDP counters:
Packets output: 13, Input: 8
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid packet: 0, Fragmented: 0
Router#
Gathering Port and Interface Information
show cdp interface
使用show cdp interface 命令显示接口的CDP 状态信息
应用举例
SNMP 中结合使用 CDP 管理信息基础 MIB,能使网络管理应用获知设备类型和相邻设备的 SNMP 代理地址,并向这些设备发送 SNMP 查询请求。Cisco 发现
协议支持CISCO-CDP-MIB。
CDP 运行在所有的媒体上,从而支持
子网访问协议 SNAP,包括局域网、
帧中继和异步传输模式 ATM
物理媒体。CDP 只运行于
数据链路层,因此,支持不同网络层协议的两个系统彼此相互了解。
CDP 配置的每台设备发送周期性信息,如我们所知的广播到组播地址。每台设备至少广播一个地址,在该地址下,它可以接收 SNMP 信息。广告包括生存期,或保持时间等信息,这些信息指出了在取消之前接收设备应该保持 CDP 信息的时间长短。此外每台设备还要注意其它设备发出的周期性 CDP 信息,从中了解相邻设备信息并决定那些设备的媒体接口什么时候增长或降低。
CDP 版本2,是目前该协议使用最普遍的版本,它具有更高的智能设备跟踪等性能。支持该性能的报告机制,提供快速差错跟踪功能,有利于缩短停机时间(Downtime)。报告差错信息可以发送到控制台或
日志服务器(Logging Server),这些差错信息包括连接端口上不匹配(Unmatching)的本地 VLAN IDs(IEEE 802.1Q)以及连接设备间不匹配的端口双向状态。
通过CDP协议发现相邻端口Duplex不匹配
从CDP Version2开始,CDP支持传送端口的Duplex,Native VLAN ID以及VTP Domain等新的TLV 值。双工不匹配是一种比较难发现的网络错误,它并不会带来网络的中断但是它会造成某些应用性能的急剧下降。
发现相邻Trunk端口的Native VLAN ID不一致
Trunk端口的Native VLAN ID 不一致会导致部分VLAN 通讯出现混乱。交换机 SW1通过F0/1 与SW2的F0/2 连接。
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信息。