利用抓包工具排除软件故障
2019-12-22
笔者单位各部门分布在不同的城市,相距较远。为方便部门之间文书传送,并确保传输过程安全保密,总部近期下发了文件收发系统,用于实时的文件收发。
文件收发系统采用CS结构,总部设服务器,各分部门安装客户端。文件发送后,对方可以实时收到来文信息,并进行回执和签收。发送方也可以实时看到回执,以确定对方已收到文件。系统运行过程中,文件收发服务采用指定端口,因此总部下发了防火墙配置表,规范需要打开的端口列表。
在文件收发系统调试过程中,按要求安装好软件,并配置好防火墙。在进行文件收发时发现,客户端之间可以收到对方发来的文件,但收到文件后,进行确认回执时,发件方发文状态并未显示接收确认,只是显示已发送到对端。以为是系统安装或配置的问题,于是进行关闭系统防火墙、重启各种相关服务操作,又重做了几遍系统,问题依然存在。
经询问总部技术人员,解释是问题可能出在网络中防火墙的配置上。确认信息可能被防火墙拦截,没有传送到发件方。将防火墙暂时处于全通状态进行回执收发测试,确实可以收到确认信息,发文状态变为签收。但总部技术人员只知道文件收发使用的端口号,不能确定回执信息使用的端口号。
为了找出回执信息发送使用的端口号,我们在一台电脑上安装服务器,用两台电脑模拟两个部门,分别安装客户端,并在其中一台电脑上安装Wireshark抓包软件进行报文分析。在抓取了两台电脑相互发文、收文、回执确认的数据包后进行分析,发现发文和收文服务所用端口号与下发的端口表相吻合,并从中找出了回执信息数据报文,查出传输层TCP协议所用的端口号。在各用户端的防火墙上增加开放此端口的规则,并保存应用,再次进行测试,故障排除。
本次故障排除看似简单,却给了我们很多启示。在信息系统运维管理和网络维护过程中,经常会遇到一些表面看似软件问题,而实则是网络问题的事情。在重启软件的各种服务不能解决问题的情况下,可以从网络传输方面作为切入点,并利用适当的网络分析工具进行辅助判断,从而排除故障。网络故障表现形式多种多样,但很多根本原因都可以在IP报文中找到答案。充分利用好 Wireshark、Sniffer等网络抓包软件,可以给我们提供很多查找问题的线索、解决问题的思路,从而更好、更快的解决网络问题。