Beim Routing über Cisco ASA werden die TCP-Sequenz- / ACK-Nummern geändert

7

Unser Netzwerk verfügt über eine dedizierte VPN-Appliance, die sich im Büronetzwerk befindet. Wir haben einen Cisco ASA mit einer statischen Route, die die VPN-Subnetze an die VPN-Appliance weiterleitet. Eine typische Anfrage des Clients an den Remote-Standort ( 192.168.161.28 -> 192.168.101.28) lautet also:

Client ASA Lokales 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

Bei dieser Route lehnt die Firewall auf dem Remote-VPN-Endpunkt von 192.168.101.1 den 3-Wege-TCP-Handshake ab:

Status: A TCP packet was rejected because it has an invalid sequence number or an invalid acknowledgement number

Wenn ich jedoch den ASA umgehe (mit einer statischen Route direkt auf den Client-Computern):

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

Die TCP-Streams werden korrekt von Hand geschüttelt und alles läuft reibungslos.

Was könnte es sein? Gibt es einige Inspektionsregeln auf der ASA, die dies verletzen könnten? Ich vermute, das liegt daran, dass sich die Rückroute des Datenverkehrs von der Sende-Route unterscheidet (dh die Pakete werden direkt vom VPN-Endpunkt zum Client geleitet, anstatt über den ASA, da sie sich im selben LAN befinden).

Mark Henderson
quelle

Antworten:

5

Durch Deaktivieren der ACK-Randomisierung auf dem ASA wird dieses Problem behoben (dieses Szenario entspricht Beispiel B - Mehrere Internetpfade ):

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

Diese Lösung ist zum Kotzen - lesen Sie unbedingt die Auswirkungen, bevor Sie sie ausführen.

Mark Henderson
quelle
4

Höchstwahrscheinlich verfehlt die Firewall (192.168.101.1) die SYN-ACK, weil sie auf einem anderen Weg zurückgeleitet wird und da es sich um eine zustandsbehaftete Firewall handelt, lehnt sie diese ab.

  1. A sendet SYN an B bis Z, während es von C inspiziert wird.
  2. B sendet SYN-ACK direkt an A (da sich B im selben Subnetz befindet und die Standardroute zu A hat)
  3. A sendet ACK an B bis Z, während es von C inspiziert und fallen gelassen wird, weil es SYN-ACK nie gesehen hat.

Dies wird üblicherweise als asymmetrisches Routing bezeichnet.

Artifex
quelle
Ja, du bist richtig. Einige Minuten nach dem Absenden der Frage wurde mir klar, dass dies der Fall war, und Cisco verfügt über einige Dokumente, wie man damit umgeht - hauptsächlich durch Deaktivieren der Statusprüfung für bestimmte Quellen / Ziele.
Mark Henderson