CDP协议分析-sniffer应用系列
CDP(Cisco Discovery Protocol,Cisco设备创造协议)用于创造直连的CISCO设备相干信息。CDP利用直连的两个设备间定时发送hello信息(CDP数据包)保持邻居关系。
默认情况下,每隔60秒的时间,每个CISCO设备都要向互连的对方发送一个CDP数据包。如果经过3个hello周期(180秒,称为holdtime或TTL)还没有收到对方的CDP包,则本地设备在CDP邻居表中删除那个CDP邻居设备。
如图1所示,是在一台Cisco Catalyst 2924交换机上对CDP数据包的诊断输出信息。可以看到,交换机在每个运动接口发送CDP数据包。
![]() |
图1debug cdp packet
直连设备互相之间交换的CDP包中的内容重要包含:对端设备的名称、对端设备的性能(如交换机还是路由器)、对端设备的平台(型号)、对端设备的IP地址(或管理IP)等信息。
对于如图2所示的网络拓扑来说,可以分辨在两个设备上利用相干的命令得到对端设备的有关信息。
![]() |
图2网络拓扑
如图3所示,是在路由器R1上利用命令show cdp neighbors得到的CDP信息的输出。从中我们可以看前途由器R1的直连邻居设备Sw1的一些相干信息,包含:设备ID、保持时间、性能、平台、本地和对端的连接端口。
![]() |
图3show cdp neighbors
利用命令show cdp neighbors detail,可以得到对端设备的更详细的信息。如图4所示。同样的命令也可以在交换机Sw1上履行。
![]() |
图4show cdp neighbors detail
1.2 CDP包结构
CDP包的结构如图5所示。
![]() |
图5CDP包结构
首先是以太网帧头,包含DLC头部、LLC头部、SNAP头部,接下来是长度不定的CDP字段。
其中,CDP帧中除了开始的3个部分:CDP版本(2)、TTL(180秒)、校验和外,其余的内容由若干个TLV项(Type类型、Length长度、Value值)组成。常见的TLV的定义如表1所示。
表1CDP常见的TLV
![]() |
1.3 CDP协议sniffer分析
1.3.1 Catalyst WS-C2924-XL f0/17输出cdp包
图6是sniffer捕获到到的Catalyst WS-C2924-XL f0/17输出cdp包头部。
![]() |
图6CDP报文头部格式
从图中我们可以知道这是一个SNAP帧(其帧格式如图7所示)。
![]() |
图7SNAP帧格式
本消息共3页,当前在第1页 1 2 3