LINUX.ORG.RU
ФорумAdmin

Настроить трафик между несколькими LAN, объединенными в VPN

 , , ,


0

1

Есть три территориально разобщенных LAN 192.168.0.0/24, 192.168.2.0/24 и 192.168.10.0/24. Нужно сделать так, чтобы члены всех этих локалок были доступны друг другу. Так как выход в интернет во всех этих локалках NAT’ится провайдерами, был выделен VPS-хост на линуксе с белым IP, который выступает в качестве сервера VPN (Wireguard).

Все локалки выходят в инет через обычные SoHo-роутеры, поэтому в для коннекта к VPN в каждой локалке выделяется одна машина с локальным адресом 192.168..10/32 и включенным IP-Forwarding (далее - VPN-шлюз), которая коннектится к VPN-серверу и получает VPN-адрес из пула 10.11.12.2-4/32, у сервера VPN-адрес - 10.11.12.1/32. У каждого VPN-шлюза в локалках прописано роутить трафик VPN и локальный трафик из чужих LAN через VPN (путем указания AllowedIPs в конфигах Wireguard), в роутерах каждой локалки прописаны static routes трафика VPN (10.11.12.0/24) и чужих локалок на VPN-шлюз по локальному адресу (..10/32). На VPN-сервере прописано iptables -A FORWARD -i wg -j ACCEPT; iptables -A FORWARD -o wg -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.

Когда я, находясь, например, в локалке 192.168.0.0/24, хочу достучаться до машины в локалке 192.168.2.0/24, я просто набираю этот LAN-адрес (например, 192.168.2.30), и коннект идет. Проблема в том, что в src address этих пакетов прописан адрес VPN, такой трафик воспринимается как нелокальный, и если на целевой машине нет public-сервиса (такого, как веб-морда у принтера или неогороженный сервис на 80-ом порту), то трафик дропается целевым хостом.

Вопрос: как сделать так, чтобы трафик между локалками был нативным и не резался целевыми хостами?

P.S. Не плюйтесь за некомпетентность, я не админ, а обычный хомячок.

Если «машина с локальным адресом 192.168..10/32 и включенным IP-Forwarding» знает про все сети, то на роутерах надо добавить маршруты до нужных сетей через эту машину. В админке обычно есть такой пункт даже в стоковых прошивках.

То есть на рутере, который рулит сетью 192.168.0.0/24, добавит маршруты 192.168.2.0/24 и 192.168.10.0/24 через 192.168.0.10.

Никакой маскарадинг не нужен тут.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

Как я изначально указал, статические маршруты до «нелокальных» локалок на роутерах прописаны, с этим проблем нет. Маскарад нужен для работы внутри VPN хостов, не входящих в эти три локальные сети (при удаленной работе с ноутов, мобильных и т.д.).

Проблема только во встроенных фаерволах хостов, которые по дефолту дропают нелокальный untrusted трафик, ведь трафик из другой локалки маскарадится на 10.11.12.0/24 на этапе прохождения через VPN и далее не изменяется, а только форвардится, поэтому для целевой локалки воспринимается как внешний (например, вебморда роутера 192.168.10.1 при обращении из 192.168.0.0/24 выдает «403 Forbidden», ssh на линукс-хосты отваливается по таймауту; unrestricted морда сетевого принтера же работает без проблем).

z0mb1e_kgd ()