实例剖析:由于本地路由导致的网络故障

http://network.51cto.com  2007-05-24 14:01  sanandi   赛迪网  我要评论(0)
  • 摘要:本文介绍了一次由于本地路由导致的网络故障及排出故障的步骤。
  • 标签:路由  故障  网络

网络数据包如何传输需要路由来指挥,如果路由出现错误就好比现实交通警察胡乱指挥车辆行驶一样,我们无法接收到正确的网络信息。当然这点各位有经验的网络管理员都是知道的,大家在路由器和三层交换机上配置路由时都很仔细,IP地址和子网掩码都不能有一点差错。

不过笔者在最近一次网络调试中发现本机的路由也要合理设置,否则会出现奇怪的故障。

故障起因:

笔者所在单位经常要进行网络调试,最近公司对外发布了一个网站需要调试访问的连通性。笔者用笔记本在公司服务器群中做了调试并修改IP地址为211.153.80.29,被访问的网站地址为211.153.80.1,域名为www.ccidnet.com

经过调试发现在单位可以正常访问,之后笔者回到家中通过ADSL访问,由于ADSL是PPPOE拨号不用事先修改IP地址就可以正常上网,所以笔者并没有修改在公司设置的IP地址就草草拨号,上其他网站例如SOHU,SINA都没有任何问题,QQ和MSN也可以正常登录,唯独公司的211.153.80.1这个服务器不能访问,出现的是“该页无法显示”的信息,笔者又通过域名访问故障依旧。

排除故障:

网络故障的解决方法和硬件故障解决方法类似,即替换法。为了能够找到问题真正所在,笔者马上打电话给同事,让同事在家通过ADSL访问公司服务器的地址,结果不管是通过IP地址还是域名都可以正常访问。至此本人将故障定位在本地计算机。

第一步:由于公司使用了防火墙所以用PING IP的方法是得不到反馈信息的,于是采取TRACERT命令。在命令行窗口中输入tracert 211.153.80.1。发现在第一跳就出现了 Request timed out。(如图1)这说明发向211.153.80.1的数据包没有到达第一个路由设备。在第一跳存在问题。

图1
第二步:继续查询DNS是否出现问题,在命令行模式下输入nslookup,再输入www.ftedu.gov.cn后回车发现DNS服务器可以正确的解析出IP地址211.153.80.1来。说明问题不在DNS上。(如图2)
图2
第三步:尝试对临近的IP地址进行追踪,即在命令行模式下输入tracert 211.153.81.1。结果发现数据包可以根据获得的路由信息通过五个路由设备(如图3)。
图3 

第四步:为什么IP地址临近在路由路径方面却出现这么大的差别呢?笔者在无奈的情况下输入了IPCONFIG,结果发现当前本地计算机的IP地址仍然是在公司时设置的211.153.80.29,子网掩码255.255.255.0。会不会是这个的问题呢?马上将IP地址选为自动获得。重新拨号上网后故障解决,可以在家中正常访问单位的服务器了。

故障分析:

本人马上把IP地址又设置回211.153.80.29,故障再次出现。在命令行模式下输入route print来查询本机路由,才发现这个故障的根源所在。(如图4)

原来由于本地计算机设置IP地址为211.153.80.29,所以在访问211.153.80.0这个网段时都会直接把数据包发向211.153.80.29,而不是发向默认的网关地址61.51.199.192,自然无法找到正确的路由信息,这也是为什么跟踪211.153.81.1时可以发现正确路由的原因,因为211.153.81.1不属于211.153.80.0/255.255.255.0这个网段。

图4 

小提示:

在命令行模式中输入route print将显示本地计算机获得的所有路由信息,其中network destination为目标网段,interface为到达该网段需要将数据包发送到的地址,也就是我们常说的路由地址,最后的metric是跳数,就是说到达该地址需要跨越的路由器数量。

总结:

通过这个故障可以得到这样一个经验,那就是在本地计算机使用的IP地址尽量保证唯一,如果不是必须不要为其分配多个IP地址,否则会出现路由错误的问题。而且就算设置IP地址的话也千万不要输入公网地址,这样当你连接到Internet上后很可能会出现本例中路由出错的问题。

【相关文章】

【责任编辑:雪花 TEL:(010)68476606-8007】

最优性价比组建无线网络
网络应用性能控管最佳实践
网络工程师职业规划与现状
计算机网络维护入门
未来五年可能必备的10大网络技术
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有