iptables + iproute

1. iptables + iproute

Bruno Almeida de Magalhães
brunoalmeidam

(usa RedHat)

Enviado em 24/03/2008 - 11:22h

Amigos eu tenho um provedor de internet, e possuo 3 gateways de internet

gateway1 = 192.168.254.1
gateway2 = 192.168.253.1
gateway3 = 192.168.252.1

Utilizo ip route + iptables para determinar quais clientes saem pelo gateway1, gateway2, gateway3 segue script abaixo.

#Criado automaticamente

sudo echo 'Libera os Macs dos Gateways'

sudo /sbin/iptables -A FORWARD -m mac --mac-source 00:0B:23:03:AB:B2 -j ACCEPT
sudo /sbin/iptables -A FORWARD -m mac --mac-source 00:E0:7D:83:35:9E -j ACCEPT
sudo /sbin/iptables -A FORWARD -m mac --mac-source 00:19:5B:C4:90:5D -j ACCEPT
sudo /sbin/iptables -A FORWARD -m mac --mac-source 00:19:5B:C5:0E:F5 -j ACCEPT

echo 'Libera o mac das maquinas'

sudo iptables -A FORWARD -m mac --mac-source 00:18:E7:0F:7E:AB -s 10.0.0.99 -j ACCEPT
sudo iptables -A FORWARD -m mac --mac-source 00:0E:2E:D9:48:09 -s 10.0.0.100 -j ACCEPT
sudo iptables -A FORWARD -m mac --mac-source 00:40:F4:DD:2F:DB -s 10.0.0.237 -j ACCEPT

echo 'Mascara as saidas para os tres Gateways'

sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 'Marca os pacotes de fora pra dentro e de dentro pra fora'

echo 'Libera o CPF: 090244277-54'
sudo /sbin/iptables -t mangle -A PREROUTING -i eth1 -s 10.0.0.99 -j MARK --set-mark 1
sudo /sbin/iptables -t mangle -A OUTPUT -s 10.0.0.99 -j MARK --set-mark 1

echo 'Libera o CPF: 089279577-84'
sudo /sbin/iptables -t mangle -A PREROUTING -i eth1 -s 10.0.0.100 -j MARK --set-mark 2
sudo /sbin/iptables -t mangle -A OUTPUT -s 10.0.0.100 -j MARK --set-mark 2

echo 'Libera o CPF: 057332957-59'
sudo /sbin/iptables -t mangle -A PREROUTING -i eth1 -s 10.0.0.237 -j MARK --set-mark 3
sudo /sbin/iptables -t mangle -A OUTPUT -s 10.0.0.237 -j MARK --set-mark 3

echo 'Encaminha os pacotes para as respectivas tabelas de rotas'

sudo ip rule add fwmark 1 table link1 prio 20
sudo ip rule add fwmark 2 table link2 prio 20
sudo ip rule add fwmark 3 table link3 prio 20

echo 'Crias as rotas para as respectivas tabelas de rotas'

sudo ip route add default via 192.168.254.1 dev eth0 table link1

sudo ip route add default via 192.168.253.1 dev eth0 table link2

sudo ip route add default via 192.168.252.1 dev eth0 table link3

echo 'LIMPA tabela de roteamento CACHE'

sudo ip route flush cache

echo 'NEGA O RESTANTE DOS MAC ADDRESS'

sudo iptables -A FORWARD -m mac --mac-source ! FF:FF:FF:FF:FF:FF -j DROP

sudo echo 'CONCLUIDO'


esse foi so um trecho do script uma vez que o script original tem muito mais linhas. então, isso funicona perfeitamente, porem tem um negocio que eu queria ver se dava para implementar que seria algo mais dinamico, por que se o link1 (gateway1) cair o cliente que esta marcado para sair pelo link1 simplemente para da fuincionar, eu queria saber se algum amigo de forum sabe uma forma de fazer com que ao cair o link1 (ou 2 ou 3) o cliente que esta direcionado a sair pelo link1 saia pelo link2, mas isso tem que ser somente se o link1 cair e nao alternadamente. fico no aguardo de uma ajuda

atenciosamente
Bruno Almeida


  


2. fail-over

Juno Kim
juno

(usa Linux Mint)

Enviado em 03/06/2008 - 15:36h

Cara posta seu script inteiro para podermos analisar .

flw

:D


3. Re: iptables + iproute

Everton
Pinguim Gigante

(usa Fedora)

Enviado em 03/06/2008 - 17:13h

Cara, tira o CPF dessa gente dai!!!


4. Script

Willian
Comandos_FE

(usa Debian)

Enviado em 19/11/2010 - 18:44h

Você pode fazer um script para enviar pings aos seus links de Internet,
quando o link não responder, modifica a rota do cliente para outro link.
Se quiser ajuda na criação do script,
é só postar seu script completo.
Espero ter ajudado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts