如何诊断奇怪的networking故障

这是一个奇怪的。 我有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上看到两个路由器后面的多个文件和多台计算机的相同行为。

我所试过的

  • networkingB,NAT路由器2上的固件更新:无效
  • 重新启动两个networking中的所有设备:无效
  • 在networkingB上尝试通过2个不同的ISP进行传输:无效
  • 棒球蝙蝠到每一个路由器在视线中:仍然决定在这…

更新

作为一个小小的更新,我注意到在交互式SSH会话期间同样的问题。 如果我运行一个在屏幕上产生大量输出的命令,有时候我的SSH会话会断开连接,并显示无效的MAC错误。

更新2

NAT路由器2是Cisco RV320。 作为一个实验,我暂时禁用了防火墙(见下面的截图)。 现在的转移工作,但这也是一种路由器(它是在那里创build一个受保护的我的networking内层)的点。 任何想法如何从这里开始? 防火墙设置对我来说是不透明的(这只是一个checkbox)。 我不确定在底层实际上做了什么。

顺便说一句,我尝试单独禁用SPI,阻止广域网请求和DoS,但没有任何设置有任何影响。 这只是主要的防火墙设置(这会自动禁用其他设置)。

思科rv320防火墙设置

更新3

我与思科技术支持人员交谈过,他们要求我将路由器直接连接到调制解调器作为testing(绕过NAT路由器1)。 在这样的环境下,转让是成功的。 所以,这是导致问题的两个路由器的组合。

我为Cisco路由器启用了每个可用的日志选项,并运行了一些失败的传输,但没有在日志中显示。 在这一点上,我不确定如何进行。 为了好玩,我可能会更新NAT路由器1上的固件。