过traceroute ip的方式来排除网络故障,相信很多人都非常的熟悉。这是基于IP地址(第三层)路由跟踪,可疑用来排除大部分的网络故障。而使用第二层路由跟踪,其跟第三层路由跟踪非常的相似。其一个本质的区别就在于第二层路由跟踪是基于MAC地址来进行跟踪的,并解决第二层连接的故障。在确定第二层拓扑中数据传输的路径,这个第二层路由跟踪将是一种非常有用的工具。
一、traceroute ip的缺陷
traceroute ip虽然在排错过程中具有很大的作用,基本上是每个网络管理员必须要掌握的内容。但是在实际应用中其仍然有一定的局限性。如现在用户反映客户端访问文件服务器的速度非常的慢。为了查明原因、排除故障,网络管理员需要先知道客户端与服务器的IP地址。然后通过traceroute ip命令,查看客户端与服务器之间的连接是否正常,如是否出现拥塞、数据传输的路径是否合理、有没有出现丢包现象等等。但是如果客户端与服务器之间的网络拓扑比较复杂,那么处理起来仍然会比较麻烦。即使查明了问题发生的原因,也很难查清楚这个问题到底是发生在哪一段。所以traceroute ip命令使用的时候有一定的局限性。其比较容易查明问题发生的原因,但是对于问题到底发生在哪个位置,有时候会有点束手无策。特别是在拓扑结构比较复杂的时候,可能只有通过排除法来查明故障点。如此的话,工作量就会比较大。
二、第二层路由跟踪能够精确定位故障点
当遇上上面这种情况时,第二层路由追踪就会非常的有用。因为通过第二层路由跟踪,可以仅仅使用MAC地址来跟踪网络中的设备连接。如对于直接连接的子网设备,第二层路由追踪命令可以将IP地址作为命令的一部分使用等等。在知道了服务器与客户端的IP地址后,通过查询ARP表,就可以确定它们的MAC地址。然后就可以通过“traceroute mac mac地址”命令来定位故障点。
三、第二层路由跟踪的前提条件
由于第二层路由跟踪是基于MAC地址的,所以在使用的时候,比traceroute ip命令有更多的前提条件。网络管理员必须了解这些内容,以免在排错的时候,做了无用功。其限制条件还是比较多的,具体来说,有如下几条。
一是需要主要网络设备所使用的软件版本不同,其会有不同的限制。如思科网络设备中,如果其部署的时CatOS系统,则正在进行排错的设备(如用户终端)必须与sc0或者slo接口处与相同的子网中。而如果交换机使用的是ios软件的时候,则被跟踪的设备必须与交换机上配置的SVI(交换机虚拟接口)处于相同的子网中。这是一个非常严格的限制条件。特别是对于那些平时不怎么接触思科网络设备的用户来说,这一点需要牢牢记住。否则的话,可能得到的结果反而会误导用户排错。
二是协议上的限制。如要要使用第二层路由跟踪功能,则必须在网络中所有的交换机和接口上运行CDP协议,并且这个CDP协议的工作状态必须是正常的。CDP协议又成为思科发现协议。其主要用来获取相邻设备的协议地址以及发现这些设备的平台。有些时候,网络管理员可能出于安全等考虑,会将这些协议关闭掉。但是如果要启用第二层路由跟踪功能,则需要启用这些协议。并且需要确保这些协议工作正常。否则的话,系统返回的信息,会跟实际的情况有所差距,从而影响管理员的正确排错。通常情况下,在实际排错过程中,利用这个功能之前,笔者都会事先确认CDP协议是否开启并且工作正常。切记,这是一个必须要做的过程。
三是交换机规格的限制。现在并不是思科的所有产品都是支持第二层路由跟踪的。对于源和存在问题的设备之间的所有中间交换机,都必须要求支持L2路由跟踪特性。大部分的思科设备现在都支持这个特性。只有那些比较早期的,如2950等产品,需要软件升级之后才能够使用。由于其不怎么引人注意,所以在实际工作中特别容易让人忽视。故笔者在这里特别强调一下。
可见,在使用第二层路由跟踪的时候,还是有比较严格的限制的。不过这些限制条件,并不影响其使用价值。在一些复杂的拓扑结构中,网络管理员还是乐意使用这个命令。虽然在前期需要花时间确认这些条件是否满足。
四、第二层路由追踪执行实例简介
假设现在有一个客户端,其MAC地址为AAAA.AAAA.AAAA.0001。还有一个文件服务器,其MAC地址为AAAA.AAAA.AAAA.0002。现在用户反映从客户端访问文件服务器的速度特别的慢。由于企业的网络拓扑比较复杂。从客户端到文件服务器中间要经过五个交换机、两个路由器。在这种情况下,使用traceroute ip命令虽然可以查明问题的原因,但是无法精确定位故障点。此时就需要使用基于第二层的路由追踪。通过查询ARP表,可以知道服务器的MAC地址。通常情况下,在执行第二层路由跟踪功能的时候,只要知道目的MAC地址或者交换机的MAC地址,管理员就可以选择网络中的任何交换机。如可以执行命令traceroute mac AAAA.AAAA.AAAA.0001 AAAA.AAAA.AAAA.0002命令,来查看这个客户端与服务器之间的连接是否存在问题。有时候为了缩小范围,也可以将目标MAC地址或者源MAC地址替换掉,如替换为中间交换机的MAC地址。一步步缩小范围,最终就能够精确的定位故障发生的点。
显然,通过使用第二层路由追踪得到的结