Назад | Перейти на главную страницу

Не удается подключиться к подсети через OpenVPN с пересылкой с помощью iptables

У меня небольшая коммутируемая подсеть с несколькими устройствами, которые обмениваются данными по IP. Они подключены через Ethernet к ODroid под управлением Ubuntu 18.04, который также находится в OpenVPN. (ODroid подключен к интернет-атм через Wi-Fi, позже будет изменен на LTE)
Я хочу обратиться к службе, работающей на устройствах в этой подсети, с компьютера, который также находится в VPN.

+-----------------+          +------------------+      +--------------------+
|A Device         | ethernet |ODroid            |  VPN |Controlling Computer|
|eth0: 192.168.2.2+----------+tun0: 10.8.0.5    +------+tun0: 10.8.0.2      |
+-----------------+          |eth0: 192.168.2.1 |      +--------------------+
                             +------------------+

Я попытался использовать iptables с nat, чтобы управляющий компьютер мог получить доступ к устройству за ODroid.

[on the ODroid]
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Я также включил пересылку на ODroid

cat /proc/sys/net/ipv4/ip_forward
1

Еще я добавил статические маршруты на все устройства:

[on the ODroid] ip r
0.0.0.0/1 via 10.8.0.1 dev tun0 
default via 192.168.0.1 dev wlan0 proto dhcp metric 600 
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.5 
85.214.205.172 via 192.168.0.1 dev wlan0 
128.0.0.0/1 via 10.8.0.1 dev tun0 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.106 metric 600 
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.1
[on the controlling computer] ip r
0.0.0.0/1 via 10.8.0.1 dev tun0 
default via 192.168.0.1 dev enp33s0 proto dhcp metric 100 
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2 
[ip of my server] via 192.168.0.1 dev enp33s0 
128.0.0.0/1 via 10.8.0.1 dev tun0 
169.254.0.0/16 dev enp33s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev enp33s0 proto kernel scope link src 192.168.0.105 metric 100 
192.168.2.0/24 via 10.8.0.5 dev tun0 
[on the device I want to connect to] ip r
default via 192.168.2.1 dev enp0s25 proto dhcp metric 100 
10.8.0.0/24 via 192.168.2.1 dev enp0s25 
192.168.0.0/24 via 192.168.2.1 dev enp0s25 
192.168.2.0/24 dev enp0s25 proto kernel scope link src 192.168.2.109 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

Я могу пропинговать ODroid как с управляющего компьютера, так и с устройства, к которому я хочу подключиться.

С устройства, на котором есть служба, к которой я хочу подключиться, я могу подключиться к управляющему компьютеру, поэтому NAT в этом направлении, похоже, работает. Но я не могу подключиться наоборот.

Я пробовал просто использовать один из

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

но это не помогло.

Какие-либо предложения?

заранее спасибо