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

1

Мой физический компьютер может установить IPsec-туннель (с Strongswan) к моему VPS, доступному через Интернет, так что интернет-трафик моего физического компьютера проходит через мой 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

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 не работает Какие-нибудь мысли?

rantam0ct
источник
Принимает ли ваше решение виртуализации NAT трафик с 192.168.122.0/24 на физический IP вашего хоста (192.168.1.2)? Если это так, вы должны избегать этого и добавить правило, которое принимает трафик, соответствующий политике IPsec (см. Вот ).
ecdsa
ecdsa, большое спасибо - это сработало! Пожалуйста, отправьте ваш комментарий в качестве ответа, и я приму его.
rantam0ct

Ответы:

0

Если ваше решение по виртуализации NAT передает трафик с 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
ecdsa
источник