Мой домашний маршрутизатор DD-WRT имеет несколько интерфейсов, среди которых:
- eth0: WAN-сеть интернет-провайдера
- eth1: ЛВС
- tun0: настройка открытого VPN-клиента на VPN-провайдере для частного доступа в Интернет
Я размещаю NAS "Joe" в локальной сети, доступной из интернета через порт 12345 благодаря переадресации портов (AKA D-NAT). До настройки tun0 на DD-WRT все работало нормально.
Теперь на DD-WRT «Джо» настроен на прохождение через tun0.
Таким образом, когда я подключаюсь к Joe:12345 из интернета, происходит следующее:
- Джо получает пакет TCP SYN
- Джо отвечает, отправляет пакет TCP ACK инициатору
- Проблема: DD-WRT направляет TCP ACK на tun0 вместо eth0
- Соединение инициатора никогда не подтверждается
Моя идея состоит в том, чтобы использовать таблицы IP, чтобы иметь возможность правильно направлять TCP-пакеты, то есть:
- TCP-соединение «Джо» инициировано с eth0: ответ отправлен через eth0 (вместо tun0)
- другой трафик от "Джо": маршрутизируется через tun0
Я ищу маркировку пакетов с помощью таблиц IP, но пока безрезультатно. Как мне исправить эту проблему с маршрутизацией интерфейса?