У меня есть два сервера 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-соединениями.
Поскольку у меня нет возможности контролировать поведение брандмауэра, можно ли что-нибудь сделать на стороне ОС?