ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
15 января
1457107 Топик полностью
Nikolay_Po (19.08.2024 15:10, просмотров: 90) ответил LordN на ну т.е. на сервере должен стоять ещё один клиент, который бы лез на мой сервер-арбитр с белым ip, где раздавал бы ключи только своим клиентам для связи с собой любимым.
Непонятно, какую задачу вы решаете. Если строите VPN, то весь трафик, между клиентами или между клиентами и сетью сервера, пойдёт через сервер по определению, так как именно сервер организует туннели. И, для всех комбинаций каналов передачи данных, если в канале у одного из узлов нет белого IP, трафик можно организовать только через сервер с белым IP. 

Есть ещё вариант, но он сильно сложнее и в любом случае требует сервера, хотя и снижает нагрузку на него:


1. Все устройства, получившие доступ в Интернет, стучатся на сервер и регистрируются: "Я такой-то такой-то, выхожу на связь с IP такого-то. Заявка на проброс входящего порта UPnP прошла успешно, мой входящий порт такой-то."

2. Если устройство-клиент смогло пробросить себе порт для входящего подключения или этот порт явно был задан при настройке устройства местной службой IT и устройство сообщило порт, то сервер принимает попытку исходящего подключения от себя к устройству. Если устройство успешно приняло подключение и установило тестовое соединение, оно вносится в базу как полнофункциональное устройство с белым IP.

3. Если устройство на сервере регистрируется, но входящие подключения не принимает (находится за NAT без UPnP), то оно вносится в базу сервера как устройство без входящих подключений. В таком случае, сервер сообщает устройству белый IP из пула входящих VNP-подключений. И устройство без белого IP, устанавливает и поддерживает VPN-подключение к серверу на постоянной основе (если оно, в принципе, должно принимать подключения). Или не устанавливает, если не нужно принимать входящие.

4. Все устройства регулярно стучатся на сервер для учёта возможных изменений IP и контроля наличия связи - информация в базе постоянно обновляется, в частности, для обновления динамических белых IP (если такие ещё раздаются провайдерами).

5. Когда возникает необходимость в связи между устройствами, устройство, в первую очередь, обращается к своим настройкам - вдруг там явно прописан канал точка-точка с белым IP корреспондента. Если белый IP корреспондента явно не задан (стоит "Авто") или с ним нет связи, устройство обращается к серверу за информацией, как связаться с нужным корреспондентом в сети.

6. Сервер, в ответ на запрос устройства об установлении связи, даёт либо публичный IP устройства, известный с момента последнего периодического обновления, либо даёт белый IP из пула входящих подключений VPN на своей стороне и LAN-адрес требуемого корреспондента.

7. Устройство, инициирующее связь с другим устройством, подключается к своему корреспонденту либо напрямую (если удалось разрешить белый IP и корреспондент принимает входящие подключения), либо устанавливает VPN-туннель с сервером, через который и обменивается данными с корреспондентом.

8. После установления связи устройством без белого IP, устройство с белым IP, может запросить корреспондента переподключиться к себе напрямую, на свой входящий порт VPN, чтобы разгрузить сервер от трафика пар.


Так у вас получится своё облако, но с обходом трафика мимо сервера, если хотя бы одно из устройств канала связи имеет возможность принимать входящие подключения на публичный адрес.