Этот вариант действительно рабочий но только для локальных пакетов, а у меня это маршрутизатор по которому идут транзитные пакеты. Т.к. маршрутизатор не конечная точка, сделав так как описанно по ссылке AnrDaemon, получается так что мой транзитный пакет влетает в файерволл метит пакет а далее на основе марки разворачивает и обратно выкидывает в виртуальный интерфейс.
tcpdump показал то что мак источника и мак получателся чередуются, а ip источника и ip получателя не изменны.
Т.е. пакет один и тот же, не ответный от компа. А до компа и запрос не долетает.
Мне нужен вариант с транзитными пакетами
Пользователь добавил сообщение 21 Августа 2017, 08:55:30:
Все замутил, все заработало. Благодаря ссылке AnrDaemon удалось додуматься что переделать в моем случае для транзитных пакетов.
Вообщем вот как заработало
#Маркирую входящие и установившиеся соединения кроме впн подсети 171.0/24. тут мак впн компа от которого приходит вх. запрос
iptables -t mangle -I PREROUTING ! -s 192.168.171.0/24 -m conntrack --ctstate NEW,RELATED -m mac --mac-source 00:ac:80:aa:7e:ae -j CONNMARK --set-mark 2
#теперь восстанавливаю марки всех пакетов относящиеся к каким либо соединениям
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
#чтобы пакет не разворачивался, а именно доходил до нужного хоста, с маркой 2 маршрутов не строю, а на базе этой марки перемаркировал пакеты идущие из локально сети уже обратно в мир
iptables -t mangle -A PREROUTING -i eth1 -m connmark --mark 2 -j MARK --set-mark 3
Вот эти 3 правила необходимые для правильной маркировки в соответствующем напрвлении пакета.
Теперь можно создать таблицу маршрутизации
ip route add default via IP_НУЖНОГО_ШЛЮЗА_В МОЕМ СЛУЧА_192.168.171.254 table 3
Ну и конечно же последний штрих это правило заварачивающее в таблицу пакеты идущие из лок.сети с маркой 3
ip rule fwmark 3 lookup 3