+ Responder ao Tópico



  1. Citação Postado originalmente por Jim
    Bem pessoal, tb to tentando fazer um load balance aqui...

    O que ocorre é que tenho um link ppp e gostaria que o adsl empresarial ajudasse esse link sempre que ele estivesse com sobrecarga, ou até mesmo substituílo caso o ppp caia e vice-versa.

    ETH0: 200.x.x.2 GW 200.x.x.1
    ETH1: 192.168.10.2 GW 192.168.10.1
    ETH2: 192.168.4.0/24 (rede local)

    Pois bem, inicialmente segui o tutorial, nao funcionou. Então segui o conselho no mystmst, tb nao funfou... Pois bem, setei os respectivos gw's no arquivo de configuração de rede, meu comandou route retorna:

    debian:~# route
    Tabela de Roteamento IP do Kernel
    Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
    192.168.4.0 * 255.255.255.0 U 0 0 0 eth2
    localnet * 255.255.255.0 U 0 0 0 eth0
    192.168.10.0 * 255.255.255.0 U 0 0 0 eth1
    default 192.168.10.1 0.0.0.0 UG 0 0 0 eth1
    default 200.x.x.1 0.0.0.0 UG 0 0 0 eth0

    então adicionei a regra:

    ip route add default nexthop via 192.168.10.1 \ weight 1 nexthop via 200.x.x.1 weight 1

    e dá o erro:

    Error: "nexthop" or end of line is expected instead of " weight"

    Então tirei a barrinha:

    ip route add default nexthop via 192.168.10.1 weight 1 nexthop via 200.x.x.1 weight 1

    e retorna:

    RTNETLINK answers: File exists

    Pois bem amigos, eu teria de fazer algo além? Como posso testar esse load balance? Se um link cair o outro deveria assumir? a Saída deveria ser pelos 2 links o tempo todo ou o segundo link só entra em ação qdo o primeiro sobrecarrega?

    Grato...

    ok, o lance eh o route so mostra 1 rota default e nao 2, nao sei pq o seu mostra 2 (pode ser lance de versao.. acontece)

    sempre peça para o ip route listar as rotas, ele sim as mostra certo. no caso qdo ele da "File exists" eh por que jah tem uma rota.

    tente o seguinte:

    # route del default
    # ip route add default scope global nexthop via ip1 dev dev1 weight 1 \
    nexthop via ip2 dev dev2 weight 1

    http://www.tldp.org/HOWTO/Adv-Routin...ple-links.html

    ta aqui a url exatamente da parte que ele cita o load balacing.

    4.2.2. Load balancing

    The second question is how to balance traffic going out over the two providers. This is actually not hard if you already have set up split access as above.

    Instead of choosing one of the two providers as your default route, you now set up the default route to be a multipath route. In the default kernel this will balance routes over the two providers. It is done as follows (once more building on the example in the section on split-access):

    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
    nexthop via $P2 dev $IF2 weight 1


    This will balance the routes over both providers. The weight parameters can be tweaked to favor one provider over the other.

    Note that balancing will not be perfect, as it is route based, and routes are cached. This means that routes to often-used sites will always be over the same provider.

    Furthermore, if you really want to do this, you probably also want to look at Julian Anastasov's patches at http://www.linuxvirtualserver.org/~julian/#routes , Julian's route patch page. They will make things nicer to work with.

  2. vlw mistymst, li o esquema ali... apliquei as regras sugeridas por ele... (mas até nele faz-se referencias às tabelas do iproute2)

    Bem, ficou assim:

    /etc/iproute2/rt_tables:

    #
    # reserved values
    #
    255 local
    254 main
    253 default
    0 unspec
    #
    # local
    #
    #1 inr.ruhep
    2 T1
    1 T2


    /etc/firewall/load.sh:

    #!/bin/bash

    P1_NET=200.X.X.0
    IF1=eth0
    IP1=200.X.X.231
    P1=200.X.X.1
    P2_NET=192.168.10.0
    IF2=eth1
    IP2=192.168.10.2
    P2=192.168.10.1

    iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    ip route add $P1_NET dev $IF1 src $IP1 table T1
    ip route add default via $P1 table T1
    ip route add $P2_NET dev $IF2 src $IP2 table T2
    ip route add default via $P2 table T2

    ip route add $P1_NET dev $IF1 src $IP1
    ip route add $P2_NET dev $IF2 src $IP2

    ip route add default via $P1

    ip rule add from $IP1 table T1
    ip rule add from $IP2 table T2

    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
    nexthop via $P2 dev $IF2 weight 1


    O Comando "route" retorna:

    debian:~# route
    Tabela de Roteamento IP do Kernel
    Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
    200.102.248.0 * 255.255.255.255 UH 0 0 0 eth0
    192.168.10.0 * 255.255.255.255 UH 0 0 0 eth1
    192.168.4.0 * 255.255.255.0 U 0 0 0 eth2
    localnet * 255.255.255.0 U 0 0 0 eth0
    192.168.10.0 * 255.255.255.0 U 0 0 0 eth1
    default 200.X.X.1 0.0.0.0 UG 0 0 0 eth0

    Então abri o iptraf e fiquei analisando as duas interfaces externas. Bem, ele continua saindo por um IP apenas, agora pelo 200.x.x.x (PPP), deixando de utilizar o 192.168.10.x (adsl).

    Se desligo o cabo de rede PPP ele nao deveria continuar navegando pelo adsl? nao tá rolando...



  3. Jim entao nem o balanceamento ta dando certo, tem de ver pq isso, assim aquele tutorial que passaram ae foi o que eu usei tb, mas nao funcionou certo, pois trava msn, e donwloads grandes.

    falows

  4. #24
    lillo
    Olá ao forum
    Eu me associo com aqueles que não conseguem fazer rodar o script de load balancing do LINUX ADVANCED ROUTING HOWTO
    Infelizmente pois aqui na rede onde opero posso trabalhar so a noite então fica difficil rodar esse script pra testar em outros momento quando a rede fica em uso porqué os usuarios .... :@:
    Trava tudo ou na melhor das hipotesi so funciona um link
    Bom eu tenho uma distro debian, o kernel ja fui editado, iproute2 ja ta instalado(tentei baixar o cbq ou shaper tambem mas não deu certo para problemas do kernel 2.4.26 que recompilei inumeras vezes sem exito...)
    Os link são adsl empresarial com dois providers diferentes tenho 3 placas de rede uma da rede interna e duas pro externo uma pra cada modem
    Esse é o shell que pois deveria ir em rc.local
    #!/bin/bash

    #adiciono as tabelas em iproute
    echo "100 T1" >> /etc/iproute2/rt_tables
    echo "101 T2" >> /etc/iproute2/rt_tables


    #link da BRT
    IF1='eth0'
    #link da GVT
    IF2='eth2'
    #gateway da GVT
    P1='192.168.2.253'
    #gateway da BRT
    P2='192.168.1.254'
    #redes quem pertencem os gateways
    P1_NET='192.168.1.0'
    P2_NET='192.168.2.0'

    #adiciono as rotas
    ip route add $P1_NET dev $IF1 src $IF1 table T1
    ip route add default via $P1 table T1
    ip route add $P2_NET dev $IF2 src $IF2 table T2
    ip route add default via $P2 table T2
    #formo a main routing table
    ip route add $P1_NET dev $IF1 src $IF1
    ip route add $P2_NET dev $IF2 src $IF2
    #adiciono uma rota prefencial pra poder utilizar um gerenciador de downloads
    ip route add default via $P1
    #agora tem que setar as regras de de roteamenta pra a escolha das tabelas
    ip rule add from $IF1 table T1
    ip rule add from $IF2 table T2
    #agora tem que fazer o balanceamento de carga
    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
    nexthop via $P2 dev $IF2 weight 1
    #desabilito o rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    Continua a dar erros tipo (agora digito na mão como que lembro que era...)"expected inet istead of "eth" ou mensagens tipo "route exists"
    Deve ter talvez algum erro no script mas aparentemente parece estar certo pois é praticamente egual aquelo do LARTC
    Talvez suspeito que alguma rota ficou em memoria mas sinceramente não sei fiquei até um pouco desanimado depois de tantos tentativos
    Tambem acho que provavelmente tem que marcar pacotes com uma regra de iptables porque eu tambem penso que não vai dar certo que um pacote que sae de uma interface volte pela outra com outro ip de origem
    Sinceramente não achei tutorias bem exaustivos que falem do problema colocando as mãos na massa e outros são muito dificeis de "decriptar" ou provavelmente não estou conseguindo entender direito ....sou ainda um iniciante.
    Por favor me indique uma saida do "empasse" no qual estou ficando ...

    Vlw e obrigado
    :good:



  5. Citação Postado originalmente por lillo
    Olá ao forum
    Eu me associo com aqueles que não conseguem fazer rodar o script de load balancing do LINUX ADVANCED ROUTING HOWTO
    Infelizmente pois aqui na rede onde opero posso trabalhar so a noite então fica difficil rodar esse script pra testar em outros momento quando a rede fica em uso porqué os usuarios .... :@:
    Trava tudo ou na melhor das hipotesi so funciona um link
    Bom eu tenho uma distro debian, o kernel ja fui editado, iproute2 ja ta instalado(tentei baixar o cbq ou shaper tambem mas não deu certo para problemas do kernel 2.4.26 que recompilei inumeras vezes sem exito...)
    Os link são adsl empresarial com dois providers diferentes tenho 3 placas de rede uma da rede interna e duas pro externo uma pra cada modem
    Esse é o shell que pois deveria ir em rc.local
    #!/bin/bash

    #adiciono as tabelas em iproute
    echo "100 T1" >> /etc/iproute2/rt_tables
    echo "101 T2" >> /etc/iproute2/rt_tables


    #link da BRT
    IF1='eth0'
    #link da GVT
    IF2='eth2'
    #gateway da GVT
    P1='192.168.2.253'
    #gateway da BRT
    P2='192.168.1.254'
    #redes quem pertencem os gateways
    P1_NET='192.168.1.0'
    P2_NET='192.168.2.0'

    #adiciono as rotas
    ip route add $P1_NET dev $IF1 src $IF1 table T1
    ip route add default via $P1 table T1
    ip route add $P2_NET dev $IF2 src $IF2 table T2
    ip route add default via $P2 table T2
    #formo a main routing table
    ip route add $P1_NET dev $IF1 src $IF1
    ip route add $P2_NET dev $IF2 src $IF2
    #adiciono uma rota prefencial pra poder utilizar um gerenciador de downloads
    ip route add default via $P1
    #agora tem que setar as regras de de roteamenta pra a escolha das tabelas
    ip rule add from $IF1 table T1
    ip rule add from $IF2 table T2
    #agora tem que fazer o balanceamento de carga
    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
    nexthop via $P2 dev $IF2 weight 1
    #desabilito o rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    Continua a dar erros tipo (agora digito na mão como que lembro que era...)"expected inet istead of "eth" ou mensagens tipo "route exists"
    Deve ter talvez algum erro no script mas aparentemente parece estar certo pois é praticamente egual aquelo do LARTC
    Talvez suspeito que alguma rota ficou em memoria mas sinceramente não sei fiquei até um pouco desanimado depois de tantos tentativos
    Tambem acho que provavelmente tem que marcar pacotes com uma regra de iptables porque eu tambem penso que não vai dar certo que um pacote que sae de uma interface volte pela outra com outro ip de origem
    Sinceramente não achei tutorias bem exaustivos que falem do problema colocando as mãos na massa e outros são muito dificeis de "decriptar" ou provavelmente não estou conseguindo entender direito ....sou ainda um iniciante.
    Por favor me indique uma saida do "empasse" no qual estou ficando ...

    Vlw e obrigado
    :good:

    Seja bem vindo ao clube, tb ja tentei de tudo e não consegui fazer o iproute funcionar, e tambem nunca vi ninguem chegar e dizer o meu funciona e ta aqui o script(manda o script junto ao dizer que funciona e nao diz segui tal tutorial e tals), então ja to achando que isso nao funciona mesmo.

    falows






Tópicos Similares

  1. Configurar squid com link adsl - Ajuda ai galera...
    Por BrasileiroNet no fórum Servidores de Rede
    Respostas: 10
    Último Post: 12-07-2010, 10:42
  2. Balanceamento com duas ADSL brt
    Por mauriciojmjr no fórum Redes
    Respostas: 1
    Último Post: 01-04-2009, 20:49
  3. Respostas: 4
    Último Post: 11-06-2008, 10:03
  4. Balanceamento com 2 adsl IP Fixo no mesmo hub
    Por alexandreriosf no fórum Redes
    Respostas: 0
    Último Post: 02-06-2008, 16:51
  5. Respostas: 1
    Último Post: 19-10-2007, 14:02

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L