Сначала я описываю организацию своей локальной сети. У меня 2 Сети (схема http://take.ms/s3CSy):
Во второй локальной сети у меня есть веб-сервер с установленным Debian Linux и клиентом PPTP VPN. Клиент PPTP подключился к маршрутизатору в первой локальной сети и получил IP 172.16.0.11. Сразу после подключения клиента pptp добавьте два маршрута:
ip route add 172.16.0.0/24 dev ppp0
ip route add 192.168.0.0/24 dev ppp0
Итак, таблица маршрутов на VPN-клиенте (веб-сервере):
root@system:~# ip route
default via 192.168.2.1 dev eth0
1.2.3.4 via 192.168.2.1 dev eth0 src 192.168.2.3
172.16.0.0/24 dev ppp0 scope link
172.16.0.1 dev ppp0 proto kernel scope link src 172.16.0.11
192.168.0.0/24 dev ppp0 scope link
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.3
На веб-сервере "iptables -L -v -n" показывает пустую таблицу.
Таблица маршрутизации на VPN-сервере (роутер ASUS RT-N65U):
/home/root # ip route
default via 2.3.4.5 dev ppp0
2.3.4.5 dev ppp0 proto kernel scope link src 1.2.3.4
127.0.0.0/8 dev lo scope link
172.16.0.12 dev ppp10 proto kernel scope link src 172.16.0.1
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.1
192.168.2.0/24 dev ppp10 scope link
На роутере ASUS RT-N65U у меня также активирован DynDNS, домен home.example.com; и 2 настройки переадресации портов:
1. Synology NAS web remote access: Remote port 6667, local IP: 192.168.0.2, local port 5000, Protocol BOTH (TCP & UDP)
2. Web server remote access: Remote port 6668, local IP: 192.168.2.3, local port 80, Protocol BOTH (TCP & UDP)
Когда я пытаюсь получить доступ к веб-серверу (URL http _ // 192.168.2.3:80) с моего ноутбука в первой локальной сети - нет проблем, все работает как шарм.
Но если я попытаюсь получить доступ с другого ноутбука (ноутбук №2 на схеме) к веб-серверу (URL http _ // 1.2.3.4:6668) - страница не найдена. Если я попытаюсь получить доступ к Synology - никаких проблем.
Я установил tcpdump на веб-сервер и перехватил пакеты:
На веб-сервере установлен iptstate, показывающий подключение с удаленного сервера:
Source Destination Prt State TTL
199.58.86.207:58540 192.168.2.3:80 tcp SYN_RECV 0:00:59
В чем проблема?
Может быть, здесь проблема с маршрутом, пакеты с удаленного сервера приходят по маршруту VPN-соединения, но исходящие по умолчанию (через 192.168.2.1) маршрут?
Проблема была в маршруте на веб-сервере:
Для тестирования добавлен маршрут к 199.58.86.0/24 через интерфейс ppp0, и страница открылась успешно.