SR66系列路由器
公网用户使用私有端口访问内网FTP服务器失败案例
一、背景介绍:
某公司内网出口路由器为SRR6608,公网接口做NAT Server,使得公网用户可以通过私有端口号5000访问内网FTP服务器;公网口做Easy Ip,使得内网设备可以访问外网。公网某一用户地址为60.191.99.139,路由器公网接口地址为222.184.10.180。上图为现网拓扑。
二、问题描述:
公网用户使用FTP的主动模式可以和FTP Server建立正常的控制连接和数据连接;在被动模式下仅仅建立控制连接,数据连接建立失败。
在被动模式下,在公网用户侧抓包,发现在建立数据连接三次握手过程中,公网用户发送SYN报文,然后就收到公网地址222.184.10.180发送的RST拆链报文,客户端显示数据连接建立失败。如图二:
图二
三、问题分析:
出现上述问题现象主要有两个原因:
原因一:路由器上ALG功能没有起作用。
备注:FTP在主动模式下,是Server为数据连接的发起者,FTP数据连接三次握手并不触发ALG。公网出方向数据匹配easy ip,入方向匹配NAT Session会话。在被动模式下,是Client为数据连接的发起者,外网访问内网时,路由器的公网端口并没有匹配的NAT Server,此时需要ALG在Client和Server建立数据连接之前并且在路由器公网接口生成对应的NAT Session。如图二所示,RST报文为路由公网口发出的,并非内网服务器回应。
原因二:路由器配置错误。
备注:SR6608的ALG功能默认开启并且只能识别有限的应用层协议。路由器不能智能识别对应的应用层协议,只能根据应用层协议的传输层公网端口号来识别。当修改FTP协议端口号为私有端口号时,需要在全局下配置port-mapping命令来告诉路由该端口号对应的上层协议是那种协议,如果该应用层协议能被ALG识别,则会触发ALG。检查配置,客户并没有配置port-mapping命令,所以在SR6608上触发不了ALG。
四、解决办法
[Sysname] port-mapping ftp port 5000,完成该配置后公网用户正常访问内网服务器,问题解决。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作