Postado originalmente por
rospyn
Vou postar um script que fiz.
# --------------------- COMEÇA AQUI ------------------------#
#!/bin/bash
# Função: Balancear 2 links roteaveis em um servidor linux
# Autor: Rodrigo Ribeiro
# Favor manter os creditos do autor, em local visivel
# HomePage:
Rodrigo Ribeiro - V2
# E-mail:
[email protected]
# Interface de rede interna
#
devint='eth2'
# Interfaces de rede em contato com os roteadores (pode ser modens adsl)
devlink1='eth0'
devlink2='eth1'
# IP de cada roteador superior
gwlink1='10.0.0.1'
gwlink2='10.0.1.1'
# Mascarar os pacotes
iptables -t nat -A POSTROUTING -o $devlink1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $devlink2 -j MASQUERADE
# marcar o que irá sair pelo link 1
# Neste caso estou marcando http, https, smtp, pop3, dns para sair pelo link1
for ports in 80 443 25 110 53; do
iptables -t mangle -A PREROUTING -i $devint -p tcp --dport $ports -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -p tcp --dport $ports -j MARK --set-mark 1
done
# resto
# Tudo que nao for classificado nas portas acima, é considerado resto e sairá pelo link2
iptables -t mangle -A PREROUTING -i $devint -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -j MARK --set-mark 2
# Adicionar marcação 1 e 2 nas tabelas 20 e 21 respectivamente
ip rule add fwmark 1 table 20 prio 20
ip rule add fwmark 2 table 21 prio 20
# Adicionar rotas na tabela de roteamento
ip route add default via $gwlink1 dev $devlink1 table 20
ip route add default via $gwlink2 dev $devlink2 table 21
# Atualizar tabela de rotas
# Executar sempre que houver mudanças na tabela de roteamento.
ip route flush cache
# -------------------------- TERMINA AQUI ------------------------------#
Espero que ajude. Um abraço a todos
Qualquer coisa posta novamente.
Rodrigo Ribeiro