Coloquei uns comentarios, veja se te ajuda:

>  > > Segue o script:
> > > > **************************************************************
> > > > #!/bin/bash
> >
> > > > #IPT=/usr/local/sbin/iptables
> > > > INT=eth2 (rede interna)
> > > > IF_ADSL1=eth0 (link de adsl 1 )
> > > > IF_ADSL2=eth1 (link de adsl 2)
> >
> > > > # Limpando Regras antigas
> > > > iptables -t nat -F
> > > > iptables -t filter -F
> > > > iptables -t mangle -F
> > > > iptables -t nat -X
> > > > iptables -t filter -X
> > > > iptables -t mangle -X
>
(apagando todas as regras do firewall, para não deixa nada)

>
> >
> > > > #remove defaults routers
> > > > route del default gw 192.168.3.1
> > > > route del default gw 192.168.4.1
>
 Apagando todos os default gw da minha rede, muda conforme for sua rede

> <http://192.168.4.1>
> >
> > > > # Definicao de regras padrã$IPT
> > > > iptables -P INPUT ACCEPT
> > > > iptables -P OUTPUT ACCEPT
> > > > iptables -P FORWARD ACCEPT
> >
>
Adicionando regras padrão para a rede

>
> > > > iptables -A PREROUTING -t mangle -i eth2 -p udp --dport 80 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p udp --dport 110 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 110 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 25 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 22 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 21 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 53 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p udp --dport 53 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p tcp --dport 23 -j MARK
> > > > --set-mark 3
> > > > iptables -A PREROUTING -t mangle -i eth2 -p udp --dport 69 -j MARK
> > > > --set-mark 3
>
(marcando todos os pacotes e portas que quero balancear, veja que o msn está
> fora)
>


>
> > > > #mascarando as conexoes
> > > > iptables -t nat -A POSTROUTING -o $IF_ADSL2 -j MASQUERADE
> > > > iptables -t nat -A POSTROUTING -o $IF_ADSL1 -j MASQUERADE
> >
>
(mascarando os links 1 e 2)

>
> > > > # Mantendo conexoes ativas:
> >
> > > > echo -n "Manutencao de conexoes ativas..."
> > > > iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
> > > > echo " [OK]"
> >
> > > > echo -n "Otimizando o roteamento..."
> > > > iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
> > > > echo " [OK]"
> >
>
(mantendo as conexões ativas, um download iniciado por um link, será feito
todo por esse link)

>
> > > > # Desabilitando o filtro de pacotes do martian source
> > > > echo -n "Desligando rp_filter..."
> > > > for eee in /proc/sys/net/ipv4/conf/*/rp_filter; do
> > > > echo 0 > $eee
> > > > done
> > > > cat /proc/sys/net/ipv4/conf/*/rp_filter
> > > > echo " [OK]"
> >
>
 (desabilitando a checagem martian source, pacotes que sairem por um link,
será aceitos se retornarem pelo outro)

>
> > > > #Citç:
> > > > #!/bin/bash
> >
> > > > # Interface ADSL 1
> > > > IF1=eth0
> > > > # Interface ADSL 2
> > > > IF2=eth1
> >
>
Interfaces onde estão ligados os meus adsl

>
> > > > # IP 1
> > > > IP1=192.168.3.5
> > > > # IP 2
> > > > IP2=192.168.4.5
>
meus ips das placas de rede onde estão ligados os adsl

> <http://192.168.4.5>
> >
> > > > # Gateway 1
> > > > P1=192.168.3.1
> > > > # Gateway 2
> > > > P2=192.168.4.1
> >
>
Ips dos meus adsl (são dois modems com roteador configurados de tal forma)

>
> > > > # Rede 1
> > > > P1_NET=192.168.3.0
> > > > # Rede 2
> > > > P2_NET=192.168.4.0
> >
>
(minhas redes dos adsls)

>
> > > > ip route add $P1_NET dev $IF1 src $IP1 table ADSL1
> > > > ip route add default via $P1 table ADSL1
> > > > ip route add $P2_NET dev $IF2 src $IP2 table ADSL2
> > > > ip route add default via $P2 table ADSL2
> >
> > > > ip route add $P1_NET dev $IF1 src $IP1
> > > > ip route add $P2_NET dev $IF2 src $IP2
> >
> > > > ip rule add from $IP1 table ADSL1
> > > > ip rule add from $IP2 table ADSL2
>

Criandos regras do iproute2


> > > > #balanceamento dos links
> > > > ip rule add fwmark 3 lookup ADSL0 prio 3
> > > > ip route add default table ADSL0 nexthop via $P1 dev $IF1 weight 2
> > > nexthop
> > > > via $P2 dev $IF2 weight 1
>

Balanceando os links


> >
> > > > #carregando nat e ip forward
> > > > modprobe iptable_nat
> > > > echo 1 > /proc/sys/net/ipv4/ip_forward
>

ativando o repasse de pacotes

>
> > > > #aplicando as regras
> > > > ip route flush cache
> >
> > > > #para acesso local a internet
> > > > route add default gw 192.168.4.1
>
Adicionando o rota default para os serviços não balanceados



É isto, deve funcionar, mas não esqueça de criar as tabelas em
/etc/iproute2/rt_tables
Se tiver uma dúvida, vou tentar te ajudar, hoje não uso mais este
balancemento, tenho links fixos com garantia de banda, diferentes do adsl,
mas o que eu me lembrar te ajudo.
Usei este esquema por uns 6 meses, e funcionou tranquilo.

Junior Bohn
100% movido a linux




> > > > Junior Bohn
> > > > 100% movido a linux
> >
> > > > 2008/6/25 Julio <[EMAIL PROTECTED]>:
> >
> > > > > Boa tarde pessoal.
> > > > > Há alguns dias postei sobre um problema com MSN e balanceamento de
> > > > > carga...Consegui resolver determinando uma rota específica na
> tabela /
> > > > > etc/iproute2/rt_tables. Assim o MSN só sai por um gateway.
> > > > > Estou usando a regra:
> >
> > > > > ip route add default nexthop via 201.200.200.254 dev ppp0 weight 1
> > > > > nexthop via 201.200.200.254 dev ppp1 weight 1
> >
> > > > > Sendo assim, tenho os links disponíveis como se fosse um só (o
> flash
> > > > > get funciona que é uma beleza, pois faz os downloads nas 2 conexões
> > > > > simultaneamente).
> > > > > Porém, estou com um problema nos downloads pelo navegador. O
> problema
> > > > > é claro: o navegador se perde de vez em quando, pois os IPs das 2
> > > > > conexões se trocam (acho que o navegador não se dá bem com esse
> > > > > problema, pois a conexão começa a mandar pacotes por outro IP, e aí
> o
> > > > > download pára).
> > > > > Alguém tem alguma idéia de como resolver isso? Existe alguma forma
> de
> > > > > marcar pacotes de uma conexão até ela ser finalizada?
> > > > > Por exemplo: "Faça esse download de 100 megas pelo browser. Até
> esse
> > > > > download não terminar, ele não muda de rota (se pegou pela ppp0,
> > > > > termina pela ppp0)".
> > > > > Já tentei usando o CONNMARK, mas não tive sucesso.
> > > > > Como possuo duas redes locais, poderia até fazer cada uma saindo
> por
> > > > > uma ADSL, mas assim fico limitado (gostaria era de ter duas
> conexões
> > > > > ao meu dispor o tempo todo, independente da rede).
> > > > > Espero ter esclarecido.
> > > > > Alguma ajuda?
> >
> > > > > --
> > > > > To UNSUBSCRIBE, email to
> > > [EMAIL PROTECTED]
> > > > > with a subject of "unsubscribe". Trouble? Contact
> > > > > [EMAIL PROTECTED]
> >
> > > Boa noite Junior. Obrigado pela resposta.
> > > Mas desse jeito ele não "soma as 2 ADSLs" né...
> > > O que ele faz é setar que 1 IP vai sempre sair por uma ADSL, e outro
> > > IP (ou rede) sairá sempre por outra ADSL..como você fez:
> >
> > > ip rule add from $IP1 table ADSL1
> > > ip rule add from $IP2 table ADSL2
> >
> > > Mas o que eu gostaria de saber é se tem como somar as 2. Ou seja,
> > > posso usar as duas ao mesmo tempo, independente em que rede esteja. To
> > > mandando pacotes pela porta 80 pela ADSL1 e ao mesmo tempo mandando
> > > outros pacotes (de outra conexão, um download por exemplo) pela ADSL2.
> > > Estou achando que com CONNMARK é viável. Mas até agora não consegui
> > > fazer...
> > > Será que existe forma de se fazer isso?
> >
> > > --
> > > To UNSUBSCRIBE, email to
> [EMAIL PROTECTED]
> > > with a subject of "unsubscribe". Trouble? Contact
> > > [EMAIL PROTECTED]
>
> Olá Junior.
> Você poderia me explicar como funciona seu script?
> Não entendi muito bem...
> Vi que você marca alguns pacotes com 3 e 4, aí logo abaixo você
> compartilha a conexão...
> Depois você adiciona as rotas às tabelas (ADSL1 e ADSL2)
> Aí você faz:
> ip rule add from $IP1 table ADSL1
> ip rule add from $IP2 table ADSL2...
> ...querendo dizer que o o IP1e o IP2 tem rotas definidas pelos 2 links
> que você possui...
> E então você adiciona a regra (ip rule...) com prioridade 3, que diz
> que todo o tráfego
> com marca 3 (inclusive o tráfego http - 80) sairá pela ADSL0:
> ip rule add fwmark 3 lookup ADSL0 prio 3
> Mas depois você faz a regra que seria para balancear as 2 conexões...
> ip route add default table ADSL0 nexthop via $P1 dev $IF1 weight 2
> nexthop via $P2 dev $IF2 weight 1
> Mas entendi que o tráfego com marca 3 (inclusive http) cairá primeiro
> na regra que vem antes, fazendo com que
> ele seja roteado pela ADSL0...
> Estou certo? Então não será balanceado entre os dois links...Me
> corrija por favor Junior.
> Abraço. E obrigado pela ajuda.
>
>
> --
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact
> [EMAIL PROTECTED]
>
>

Responder a