savostin
@savostin
Еще один программист

Как пробросить трафик виртуальной машины через VPN?

Подскажите как осуществить такую хотелку.
Есть Хост (Proxmox), на нем виртаулка. Внешний ip 123.123.123.123. Виртуалка крутится внутри 10.0.0.0/24.
На хосте запускаем OpenVPN клиент (tun0, 10.18.0.0/24) с отключенным redirect-gateway.
Нужно заставить ходить весь трафик из виртуалки и обратно через VPN, но только этот трафик.
Трогать виртуалку (внутри, т.е. запускать OpenVPN клиент внутри виртуалки) нельзя.
Конфиг хоста:
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
        address  123.123.123.123/24
        gateway  123.123.123.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address  10.0.0.1
        netmask  24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
post-up         iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE


Пробовал iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o tun0 -j MASQUERADE
но чего-то не хватает...
  • Вопрос задан
  • 639 просмотров
Решения вопроса 1
savostin
@savostin Автор вопроса
Еще один программист
Нашел решение самостоятельно:
iptables -A FORWARD -i vmbr1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o vmbr1 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
echo 100 vguest >> /etc/iproute2/rt_tables
ip rule add from 10.0.0.0/24 table vguest
ip route add default dev tun0 table vguest
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
iproute2 умеет работать с маркированным через iptables трафиком.
Маркируете трафик в таблице PREROUTING через iptables -j MARK --set-mark как вам нужно, потом подхватываете его iproute2 и маршрутизируете, как вам нужно.
Ответ написан
Комментировать
hint000
@hint000
у админа три руки
Через iptables эта задача не решается. Совсем.
Решается через хитрую маршрутизацию:
https://www.google.com/search?q=source+based+routing
https://habr.com/ru/post/108690/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы