网络数据包如何传输需要路由来指挥,如果路由出现错误就好比现实交通警察胡乱指挥车辆行驶一样,我们无法接收到正确的网络信息。当然这点各位有经验的网络管理员都是知道的,大家在路由器和三层交换机上配置路由时都很仔细,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上后很可能会出现本例中路由出错的问题。