Добрый день!
Делаю DC++ клиент для локальной сети на основе FlyLinkDC
Каждый день общаюсь с разработчиком и он не знает как мне помочь.
Суть такая, что сеть еще не перевели на IPOE подключения и абоненты работают по старине через L2TP vpn подключение.
Соответственно на роутерах это выглядит таким образом, что сначала есть простое подключение с DHCP получением настроек (
назовем его "ISP") и поверх него устанавливается vpn подключение (
назовем его "L2TP0") в котором указывается логин и пароль для выхода в интернет.
Интерфейс ISP имеет адрес из подсети с /24 маской, которая входит уже в большую подсеть 10.0.0.0/9
(Например у меня дома 10.30.102.18)
То-есть роутер имеет уже 2 ip интерфейса для выхода в сеть.
По DHCP приходят маршруты для определенных сетей, которые должны ходить по интерфейсу ISP.
В их числе маршрут до сети 10.0.0.0/9 через шлюз, который является шлюзом на ISP интерфейсе (в моем случае 10.30.102.1)
На интерфейс L2TP0 назначается айпишник из другой серой сети (в моем случае ip 172.16.149.218) который дальше уже NAT'ится и идет в интернет.
На некоторых роутерах, такой режим работы называется "
Double Acces/Russian L2TP"
А теперь проблема:
DC++ клиент (да и вообще любое приложение будь то uTorrent или что либо другое используещее протокол UPnP) по протоколу UPnP делает перенаправление портов только на интерфейсе L2TP0 не затрагивая интерфейс ISP.
И вот сейчас ломаю голову, реально ли вообще по UPnP заставить роутер делать перенаправление портов на всех интерфейсах.
Для примера приведу логи с роутера Zyxel:
Oct 08 16:50:43ndmUPnP::Manager: redirect rule added: tcp L2TP0:3000 -> 192.168.1.33:3000.
Oct 08 16:50:43ndmUPnP::Manager: forward rule added: tcp L2TP0 -> 192.168.1.33:3000.
Oct 08 16:50:43ndmUPnP::Manager: redirect rule added: udp L2TP0:3000 -> 192.168.1.33:3000.
Oct 08 16:50:43ndmUPnP::Manager: forward rule added: udp L2TP0 -> 192.168.1.33:3000.
Для общего понимания прикрепляю скриншот настроек роутера, которых мне нужно добиться (на скриншоте настройки которые я вбил вручную)
То-есть видно, что я сделал правила для ISP и L2TP0 интерфейсов, а UPnP делает только для L2TP0.
Варианты типа "напишите инструкции для абонентов как проброить порты" не годится...