vpn-сервер за NAT

By masteddev

Задча ниже.
Дано:
Есть сеть за NAT’ом, наша сетка, в которой мы имеем возможность что-то сделать. (

locale_home_network)
Есть сеть на другой стороне ната, там мы, практически, ни чего сделать не можем. (remote_home_network).
Из locale_home_network в remote_home_network можно ходить только через нат, в обратном направлении вообще ни как.
Сеть locale_home_network имеет доступ еще к одной сети(other_network), к которой пользователи remote_home_network
доступа не имеют, но очень хотят.

Нужно:
Дать доступ к other_network пользователям из remote_home_network

Вот вроде так.)
«Белые решения», типа реального адреса для vpn-сервера и т.д., не подходят)

Ниже то, что я уже придумал.
 1. Вариант бэк-коннекта, когда не клиент просит соединения у сервера, а наоборот, сервер у клиента.
Я думаю самый простой способ, но тут нужно придумать какой-то тригер, по которому сервер будет просить соединения.
Пока остановился на irc-боте. И, пока еще, не знаю, есть ли клиенты, которые умеют ждать запроса на соединение от сервера.

 .-------------------,          .---------,
 |remote_home_network|------.---|vpnclient|
 `-------------------`      |   `---------`
                            |       |
                         1.-|       |
                            |    3.-|
                ____________|___    |
                    nat     |       |
                ------------|---    |
                            |    2. |
                       .-------, |  |
                       |irc-bot|----.
                       `-------`    |
                                    |
 .-------------------,    4.    .-------,
 |locale_home_network| -------- |  vpn  |
 `-------------------`          | server|
          |                     `-------`
          |
   .-------------,
   |other_network|
   `-------------`
    1. Зарос от клиента irc-боту, наш тригер.
    2. Срабатывает тригер, сервер просит соединения у клиента.
    3. Соединение установлено.
    4. Ну и собственно туннель, vpnclient->vpnserver->
                                locale_home_network->other_network

2. вариант, с промежуточным узлом, попозже опишу)
Предложения, идеи?


Ответить