我遇到了通过Cisco ASA5505 VPN将文件从一台Windows 2012服务器复制到另一台的问题。 我有一个与Win2008服务器类似的设置,从来没有看到这个问题(相同的ASA5505这一端)
每20个文件(每天一次或两次)中,大约有一个大约20MB或更多,我倾向于获取数据损坏。
腐败倾向于大约5个腐败区域(有时全部位于文件的1MB区域内),每个区域大约12个字节长,在整个文件中大约有60个损坏的字节。 文件大小不会改变。
我已经看到这与本机SQLServer日志复制和robocopy。
与此相关的是,当我使用Windows拖/拖复制一个40GB的文件,复制通常在15-30GB(或有一些损坏的副本)后失败。 当我复制Win2012 – > VPN – > SBS2011,然后复制SBS2011 – > Win2012时,似乎不会发生这种情况。
在ASA5505上似乎没有启用压缩。 在标准的NetMonitor SMBErrors跟踪上没有发现错误。
这是VPN(或networking – TBC),而不是Windows的问题。
以下是我的发现。
在VPN两端运行Microsoftnetworking监视器后,我设法捕获与损坏的文件内容有关的TCP / IP数据包。 在远端捕获的数据包没有损坏。 在目的地的数据包是腐败的。
为了find坏的networking数据包,我hex转储文件的好坏版本,然后使用KDiff3比较hex。 然后,我search了NetMonitor捕获的4字节hex模式,发生在文件损坏之前。 我无法find这种模式,所以我试图在发生这种情况之后立即尝试了另一种模式,然后通过字节向后回溯到所讨论的块(第一个模式跨过数据包边界)。