Routing
如何在strongswan的路由表中設置源IP
我有一個站點到站點 VPN,其中遠端端有一個子網,本地有兩個子網:
conn site-to-site leftsubnet = 10.10.0.0/16,10.11.0.0/16 rightsubnet = 10.50.0.0/16
一切正常,但我遇到了一個問題,將“錯誤”的本地 IP 插入 strongSwan 的路由表中:
$ ip route show table 220 10.50.0.0/16 via <REDACTED> dev eth-ext src 10.11.0.1
strongSwan 選擇
10.11.0.0/16
子網的本地 IP 作為 IPsec 隧道的源 IP(即10.11.0.1
),但我想使用第二個(10.10.0.1
)。我嘗試設置
leftsourceip
為10.10.0.1
,但這似乎沒有效果。我可以使用另一個配置項來告訴 strongSwan 哪個本地 IP 用作其路由表的源 IP?
除非您通過禁用路由安裝
charon.install_routes
並手動安裝路由(在建立連接之前或之後),否則目前沒有直接的方法來控制它。首先是否需要特定路由(由 strongSwan 安裝)取決於現有路由和協商的流量選擇器。strongSwan 為每個本地和遠端子網安裝一個路由(在各自的本地子網中選擇一個源地址),因此如果您有多個本地子網,這些路由將發生衝突(都具有相同的目的地),並且根據 strongSwan 版本,要麼安裝的第一個或最後一個路由將保留在核心中。因此,您可以嘗試嘗試本地子網的順序,但如果它們在某處重新排序,則可能無法正常工作。
要在安裝 CHILD_SA 時手動安裝路由,可以使用updown腳本,或者可以使用通過VICI提供的child-updown事件。
最後,
leftsourceip
用於虛擬 IP功能(即它觸發響應者對虛擬 IP 的請求)。