首页 > 学院 > 网络通信 > 正文

CDP协议分析-sniffer应用系列一(图)

2019-11-04 12:05:30
字体:
来源:转载
供稿:网友

  1.1 CDP协议概述
  
  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数据包。
  
 CDP协议分析-sniffer应用系列一(图)(图一)

  
图1  debug cdp packet

  
  直连设备互相之间交换的CDP包中的内容主要包括:对端设备的名称、对端设备的性能(如交换机还是路由器)、对端设备的平台(型号)、对端设备的ip地址(或治理IP)等信息。
  
  对于如图2所示的网络拓扑来说,可以分别在两个设备上使用相关的命令得到对端设备的有关信息。
  
 CDP协议分析-sniffer应用系列一(图)(图二)

  
图2  网络拓扑

  
  如图3所示,是在路由器R1上利用命令show cdp neighbors得到的CDP信息的输出。从中我们可以看出路由器R1的直连邻居设备Sw1的一些相关信息,包括:设备ID、保持时间、性能、平台、本地和对端的连接端口。
  
 CDP协议分析-sniffer应用系列一(图)(图三)

  
图3  show cdp neighbors

  
  使用命令show cdp neighbors detail,可以得到对端设备的更具体的信息。如图4所示。同样的命令也可以在交换机Sw1上执行。
  
 CDP协议分析-sniffer应用系列一(图)(图四)
点击查看大图

  
图4  show cdp neighbors detail

  
  1.2 CDP包结构
  
  CDP包的结构如图5所示。
  
 CDP协议分析-sniffer应用系列一(图)(图五)

  
图5  CDP包结构

  
  首先是以太网帧头,包括DLC头部、LLC头部、SNAP头部,接下来是长度不定的CDP字段。
  
  其中,CDP帧中除了开始的3个部分:CDP版本(2)、TTL(180秒)、校验和外,其余的内容由若干个TLV项(Type类型、Length长度、Value值)组成。常见的TLV的定义如表1所示。
  
  
表1  CDP常见的TLV

  
 CDP协议分析-sniffer应用系列一(图)(图六)
点击查看大图

  1.3 CDP协议sniffer分析
  
  1.3.1 Catalyst WS-C2924-XL f0/17输出cdp包
  
  图6是sniffer捕捉到到的Catalyst WS-C2924-XL f0/17输出cdp包头部。
  
 CDP协议分析-sniffer应用系列一(图)(图七)
点击查看大图

  
图6  CDP报文头部格式

  
  从图中我们可以知道这是一个SNAP帧(其帧格式如图7所示)。
  
CDP协议分析-sniffer应用系列一(图)(图八)
点击查看大图

  
图7  SNAP帧格式

  
  在CDP头部中,应该注重到以下一些重要信息:
  
  ●CDP采用的是多播目标MAC地址:01-00-0C-CC-CC-CC(用于CDP和VTP)
  
  ●DLC后面所跟的802.3帧的总长度为372字节,是指除了DLC头之外的所有内容的长度
  
  ●SNAP中的前3字节表示OUI ID,这里是00-00-0C代表厂商Cisco
  
  ●SNAP中的后2字节表示此帧承载的协议类型,0x2000表示是CDP协议


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表