VM 子網路的路由 IPsec VPN

VM 子網路的路由 IPsec VPN

我的實體電腦能夠與我的可存取互聯網的 VPS 建立 IPsec 隧道(使用 Strongswan),以便我的實體電腦的網路流量通過我的 VPS。

我還嘗試並成功地在我的實體機上運行的虛擬機器中設定了 Strongswan。預計我的虛擬機器可以透過我的 VPS 存取互聯網。

我想做的是讓 Strongswan 在我的實體電腦上運行,以便我所有虛擬機器(192.168.122.0/24)的流量都通過我的 VPS。我認為這應該可以透過站點到站點配置來實現(示例如下:https://www.strongswan.org/testing/testresults/ikev2/net2net-cert/),但是我還沒能讓它工作。我不確定我的問題是與 Strongswan 配置有關,還是與我的虛擬機器網路配置有關,或者兩者兼而有之...

我的實體機上的 ipsec.conf:

config setup
    charondebug="ike 2, cfg 2"

conn kvm-test
    rightsubnet=0.0.0.0/0
    keyexchange=ikev2
    ike=aes256gcm128-sha512-modp8192!
    esp=aes256gcm128-sha512-modp8192!
    leftcert=client.pem
    auto=add
    right=123.123.123.123 # not my VPS's actual IP
    rightcert=vpn_server.pem
    leftsubnet=192.168.122.0/24
    left=192.168.1.2

我的 VPS 上的 ipsec.conf:

config setup
        # strictcrlpolicy=yes
        # uniqueids = no

conn %default
    keyexchange=ikev2
    leftfirewall=yes
    auto=add
    leftsubnet=0.0.0.0/0
    left=123.123.123.123 # not my VPS's actual IP
    ike=aes256gcm128-sha512-modp8192!
    esp=aes256gcm128-sha512-modp8192!

conn kvm-test
    leftcert=vpn_server.pem
    rightcert=client.pem
    rightsubnet=192.168.122.0/24

透過此配置,連接已成功建立,但是我的虛擬機器的流量不會通過它。我應該注意,它ip route show table 220沒有顯示任何內容,這與上面鏈接的示例不同,而且我不確定應該放在那裡......ip route add table 220 default via 123.123.123.123 proto static不起作用。有什麼想法嗎?

答案1

如果您的虛擬化解決方案將流量從 192.168.122.0/24 NAT 到主機的實體 IP (192.168.1.2),您需要避免這種情況,並新增一條接受與 IPsec 策略相符的流量的規則。例如 (更多細節):

iptables -t nat -I POSTROUTING -s 192.168.122.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT

相關內容