Routing
通過 Cisco ASA 的路由正在更改 TCP 序列/ACK 號
我們的網路有一個位於辦公室網路內的專用 VPN 設備。我們有一個帶有靜態路由的 Cisco ASA,它將 VPN 子網路由到 VPN 設備。因此,從客戶端到遠端站點 ( ) 的典型請求
192.168.161.28 -> 192.168.101.28
是:客戶端 ASA 本地 VPN 遠端 VPN 遠端伺服器 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 握手:
Status: A TCP packet was rejected because it has an invalid sequence number or an invalid acknowledgement number
但是,如果我繞過 ASA(直接在客戶端機器上使用靜態路由):
客戶端 本地 VPN 遠端 VPN 遠端伺服器 192.168.161.28 -> 192.168.161.10 -> 192.168.101.1 -> 192.168.101.28
TCP 流已正確握手,一切順利。
會是什麼呢?ASA 上是否有一些檢查規則可能會破壞這一點?我懷疑這是因為流量的返迴路由與發送路由不同(即數據包將直接從 VPN 端點發送到客戶端,而不是通過 ASA,因為它們在同一個 LAN 上)。
在 ASA 上禁用 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
這種解決方案有點糟糕 - 請確保在執行之前閱讀其中的含義。