整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

AD 做ftp负载后客户端能登陆但无法使用ls等命令,错误代码:425

问题描述

ftp四层虚拟服务,在测试PC上可以进行ftp登录,但输入ls等命令后提示如下错误。

处理过程

1. 排查是否为客户端防火墙问题c ftp客户端源代码,存在防火墙会将从服务器到客户端的数据端口的入方向连接过滤掉的问题,所以线将PC防火墙关闭,但是关闭后,问题依旧,排除防火墙问题。

2. 绕开AD设备进行测试,PC能够正常登录ftp并进行数据操作。

3. 抓包分析数据流,发现ftp服务器端通过自己的TCP 20端口连接至客户端时,发现服务器新发起的syn包没有回复。

数据流如下: 在主动模式中,FTP客户端使用一个非分配端口(N>1023)与FTP服务端的21命令端口建立连接,并开始监听N+1端口,同时通过21端口将N+1端口告诉FTP服务端。FTP服务端获取到客户端告诉它的N+1端口后,使用数据传输的20端口与FTP客户端N+1端口建立数据连接,从而进行数据传输。 (1)此时客户端已登陆成功(命令行界面 230 Login ),此时客户端与服务器已经建立起控制连接。然后客户端通过port命令告诉ftp服务器其监听的数据端口,客户端将在1035端口等待服务器数据连接发起,服务器应答 200 PORT 成功。

(2)客户端发起 LIST命令请求FTP目录数据,服务器开始发起数据连接建立,发送SYN,目的端口为1035发给AD,但是AD没有将SYN发给客户端,而是传递会给服务器目标网络不可达,最后服务应答 425 to ,则数据连接建立失败。

(3)AD回应服务器目标不可达报文,推出AD到客户端没有路由,导致服务器的数据连接请求无法发包到达客户端。则添加路由即可。

根因

1. 一般DOS命令行下都是默认以PORT主动模式连接。即端口21监听,建立控制连接,处理控制信息。再以端口20连接客户端,建立数据连接,进行数据传送。此时因为AD处缺少到达PC的路由,导致数据无法达到PC,服务器tcp20无法和内部网络的客户端建立一个新的连接。

2. AD没有到客户端的路由c ftp客户端源代码,却能建立控制连接,是因为AD有对称路由,数据源进源出,AD收到客户端发起的控制连接,此链接形成记录,可以回应给客户端。但是在数据链接由服务器主动发起时候,AD需要路由转发,主动发给客户端,此时需要查路由,所以需要配置到客户端的路由。

解决方案

AD 为旁路部署,测试PC与AD不同网段,ftp服务器需要建立新的数据连接,则需要AD能够达到测试PC。则在AD 上添加一条静态路由,指向核心交换机,使得数据到达客户端即可。

建议与总结

ftp虚拟服务,当ftp为主动模式时,客户端到服务器的控制连接能够正常建立,但是当ftp服务器端通过自己的TCP 20端口与客户端建立数据连接时,需要保证服务器能够和内部网络的客户端建立一个新的连接。