Задать вопрос
@WSGlebKavash

Возможен ли SelfInterface NAT?

Схема
67d73fd998470820607869.png
Интерфейсы:
eth0:
IP: 192.168.40.5
Маска подсети: 255.255.255.0
Шлюз: 192.168.40.1
tun0:
IP: {CLIENT_IP}
Маска подсети: 255.255.128.0
Шлюз: {VPN_GATEWAY}
Что имеем: ПК на Linux с двумя сетевыми интерфейсами: проводное соединение и виртуальный интерфейс VPN. Для доступа к интернету VPN программа использует проводной интерфейс. Клиент из этой же локальной сети хочет пустить свой траффик через VPN, т. е. использовать как маршрут по умолчанию. Он указывает адрес шлюза: 192.168.40.5. На ПК IPtables настроен следующим образом:
iptables -t nat -A POSTROUTING -o tun0 -s 192.168.40.0/24 -j SNAT --to-source {VPN_GATEWAY}
. Однако доступ к сетям за VPN клиент не получает. Никаких других брандмаузеров не используется.
Возможен ли кольцевой (SelfInterface) NAT в принципе? Если да, то как настроить?
  • Вопрос задан
  • 73 просмотра
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
VPN_GATEWAY - это адрес, назначенный интерфейсу tun0, верно?
Вообще, мне нравится такой ход мыслей.
Но нужно убедиться, что ipv4.ip_forward=1, т.к. нужна пересылка пакетов между eth0 и tun0. Далее убедиться, что iptables в цепочке FORWARD не блокирует такую пересылку. Далее прогнать traceroute или mtr с хоста клиента до любого адреса в интернете - пытаются ли пакеты идти на дальний конец VPN или не пытаются. Если пытаются, то доходят ли. Если не пытаются, то проблема с маршрутизацией или форвардингом. Если пытаются без ответа, то либо проблема с NAT, либо какая угодно проблема на дальнем конце VPN. Если и после этого яснее не стало, то остаётся "тяжелая артиллерия" - проверка с tcpdump.

А так в целом схема работоспособна.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы