Назад | Перейти на главную страницу

Маршрутизация OpenVPN работает только из одной подсети

Эй, парень, у меня проблема с моим OpenVPN-соединением. Я надеюсь, что следующая информация - это все, что вам нужно. Я думаю, что VPNConfig не имеет значения, потому что он работает в одном направлении.

Моя настройка:

Network A (192.168.10.0/24) 
   * 192.168.10.110 Zentyal Server (OpenVPN Server is running here)

Network B (192.168.1.0/24)
   * 192.168.1.10 RaspberryPI (OpenVPN Client is running here)
   * 192.168.1.1  Router (routes correctly to 192.168.1.1 for 192.168.10.0/24)
   * 192.168.1.x  let's call this IP ClientB

Эти две сети соединены бок о бок через туннель на 192.168.2.2.

ifconfig

192.168.10.110 ZentyalServer

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.1  P-t-P:192.168.2.2  Mask:255.255.255.255

192.168.1.10 (RaspberryPI)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.10  P-t-P:192.168.2.9  Mask:255.255.255.255

Таблица маршрутизации

192.168.10.110 ZentyalServer

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.2.2     255.255.255.0   UG    0      0        0 tun0
192.168.2.0     192.168.2.2     255.255.255.0   UG    0      0        0 tun0
192.168.2.2     *               255.255.255.255 UH    0      0        0 tun0

192.168.1.10 (RaspberryPI)

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.10.0    192.168.2.9     255.255.255.0   UG    0      0        0 tun0
192.168.2.0     192.168.2.9     255.255.255.0   UG    0      0        0 tun0
192.168.2.9     *               255.255.255.255 UH    0      0        0 tun0

iptables На обоих компьютерах (192.168.10.110 и 192.168.1.1) я установил iptables с

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Что работает 192.168.1.x может пинговать 192.168.10.110 без проблем

Что не работает 192.168.10.110 не может пинговать ни один компьютер в сети B, используя адрес 192.168.1.0/24

пинг 192.168.1.10

tcpdump at 192.168.10.110 on tun0: 
08:42:37.588653 IP (tos 0x0, ttl 64, id 13218, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.2.1 > 192.168.1.10: ICMP echo request, id 392, seq 8, length 64

На мой взгляд, это выглядит правильно, не так ли? Но дамп tcp на 192.168.1.10 не показывает никаких входящих пакетов.

У вас есть идея?

Большое спасибо!!

Вы упомянули, что на обоих компьютерах вы добавили iptables, как показано ниже:

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Я думаю, что на стороне сервера это должно быть: (если ваш интерфейс на сервере OpenVPN: 192.168.10.110 - eth0)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Обязательно сделайте это правило постоянным