Невозможно подключиться к подсети через OpenVPN с переадресацией через iptables

Невозможно подключиться к подсети через OpenVPN с переадресацией через iptables

У меня есть небольшая коммутируемая подсеть с несколькими устройствами, которые взаимодействуют с IP. Они подключены через Ethernet к ODroid, работающему под управлением Ubuntu 18.04, который также находится в OpenVPN. (ODroid подключен к интернет-банкомату через WiFi, позже будет изменен на 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

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

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

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

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