Как маршрутизировать трафик в VPN через другую машину Linux
В этом случае у меня есть две машины RasPi и другой сервер Ubuntu.
Мой RasPi (192.168.100.105) имеет Debian и уже установил UDP-соединение openvpn. RasPi подключиться к удаленному VPN-соединению 172.16.199.99.
Я попытался маршрутизировать этот трафик, используя маршрут:
ubuntu@server:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.100.254 0.0.0.0 UG 0 0 0 eth0
172.16.199.0 192.168.100.105 255.255.255.0 UG 0 0 0 eth0
192.168.100.0 * 255.255.255.0 U 0 0 0 eth0
Но, к сожалению, это не работает. На RasPi (192.168.100.105) я могу пропинговать 172.16.199.99 (remoute ip в openvpn) Однако на сервере Ubuntu после добавления этого маршрута:
mainframe@server:~$ sudo route add -net 172.16.199.0 netmask 255.255.255.0 gw 192.168.100.105 dev eth0
Нужно ли устанавливать на RasPi какой-либо другой пакет для запуска шлюза?
Как запустить route и RasPi, работающий в качестве шлюза для этого внешнего vpn ip (172.16.199.99)?
1 ответ
Маршрутизация - это двусторонняя сделка.
На данный момент вы только указали маршрутизацию пакетов для прохождения от вашего ПК через Pi и вниз по VPN к месту назначения. На другом конце VPN-канала вам также нужно указать маршрутизацию для пакетов, которые проходят через VPN и проходят через Pi, чтобы добраться до вашего компьютера.
Этот последний будет маршрут что-то вроде:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 172.16.199.100 255.255.255.0 UG 0 0 0 tun0
Т.е.,:
route add -net 192.168.100.0/24 gw 172.16.199.100
(Или любой другой IP-адрес в конце VPN вашего VPN).
Ваша топология сети выглядит так (черные части):
VPN-соединение выделено синим цветом.
Маршруты, которые вы имеете или должны иметь, выделены зеленым цветом. У вас уже есть тот на ПК - это противоположный маршрут на сервере, который вам нужно добавить.