fs.schmidt
(usa CentOS)
Enviado em 04/02/2011 - 23:21h
Olá amigo, já tive um ambiente parecido com esse, a melhor solução foi separar por serviços. Por exemplo, navegação passava por um link e smtp/pop por outro link...
Veja esse script que utilizei (obs.: Criado em um tutorial que encontrei aqui no VOL):
Está como te falei, 25 (SMTP) e 110 (POP) e 80b UDP (DOWNLOAD) saem pelo LINK2 e o restante pelo LINK1 mesmo...só não tem a redundancia que voce precisa.
#!/bin/sh
# Interface da Intranet
IF_LAN='eth0'
# Interfaces ADSL
IF_ADSL1='eth1'
IF_ADSL2='eth2'
# Gateways dos ADSL (IPs dos roteadores)
GW_ADSL1=192.168.10.254
GW_ADSL2=192.168.20.254
# Mascarar saídas para os dois ADSL
------------------------------------------------------------
iptables -t nat -A POSTROUTING -o $IF_ADSL1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IF_ADSL2 -j MASQUERADE
# Marca com "2" os pacotes que saem pelas portas 25 (SMTP) e 110 (POP) e 80b UDP (DOWNLOAD)
------------------------------------------------------------
iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i $IF_LAN -p udp --dport 80 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 110 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p udp --dport 80 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 2
# Joga pacotes marcados com 2 para o ADSL2
------------------------------------------------------------
ip rule add fwmark 2 table 20 prio 20
ip route add default via $GW_ADSL2 dev $IF_ADSL2 table 20
# Atualiza tabela de roteamento
# ------------------------------------------------------------
ip route flush cache