Tiago,Postado originalmente por tiagomatias
Que distro é essa?
Att,
Nataniel Klug
Tiago,Postado originalmente por tiagomatias
Que distro é essa?
Att,
Nataniel Klug
Pois eh Tiago, ai eu jah nao sei tb. Pq sinceramente, eu nao estou tendo esse tipo de problema nao. E ateh hj nenhum cliente reclamou de conexao com bancos ou etc.Postado originalmente por tiagomatias
Estamos em um dilema agora.
Att,
Guilherme
Mikrotik :good:Postado originalmente por nataniel
Essa é pro antoniobrandao, e pra quem souber.
Esse esquema de load balance esquenta bem a cabeca de novatos como eu, sei q pros feras é facinho.
agora desisti do tal LB e toh redirecionando portas, usei um artigo aki do site eh tah funcionando legal. Parte dele esta aki
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
# Joga serviço 80 (pacotes marcados com 2) pro adsl
# ------------------------------------------------------------
ip rule add fwmark 2 table 20 prio 20
ip route add default via 172.16.0.1 dev eth2 table 20
************
agora minha duvida seria a seguinte: q diferenca faz de usar o c/ os parametros do AntonioBrandao? Outra duvida? Implementei o ipp2p e gostaria de redirecionar tudo pro adsl, algum colega se abilita em me ajudar?
Obrigado.
Pessoal,
Depois de muito lutar contra essas desgraças da vida resolvi tentar tudo do zero... Quase um sistema de "Divisão de Link from Scratch".
Vamos ao que foi feito e ao estado atual da conexão (que estou usando nesse momento):
Hardware
Depois de quase ter um enfarto com os outros testes resolvi desmontar meu micro de casa e usar ele.
Intel Celeron 1800
MB Asus P4V8X-X
512 MB RAM
HD IDE 6 Gb
Usei um HD aqui da empresa para testes apenas. Coloquei duas interfaces de rede (eth1 e eth2) para os links externos e coloquei uma interface de rede intera (eth0) que é a sis900 onboard da placa mãe.
PS.: NÃO ME CONDENEM! Isso é apenas para testes. Não vou usar essa SiS900 quando o sistema estiver rodando para meus clientes.
Software
Sistema Operacional: FEDORA CORE 3
Kernel: 2.4.13-4
Patchs Kernel: L7-Filter e DeadRoutes
Links de dados
Link 1: Rede interna do provedor
Link 2: ADSL Brasil Telecom 800
Teste realizados até o momento
Downloads grandes: OK (baixei 4 arquivos de 50 MB cada um, dois por um link e dois pelo outro, monitorei usando IPTRAF)
Sistemas de email: OK (tanto IMAP quanto POP)
Bancos: OK (Itau e Banco do Brasil)
COMO EU FIZ?!
SEGREDO! Hahahahaha...
Brincadeira. Povo, estou escrevendo um tutorial sobre tudo isso que eu fiz e irei colocar na seção de artigos da Under. Imagino que até na segunda-feira esteja no ar o tutorial.
Continuarei testando essa conexão (estamos em 6 máquinas atrás dela para vermos se realmente funciona).
Obrigado a todos que ajudaram e continuarão ajudando...
Att,
Nataniel Klug
É isso ai Nataniel.Postado originalmente por nataniel
:good:
Mas voltando ao assunto, quem tiver o interesse em fazer um loadbalace e n tiver disposta em comprar um ROUTER para fazer isso, me disponho a fazer o serviço do maneira que achar melhor, por prioridade de serviço, range de ip´s ou mesmo balanceamento automático, com MRTG, monitoramento da CPU, Interfaces tudo graficamente, cachê dns, cachê proxy, etc. do link. Etc.
Pessoal,
Fiz um controle pelo MRTG para que vocês possam monitorar o funcionamento da divisão de carga entre os links.
Vou deixar em teste durante o final de semana para ter certeza de que funcionará legal e depois passarei para a implementação desse sistema diretamente dentro do meu servidor.
http://mrtg.cnett.com.br/server/teste/
Valeu e obrigado a todos que participaram desse tópico.
Att,
Nataniel Klug
Jesus,Postado originalmente por jesusnetworks
Se vc adicionar o -m randmom a regra do iptables será aplicada em apenas 50% dos casos. Portanto, metade do trafego da porta 80 será marcado para ir para o link ADSL, metade nao.
Povo,
Se vocês monitoraram a conexão ou o fizerem agora notarão que o link da eth2 não foi usado nenhuma vez durante todo o final de semana. O que me parece é que, como diz no tutorial nano.txt, o linux precisa de um número "x" de conexões para poder escolher para qual lado mandar, senão ele manda sempre para o primeiro nexthop (que é o do link 1 - eth1).
Hoje pela manhã como estamos agora com todas as máquinas da rede interna do provedor em funcionamento nota-se que ambas as conexões estão sendo utilizadas.
Agora preciso aprender como fazer rotas estaticas, tipo, a rede interna do provedor precisa acessar um PTP que está em um IP tipo 10.0.0.0/24 e essa conexão têm que sair pela tabela 201 (eth1) que liga ao servidor gateway do provedor que irá devidamente rotear para a rede certa... O problema é que não to conseguindo adicionar rota de rede assim. Com o route eu fazia assim:
Código :#route add -net <rede destino> gw <servidor para onde o pacote deve ir>
Agora com o comando ip eu não estou entendendo como fazer.
Att,
Nataniel Klug
Ola Nataniel,Postado originalmente por nataniel
Acho que fica assim:
Código :#limpa/cria uma tabela ip route flush table 10 #joga trafego marcado 201 para tabela 10 ip rule add fwmark 201 table 10 prio 10 #coloca gateway e interface da tabela 10 ip route add default via <GATEWAY> dev eth1 table 10
Olá Nataniel...
Ja tentou direcionar o trafego usando o mark ???
#iptables -t mangle -A PREROUTING -p ALL -i eth1 -s 192.168.2.20/32 -j MARK --set-mark 2
2 Seria o mark que usei para a minha tabela 201.
Abraço....
Fabricio Chicon
Freenetworks Soluções em Informática
http://www.freenetworks.com.br
Povo,
Desculpa acho que não expliquei direito. O balanceamento está perfeito. Vejam a seguinte situação:
Minha rede interna (clientes ligados ao servidor 1): 192.168.0.0/24
Minha rede interna (aqui dentro do provedor ligado ao servidor 2 - que estamos testando o balanceamento de links): 172.30.0.0/24
Quando eu tento pingar na rede 192.168.0.0 ele alcança APENAS qdo o balanceamento manda esse pacote para a interface que vai do servidor 2 para o servidor 1 (eth1 que usa a tabela 201).
Agora qdo o balanceamento manda para o outro link, obviamente, eu não alcanço a rede.
Preciso que sempre, ou seja, todos os pacotes com origem na rede interna do provedor (172.30.0.0) com destino a rede dos clientes 192.168.0.0 saiam SEMPRE pela interface eth1 do servidor 2, ou seja, irão diretamente para o servidor 1 que fara as devidas conexoes.
Para fazer isso eu preciso colocar essa regra de roteamento dentro da tabela 201. Mas eu nao consegui. Se eu fosse usar o route eu faria assim:
route add -net 192.168.0.0/24 gw 172.35.0.1
O ip 172.35.0.1 é o ip do servidor 1.
Usando o comando "ip route" eu não sei como fazer isso.
Att,
Nataniel Klug
vc vai fazer isso usando a marcacao de pacotes assim
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 2001
ip ro add table 20 default via 172.35.0.1 dev (IP REDE)
ip ru add fwmark 2001 table 20
ip ro fl ca
independente do balancemento isso vai fazer com o q qualquer pacotes idependente do protocolo saida pelo table 20 no caso o ip 172.... ta ligado lembresse q ja fiz muitos testes aqui e tenho uma resalva somente este tipo PREROUTING so vai marcar os pacotes q as conexoes venham e sejam feitas os repasse da origem rede interna pra o destino rede externa...... se a conexao for por exemplo um email q o cliente esteja passando e o servidor de email seja a propria maquina q esta fazendo este iptables ele nao marca os pacotes pq a conexao do cliente vai ao servidor e o servidor em vez de repassar (FORWARD) ele nao repassa ele recebe e iniciar uma nova conexao por ele mesmo e nao repassando...
Postado originalmente por nataniel
tarcisio,
Fiz assim:
Código :[root@localhost ~]# iptables -t mangle -A PREROUTING -d 172.20.0.0/24 -s 172.30.0.0/24 -j MARK --set-mark 2001 [root@localhost ~]# ip rule add fwmark 2001 table 201
Quando dou um list:
Código :[root@localhost ~]# ip rule list 0: from all lookup local 49: from all fwmark 0x7d1 lookup 201 50: from all lookup main 201: from 172.35.0.0/24 lookup 201 202: from 10.1.1.0/24 lookup 202 222: from all lookup 222 32766: from all lookup main 32767: from all lookup default [root@localhost ~]#
Aparentemente funcionou a regra.
Reparem no teste de trace route feito da minha máquina:
Código :C:\Documents and Settings\Nataniel>tracert 172.20.0.11 Rastreando a rota para 172.20.0.11 com no máximo 30 saltos 1 <1 ms <1 ms <1 ms 172.30.0.1 2 <1 ms <1 ms <1 ms 172.35.0.1 3 1 ms 1 ms 1 ms 172.20.0.164 4 6 ms 8 ms 8 ms 172.20.0.11 Rastreamento concluído. C:\Documents and Settings\Nataniel>tracert 172.20.0.3 Rastreando a rota para 172.20.0.3 com no máximo 30 saltos 1 <1 ms <1 ms <1 ms 172.30.0.1 2 3 ms 1 ms <1 ms 172.35.0.1 3 2 ms 1 ms 1 ms 172.20.0.164 4 1 ms 1 ms 1 ms 172.20.0.3 Rastreamento concluído. C:\Documents and Settings\Nataniel>tracert 200.163.208.132 Rastreando a rota para 200.163.208.132 com no máximo 30 saltos 1 <1 ms <1 ms <1 ms 172.30.0.1 2 9 ms <1 ms <1 ms 172.35.0.1 C:\Documents and Settings\Nataniel>tracert [url]www.uol.com.br[/url] Rastreando a rota para [url]www.uol.com.br[/url] [200.221.2.45] com no máximo 30 saltos: 1 1 ms <1 ms * 172.30.0.1 2 1 ms <1 ms 1 ms 10.1.1.1 C:\Documents and Settings\Nataniel>tracert [url]www.bb.com.br[/url] Rastreando a rota para [url]www.bb.com.br[/url] [170.66.2.11] com no máximo 30 saltos: 1 1 ms 1 ms <1 ms 172.30.0.1 2 1 ms <1 ms 1 ms 10.1.1.1 C:\Documents and Settings\Nataniel>tracert [url]www.terra.com.br[/url] Rastreando a rota para [url]www.terra.com.br[/url] [200.176.3.142] com no máximo 30 saltos: 1 1 ms <1 ms <1 ms 172.30.0.1 2 <1 ms <1 ms <1 ms 172.35.0.1 C:\Documents and Settings\Nataniel>
Vejam que a divisão do link continua funcionando... Mas como eu falei anteriormente precisa de várias conexões para que funcione senão o kernel tende sempre a mandar a conexão para o primeiro nexthop que estiver na tabela 222 (tabela de junção dos links).
Att,
Nataniel Klug
Bom...
Agora eu tive uma dúvida.
Cenario:
1 - Link Embratel - 256k
1 - Link(?!?!?) ADSL Velox - 256k
Tenho uma range de 128ips válidos(200.x.x.x.0 a 200.x.x.128)
Meus clientes recebem IP validos por PPPoE, como eu faria o balanceamento nesse caso? é possivel?
Valeus,
Tu vai ter que fazer nat na interface de saida de qualquer forma. Sendo ele ou não IP roteavel.Postado originalmente por cebolark
Att,
Nataniel Klug
use exatamente assim q funciona........ lembresse q pra isso o balanceamento tem q esta setado no ip ro no meu caso eu uso aquele ip ro add default equalize ........ ta ligado ne. nas
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 2001
ip ro add table 20 default via 172.35.0.1 dev (IP REDE)
ip ru add fwmark 2001 table 20
ip ro fl ca
nataniel,
Aonde está o link para o seu tuto de balanceamento/agregamento que funciona?
[]'s
under-linux.org/wiki ta la o tutorial
falows