问题描述
ProxySG的FTP代理模式用的最多的有两种,通用代理和FTP代理,在使用过程中发现,当ProxySG与DLP或CAS联动后,如果使用FTP代理模式下载或上传大文件时,经常会失败,下载是等好长时间还没进度,而上传是卡在100%不动,最后都超时。
问题分析
根本问题和代理服务器的工作机制有关,代理服务器在配合第三方设备做病毒扫描或DLP时,它是基于对象的扫描,也就是一定要把对象完整的download或upload到代理服务器后才能进行下一阶段的动作,区别与代理服务器的就是NGFW,它是基于流的扫描,数据包会先到客户端,一旦发现其中包含问题数据时,它会中断会话。
那为何通用FTP代理模式不会出现这种情况,因为在通用代理模式中,FTP数据是被承载在HTTP数据中传输的,也就是FTP over HTTP,使用的是HTTP 的Connect方法,HTTP在这里变成了一个隧道协议,虽然包含的是明文的FTP内容,但ProxySG还是不认识HTTP隧道中的内容,所以不会将对象送给ICAP设备。
而FTP代理模式就是将ProxySG作为FTP服务器或客户端,在这种模式下ProxySG可以拦截FTP数据流,将其缓存下来并送给ICAP设备。
所以,当下载是没有进度,是因为CAS还在扫描对象,在完成扫描前,数据包一点都不会给到客户端。上传时到100%不动,是因为对象还在DLP扫描,在完成扫描前,真实服务器端不会收到一点数据。