LINUX.ORG.RU
ФорумAdmin

Помогите с маршрутизацией

 ,


0

1

Всем добрый день. Задача простая: есть есть два устройства объединенные в локальную сеть по ethernet.
Устройство 1:

# ifconfig ppp0; ifconfig eth0; ifconfig tun0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:100.67.68.125  P-t-P:100.67.68.125  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7548 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:958707 (936.2 KiB)  TX bytes:2286237 (2.1 MiB)

eth0      Link encap:Ethernet  HWaddr 00:1E:C0:AE:5F:8F
          inet addr:192.168.0.2  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:512 errors:0 dropped:0 overruns:0 frame:0
          TX packets:717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:68536 (66.9 KiB)  TX bytes:69470 (67.8 KiB)
          Interrupt:33

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.42.0.8  P-t-P:10.42.0.8  Mask:255.255.0.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4357 errors:0 dropped:203 overruns:0 frame:0
          TX packets:3858 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:402552 (393.1 KiB)  TX bytes:1725381 (1.6 MiB)
Устройство 2:
 
# ifconfig eth0 
eth0      Link encap:Ethernet  HWaddr 00:1E:C0:AE:5F:8F
          inet addr:192.168.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:512 errors:0 dropped:0 overruns:0 frame:0
          TX packets:717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:68536 (66.9 KiB)  TX bytes:69470 (67.8 KiB)
          Interrupt:33
Устройства 1 и 2 между собой пингуются по локалке. Как видно, первое устройство ещё и в интернете и OVPN поднят.
И есть Устройство 3 - vpn сервер 10.42.0.1. Сервер разумеется видит устройство 1 с адресом 10.42.0.8, но не может напрямую подключиться к Устройству 2 с локальным адресом 192.168.0.1
Так какую команду ввести на Устройстве 1, чтобы сервер(10.42.0.1) при вводе адреса 10.42.0.8 соединялся не с Устройством 1, а с Устройством 2. Помогите пожалуйста кто чем может.

Если устройство 2 идёт в интернет (шлюз по умолчанию) через устройство 1, то вам достаточно добавить

iptables -t nat -A PREROUTING -i tun0 -d 10.42.0.8 -j DNAT --to-destination 192.168.0.1
Это NAT чистейшей воды, все пакеты на 10.42.0.8 будут перенаправляться на 192.168.0.1

Если устройство 2 не выходит в интернет через устройство 1, то понадобится дополнительно к первому правилу такое:

iptables -t nat -A POSTROUTING -s 10.42.0.0/16 -d 192.168.0.1 -j SNAT --to-source 192.168.0.2
Но с этим правилом доступ к устройству 2 будет только из подсети 10.42.0.0/16, потому лучше прописать на устройстве 2 шлюз по-умолчанию через устройство 1 и не использовать SNAT вовсе.

Далее, если NAT не вариант, то Вам необходимо на удалённом сервере прописывать маршрут в сеть 192.168.0.0/24 через шлюз 10.42.0.8 при поднятии соединения. Обычно это делается или командами push-route самого openvpn или локально в скриптах up-down.

nickleiten ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.