不同网络上的两个服务器之间的rsync管道断开

不同网络上的两个服务器之间的rsync管道断开

我有两台 FreeBSD 服务器,它们位于不同的网络上,中间有防火墙。我无法控制防火墙。

Server 1:
IP:            10.1.0.2
GW (firewall): 10.1.0.1

Server2:
IP:            10.2.0.2
GW (firewall): 10.2.0.1

我正在尝试将内容从一台服务器 rsync 到另一台服务器。该过程开始正常,但一段时间后,rsync 失败,并出现超时或管道损坏错误:

Jul 31 03:49:23 server1 rsyncd[54411]: building file list
Jul 31 03:51:34 server1 rsyncd[54411]: rsync: [sender] write error: Broken pipe (32)
----------------------------------------------------
Jul 31 03:49:23 server1 rsyncd[54412]: building file list
Jul 31 03:51:34 server1 rsyncd[54412]: rsync: read error: Operation timed out (60)
Jul 31 03:51:34 server1 rsyncd[54412]: rsync error: error in socket IO (code 10) at io.c(785) [sender=3.1.2]

我不知道防火墙是如何连接的,但如果我arp -a从每台服务器运行命令,似乎防火墙每分钟左右就会更改一次 IF(MAC):

server1: ~# arp -a
[...]
? (10.1.0.1) at aa:aa:aa:aa:aa:aa on ix0 expires in 1150 seconds [ethernet]
-------
server2: ~# arp -a
[...]
? (10.2.0.1) at bb:bb:bb:bb:bb:bb on ix0 expires in 1150 seconds [ethernet]

大约一分钟后

server1: ~# arp -a
[...]
? (10.1.0.1) at bb:bb:bb:bb:bb:bb on ix0 expires in 1150 seconds [ethernet]
-------
server2: ~# arp -a
[...]
? (10.2.0.1) at aa:aa:aa:aa:aa:aa on ix0 expires in 1150 seconds [ethernet]

同一时间点的结果总是相反的,因此 IP 会在 IF 之间切换

思考这种行为使得 rsync 出现问题,而且可能不仅仅是 rsync 的问题,而是所有 tcp 连接的问题。

由于我无法控制防火墙的行为,那么在操作系统方面可以做些什么吗?

相关内容