Ola Comunidade!
Estou enfrentando um problema...
Dois links de Conexao internet: Embratel, e ADSL.
Quero fazer as estacoes da minha rede, navegarem e fazer download pela ADSL.
No servidor de internet, que possui os 2 gateways de saida, existe um servidor de email. Quero fazer que toda a saida deste servidor de email saia pelo Link Embratel, para que o mesmo nao seje barrado em listas antispam, que acontece quando ele sai pela ADSL.

Nao consegui ainda fazer isso funcionar.

Abaixo segue oq eu consegui fazer ateh agora, com o tal de FWMARK e MARK. Iproute2 e iptables.

Kernel: 2.6.5
Iptables: 1.2.9
iproute2: ss020116

Arquivo de configuracao para 2 links:

echo "Configurando Variáveis..."
# Localização do comando iptables
IPTABLES=/usr/sbin/iptables
# Localização do comando ip
IP=/sbin/ip

# Interface Externa 1 - Embratel - 128Kbps
NET_EXT_INT0=eth1
# IP Embratel
NET_EXT_IP0=200.193.29.106
# Default Gateway Virtua
NET_EXT_GW0=200.193.29.105

# Interface interna - REDE
NET_INT_INT1=eth0
# IP interno
NET_INT_IP1=192.168.0.3
# Subnet interna
NET_INT_SUB1=24
# Rede interna
NET_INT_NET1=192.168.0.0

# Interface externa 2 - BrasilTelecom - 1Mbps
NET_EXT_INT2=eth2
# IP Speedy
NET_EXT_IP2=10.1.1.2
# Default Gateway Speedy
NET_EXT_GW2=10.1.1.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

echo "Setando Permissões Padrões"
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
echo "Configurando tabela Mangle para eth1..."
$IPTABLES -t mangle -N ETH1
$IPTABLES -t mangle -F ETH1
$IPTABLES -t mangle -A OUTPUT -p tcp -j LOG --log-prefix MANGLE_TCP_ETH1-
$IPTABLES -t mangle -A ETH1 -p icmp -j LOG --log-prefix MANGLE_ICMP_ETH1-
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 1
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 1
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 1
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 1
#$IPTABLES -t mangle -A ETH1 -j MARK --set-mark 1

echo "Configurando tabela Mangle para eth2..."
$IPTABLES -t mangle -N ETH2
$IPTABLES -t mangle -F ETH2
#$IPTABLES -t mangle -A OUTPUT -p tcp -j LOG --log-prefix MANGLE_TCP_ETH2
#$IPTABLES -t mangle -A ETH2 -p icmp -j LOG --log-prefix MANGLE_ICMP_ETH2
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 2
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 21 -j MARK --set-mark 2
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 21 -j MARK --set-mark 2
#$IPTABLES -t mangle -A ETH2 -j MARK --set-mark 2

echo "Configurando tabela Nat para eth1..."
$IPTABLES -t nat -N SPOOF_ETH1
$IPTABLES -t nat -F SPOOF_ETH1
#$IPTABLES -t nat -A SPOOF_ETH1 -j LOG -log -prefix SPOOF_ETH1
$IPTABLES -t nat -A SPOOF_ETH1 -j SNAT --to ${NET_EXT_IP0}

echo "Configurando tabela Nat para eth2..."
$IPTABLES -t nat -N SPOOF_ETH2
$IPTABLES -t nat -F SPOOF_ETH2
#$IPTABLES -t nat -A SPOOF_ETH2 -j LOG -log -prefix SPOOF_ETH2
$IPTABLES -t nat -A SPOOF_ETH2 -j SNAT --to ${NET_EXT_IP2}

echo "Permitindo ping local..."
$IPTABLES -A INPUT -p icmp -s ${NET_INT_NET1}/${NET_INT_SUB1} -d ${NET_INT_IP1} -j ACCEPT

echo "Configurando regras de Mangle para eth1..."
$IP ru add from ${NET_EXT_IP0} lookup 1
$IP ro add table 10 default via ${NET_EXT_GW0} dev ${NET_EXT_INT0}
$IP ru add fwmark 1 table 10
$IP ro fl ca

echo "Configurando regras de Mangle para eth2..."
$IP ru add from ${NET_EXT_IP2} lookup 2
$IP ro add table 20 default via ${NET_EXT_GW2} dev ${NET_EXT_INT2}
$IP ru add fwmark 2 table 20
$IP ro fl ca

echo "Configurando regras de spoofing..."
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT2} -j SPOOF_ETH2
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT0} -j SPOOF_ETH1

echo "Adicionando rota default..."
$IP ro add default scope global nexthop via ${NET_EXT_GW0} dev ${NET_EXT_INT0} weight 1 nexthop via ${NET_EXT_GW2} dev ${NET_EXT_INT2} weight 1

echo "Desabilitando filtro de caminho reverso..."
echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

echo "Habilitando redirecionamento de pacotes..."
echo 1 > /proc/sys/net/ipv4/ip_forward
/*
Se aguem tiver alguma ideia de como fazer isso funcionar corretamente, agradeço muito a atenção.
*/