这是一个奇怪的。 我有2个远程networking,我通过互联网传输文件。 昨天,一个正常的备份工作失败了,所以我开始研究它。 我一直在这两个networking之间传输文件没有几个月的问题。
后来几个小时的debugging,我已经到了这个图:
基本上,我不能从networkingA传输任何大型文件(> 50MB-ish)到networkingB上两台路由器之后的任何设备。无论是从networkingA还是从networkingB发起传输都无关紧要。并开始传输,然后几秒钟后(似乎从5-60秒)传输失败。
我可以从networkingA转移到其他networking,没有问题。 我甚至可以将networkingB上的设备转移到仅位于NAT路由器1后面的设备上。 小文件工作正常(大部分时间)。 较大的文件开始正常,然后失败。
当我从networkingB(从A发送文件到B)发起rsync传输时。
...several more identical lines (depends on how soon it fails)... debug2: channel 0: window 1966080 sent adjust 131072 debug2: channel 0: window 1966080 sent adjust 131072 debug2: channel 0: window 1966080 sent adjust 131072 ssh_dispatch_run_fatal: Connection to XXX.XXX.XXX.XXX port 22: message authentication code incorrect Sometimes ---> debug3: mux_client_read_packet: read header failed: Broken pipe
当我从networkingA发起传输时(仍然从A发送到B)
...several more identical lines (depends on how soon it fails)... debug2: channel 0: rcvd adjust 131072 debug2: channel 0: rcvd adjust 131072 debug3: send packet: type 1 packet_write_wait: Connection to XXX.XXX.XXX.XXX port 22: Broken pipe rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
当试图通过HTTPS从networkingA下载大文件到B时,传输也失败。当我运行curl时,我得到:
curl: (56) OpenSSL SSL_read: error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac, errno 0
我在networkingB上看到两个路由器后面的多个文件和多台计算机的相同行为。
作为一个小小的更新,我注意到在交互式SSH会话期间同样的问题。 如果我运行一个在屏幕上产生大量输出的命令,有时候我的SSH会话会断开连接,并显示无效的MAC错误。
NAT路由器2是Cisco RV320。 作为一个实验,我暂时禁用了防火墙(见下面的截图)。 现在的转移工作,但这也是一种路由器(它是在那里创build一个受保护的我的networking内层)的点。 任何想法如何从这里开始? 防火墙设置对我来说是不透明的(这只是一个checkbox)。 我不确定在底层实际上做了什么。
顺便说一句,我尝试单独禁用SPI,阻止广域网请求和DoS,但没有任何设置有任何影响。 这只是主要的防火墙设置(这会自动禁用其他设置)。
我与思科技术支持人员交谈过,他们要求我将路由器直接连接到调制解调器作为testing(绕过NAT路由器1)。 在这样的环境下,转让是成功的。 所以,这是导致问题的两个路由器的组合。
我为Cisco路由器启用了每个可用的日志选项,并运行了一些失败的传输,但没有在日志中显示。 在这一点上,我不确定如何进行。 为了好玩,我可能会更新NAT路由器1上的固件。