基于 LVS 构建被动模式 ftp 负载均衡遇到的问题

2023-10-09 11:26:10 +08:00
 n0bin0bita

简单架构如图,我做了以下配置: LVS 服务器:

ipvsadm -A -t 192.168.3.240:31899 -s wlc -p
ipvsadm -a -t 192.168.3.240:31899 -r 192.168.3.237:31899 -g
ipvsadm -a -t 192.168.3.240:31899 -r 192.168.3.238:31899 -g
modprobe ip_vs_ftp ports=31899

FTP 服务器:

ip addr del 192.168.3.240/32 dev lo

配置了被动模式 FTP ,被动端口范围为:31900-32900 arp_ignore ,arp_announceh 均已配置

现在效果是,可以登录成功,也可以获取到被动 ip 和端口号,但是向被动 ip 和端口号发送请求时无法响应,ftp 服务端日志没有异常信息。 FileZilla 连接日志如图,

学术不精,不知道哪里有问题,大佬们给指点下

1026 次点击
所在节点    Linux
11 条回复
julyclyde
2023-10-09 12:29:49 +08:00
我觉得不如直接废弃掉 ftp 算了
从各种观点来看,ftp 都属于设计的比较差的那种作品
在这上面浪费掉的时间明显高于收益
n0bin0bita
2023-10-09 13:32:43 +08:00
@julyclyde 工作需要你懂的
devopsdogdog
2023-10-09 15:16:22 +08:00
被动不行就换成主动呗 ,1 个端口还好管理
yinmin
2023-10-09 20:43:21 +08:00
pasv 返回的 IP 地址是 lvs 的 IP 吗? 在 lvs 上配置了被动端口号了没?
yinmin
2023-10-09 20:48:16 +08:00
@devopsdogdog ftp 主动模式是:ftp server 直接发起 tcp 连客户端(客户端要侦听端口),这种远古的妖孽操作已经不适应当前的网络了。
julyclyde
2023-10-09 20:50:13 +08:00
@devopsdogdog 服务器节点可能没权限往外发起连接吧?
现在能勉强用下来的都是(需要 helper 支持)被动模式
yinmin
2023-10-09 20:54:03 +08:00
@noboinobita00 你图片打码的位置不仅仅是端口号,还包含服务器 ip 地址,你核对 pasv 返回的 ip 地址和端口号是否 lvs 配置正确
n0bin0bita
2023-10-11 09:30:51 +08:00
@yinmin 我配置了返回 LVS 的 ip 时,需要 LVS 再配置被动端口的的转发,但是我们的被动端口范围比较广,我没有查到关于端口范围的配置,而且还有一个问题时,被动端口的流量也会被调度的不同的 RS 这样还是无法正常使用,所以后来我们把被动 IP 设置为了 RS 的 ip 这样我测试了下还是不行
yinmin
2023-10-11 11:47:02 +08:00
@noboinobita00 被动 ftp 的原理就是 ftp server 把 ip 地址和端口号通过 pasv 指令发给 ftp client ,让 client 连这个 ip 和端口,不复杂,你仔细检查 client 到 pasv 的 ip:port 网络即可。

另外,lvs 是可以锁住 client ip 固定连接一个子节点的,然后就可以配置被动端口了
yinmin
2023-10-11 11:56:06 +08:00
关于 lvs 配置端口区间,应该是需要为每个端口独立配置的,你可以让 gpt 帮你写一个 bash 批处理,或者用 excel 写公式拖拉出几百条命令,然后 bash 运行。
julyclyde
2023-10-11 14:52:20 +08:00
@noboinobita00 ftp 服务器配置里可以限制 pasv 的端口范围,你给它限制一下,大概就能和 LVS 一起用了吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/980168

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX