Вот краткое изложение того, чего я пытаюсь добиться. Мое интернет-соединение имеет двойной NAT, и у меня нет возможности перенаправить порт или организовать мост для маршрутизатора восходящего потока, чтобы мой маршрутизатор мог принимать входящие соединения. Я даже не могу использовать входящий IPV6, потому что он заблокирован для входящего трафика. Это не позволяет мне удаленно подключаться к моим камерам безопасности, моему термостату и другим различным устройствам, находящимся в моей частной локальной сети.
У меня есть маршрутизатор, на котором работает AdvancedTomato, на котором работает OpenVPN (двойной NAT), и у друга, у которого также есть маршрутизатор, на котором работает AdvancedTomato, но его маршрутизатор широко открыт для WAN с публичным IP-адресом IPV4, и он не против того, чтобы я использовал его подключение для туннелирования обратно в мою локальную сеть. Он не против всего, что мне нужно сделать, чтобы это заработало. Я настроил свой маршрутизатор как VPN-клиент, а его маршрутизатор настроен как VPN-сервер. VPN-сервер находится в VLAN 10.1.0.0, а VPN-клиент — в VLAN 10.0.0.0. Его маршрутизатор находится в 10.1.0.1, а мой — в 10.0.0.1. Обе подсети могут обмениваться данными друг с другом. Из его локальной сети я могу легко войти в веб-интерфейс своей камеры безопасности, как если бы я сидел дома.
Но проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как направить входящий WAN-трафик на его маршрутизаторе, скажем, на порт 5000, на VPN-сервер, с VPN-сервера на VPN-клиент и, наконец, с VPN-клиента на мою камеру, IP-адрес которой 10.0.0.2.
Я прикрепил свою грубо нарисованную от руки топологию, поскольку надеюсь, что она покажет ее лучше, чем я мог бы объяснить.
В любом случае, я предполагаю, что это будет включать использование iptables на сервере и клиенте, но ни с одним из примеров, которые я видел, мне это не удалось.