通过Cisco ASA路由正在改变TCP序列/ ACK号码

我们的网络有一个专用的VPN设备,位于办公室网络内.我们有一个思科ASA,其静态路由将VPN子网路由到VPN设备.因此,从客户端到远程站点(192.168.161.28 – > 192.168.101.28)的典型请求是:

Client            ASA               Local VPN         Remote VPN       Remote Server
192.168.161.28 -> 192.168.161.17 -> 192.168.161.10 -> 192.168.101.1 -> 192.168.101.28

使用此路由,远程VPN端点192.168.101.1上的防火墙拒绝3路TCP握手:

状态:TCP数据包被拒绝,因为它具有无效的序列号或无效的确认号

但是,如果我绕过ASA(在客户端计算机上直接使用静态路由):

Client            Local VPN         Remote VPN       Remote Server
192.168.161.28 -> 192.168.161.10 -> 192.168.101.1 -> 192.168.101.28

TCP流正确握手,一切顺利.

会是什么呢?是否有一些关于ASA的检查规则可能会破坏这一点?我怀疑这是因为流量的返回路由与发送路由不同(即数据包将直接从VPN端点传输到客户端,而不是通过ASA,因为它们位于同一LAN上).

在ASA resolves this issue上禁用ACK随机化(此方案与示例B – 多个Internet路径匹配):

access-list tcp_bypass extended permit tcp 192.168.161.0 255.255.255.0 any
class-map tcp_bypass
match access-list tcp_bypass
policy-map tcp_bypass_policy
class tcp_bypass
set connection advanced-options tcp-state-bypass
set connection timeout idle 0:10:00
service-policy tcp_bypass_policy interface inside

这种解决方案很糟糕 – 确保在执行之前阅读其含义.

翻译自:https://serverfault.com/questions/511059/routing-via-cisco-asa-is-changing-tcp-sequence-ack-numbers

转载注明原文:通过Cisco ASA路由正在改变TCP序列/ ACK号码