+ Responder ao Tópico



  1. #1

    Padrão Problemas com iproute2 "nexthop"

    Caros colegas, depois de pesquisar vários artigos, fóruns, tutoriais etc, cheguei a um script de balanceamento de links mas estou com o seguinte problema na regra:

    ip route add default table XXX nexthop via 111.111.111.111 dev eth1 weight 1 nexthop via 222.222.222.222 dev eth2 weight 1

    meu problema é que os pacotes, ao contrário do que deveria, sempre saem pelo ip 222.222.222.222 e nao um para cada lado... alguem poderia me explicar o porque disso? ou o que esta errado?

    Desde já, Obrigado a todos.

  2. #2

    Padrão Ai vai meu script:

    ip link set eth1 up
    ip addr flush dev eth1
    ip addr add 111.111.111.2/28 brd 111.111.111.15 dev eth1

    ip link set eth2 up
    ip addr flush dev eth2
    ip addr add 222.222.222.2/29 brd 222.222.222.7 dev eth2

    ip route del 169.254.0.0/16
    ip rule add prio 50 table main
    ip route del default table main

    # link 1
    ip rule add prio 201 from 111.111.111.0/28 table 201
    ip route add default via 111.111.111.1 dev eth1 src 111.111.111.2 proto static table 201
    ip route append prohibit default table 201 metric 1 proto static

    # link 2
    ip rule add prio 202 from 222.222.222.0/29 table 202
    ip route add default via 222.222.222.1 dev eth2 src 222.222.222.2 proto static table 202
    ip route append prohibit default table 202 metric 1 proto static

    ip rule add prio 222 table 222

    ip route add default table 222 nexthop via 111.111.111.1 dev eth1 weight 1 nexthop via 222.222.222.0 dev eth2 weight 1


    ############
    # baseado no script do Nataniel aqui do forum
    # tank's Nataniel
    ############

    /etc/iproute2/rt_tables

    #
    # reserved values
    #
    255 local
    254 main
    253 default
    0 unspec
    #
    # local
    #
    #1 inr.ruhep
    201 201
    202 202
    222 222

    ##########
    testes de ping
    backbone:/firewall# ping -c1 -I eth2 Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat
    PING Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat (200.176.3.142) from 222.222.222.2 eth2: 56(84) bytes of data.
    64 bytes from Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat (200.176.3.142): icmp_seq=1 ttl=246 time=50.5 ms
    --- Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 50.587/50.587/50.587/0.000 ms

    backbone:/firewall# ping -c1 -I eth1 Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat
    PING Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat (200.176.3.142) from 111.111.111.2 eth1: 56(84) bytes of data.
    64 bytes from Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat (200.176.3.142): icmp_seq=1 ttl=246 time=18.0 ms
    --- Terra - Notícias, vídeos, esportes, economia, diversão, música, moda, fotolog, blog, chat ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 18.088/18.088/18.088/0.000 ms

    Última edição por rafaels; 12-03-2008 às 18:58.

  3. #3

    Padrão Falta coisa aí.

    Faltou vc dar um flush nas rotas que já estão em cache no final.

    ip ro fl ca

  4. #4

    Padrão

    Citação Postado originalmente por marcos do vale Ver Post
    Faltou vc dar um flush nas rotas que já estão em cache no final.

    ip ro fl ca
    Marcos, na verdade realmente esqueci de colar a ultima linha, peço perdao, tem um ip route flush cache la, mas assim o que eu acho mais estranho é que pelo servidor se eu traçar rotas para locais destintos, ele manda um para cada lado entende?, o problema é na estaçäo atráz do servidor, no caso minha rede local.. essa nao faz... manda sempre pelo mesmo.

  5. #5

    Padrão

    Bom, vou te explicar rapidamente como funciona isso, espero que de para entender:


    * Load Balance

    per-destination: Ele faz um cache por destino, e sempre usa destino pelo mesmo "uplink" até que o tempo dela expire ou o cache seja limpo.

    per-packet: ele faz um balanceamento por peso, enviando cada pacote por um link, como voce usou weight 1 em todos, ele funciona no estilo round-robin.


    O Linux funciona somente com load-balance per-destination, até onde sei nao existe per-packet nele, se houver talvez seja por via de patch (ok estou um pouco desatualizado nesta parte), mas o que eu me lembro é que existe um patch que caso um link caia ele faz um "flush" daquela rota somente para que ela use o novo link, pois existia um problema de caso o link cair ele continuava usando aquela rota... e aí voce jah sabe o resultado.

    Uma outra informação é o seguinte, o load balance per-packet não funciona com operadoras diferentes (ok existe uma exceção mas nao vou entrar nela), e somente com uma mesma operadora se ela estiver ciente que voce esta efetuando o balanceamento de carga (é um acordo entre as duas pontas).

    Caso não seja possivel, voce somente terá a possibilidade de fazer um load balance per-destionation, que ainda assim quebra um galho, mas tem algumas deficiencias.