科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换CDP发现协议的维护及故障排除

CDP发现协议的维护及故障排除

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当网络中增加了一台路由器或者交换机,那么现有的网络设备是如何自动发现这个“新邻居”的呢?对于思科网络来说,主要是CDP发现协议在其中起作用。

来源:chinaitlab 2010年7月10日

关键字: 故障解决 网络管理

  • 评论
  • 分享微博
  • 分享邮件

  当网络中增加了一台路由器或者交换机,那么现有的网络设备是如何自动发现这个“新邻居”的呢?对于思科网络来说,主要是CDP发现协议在其中起作用。简单的说,CDP发现协议就是用来获取邻居设备的信息。这些信息包括被连接设备的类型(交换机或者路由器)、连接到的路由器的接口或者本地连接的接口和设备的数量的等等。在这篇文章中,笔者主要想介绍一下这个CPD协议的维护以及如何来排除跟这个协议相关的故障。

  一、获取邻居设备的相关信息

  CDP发现协议的主要作用就是用来发现所有与本地设备直接连接的思科网络设备。注意这句话说有个定语“直接相连”非常关键。如果两个设备之间还连接其它设备的话,那么就不能够发现。

  每个运行CDP发现协议的路由器都会与自己的邻居交换协议信息。网络管理员在有需要的情况下,可以将CDP信息交换的结果显示在连接到本地路由器的控制台上。如下图所示,在任何一台路由器或者交换机的设备上,输入以下命令:show cdp neighbors命令,就可显示出与这台路由器或者交换机“直接相连”的设备的相关信息。

  

获取邻居设备的相关信息

  从上面这个图形中,我们可以得出如下结论。

  一是关于CDP的维护大部分都必须在特权模式下进行。如上图所示,在开始的时候,笔者使用了Enable命令进入到了特权模式。只有在这个模式下,才能够查看邻居设备的信息。注意,必须要在特权模式下进行操作。

  二是这个命令的输入技巧。这个命令比较长,如果一个个字符的去输入显然比较费时费力。而且neighbors这个单词又比较容易拼写错误。此时就需要用到IOS软件的历史纪录命令。在实际工作中,只需要输入nei三个字符,然后按一下Tab键,系统就会自动补齐后面的支付,而不需要输全。这对英文不怎么好的用户来说,是一个福音。

  三是这个命令所反映出来的信息。如上图所示,这个命令可以反映出设备标示的ID 、本地接口、连接保持时间、功能、平台、端口标示、VTP管理域名、本地Vlan、工作模式(全双工或者半双工)等等丰富的信息。如果这些信息还不能够满足网络管理员需求的话,那么用户还可以在这个命令后面加一个参数detail。如此的话,就可以显示更加详细的信息。

  这些信息对于日常的网络维护是非常有帮助的。如能够让管理员了解网络上相关设备的所有概况,帮助管理员更加好的理解现有网络的拓扑结构。对于后续网络的维护与优化也具有非常大的价值。

  二、维护与监控CDP信息

  1、启用或者关闭CDP协议。

  默认情况下,CDP发现协议是全局启用的。不过如果与比较老的思科设备共同使用的时候,可能需要手工启动这个发现协议。如当路由器与1900系列的交换机进行互联的时候,那么就需要在交换机上手工启用这个协议。如果需要在路由器上全局启用CDP发现协议的话,则可以通过CDP RUN命令。而在IOS 10.3以后的版本中,还支持在接口模式下使用CDP发现协议。如果要启用这个特性的话,就需要进入到接口配置模式,然后使用cdp enable在接口上启用CDP。不过与全局模式相反,默认情况下,在接口上的CDP发现协议缺省是没有启用的。

  2、查看数据帧传输的信息。在网络维护与优化的时候,需要知道数据帧传输的相关信息。要了解这些信息的话,网络管理员就可以使用show cdp interface命令来查看。结果如下下图所示:

  

CDP发现协议的维护及故障排除

  可见使用这个命令可以获取CDP用于通告和发现数据帧传输的信息。这些信息包括保持时间、CDP分组发送的频率、接口封装的时间以及街口的管理和协议情况等等。毋庸置疑,这些信息对于后续维护,特别是CDP性能的优化,具有很大的参考价值。

  3、禁用CDP发现协议。

  虽然CDP协议能够自动发现新增加的网络设备,但是从网络管理员眼中,它是一把双刃剑。一方面提高了网络的灵活性,另一方面也给网络造成了不小的安全隐患。如某个攻击者如果攻破了一台路由器或者交换机,那么就可以通过CDP发现协议来了解与其相连的弯路设备的相关信息。这就为其进行下一步的攻击提供了非常重要的信息。为此有时候出于安全的目的而不喜欢使用某个设备的信息的时候,就需要禁用这个特定设备的CDP发现协议。如果要在全局级别下禁用CDP协议的话,那么可以在全局配置模式下使用no cdp run命令来实现。

  不过在采取这个操作之前,笔者认为管理者需要先了解全局配置与接口配置之间的关系。在上面笔者谈到过,在IOS10.3以后的版本中,CDP协议同时支持全局模式与接口模式。在何种情况下,如果关闭了全局配置模式下的CDP发现协议,那么对于接口模式下的CDP发现协议有什么影响呢?这里需要注意,如果在全局配置模式下禁用CDP发现协议的话,那么在接口上也就不能够启用CDP发现协议。

  三、CDP发现协议故障排除工作中常用的命令

  有时候CDP发现协议也会出错。或者说排除网络故障时需要用到CDP协议的相关信息。笔者下面总结一下在日常网络故障排除中可能需要用到的相关命令(跟CDP协议相关),以方便各位网络管理员后续排除网络问题。

  第一个命令是show cdp traffic。这个命令的输出结果如下图所示。

  

CDP发现协议故障排除工作中常用的命令

  很明显,这个命令主要显示的是CDP计数器的相关值,包括发送接收校验和错误的分组个数。错误的分组个数最好越少越好。如果太多的话,会明显降低网络性能。

  第二组命令是跟时间相关的信息。如命令cdp timers可以用来指定IOS软件发送CDP更新的时间信息;cdp holdtime则用来指定接收设备在丢弃CDP分组前保持这个信息的时间等等。

  四、CDP发现协议使用的注意事项

  一是需要注意CDP协议在ISO7层架构中的地位。CDP发现协议是ISO中规定的第二层协议中的一种,具体的说,是位于子网访问协议之上。这第二层连接底层的物理介质和上层的网络层协议。CDP发现协议运行在所有的Cisco设备上,独立于介质和协议。这里需要注意的是,CDP发现协议跟TCP或者Telnet协议不同,其是思科网络设备的专有协议,也只能够运行在思科的网络设备上。理解这一点对于CDP协议的设置与维护有很大帮助。

  二是需要注意协议的兼容性。到现在为止,CDP发现协议主要有两个大的版本,分别为CDP版本1与CDP版本2。其中IOS12.0以后的版本支持的是CDP版本2的协议。而ISO103以及以后的版本缺省支持的是CDP版本1。这两个版本到底有哪些差异,由于篇幅的限制,笔者不做过多展开,各位读者若感兴趣可以参考相关的资料。笔者这里要强调的一点是,CDP版本2能够全面支持在接口模式下配置CDP发现协议,而CDP版本1则不行。这可能是两个版本的CDP协议重大区别之一。

  三是需要注意CDP协议在全局配置模式与接口配置模式下的联系与差异。具体来说,就是记住一个原则。“就大不就小”。也就是说,如果在全局配置模式下,禁用了CDP发现协议,那么在接口模式下也就不能够启用CDP协议。反之,则可以。

  四是需要注意安全问题。由于CDP协议会泄露网络中的一些比较敏感的信息,会为攻击者提供方便。为此在一些对于安全要求比较高的企业中,如银行等金融企业,往往会禁用这个协议。由此可见,CDP发现协议也是一把双刃剑,在使用的时候需要注意其带来的安全隐患。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章