Задча ниже.
Дано:
Есть сеть за 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. вариант, с промежуточным узлом, попозже опишу)
Предложения, идеи?