Our network has a dedicated VPN appliance that sits inside the office network. We have a Cisco ASA with a static route that routes the VPN subnets to the VPN appliance. So a typical request from the client to the remote site (192.168.161.28 -> 192.168.101.28
) goes:
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
With this route, the firewall on the remote VPN endpoint of 192.168.101.1 rejects the 3-way TCP handshake:
Status: A TCP packet was rejected because it has an invalid sequence number or an invalid acknowledgement number
However, if I bypass the ASA (with a static route on the client machines directly):
Client Local VPN Remote VPN Remote Server 192.168.161.28 -> 192.168.161.10 -> 192.168.101.1 -> 192.168.101.28
The TCP streams are correctly handshaked and everything is smooth sailing.
What could it be? Is there some inspection rules on the ASA that could be breaking this? I suspect it's because the return route of the traffic is different to the sending route (i.e. the packets will be going directly from the VPN Endpoint to the client, rather than going via the ASA as they are on the same LAN).