Debian. 3 сетевухи. eth0 и eth1 к провайдеру, eth2 - в локалку. Маршрутизация должна осуществляться следующим образом: Пакеты к заданным подсетям должны идти через eth0, все остальное через eth1. Причем через eth1 через NAT. ip-адреса eth1 и eth2 находятся в одной подсети.
Для наглядности адреса:
Локалка: 192.168.44.0/24
Провайдер: 192.168.1.0/24
Допустим, провайдер выдал адреса для:
eth0 192.168.1.119
eth1 192.168.1.111
gateway 192.168.1.1
Делаю следующее:
#!/bin/sh
#NAT для eth1-eth2
iptables -t nat -A POSTROUTING -s 192.168.44.0/24 -o eth1 -p tcp -j SNAT --to-source 192.168.1.111
iptables -t nat -A POSTROUTING -s 192.168.44.0/24 -o eth1 -p udp -j SNAT --to-source 192.168.1.111
iptables -t nat -A POSTROUTING -s 192.168.44.0/24 -o eth1 -p icmp -j SNAT --to-source 192.168.1.111
#все, пускаем через eth1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1 dev eth1
#Вот это должно идти через eth0
route add -host 193.158.134.8 gw 192.168.1.1 dev eth0
Если адреса eth1 и eth0 будут находиться в разных подсетях, с разными шлюзами, то проблем нет, все работает как нужно. Подскажите, что не так?