Маршрутизатор (и маскарад) только с определенного IP

Я хочу, чтобы весь трафик, поступающий из 192.168.2.10 на интерфейс eth0, маскировался и перенаправлялся через интерфейс tun0. Я хочу, чтобы ответ вернулся через tun0. Я не хочу, чтобы другой трафик на интерфейсе eth0 был затронут. Это то, что у меня есть:

# iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth0 -s 192.168.2.10/32 -o tun0 -j ACCEPT
# ip rule add from 192.168.2.10/32 table 100
# ip route add default via 10.8.0.1 table 100

верна ли эта конфигурация? Это, кажется, работает, но трафик выглядит очень странно в iftop . Похоже, что исходящий трафик проходит через tun0, но ответ приходит на eth0, хотя я могу быть чтение его неправильно или это может быть вызвано неправильной конфигурацией на другом конце.

25
задан Stefan D
06.04.2023 4:02 Количество просмотров материала 3312
Распечатать страницу

1 ответ

вы не можете напрямую изменить интерфейс, через который приходят ответы - получатель не принимает такого решения, отправитель (а также посредников).

вы должны, однако, убедитесь, что исходящий пакеты маскируются с правильным адресом источника. Если это не тот, который нужно, рассмотреть возможность использования -j SNAT с явно настроен исходный адрес, а не полагаться на -j MASQUERADE автовыбор.

в других слова, чтобы ответы поступали через tun0, исходные пакеты должны иметь адрес "источника", который обычно также достигался бы через tun0.

0
отвечен grawity 2023-04-07 11:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх