Поможете разобраться в принципе маршрутизации в схеме подключения?

Имеется 2 сети, соединенных через Wireguard.
[192.168.11.0/24] <-...
...-> [router-192.168.11.1] <--> [192.168.11.3] ===@wg-10.1.3.0/24@=== [192.168.1.44] <--> [router-192.168.1.1] <-...
...-> [192.168.1.0/24]

192.168.11.3 и 192.168.1.44 это тачки на debian.

На 192.168.11.3 такие правила:
-A FORWARD -i wg0s -j ACCEPT
-A FORWARD -i wg0s -o br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i br0 -o wg0s -m state --state RELATED,ESTABLISHED -j ACCEPT
-A POSTROUTING -s 10.1.3.0/24 -o br0 -j SNAT --to-source 192.168.11.3

На 192.168.1.44 такие правила:
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -i wg0 -o enp4s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp4s0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A POSTROUTING -s 10.1.3.0/24 -o enp4s0 -j MASQUERADE

Прикол в том, что с самого 192.168.11.3 я могу пинговать 192.168.1.72 (к примеру) и пакеты туда приходят от IP тачки 192.168.1.44 (подменяется IP), а с подсети за ним (192.168.11.0/24) пакеты уже идут под своими IP (не подменяясь).

Добавление правила на 192.168.1.44 решает проблему:
-A POSTROUTING -s 192.168.11.0/24 -o enp4s0 -j MASQUERADE

Почему так? И это так и должно быть или можно сделать поизящнее?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Как написано - так и работает.

Вот, например, правило:

-A POSTROUTING -s 10.1.3.0/24 -o br0 -j SNAT --to-source 192.168.11.3

Оно должно подменять source у пакетов, прилетевших с адресов 10.1.3.0/24 на выходе в интерфейс br0. Однако если мы пингуем 192.168.1.72, обратно пакеты приходят с адреса 192.168.1.72 и нигде не подменяются на 10.1.3.0/24. А, собственно, зачем их подменять?

Решать задачу надо иначе. Надо или сделать SNAT (MASQUERADE) на 192.168.1.44 с адресов не только 10.1.3.0/24, но и 192.168.11.0/24 (в этом случае в wg-туннеле будут ходить адреса 192.168.11.0/24):

192.168.1.44:
-A POSTROUTING -s 10.1.3.0/24 -o enp4s0 -j MASQUERADE
-A POSTROUTING -s 192.168.11.0/24 -o enp4s0 -j MASQUERADE

Либо надо на 192.168.11.3 делать подмену в туннельные адреса, которые в свою очередь заменяются в местный IP уже на "той" стороне (в этом случае в туннеле будут ходить только адреса 10.1.3.0/24):

192.168.11.3:
-A POSTROUTING -o wg0 -j MASQUERADE

192.168.1.44:
-A POSTROUTING -s 10.1.3.0/24 -o enp4s0 -j MASQUERADE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы