Cara, novamente, acho que não precisa de tudo isso...
Faz o seguinte teste. Edita o arquivo /etc/iproute2/rt_tables e adicione 2 as seguines linhas:
21 velox
22 speedy
Cria esse script:
echo "Configurando Variáveis..."
# Localização do comando iptables
IPTABLES=/sbin/iptables
# Localização do comando ip
IP=/sbin/ip
# Interface Externa 1 - velox
NET_EXT_INT0=eth0
# IP Virtua
NET_EXT_IP0=192.168.14.242
# Default Gateway Virtua
NET_EXT_GW0=192.168.14.1
# Interface interna
NET_INT_INT1=eth2
# IP interno
NET_INT_IP1=192.168.0.1
# Subnet interna
NET_INT_SUB1=24
# Rede interna
NET_INT_NET1=192.168.0.0
# Interface externa 2 - embratel
NET_EXT_INT2=eth1
# IP Speedy
NET_EXT_IP2=192.168.15.242
# Default Gateway Speedy
NET_EXT_GW2=192.168.15.1
echo "Limpando as tabelas..."
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -X
#REGRA DO SQUID
$IPTABLES -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Criando chain NAT para eth0..."
$IPTABLES -t nat -N NAT_ETH0
$IPTABLES -t nat -F NAT_ETH0
$IPTABLES -t nat -A NAT_ETH0 -j SNAT --to ${NET_EXT_IP0}
echo "Configurando chain NAT para eth2..."
$IPTABLES -t nat -N NAT_ETH2
$IPTABLES -t nat -F NAT_ETH2
$IPTABLES -t nat -A NAT_ETH2 -j SNAT --to ${NET_EXT_IP2}
echo "Aplicando regras de NAT da eth1 e eth2..."
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT2} -j NAT_ETH2
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT0} -j NAT_ETH0
echo "Permitindo ping local..."
$IPTABLES -A INPUT -p icmp -s ${NET_INT_NET1}/${NET_INT_SUB1} -d ${NET_INT_IP1} -j ACCEPT
echo "Adicionando marcação para IPs da diretoria"
iptables -t mangle -A PREROUTING -s 192.168.0.10/32 -j MARK --set-mark 22
iptables -t mangle -A PREROUTING -s 192.168.0.9/32 -j MARK --set-mark 22
echo "Adicionando marcação para restante dos IPs"
iptables -t mangle -A PREROUTING -j MARK --set-mark 21
echo "Removendo possíveis rotas"
$IP rule del lookup speedy
$IP rule del lookup speedy
$IP rule del lookup velox
$IP rule del lookup velox
$IP route del default
$IP route del default
echo "Adicionando default gateway para Velox"
$IP route add default via ${NET_EXT_GW0} table velox
echo "Adicionando default gateway para Speedy"
$IP route add default via ${NET_EXT_GW2} table speedy
echo "Vinculando tráfego marcado a tabela"
$IP rule add fwmark 21 table 21 prio 20
$IP rule add fwmark 22 table 22 prio 20
echo "Desabilitando filtro de caminho reverso..."
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo "Habilitando roteamento de pacotes..."
echo 1 > /proc/sys/net/ipv4/ip_forward
Depois de executar o script verifica as regras com esse comando:
ip rule list
e verifica as rotas de cada tabela com esse comando:
ip route list table speedy
ip route list table velox
Qualquer coisa posta ai...