Здравствуйте, прошу помочь мне в одной хитрой маршрутизации.
eth0 - интерфейс смотрящий в интернет
eth1 - интерфейс смотрящий в локалку с сетью 192.168.2.0/24
Нужно сделать так чтобы пакеты от хоста шли через сервер напрямую как обычно, а в обратном направлении по пути eth0 --> loopback --> eth1, то есть нужно весь трафик заворачивать на loopback.
использую iptables и iproute2
Решил делать финт ушами и вести трафик так - пакеты приходящие из внешки (например от 8.8.8.8) с адресом назначения хоста в локалке при входе в eth0 шлется на loopbackip rule add from 8.8.8.8 to 192.168.2.77 table 100
ip route add default via 127.0.0.1 dev lo table 100
и после маркируется с помощью iptables
iptables -t mangle -A PREROUTING -i lo -s 8.8.8.8 -d 192.168.2.77 -j MARK --set-mark 77
и далее с помощью iproute2 пакет маршрутизируется на eth1
ip rule add from 8.8.8.8 to 192.168.2.77 fwmark 77 table 101
ip route add default via 192.168.2.1 dev eth1 table 101
и тут возникает проблема, весь трафик когда идет обратно начинает петлять в loopback-е не выходя из него, мне кажеться это из таблицы правил 100, ибо просто доходит до него и опять посылается на loopback, а на привило маршрутизации маркированных пакетов не доходит дело.
я и правила с маршрутизацией маркированных пакетов убирал, и приоритет это маршрутизации делал выше все бестолку, пакеты убиваются об стенку на loopback-е пока ttl не истечет.
подскажите пожалуйста как правильно будет сделать или куда копать.
заранее премного благодарен