
IP와 통신하는 몇 개의 장치로 구성된 소규모 스위치 서브넷이 있습니다. OpenVPN에 있는 Ubuntu 18.04를 실행하는 ODroid에 이더넷을 통해 연결됩니다. (ODroid는 WiFi로 인터넷 ATM에 연결되어 있으며 나중에 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 | +--------------------+
+------------------+
제어 컴퓨터가 ODroid 뒤에 있는 장치에 액세스할 수 있도록 하기 위해 nat와 함께 iptables를 사용하려고 했습니다.
[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에 ping을 보낼 수 있습니다.
연결하고 싶은 서비스가 있는 기기에서 제어하는 컴퓨터에 연결할 수 있어서 그 방향의 NAT가 되는 것 같습니다. 하지만 반대 방향으로는 연결할 수 없습니다.
나는 다음 중 하나를 사용해 보았습니다.
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
하지만 그것은 도움이 되지 않았습니다.
어떤 제안이 있으십니까?
미리 감사드립니다