+ Responder ao Tópico



  1. #1

    Padrão NTH com 1 Link Embratel + 1 ADSL

    Pessoal, estou tentando configurar um load balance no mikrotik versao 2.9.51 usando NTH em um link dedicado embratel de 2MB e um link ADSL de 1MB.

    Consegui configurar e alguns clientes saem com a rota da embratel e outros saem com a rota do adsl, mas em alguns momentos percebo que ainda não está 100% pois alguns sites não abrem, o ping não funciona para determinados hosts, etc. O estranho é que estes mesmos sites que não abrem para um cliente, abrem para outro.

    Abaixo posto as regras de mangle que utilizei :

    Código :
    / ip firewall mangle 
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new src-address-list=link1 comment="LINK1" \
        disabled=no 
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-mark=primeira src-address-list=link1 comment="" disabled=no 
    add chain=prerouting action=mark-connection new-connection-mark=segunda passthrough=yes connection-state=new src-address-list=link2 comment="LINK2" \
        disabled=no 
    add chain=prerouting action=mark-routing new-routing-mark=segunda_rota passthrough=no connection-mark=segunda src-address-list=link2 comment="" disabled=no 
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new nth=2,1,0 comment="APARTIR DAQUI APLICA O NTH \
        PARA O LINK 1 - PACOTE 1" disabled=no 
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=primeira address-list=link1 address-list-timeout=3h comment="" \
        disabled=no 
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-state=new connection-mark=primeira comment="" disabled=no 
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new nth=2,1,1 comment="APARTIR DAQUI APLICA O NTH \
        PARA O LINK 1 - PACOTE 2" disabled=no 
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=primeira address-list=link1 address-list-timeout=3h comment="" \
        disabled=no 
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-state=new connection-mark=primeira comment="" disabled=no 
    add chain=prerouting action=mark-connection new-connection-mark=segunda passthrough=yes connection-state=new nth=2,1,2 comment="APARTIR DAQUI APLICA O NTH \
        PARA O LINK 2 - PACOTE 3" disabled=no 
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=segunda address-list=link2 address-list-timeout=3h comment="" \
        disabled=no 
    add chain=prerouting action=mark-routing new-routing-mark=segunda_rota passthrough=no connection-state=new connection-mark=segunda comment="" disabled=no


    As regras de NAT

    Código :
    add chain=srcnat action=src-nat to-addresses=201.65.185.18 to-ports=0-65535 connection-mark=primeira comment="LINK 1" disabled=no
    add chain=srcnat action=src-nat to-addresses=10.1.1.14 to-ports=0-65535 connection-mark=segunda comment="LINK 2" disabled=no

    A tabela de rotas :

    Código :
    add dst-address=0.0.0.0/0 gateway=201.65.185.17 distance=1 scope=255 target-scope=10 routing-mark=primeira_rota comment="Rota do Link Embratel" disabled=no 
    add dst-address=0.0.0.0/0 gateway=10.1.1.1 distance=1 scope=255 target-scope=10 routing-mark=segunda_rota comment="Rota do Link ADSL" disabled=no 
    add dst-address=0.0.0.0/0 gateway=201.65.185.17 distance=1 scope=255 target-scope=10 comment="Rota do Link Embratel \(PADRAO\)" disabled=no

  2. #2
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão

    Gustavo,

    se usar aquele modelo, igual do treinamento em CWB, onde usa as address-list para fazer persistência dos clientes por um determinado link não resolveria?

  3. #3

    Padrão

    Citação Postado originalmente por sergio Ver Post
    Gustavo,

    se usar aquele modelo, igual do treinamento em CWB, onde usa as address-list para fazer persistência dos clientes por um determinado link não resolveria?
    Sérgio, obrigado pela resposta.
    Pois é, estou tentando fazer exatamente como no treinamento. Inclusive seguindo a apostila hehe.

    Repare por exemplo nas primeiras regras :

    Código :
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new src-address-list=link1 comment="LINK1" \
        disabled=no
     
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-mark=primeira src-address-list=link1 comment="" disabled=no 
    add chain=prerouting action=mark-connection new-connection-mark=segunda passthrough=yes connection-state=new src-address-list=link2 comment="LINK2" \
        disabled=no 
     
    add chain=prerouting action=mark-routing new-routing-mark=segunda_rota passthrough=no connection-mark=segunda src-address-list=link2 comment="" disabled=no

    Nestas primeiras regras estou pegando conexoes vindas de src-address-list=link1 (ou seja, de clientes que ja foram incluidos anteriormente na lista) e marcando a conexao. Em seguida, pego a conexao marcada e defino a rota dela.

    Depois dessas regras, estou usando estas : ( Pois se a conexao nao deu match em nenhuma mas regras acima, é porque é uma conexao nova que nao esta na lista, entao preciso fazer o nth e definir uma lista para adiciona-lo.

    Código :
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new nth=2,1,0 disabled=no 
     
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=primeira address-list=link1 address-list-timeout=3h comment="" disabled=no 
     
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-state=new connection-mark=primeira comment="" disabled=no 
     
    add chain=prerouting action=mark-connection new-connection-mark=primeira passthrough=yes connection-state=new nth=2,1,1 disabled=no 
     
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=primeira address-list=link1 address-list-timeout=3h comment="" disabled=no 
     
    add chain=prerouting action=mark-routing new-routing-mark=primeira_rota passthrough=no connection-state=new connection-mark=primeira comment="" disabled=no 
     
    add chain=prerouting action=mark-connection new-connection-mark=segunda passthrough=yes connection-state=new nth=2,1,2  disabled=no 
     
    add chain=prerouting action=add-src-to-address-list connection-state=new connection-mark=segunda address-list=link2 address-list-timeout=3h comment="" disabled=no 
     
    add chain=prerouting action=mark-routing new-routing-mark=segunda_rota passthrough=no connection-state=new connection-mark=segunda comment="" disabled=no


    Mas não está funcionando corretamente. Alguma coisa que estou fazendo errado ?

  4. #4
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão

    A princípio não vi nada errado. Os clientes que apresentam problemas estão sempre na mesma lista?

    Como o time-out em 3 horas, pode ser que justamente quando fazem a troca de link ocorra o problema. Para certificar-se que não é isto, aumente o tempo para umas 8 horas.

  5. #5

    Padrão

    Sérgio, não é a questão do tempo pois na verdade estes problemas foram detectados por mim mesmo enquanto fazia os testes logo depois da aplicação das regras. Acontece de eu acessar determinado site normalmente, e continuar acessando outros para testar. E derrepente aquele site X não acessa mais, não pinga mais, etc. Já os outros sites acessam normalmente. Dai derrepente fica uma lentidão enorme para os clientes que estão no link adsl.

    Até pensei que seria por estar colocando mtos clientes na lista do link adsl que é só de 1 MB, enquanto o dedicado é de 2MB, mas dai fiz as regras para 3 links de 1 MB, jogando 2 conexoes pro dedicado e 1 pro adsl e nao funcionou tb.

    Uma dúvida que tenho. Nas address lists deveria conter somente os endereços dos meus clientes ou é normal ter também os endereços dos sites que eles acessam ?

    Percebi que estão aparecendo os endereços dos sites também, então imaginei esta ser a causa do problema, pois caso um cliente acesse um site X e esteja na lista A o endereço desse site ficará na lista A e quando outro cliente da lista B tentar acessar esse site ele nao conseguirá receber a resposta do servidor pois ele está em outra lista. Tem sentido ? Sugere alguma alteração ?

  6. #6

    Padrão

    O balanceamento começou funcionar corretamente depois que marquei Src-Address igual a minha faixa de rede. Acontece que tenho três faixas diferentes, então repliquei as regras para cada rede já que antes eu tinha criado uma address-list e adicionado as faixas de rede nessa address list e selecionado a opção Src. Address List, mas dai o balanceamento não era feito de forma uniforme. Na maioria das vezes caia no link1. Já quando fiz uma regra para cada faixa de rede, ele direciona cada conexao para um link corretamente.

  7. #7

    Padrão

    Acho que ninguem no fórum tem isto funcionando na versão 2.9.51.
    To achando que nesta versão isto não funciona.

  8. #8

    Padrão banco e msn

    Amigo testei suas regras aki no mk 2.9.27 com um link dedicado de 1 mb e outro adsl de 1 mb e ficou legal... pensei q n ia funfar na 2.9.27... Poderia me ajudar com a regra para o msn e bancos? Desde ja valeu pela ajuda.

  9. #9

    Padrão

    Se funcionou corretamente você não deve mais estar tendo problemas com MSN e Bancos pois estas regras usam address list com tempo de 3 horas, então é impossível ficar o msn caindo toda hora e os bancos perdendo a conexão.


    Bom, comigo não funcionaram as regras de balanceamento por isso resolvi que vou direcionar manualmente os usuários para cada link. É uma pena, ficaria mais uniforme usando NTH mas infelizmente não funcionou.

    Ele funciona até o vigésimo cliente, ou seja, 10 pra um link, 10 pra outro, apartir de entao ele só manda pro link1. Não tenho idéia do que possa ser.

    Pior que já vasculhei por tudo. Inclusive naquele curso do pessoal da Mikrotik Brasil, que diz que isso funciona.

  10. #10

    Padrão

    O problema pode ser porq vc esta trabalhando 03 faixas de ip aki trabalho somente com uma.... ja tentou colocoar em testes com somente uma faixa de ip, creio q va funfa sim.... seu mk é 2.9.27?

  11. #11

    Padrão

    Estou trabalhando só com uma faixa agora.
    Atualizei para o 3.13 mas antes estava a 2.9.51

  12. #12

    Padrão

    POSTA O RESULTADO? VC JA UTILIZOU NA 2.9.27 ?

  13. #13

    Padrão

    O resultado é aquele que já falei. Ele manda no máximo 10 clientes pra cada link, depois destes 20 clientes ele só manda mais pro link 1. Dai o link1 chega a ficar com 30 e o link2 permanece com os 10.

    Com o tempo os 10 que tao no link2 vao saindo da address list e ele continua mandando só pro link1, dai o link1 fica com 99% dos clientes e o link2 fica lá sem utilização quase.

  14. #14

    Padrão

    JA FEZ NA VERSAO 2.9.27? CARA TO INCUCADO PRA SABER PORQ N FUNCIONA AI COM VC... SE CONSEGUIR AVISA AI A GENTE

  15. #15

    Padrão

    Pessoal, eu estive tentando fazer isso mas ainda não consegui.
    Eu queria tirar uma dúvida com vcs a respeito disso.

    No meu mangle já tenho algumas marcações, como p2p, cache full, youtube.
    A minha dúvida é a seguinte: essas marcações de balanceamento devem ser adicionadas antes dessas ou regras, ou tanto faz?

    Muito obrigado.