
Ich habe ein kleines geschaltetes Subnetz mit einigen Geräten, die über IP kommunizieren. Sie sind über Ethernet mit einem ODroid verbunden, auf dem Ubuntu 18.04 läuft und der sich ebenfalls in einem OpenVPN befindet. (Der ODroid ist derzeit über WLAN mit dem Internet verbunden, wird später auf LTE umgestellt.)
Ich möchte einen Dienst ansprechen, der auf den Geräten in diesem Subnetz läuft, und zwar von einem Computer aus, der sich ebenfalls im VPN befindet.
+-----------------+ +------------------+ +--------------------+
|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 | +--------------------+
+------------------+
Ich habe versucht, iptables mit nat zu verwenden, um dem Steuercomputer den Zugriff auf das Gerät hinter dem ODroid zu ermöglichen.
[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
Ich habe auch die Weiterleitung auf dem ODroid aktiviert
cat /proc/sys/net/ipv4/ip_forward
1
Ich habe außerdem allen Geräten statische Routen hinzugefügt:
[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
Ich kann den ODroid sowohl vom Steuercomputer als auch vom Gerät, mit dem ich eine Verbindung herstellen möchte, anpingen.
Von dem Gerät, das den Dienst hat, mit dem ich mich verbinden möchte, kann ich eine Verbindung zum Steuercomputer herstellen, sodass NAT in dieser Richtung zu funktionieren scheint. In die andere Richtung kann ich jedoch keine Verbindung herstellen.
Ich habe versucht, nur eine der
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
aber das hat nichts geholfen.
Irgendwelche Vorschläge?
Dank im Voraus