一,网络环境简介
笔者做在企业是区级信息中心属于教育行业,网络通过教育网连接外部internet,在网络结构上笔者所在机构处于城域网的汇聚层,对应的核心层受上级部门管理。不过上级部分已经针对网络应用权限进行了分配,企业内部每个计算机都拥有了自己的真实公网IP地址,这也为实现服务器对外网提供服务奠定了基础。
区级网络下连多个学校,有的学校连接到了教育城域网中,而有一部分学校则自己单独从其他网络出口连接网络,这样就出现了在区网络使用过程中部分下属学校属于内网,而部分下属学校属于外网。在实际工作过程中各个学校都需要访问FTP服务器,从上面获取必须资源和文件。
二,故障出现
最近一段时间笔者频频接到下属学校打来的电话,电话中得知这些学校都无法访问FTP服务器,而巧合的是这些学校都采用的是外网连接方式。综合而言外网连接的学校遇到了FTP服务器访问故障。(如图1)

三,从模式入手排查“病情”
首先笔者怀疑故障出现在FTP登录模式,众所周知FTP登录和传输使用分两种模式,一种是主动模式,另外一种则是被动模式。在外网计算机上通过FTP传输工具来修改登录该FTP服务器的模式,笔者发现当设置为“主动模式”时访问FTP服务器可以顺利通过用户名和密码验证阶段,而停留在list -al处,过一会自动断开连接。(如图2)

当我们将FTP登录工具设置为“被动模式”来访问FTP服务器时同样可以顺利通过用户名和密码验证阶段,停留在opening data connection ip: XXX.XXX.XXX.XXX PORT:3367处,等待几秒后又变化为opening data connection ip: XXX.XXX.XXX.XXX PORT:3368,之后就是中断连接了。(如图3)

使用被动模式连接中断时出现的错误提示是data socket error:connection timed out,list error。(如图4)

而当我们通过IE浏览器登录该服务器时也会在输入用户名和密码并验证成功后出现“与服务器的连接被重置”的错误提示窗口。(如图5)

通过这项查询我们得知FTP服务器登录出现问题并不是因为模式设置造成的,问题没有我们想象得那么简单,我们要进一步通过排查故障。
四,从访问控制列表排查“病情”
既然网络是畅通的而且也通过了用户名密码验证,那么为什么会出现无法列表的问题呢?可能有经验的读者会说FTP服务器上没有给对应帐户列目录的权限,但是本人并没有针对该权限进行限制,而且从FTP登录信息来看外网到达FTP服务器的路径应该是畅通的,用户名和密码也通过了验证不存在错误问题,于是笔者从端口入手检查故障。
一般来说服务器某端口无法顺利连接大部分都是因防火墙引起的,笔者查询了服务器上的防火墙配置并没有针对相应端口进行过滤,而且关闭防火墙后故障依旧。
之后笔者开始怀疑是企业内部核心路由交换设备上针对该服务器添加了访问控制列表ACL信息来过滤不必要的数据包。
第一步:访问企业核心路由交换设备,通过show current来显示当前配置。
第二步:找到该服务器连接的端口,我们发现在该端口存在ip access-group 100 in的指令,这个指令就是添加了一个访问控制列表100用来限制进入该端口的数据。(如图6)

