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数据包 。
图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帧格式
在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协议
图8显示了此包中的CDP输出部分(第1部分) 。
图8CDP部分(第1部分)
其中 , 应该注重到以下一些重要信息:
●当前采用的CDP的版本是CDP2.0
●保持时间(TTL)为180秒
●校验和:2字节
随后是若干个TLV字段 , 它们分别是:
●TLV1(其内容是TLV的组合)
■T(2字节):0x0001(设备名称):
■L(2字节):7(T、L、V加在一起的总长度):
■V(3字节):Sw1(主机名称)
●TLV2
■T(2字节):0x0002(IP地址)
■L(2字节):17(T、L、V加在一起的总长度)
■V(13字节):
◆包内地址数(4字节):1
◆协议类型(1字节):1=NLPID
◆协议长度(1字节):1
◆协议值(1字节):0xCC=IP
◆地址长度(2字节):4
◆治理IP地址(4字节):192.168.0.130
●TLV3
■T(2字节):0x0003(端口号)
■L(2字节):20(T、L、V加在一起的总长度)
■V(16字节):端口="FastEthernet0/24"
图9显示了此包中的CDP输出部分(第2部分) 。
点击查看大图
图9CDP部分(第2部分)
其中 , 主要有以下一些TLV字段 , 它们分别是:
●TLV4
■T(2字节):0x0004(性能)
■L(2字节):8(T、L、V加在一起的总长度)
■V(4字节):
◆Capabilities flag(2字节):未用
◆Capabilities flags(2字节):
●0:不提供1层功能(不是中继器)
●0:网桥/交换机不转发IGMP报告包(不支持/使能IGMP)
●0:设备在进行路由协议(不是一个主机)
●1:执行2层交换(是个交换机)
●0:不执行2层源路由桥接
●1:执行(运行)2层透明网桥
●0:不执行3层路由
●TLV5
■T(2字节):0x0005(版本信息)
■L(2字节):226(T、L、V加在一起的总长度)
■V(222字节):版本信息"Cisco Internetwork Operating System Software .IOS (tm) C2900XL Software (C2900XL-C3H2S-M), Version 12.0(5)WC9a, RELEASE SOFTWARE (fc1).Copyright (c) 1983-7004 by cisco systems, Inc..Compiled Tue 13-Jan-04 11:54 by antonino"(实际上是在该设备上执行命令show version的输出信息) 。
●TLV6
■T(2字节):0x0006(设备平台、型号)
■L(2字节):21(T、L、V加在一起的总长度)
■V(17字节):设备型号:cisco WS-C2924-XL
图10显示了此包中的CDP输出部分(第2部分) 。
点击查看大图
图10CDP部分(第3部分)
其中 , 主要有以下一些TLV字段 , 它们分别是:
●TLV8
■T(2字节):0x0008(交换机簇治理)
■L(2字节):36(T、L、V加在一起的总长度)
■V(32字节):
◆厂商代码:00-00-0c(cisco)
◆协议ID:0x0112(交换机簇治理)
◆交换机簇治理IP:0.0.0.0
◆交换机MAC地址:00-04-28-d2-09-00
◆治理Vlan:1
◆… …
●TLV9
■T(2字节):0x0009(VTP 治理域)
■L(2字节):14(T、L、V加在一起的总长度)
■V(10字节):VTP 治理域名:chinaitlab
●TLV10
■T(2字节):0x000a(本征Vlan)
■L(2字节):6(T、L、V加在一起的总长度)
■V(2字节):本征Vlan:1(可以通过int vlan 2、ip add xxx改变)
●TLV11
■T(2字节):0x000b(双工方式)
■L(2字节):5(T、L、V加在一起的总长度)
■V(1字节):双工方式:1=全双工
1.3.2 Cisco 2500 e0输出cdp包
图11是sniffer捕捉到到的Cisco 2500 e0输出cdp包中的CDP部分(第1部分) 。
图11CDP部分(第1部分)
其中 , 应该注重到以下一些重要信息:
●当前采用的CDP的版本是CDP2.0
●保持时间(TTL)为180秒
●校验和:2字节
随后是若干个TLV字段 , 它们分别是:
●TLV1
■T(2字节):0x0001(设备名称)
■L(2字节):6(T、L、V加在一起的总长度)
■V(2字节):R1(主机名称)
●TLV2
■T(2字节):0x0002(IP地址)
■L(2字节):17(T、L、V加在一起的总长度):2字节
■V(13字节):
◆包内地址数(4字节):1
◆协议类型(1字节):1=NLPID
◆协议长度(1字节):1
◆协议值(1字节):0xCC=IP
◆地址长度(2字节):4
IP地址(4字节):10.0.0.1
●TLV3
■T(2字节):0x0003(端口号)
■L(2字节):13(T、L、V加在一起的总长度)
■V(9字节):端口="Ethernet0"
图12显示了此包中的CDP输出部分(第2部分) 。
点击查看大图
图12CDP部分(第2部分)
其中 , 主要有以下一些TLV字段 , 它们分别是:
●TLV4
■T(2字节):0x0004(性能)
■L(2字节):8(T、L、V加在一起的总长度)
■V(4字节):
◆Capabilities flag(2字节):未用
◆Capabilities flags(2字节):
●0:不提供1层功能
●0:网桥/交换机不转发IGMP报告包
●0:设备在路由协议
●0:不执行2层交换
●0:不执行2层源路由桥接
●0:不执行(运行)2层透明网桥
●1:(为至少一个网络协议)执行3层路由功能
●TLV5
■T(2字节):0x0005(版本信息)
■L(2字节):215(T、L、V加在一起的总长度)
■V(211字节):版本信息"Cisco Internetwork Operating System Software .IOS (tm) 2500 Software (C2500-JK8OS-L), Version 12.2(1d), RELEASE SOFTWARE (fc1).Copyright (c) 1983-7002 by cisco Systems, Inc..Compiled Sun 03-Feb-02 22:01 by srani"(实际上是在该设备上执行命令show version的输出信息) 。
●TLV6
■T(2字节):0x0006(设备平台、型号)
■L(2字节):14(T、L、V加在一起的总长度)
■V(3字节):设备型号:cisco 2500
图13显示了此包中的CDP输出部分(第3部分) 。
点击查看大图
图13CDP部分(第部分)
其中 , 主要有以下一些TLV字段 , 它们分别是:
●TLV7
■T(2字节):0x000B(双工方式)
■L(2字节):5(T、L、V加在一起的总长度)
■V(1字节):双工方式:0=半双工
- 微软称2008年Vista 份额达85% 分析师质疑
- 协议和合同的区别及法律效力
- 苹果Apple Pay支持哪些设备?手机无法使用Apple Pay的原因分析
- 法律规定婚前协议财产独立有效吗
- b站等级如何提升?b站等级提升方法分析
- Cool Edit Pro如何录音 录音教程详解分析
- Beyond Compare如何比较文件夹 文件夹比较分析
- 小米4c黑屏无反应怎么办?造成小米4c黑屏的原因分析
- 双方协议离婚要些什么证件
- 安卓坦白说如何看是谁 破解坦白说对方身份方法分析
