Routing

Strongswan + Openvpn。Strongwan 正在擷取所有流量,包括不太具體的子網

  • July 28, 2022

嗨,在同一台伺服器上,我使用 OpenVPN 和 Strongswan 來互連 2 個網路

  • 通過 strongswan 填充的路線不太具體 (10.0.0.0/8)
  • 通過 openvpn 填充的路由更具體 (10.1.1.0/24)

最初,我認為這不會成為問題,因為我只希望通過 openvpn 路由 /24。然而,由於 Strongswan 使用路由表 220,所有 10.1.1.0/24 流量都發送到 Strongswan,導致 openvpn 隧道不可用。

我嘗試使用 charon.routing_table=0,這使得 Strongswan 使用主路由表。現在路由表似乎是正確的,奇怪的是,流量仍然沒有發送到 openvpn 隧道。

即使我手動刪除了路由 10.0.0.0/8(ip route del 10.0.0.0/8),strongswan 似乎會擷取到 10.1.1.0/24 的所有流量,但我不明白為什麼。

如何使 strongswan 避免擷取路由到其他設備的更多特定子網流量(openvpn 的 tun0)?

預設情況下,strongSwan 以基於策略的模式執行。這意味著核心將根據協商的 IPsec 策略自動加密流量。由於10.0.0.0/8覆蓋流量的策略10.1.1.0/24將由 IPsec 堆棧處理。

為避免這種情況,您需要為10.1.1.0/24子網配置繞過策略,請參見此處的範例。由於這也安裝了 throw 路由,您可以讓 strongSwan 再次在表 220 中配置路由。

另一種選擇是更改為 IPsec 的基於路由的方法,例如通過 XFRM 或 VTI 介面。然後,IPsec 只會處理路由到特定介面的流量(不過,IPsec 策略仍然適用於該流量,因此您不能只通過該介面發送任何流量)。

引用自:https://serverfault.com/questions/1106827