非对称网络不通 子网掩码导致网络不通是“祸首”
网络不通,这是最多的网络问题表像,但如果你能访问我,但我不能访问你,这个问题就比较麻烦了。本文是作者在实战中的一起由子网掩码造成的故障总结。
网络不通是经常发生的一种现象,遇到这种现象,相信许多人都会将精力集中在网络线缆、网卡驱动、网卡参数方面;而在检查网卡参数时,他们或许又将眼光聚焦在IP地址、网关地址、DNS服务器或DHCP服务器等重点参数上。事实上,还有一个网络参数——子网掩码,同样也是非常重要的,要是我们忽略了对它的设置或将它设置错误,同样也会带来网络不通的故障。由于子网掩码参数平时不被人重视,一旦由该参数引起网络不通故障,那么该故障的排除往往很容易让人多走弯路!
故障现象:非对称的网络不通
某总公司及其子公司都通过宽带光纤与本地电信部门直接连接,并通过电信网络组成该公司的内部网络;平时,各个子公司网络不但能够互相访问,而且也能访问总公司网络,甚至还可以访问Internet网络,而总公司既能访问各个子公司网络,又能访问Internet网络。最近,A子公司反应,无法访问总公司的网站服务器,这么一来他们无法通过网络向总公司上报数据。总公司网络管理员经过初步检查,发现总公司与A子公司的网络互相PING不通,不过总公司不但能够PING通其他子公司的网络,而且也能访问Internet网络,A子公司虽然无法PING通其他子公司的网络和总公司网络,但是它却能访问Internet网络。
故障排查:防火墙、电信方面?子网掩码!
通过上面的故障描述,总公司网络管理员认为既然总公司能够PING通其他各个子公司网络,这表明总公司这边的网络工作状态是正常的,问题很可能发生在A子公司网络或本地电信部门那里,A子公司网络能访问Internet网络,这就说明A子公司网络与本地电信网络在物理连接上应该没有任何问题,该网络管理员也初步认为A子公司网络在参数配置上没什么问题。
可是,A子公司网络无法PING通其他子公司网络,这又说明故障原因就应在A子公司网络或本地电信部门上。可是,让网络管理员感到非常疑惑不解的:通常情况下,总公司网络与A子公司网络只要都能访问Internet网络,同时都能访问相同的网站内容时,它们之间彼此也应该能够访问,除非它们启用了防火墙过滤功能拒绝了各自网络的访问。不过经过实际检查,两边的网络管理员都已经将防火墙都临时关闭了,还是无法解决网络不通故障,这说明网络不通故障与防火墙过滤功能无关。
在排除了防火墙因素后,总公司的网络管理员认为故障原因可能出现在本地电信部门到A子公司网络的路由设置上,于是该网络管理员登录进本地路由器的后台管理界面,并在该界面中跟踪了A子公司网络的路由。为了寻找其中的猫腻,该网络管理员又分别跟踪了其他几个子公司网络的路由,经过将跟踪结果仔细对比之后,该网络管理员发现202.102.11.156地址和202.102.11.254地址之间存在明显环路现象,经查找地址备案信息,发现这些地址都是来自电信部门那里的,看来问题的关键就在这里!
考虑到故障原因牵涉到电信部门,这位管理员很慎重,因为电信部门如果果真出现地址环路现象的话,那么相信许多用户很早就会向电信部门求援了,难道等到现在还解决不了故障?于是,这位网络管理员决定还是先从自身查找问题,如果实在找不到原因的话,再向电信部门报修网络故障也不迟;拿定注意后,该网络管理员又分别检查了总公司的服务器、路由器,同时请其他子公司的网络管理员进行配合测试,经过反复测试,该网络管理员确认总公司网络确实不存在任何问题。
在正式向电信部门报修网络故障之前,总公司网络管理员还没有忘记告诉A子公司的网络管理员,要他对本地子网络的参数设置也进行一下认真检查,并要求他及时反馈检查结果,以便由总公司决定是否统一向电信部门报修网络故障。没有多长时间,A子公司的网络管理员打来电话说,在检查本地路由设置时,发现在设置子网掩码参数时,“255.255.255.192”被设置成了“255.255.255.0”;据A子公司的网络管理员说,虽然他是对着总公司分配下来的参数表进行设置的,可是由于操作上的习惯不小心将路由器子网掩码参数输入成了内网掩码地址。将该地址修改过来后,A子公司的网络立即就能访问总公司的服务器了。至此,本文提到的网络不通故障,就已经被顺利解决了,而该故障的最终“祸首”竟然是不引人注意的子网掩码。
故障总结:为何能上网但连不了总部
找到故障原因后,对于前面提到的几种奇怪网络现象我们就不难解释了。例如,A子公司的网络在子网掩码参数被设置不当的情况下仍然能够访问Internet网络,这是因为该子网的路由器存在一条默认路由记录,该路由记录可以将不是A子公司网络数据转发到外网端口,所以A子公司能够访问Internet网络中的内容。
A子公司的网络之所以无法PING通总公司的网络,主要是由于该子公司的子网掩码参数设置出错引起的。我们知道,主机在发送上网请求之前,往往会先判断目标主机是否处于本地子网中,要是处于同一子网的话就直接将上网请求发送给目标主机,要是不处于同一子网的话,就会将上网请求发送到指定的网关。那么本地主机是如何识别目标主机属于本地子网还是外网的呢?主要是依靠子网掩码地址。假设,在正常状态下,A子公司的网络掩码地址为255.255.255.192,此时A子公司的202.102.11.87主机在尝试访问总公司的网站服务器时(该服务器地址假设为202.102.11.2),本地主机会认为202.102.11.2服务器位于外网,因此它就会将上网请求发送给本地网关,此时A子公司的202.102.11.87主机就能PING通总公司的服务器。一旦A子公司的网络掩码地址变成了“255.255.255.0”后,本地主机就会认为202.102.11.87地址和202.102.11.2地址位于同一网段中,所以本地主机就会把上网请求直接发送给目标主机,而不会将它转发给本地网关了,事实上本地子网中并没有IP地址为202.102.11.2这台目标主机,所以A子公司的202.102.11.87主机就无法PING通总公司的服务器了。总公司的网络之所以无法PING通A子公司的网络,主要是因为A子公司的网络掩码地址出错,导致来自外网的数据请求信息无法正确到达目标主机,所以会认为A子公司的路由不通。
络不通是经常发生的一种现象,遇到这种现象,相信许多人都会将精力集中在网络线缆、网卡驱动、网卡参数方面;而在检查网卡参数时,他们或许又将眼光聚焦在IP地址、网关地址、DNS服务器或DHCP服务器等重点参数上。事实上,还有一个网络参数——子网掩码……
小提示:子网掩码的重要作用
许多初次接触网络的朋友常常认为,只要通过观察IP地址就能判断出两个IP地址究竟是否属于同一个子网了,其实他们忽视了子网掩码这个重要的参数。通常来说,观察两个IP地址是否在同一个子网内,既要看IP地址,又要看子网掩码地址。比方说,一台工作站的IP地址为10.192.0.1,对应的子网掩码地址为255.255.255.0,另外一台工作站的IP地址为10.192.1.1,对应的子网掩码地址为255.255.255.0,那么他们就不处于相同的子网中,因为通过子网掩码地址我们可以看出前一台工作站所处的子网网络号为10.192.0.0,后一台工作站所处的子网网络号为10.192.1.0。
再比方说,一台工作站的IP地址为10.192.0.1,对应的子网掩码地址为255.255.0.0,另外一台工作站的IP地址为10.192.1.1,对应的子网掩码地址为255.255.0.0,那么他们就处于相同的子网中,因为通过子网掩码地址我们可以看出前一台工作站所处的子网网络号为10.192.0.0,后一台工作站所处的子网网络号也为10.192.0.0。
所以,通过上面的两个例子,我们不难看出相同的两个IP地址,如果它们对应的子网掩码地址不同,那么这两个地址可能分属于不同的子网中,也有可能处于相同的子网中。