Маршрутизация IPsec VPN для подсети VM

Маршрутизация IPsec VPN для подсети VM

Мой физический компьютер может установить туннель IPsec (с помощью Strongswan) к моему VPS, имеющему доступ к Интернету, так что интернет-трафик моего физического компьютера проходит через мой VPS.

Я также попытался и успешно установил Strongswan на виртуальной машине, запущенной на моей физической машине. Как и ожидалось, моя виртуальная машина может получить доступ к интернету через мой VPS.

Я хотел бы запустить Strongswan на моем физическом компьютере, чтобы трафик всех моих виртуальных машин (в 192.168.122.0/24) проходил через мой VPS. Я думаю, это можно сделать с помощью конфигурации site-to-site (пример здесь: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

ipsec.conf на моем VPS:

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 в физический 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

Связанный контент