【51CTO.com独家特稿】前些时候,某单位内网访问出现了一则奇怪的故障现象,主要问题是该单位内网的防火墙设备由于工作时间比较长,性能不是很稳定,于是新买回来一台同品牌的防火墙设备,来替换原来的旧设备,原本以为完成替换操作后,内网运行稳定性更好了;可谁曾想到,新防火墙设备投入运行后,该单位内网访问不但稳定性没有提高,而且所有终端都无法正常访问内网系统了。内网网络发生这样蹊跷的故障,事关重大,我们赶快对故障现象进行追踪、排查。
网络环境
局域网中的普通客户机,通过100M双绞线分别连接到八台Cisco型号的二层交换机上,所有二层交换机通过多模光纤连接到Cisco型号的核心交换机上,核心交换机通过路由器连接内网平台系统;为了保证网络访问安全,网管特意在核心交换机与路由器之间,放置了硬件防火墙设备,并且防火墙设备工作于透明模式状态。为了防止广播风暴以及网络病毒影响整个局域网的运行,网管特意将单位的所有客户机划分成了6个虚拟工作子网,每个虚拟工作子网的网关全部建立在Cisco型号的核心交换机上。
故障现象
平时,旧防火墙设备工作在透明模式状态下时,局域网中的所有终端都能正常访问内网系统;但是,自从使用新防火墙设备替换旧设备之后,就出现网络访问故障了。局域网中的所有终端都不能成功访问内网平台系统,任意登录一台终端,并在该系统中执行ping命令,测试路由器的IP地址是否连通时,发现都不能成功。起初,网管还以为是新防火墙设备存在设置不当的因素,可是仔细查询之后,发现新防火墙也是工作在透明模式状态下,同时没有设置任何安全过滤规则,按理来说,防火墙不会对终端的网络访问进行拦截呀!后来,网管担心新的硬件防火墙设备存在质量问题,于是临时去掉该防火墙,将路由器设备和新防火墙设备直接连接在一起,结果发现局域网中的所有终端都能顺利地访问到内网平台了,这么一来网管确认新的防火墙设备肯定存在问题。
故障排查
由于去掉硬件防火墙,局域网中的终端都能正常访问内网,同时硬件防火墙后台系统中也没有设置明显的安全过滤规则,为此网管将故障排查重点“锁定”在硬件防火墙身上。既然从硬件防火墙的设置上找不出问题,那多半是该设备的质量出现了问题;为此,网管立即联系了该设备供应商的网管,请求他们到现场来帮忙解决问题。在故障现场,网管了解了故障现象后,初步判断问题可能出在软件设置方面。
为了检查硬件防火墙的软件设置是否存在问题,网管立即通过console端口登录进入该设备的后台管理界面,查看安全过滤规则时,果然发现只设置了一条any到any的安全规则,这条访问规则应该对任何网络访问都予以放行呀。继续查询之后,他发现这台防火墙设置了管理IP地址和网关地址,原来该地址是网管为了方便远程管理新防火墙用的,难道是这里的设置让硬件防火墙变成了“拦路虎”?网管尝试着删除了这个管理地址,同时重启防火墙设备后台系统;待重新启动稳定后,网管在防火墙后台系统ping测试了一下路由器的IP地址,结果发现测试成功,再测试核心交换机的IP地址时也是正常的,难道问题这么快就解决好了?
可是,当网管尝试从终端中进行上网测试时,发现内网还是不能正常上网,显然问题的根源还是没有真正找到。不得已,网管只好将防火墙的所有设置全部恢复到默认状态,之后重新进行了一下配置操作,结果发现核心交换机与路由器之间仍然可以相互ping通,但是局域网中的终端就是不能正常访问内网;由于ping测试操作正常,网管认为问题肯定与防火墙设备没有任何关系,无法访问的故障现象很可能是内网自身引起的。
于是,网管自己也开始怀疑内网有问题了;为此,他从局域网中任意选择了一台终端,开始对数据包的发送进行跟踪测试,结果发现数据包始终无法达到内网的路由器,难道是防火墙或者核心交换机丢弃了目标数据包?考虑到防火墙没有设置任何过滤规则,网管估计可能是核心交换机将上网数据包自动过滤掉了,于是登录进入核心交换机后台系统,执行字符串命令“show access-list”,来查看核心交换机究竟对哪些内容进行过滤了,可是让他没有想到的是,这个访问列表中竟然没有任何内容,这也就意味着核心交换机没有执行数据包过滤操作;顺便执行字符串命令“show ip route”,查看它的路由表记录时,发现路由记录明显不正常,竟然没有达到内网的路由,这也难怪局域网中的终端不能正常访问内网了。
故障解决
核心交换机上为什么没有指向内网的路由记录呢?在这种状态下,为什么连接旧硬件防火墙可以正常访问内网呢?想到核心交换机直接连接到路由器上时,局域网中的终端也能够正常访问内网,于是网管估计核心交换机肯定启用了ospf协议,这样一来它就能获得通往内网的动态路由,否则终端绝对不肯能访问到内网;为了验证自己的猜测是否正确,网管又在核心交换机后台系统,执行了“show runn”字符串命令,结果发现核心交换机果然启用了动态路由功能;在查看该路由协议的具体配置时,网管发现ospf邻居无法找到,怪不得核心交换机上无法获得通往内网的动态路由。
会不会是路由器中没有启用ospf协议功能,造成核心交换机无法从路由器那里获得动态路由呢?可是转念一想,在核心交换机直接连接到路由器上时,局域网中的终端可以正常访问内网,这说明直接连接时,核心交换机可以从路由器那里学到动态路由,那为什么在连接了硬件防火墙后,核心交换机无法从路由器那里获得动态路由呢?对于这样的问题,网管认为ospf协议在寻找建立动态邻居时,需要以组播方式向网络发送hello包,可是硬件防火墙在默认状态下是不允许组播数据包通过,那样一来硬件防火墙就会阻碍核心交换机从路由器那里学到动态路由,在动态路由被“挡”之后,局域网中的终端自然就不能访问内网平台了。
弄清楚故障原因之后,网管立即在硬件防火墙中重新配置了合适的访问规则,确保该设备不会“阻挡”动态路由,果然经过这样的设置后,网管再次在核心交换机上执行“show ip ospf neighbor”字符串命令时,发现到了ospf邻居,这个时候进行上网测试时,发现终端已经能够顺利地访问内网了,至此,无法访问内网的故障现象就被成功解决了。
【51CTO.com独家特稿,非经授权谢绝转载,合作媒体转载请注明出处51CTO.com及原文作者】