【IT168 专稿】在局域网工作环境中,每一台客户端计算机使用的缺省网关往往是固定不变的,对应系统的网络连接状态也应该是十分稳定的。不过,在安装了多块网卡设备的计算机中,缺省网关有时会随着计算机系统的启动而发生随机变化,从而可能引发网络访问时断时续的故障现象。这不,笔者就曾经遭遇过这样一则故障现象,现在本文就将该故障的详细排查过程贡献出来,但愿各位朋友能从中收到一点启发!
组网情况:三类用户开放
单位的主服务器面向三类用户开放:控制中心的用户、单位局域网用户以及Internet网络中的普通用户;控制中心的用户由于工作需要,经常要与单位的主服务器进行内部数据交换操作,为了保证交换速度,网络管理员将控制中心的计算机直接连到了主服务器所在的交换机中,保证了它们相互之间能够直联,此外控制中心的计算机还能访问Internet网络。单位局域网用户以及Internet网络中的普通用户可以访问架设在主服务器中的Web服务器。
为了满足上述网络访问需求,网络管理员特意在单位的主服务器中同时安装了两块网卡设备,并且将与控制中心用户保持连接的称为内部网卡,将与局域网用户保持连接的称为外部网卡。内部网卡使用的IP地址为192.168.1.3,对应的网关地址为192.168.1.1;外部网卡使用的IP地址为10.176.6.3,对应的网关地址为10.176.6.1。控制中心的用户在访问单位主服务器并与之进行数据交换操作时所使用的IP地址为192.168.1.3,局域网用户访问架设在主服务器中的Web服务器时所使用的IP地址为10.176.6.3,来自Internet网络的普通用户访问单位的Web服务器时需要经过NAT地址转换。
故障回放:网络时断时续
单位局域网网络组建成功后,平时运行很正常,不过最近一段时间,网络访问遇到了一个奇怪的故障现象。单位局域网管理员说,控制中心的用户能够正常访问单位的主服务器,并能快速地与主服务器进行数据交换操作,同时也能通过局域网的防火墙访问Internet网络中的,可是单位局域网中的其他用户却不能正常访问主服务器。
由于单位局域网用户是通过外部网卡与主服务器进行网络连接的,为此笔者立即详细检查了外部网卡的工作状态以及工作参数,发现外网卡设备的工作状态正常,同时网络参数也设置正确;后来,怀疑连接主服务器的网络连接线缆存在连通性问题,笔者立即找来了专业的线缆测试仪对那条网络连接线缆进行了连通性测试,结果发现目标网络线缆连通正常。在排除了上述各项因素后,笔者又尝试着更换了一下交换机连接端口,可是这样的操作依然不能解决问题。
在万般无奈的情况下,笔者尝试重新启动了一下主服务器系统,发现有的时候系统启动完成后网络故障会立即消失,有的时候还会出现。这种时断时续的网络故障频繁出现多次,并且延续了较长一段时间。由于故障发生的时候,控制中心的用户可以通过内部网卡设备访问到单位的主服务器,这说明单位的主服务器系统工作状态是正常的,问题肯定发生在外部网卡设备以及与该设备直接相连的网络线缆上;经过对这些疑点进行反复排查、分析,笔者排除了外部网卡设备的工作状态以及网络线缆的连通因素。最后将故障检查的重点锁定在单位主服务器的网卡参数上。
联想到路由器设备中存在路由优先使用的现象,那么在同时安装了两块网卡设备的主服务器系统中,是否也存在相同的现象呢?为此,笔者立即以系统管理员身份登录进入单位主服务器系统,依次单击“开始”/“运行”命令,在弹出的系统运行框中执行“cmd”命令,将系统工作状态切换到MS-DOS工作窗口,在该窗口的命令行提示符下输入字符串命令“route print”,单击回车键后,系统屏幕上出现了如下路由表信息:
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.3 1
0.0.0.0 0.0.0.0 10.176.6.1 10.176.6.3 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
……
224.0.0.0 240.0.0.0 192.168.1.3 192.168.1.3 1
255.255.255.255 255.255.255.255 192.168.1.3 192.168.1.3 1
Default Gateway: 192.168.1.1
从上面的结果信息中,我们发现单位主服务器系统中存在两条默认的路由记录(所有目的网络地址非本网段网络号的数据报,都会转发给默认路由),并且每一条默认路由记录对应的Metric数值都为“1”;同时,在本地路由表信息的最后一行显示了单位主服务器在活动状态下使用的默认网关地址为192.168.1.1,而不是10.176.6.1。
故障解决:默认网关
我们知道,无论是什么类型的计算机系统,在任何时候只能有一个活动的默认网关,但是从上面的路由表信息中,我们发现主服务器系统的两条默认路由Metric数值都为“1”;可是发挥作用的默认网关是192.168.1.1,而不是10.176.6.1,这是什么原因呢?经过反复实践以及仔细分析,笔者终于找到了故障原因,原来在重新启动单位主服务器系统时,主服务器系统往往会随机选用一个默认网关,最终表现出来的故障现象就是局域网用户有时能够访问单位服务器,有时不能访问单位服务器。
找到故障原因后,这种网络时断时续的故障现象解决起来也就非常简单了,我们只要采用手工方法修改一下默认网关的Metric数值,就能保证主服务器系统优先使用哪个默认网关了。在更改默认网关的Metric数值时,笔者先按前面的操作方法将单位主服务器系统工作状态切换到MS-DOS工作窗口,在该窗口的命令行提示符下输入字符串命令“route add 192.168.1.3 mask 255.255.255.0 192.168.1.1 Metric 20”,单击回车键后,系统路由经过192.168.1.1网关的Metric数值就变成了20(这个数值我们可以随意指定,只要大于数值1就可以了)。当上述命令被成功执行后,笔者又一次在MS-DOS工作窗口的命令行提示符下执行了字符串命令“route print”,结果发现此时单位主服务器系统的默认网关地址已经变成了10.176.6.1。之后,笔者从单位局域网的任意一台普通计算机中尝试访问主服务器时,发现网络连接恢复正常了,这说明网络时断时续的故障现象已经被解决了。
可是到了这里,上述故障现象还没有被彻底解决,因为单位主服务器系统重新启动过之后,先前修改过的默认网关Metric数值,又自动变成“1”了。为了让默认网关的Metric数值修改之后能一直有效,笔者立即动手修改了服务器系统的注册表相关键值,确保默认网关的Metric数值永远生效,下面就是具体的设置步骤:
首先依次单击“开始”/“运行”命令,在弹出的系统运行对话框中,输入字符串命令“regedit”,单击回车键后,打开对应系统的注册表编辑窗口;
其次展开注册表编辑窗口左侧显示区域中的HKEY_LOCAL_MACHINE节点选项,并从该节点选项下面依次点选SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces子项,再从该子项下面找到对应的外部网卡设备选项,如图1所示;
图1:
接着在对应网卡设备选项的右侧显示区域,检查一下DefaultGateway键值的数值是否为192.168.1.1,如果是的话,再用鼠标双击目标键值DefaultGatewayMetric,在其后出现的数值设置对话框中将默认的数字“1”修改为“20”(如图2所示),再单击“确定”按钮保存好上述设置操作,最后重新启动一下单位主服务器系统,这样一来默认网关的Metric数值就不会发生变化了。
图2: