Настроил роутинг по этой статье: http://opennet.ru/docs/RUS/LARTC/x348.html
IP1="77.108.65.92" IF1="eth0" P1="77.108.65.1" P1_NET="77.108.65.0/24"
IP2="10.0.5.2" IF2="eth1" P2="10.0.5.1" P2_NET="10.0.5.0/30"
ip route add $P1_NET dev $IF1 src $IP1 table T1 ip route add default via $P1 table T1 ip route add $P2_NET dev $IF2 src $IP2 table T2 ip route add default via $P2 table T2
ip route add $P1_NET dev $IF1 src $IP1 ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P2
ip rule add from $IP1 table T1 ip rule add from $IP2 table T2
ip route add $P0_NET dev $IF0 table T1 ip route add $P2_NET dev $IF2 table T1 ip route add 127.0.0.0/8 dev lo table T1
ip route add $P0_NET dev $IF0 table T2 ip route add $P1_NET dev $IF1 table T2 ip route add 127.0.0.0/8 dev lo table T2
решил значит добавить NAT: iptables -A PREROUTING -t nat -d 77.108.65.92 -p tcp --dport 1234 -j DNAT --to-destination 10.0.1.2 iptables -A PREROUTING -t nat -d 10.0.5.2 -p tcp --dport 1234 -j DNAT --to-destination 10.0.1.2 iptables -A POSTROUTING -t nat -o eth0 -j SNAT --to-source 77.108.65.92 iptables -A POSTROUTING -t nat -o eth1 -j SNAT --to-source 10.0.5.2
iptables -A PREROUTING -t mangle -d 77.108.65.92 -j MARK --set-mark 0x1 #все входящие пакеты на линке eth0 маркировать 0x1 iptables -A PREROUTING -t mangle -d 10.0.5.2 -j MARK --set-mark 0x2 #.. eth1 маркировать 0x2
##маркированные пакеты пускать по соот. ей таблице ip rule add fwmark 0x1 table T1 ip rule add fwmark 0x2 table T2
Запускаю на машине 10.0.1.2 netcat: nc -l -p 1234 И с пытаюсь подключилтся к своему роутер с машины, которая подключена через GPRS: nc 95.72.54.205(10.0.5.2) 1234 <<< "test" -- работает, а вот: nc 77.108.65.92 1234 <<< "test" -- уже нет.
router ~ # tcpdump -n -i eth0 'port 1234' listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 21:15:12.298335 IP 209.250.241.104.60980 > 77.108.65.92.1234: S 3520313975:35203 13975(0) win 5840 <mss 1460,sackOK,timestamp 2826884265 0,nop,wscale 4>
router iptables # tcpdump -n -i eth1 'port 1234' listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 21:15:12.298988 IP 77.108.65.92.1234 > 209.250.241.104.60980: R 0:0(0) ack 3520313976 win 0
немного странно получается: пакет приходит с eth0, а уходит с eth1
А теперь ключевой вопрос: чего я сделал не так, уважаемые линуксойды ?