+ Responder ao Tópico



  1. #1

    Thumbs up Load Balance, link aleatório?

    Olá PessoALL,

    Estou com dois link:

    Um cabo-modem, ip dinâmico (LINK1).

    Outro roteado, ip dinâmico (LINK2).

    Estou precisando fazer um balanceamento com link aleatório, tem como fazer com estes links?

    Na verdade são dois cabo-modem, um ligo direto no Mikrotik e o outro estou passando por um roteador para diferenciar o Gateway.

    Se por acasa alguem usa balanceamento dessa forma poderia postar o script?

    Agradeço!

    Grande Abraço!

  2. #2

    Padrão

    Olá....

    (vc fala em aleatoriedade)
    se eu entendi... o que voce deseja é apenas uso simultaneo desses 02 links... ou seja... um "load balancing" com 2 links.

    Existe varias maneiras/metodos/regras para usar 2 ou mais links em conjunto:
    1) separação por protocolo/portas;
    2) separação por IPs origem;
    3) separação "aleatoria" na modalidade "round-robin" usando contadores Nth do mikrotik;

    Qual dos metodos acima voce deseja usar?

    Abraços,

  3. #3

    Padrão

    Olá mson77,

    O que seria mais apropriado para mim é um balanço aleatório, terceira opção, onde cada cliente que se contecta um link diferente assume a carga, eu li sobre isso mas não consegui achar algo que possa me dar um pontapé inicial.

    Agradeço de coração sua ajuda.

  4. #4

    Padrão

    Olá...

    ================
    • vc associou novo usuario a nova conexão: **ERRADO**
    • um usuario X pode gerar novas conexoes a qqr momento... depende de como ele usa o computador dele. Se ele abre um browser... e esse browser/pagina baixa informacoes de 5 dominios... isso irá gerar 5 conexoes distintas... ou seja: conexao tem a ver com IP_source e IP_destino... da camada de enlace.
    ================

    didaticamente falando... a 1ª coisa que voce deve entender para implementar isso é:

    1) entender os contadores Nth do mikrotik: Existem 16 contadores (0-15).
    Esses contadores sao ciclicos... e vc define o tamanho do contador pelo campo "every".
    A contagem se dá pelo trinomio: (every, contador, numero)
    Se every = 1 ==> seu universo é 0,1 (seu caso)
    se every = 2 ==> seu universo é 0,1,2 ....

    Contador... pode ser qqr valor de 0 a 15 ==> que seja 7 (por exemplo)
    Entao... vc terá um round-robin assim: (1,7,0) e (1,7,1)

    Agora....

    /ip firewall mangle

    Na interface do seu hotspot...
    Para cada NEW CONNECTION... com Nth=1,7,0... action MARK CONNECTION = pacote170 (por exemplo)
    • chain=prerouting in-interface=hotspot connection-state=new nth=1,7,0 action=mark-connection new-connection-mark=pacote170 passthrough=yes
    Para cada NEW CONNECTION... com Nth=1,7,1... action MARK CONNECTION = pacote171
    • chain=prerouting in-interface=hotspot connection-state=new nth=1,7,1 action=mark-connection new-connection-mark=pacote171 passthrough=yes
    Dessa forma... **TODAS** as new connections ja estão marcadas.

    Agora para cada connection... faça marcação de ROTAS:
    • chain=prerouting in-interface=hotspot connection-mark=pacote170 action=mark-routing new-routing-mark=pacote170 passthrough=no
    • chain=prerouting in-interface=hotspot connection-mark=pacote171 action=mark-routing new-routing-mark=pacote171 passthrough=no
    Agora... baseado nessas informações da tabela mangle... faça uso do sourceNAT na tabela NAT:
    • chain=srcnat routing-mark=pacote170 action=src-nat to-addresses=<IP_link1> to-ports=0-65535
    • chain=srcnat routing-mark=pacote171 action=src-nat to-addresses=<IP_link2> to-ports=0-65535
    Agora.. faça os roteamentos em /ip route...
    • pacotes com marcacao pacote170 ==> gateway link1
    • pacotes com marcacao pacote171 ==> gateway link2
    • pacotes SEM marcacao alguma ==> gateway link1 (por exemplo) ==> aqui vc fecha o cerco... para conexoes SEM definicao/marcacao... por exemplo as conexoes geradas/iniciadas pelo proprio MK.
    É isso... e se voce gostou... pode visitar a minha lista de desejos abaixo.

    Abraços,
    Última edição por mson77; 18-02-2008 às 11:09.

  5. #5

    Padrão

    Amigo, podemos negociar esse serviço por msn agora?

  6. #6

  7. #7

    Padrão

    mson77, neste caso os dois modens tem que estar roteado certo?

    tem como fazer com um roteado e o outro em bridge?

    nao entendi muito bem qual o cenario a qual aplicasse as regras.

  8. #8

    Padrão

    Ola jhonnyp....



    Nesse caso tem-se um:
    • 01 modem bridge.... e
    • 01 modem roteado...
    pois infelizmente essas 02 conexoes cable-modem estao conectadas a mesma CMTS e o pior... no mesmo gateway.

    Se tivermos 02 IPs (de links) com mesmo gateway... nao conseguiremos fazer load balancing. E a "gambiarra" é usar um modem roteado.

    Abraços,

  9. #9

    Padrão

    foi o que imaginei, dai no teu exemplo ficaria assim?

    o gateway do modem passaria normal, entraria em ip-route,

    e o gateway do modem roteador configurariamos manualmente, usando a marca definida no conection routing.

    só nao estou entendo uma parte amigo, tipo definimos as marcas de routing la no mangle, em link1 e link2 por exemplo.

    no modem roteado da de especificar a marca do routing, mas e na rota no modem bridge como fica?

  10. #10

    Padrão

    ola jhonnyp...


    vamos por partes...
    • 1) nao fui eu quem desenhou o cenário; O cenario ja estava desenhado nesse tópico qdo eu entrei p responder;
    • 2) qto a sua duvida: Para nós nos entendermos... e falar a mesma linguagem... e para que tudo que ai está escrito tambem possa servir para leitura dos **DEMAIS**... pergunto a voce:
    O que é modem bridge... e o que é modem roteado...???
    Me responde isso... e ai eu escreverei as respostas que voce apontou na mensagem imediatamente anterior. Nao me leve a mal... estou fazendo isso **APENAS** para que novos leitores tambem possam compreender e participar.




    Abraços,

  11. #11

    Padrão

    hehe, depois que postei, vi a ignorancia de meu post.

    foi na corrida mesmo, eu tava saindo.

    mas vamos lá.
    o cenario mais comum para loadbalance se parte, de ter 2 links certo(ou mais claro).
    entao no exemplo assim

    Modem bridge ligando a eth1
    ( ou seja só fazendo a ponte, quem disca é o MK)
    Modem Roteado,
    (ele disca e faz o NAT para o MK).

    quando em modo Bridge o MK ganha o IP na interface pppoe-out1 e define-se a rota para o gateway do adsl1,

    o problema sempre esbarra em ... nao é possivel colocar dois links para o mk autenticar, se os dois tiverem o mesmo gateway, o que geralmente ocorre devido a estarem na mesma central adsl.(ate é possivel claro, mas dai nao funciona).

    Certo, sendo assim

    nosso cenario seria assim, eth1 add pppoeclient
    colocase o login e a senha,

    ele conecta e recebe um Ip aleatorio no IP-Adress,
    em ip route, vai aparecer tbem um gateway, que será o padrão da conexao.

    isso é o normal, acredito que uns 80% dos usuarios usem assim.

    dai vem o tao sonhado link2, pq todos querem colocar mais clientes né.

    esse tem que ser roteado, ou seja o modem vai discar e o mk vai se comunicar com o modem, nesse caso

    modem 192.168.0.254. ---- MK 192.168.0.253, entao o gateway desse link para o mk é o IP 192.168.0.254.

    la em route vamos cadastrar o gateway do link 2, porem para o mk saber o que vai sair por onde, temos que fazer a marcação,

    onde entra as regras do colega mson77,

    e funcionam muito bem.

    no gateway do link2 tem que escolher a marca dado por uma marcação, por exemplo

    se La no mangle escolhi de acordo com as regras do mson77 a marca para routing como pacote170, então no gateway a selecionamos,

    certo ficara assim

    ip route,
    add dst-address=0.0.0.0/0 gateway=192.168.0.254 scope=255 target-scope=10 \
    routing-mark=pacote170 comment="" disabled=yes

    poderiamos la no mangle colocar uma marcação mais fácil tipo,link01
    • chain=prerouting in-interface=hotspot connection-mark=link1 action=mark-routing new-routing-mark=link1 passthrough=no
    • chain=prerouting in-interface=hotspot connection-mark=link2 action=mark-routing new-routing-mark=link2 passthrough=no
    • add dst-address=0.0.0.0/0 gateway=192.168.0.254 scope=255 target-scope=10 \
    • routing-mark=link1 comment="" disabled=yes

    sendo assim tudo que tivesse a marca link1 sairia pelo link que esta roteado, o gateway do link é na verdade o ip do modem,


    *************************************

    a minha duvida mson77, foi quanto a marcação do link2, ou melhor, como fazer para o conteúdo da regra que foi marcado como link2.
    como definir o gateway para ele já que não tem como colocar para o gateway do adsl discado pelo mk sair por ele sempre que tiver a marcação link2.

  12. #12

    Padrão

    Olas....



    Vejo que cada caso é um caso... e o meu caso não é igual ao do meu colega e por ai vai.... (muita sofisma, não?).

    Vamos lá...: OS CENARIOS de cada um.
    Para uns... "link" refere-se a ADSL discado pppoe;
    Para outros... "link" refere-se a ADSL nao discado, com IP real;
    Para outros... "link" refere-se a CABLE MODEM com IP dinamico;
    Para outros... "link" refere-se a FIBRA OTICA com roteador Cisco XXXX;
    ... e por ai vai.


    Nosso colega "jhonnyp" refere-se a link ADSL discado PPPoE.
    Cenário esclarecido.
    Esse tópico iniciado pelo "edmar" falava de link CABLE MODEM.

    =========================

    Qto aos LB....
    Deve se considerar SEMPRE:

    • regras na tabela mangle;
    • regras na tabela nat;
    • regras na tabela de roteamento;
    Feito isso... é só descansar pois o telefone não vai mais tocar para reclamação.
    Mas o mson77 nao vai explanar aqui?
    Resposta: Não.
    Veja a URL abaixo:



    Abraços,

  13. #13

    Padrão

    mson77, eu tenho dois load balance por rotas, e 3 por nth, como te falei acima,

    só que quando uso por nth sempre ate hoje deichei os dois modens fazendo o roteamento. uso uns modens melhorzinhos dai, nao dlink. o siemens 4200 guenta legal,

    entao vc falou que dava de fazer com um modem roteado e o outro em bridge.

    isso é bom, porem a unica coisa que nao entendi foi como marcar para o gateway do link que esta no modem adsl em bridge, usar a marca routing, sendo que ele é definido automaticamente.

    acho que nós dois nao estamos nos entendendo hehe.
    é que as vezes escrever é mais dificil do que mostrar né.

    mas to tentando.

    abraços

  14. #14

    Padrão

    Ola jhonnyp....





    bem... **NAO EXISTE MAGICA**

    Qdo achamos que existe mágica... é porque "por trás" algum processo existe para definir uma ação... e essa ação nem sempre é aquela que desejamos que seja.


    (1) Qdo voce define um DHCP CLIENT numa dada interface... observe que existe uma opção perguntando se o DHCP CLIENT deve adicionar um **GATEWAY DEFAULT**.
    • SE estiver marcado... ou seja (SIM)... vai ser adicionado uma rota na tabela /IP ROUTE.
    • SE estiver DESMARCADO... ou seja (NAO)... apenas vai ser adicionado a rede pertinente a esse IP, ou seja ... rede do IP dessa interface... definido pelo DHCP SERVER ... serviço quem gerou configuracao de rede dessa interface.
    ========================

    Qdo vc marca (SIM)... isso **QUEBRA** o esquema de LOAD BALANCING pois a rota (essa nova definida pelo dhcp server) é usada de forma INCONDICIONAL.

    Qdo vc marca (NAO)... voce terá que... (MANUALMENTE)... definir um esquema de roteamento... e DESSA VEZ voce provavelmente irá usar uma informação gerada lá antes.. na tabela MANGLE. Ou seja... irá usar a marcação de routing.

    ========================

    Mas isso BASTA?
    • Resposta: Não.
    Todos os seus pacotes saem com IP do modem1 ou do modem2 para a internet... **ENTÃO** voce deverá fazer uma NAT.

    Existe duas formas de fazer NAT... de fazer a internet achar que tudo sai de um ÚNICO IP... ou nesse caso.. que tudo sai de 02 IPs (02 modems/ 02 links):
    • opção 1: MASQUERADE
    • opção 2: SOURCENAT
    As duas opções acima são parecidas... mas diferente. Diferente em termos de implementação. SE VOCE DESEJAR SABER A DIFERENÇA.... consulte o Google e terá muitas paginas explicando nos mínimos detalhes.

    Assim... como voce está fazendo LB... para cada link que o pacote usar... vc deverá fazer NAT com o IP desse link. Então use SOURCENAT com IP desse link... e isso voce sabe pois está distribuindo **manualmente** o uso dos links conforme marcação dos pacotes na tabela MANGLE.

    Ou seja... se os pacotes tiverem marcacao X... faça sourceNAT comm IP_X pois voce usrá o gateway_X... e obviamente tudo dnetro do mesmo contexto... ou seja... contexto atribuido pelo DHCP SERVER... da interface onde vc definiu como DHCP CLIENT.


    Espero ter esclarecido tudo.

    Olá todos que ai lêem...
    Eu te acrescentei algo? Tornei você um ser mais bem capacitado?
    • Agora... me deixe feliz fazendo uma visitinha a minha lista de desejos da Livraria Cultura e ... escolha um presente para mim.
      • CONTO COM VOCÊ.
    Abraços,

  15. #15

    Cool Olá, Tdo bem ?

    Eu entendi sua explicação, mas na versão 3.7 como funcionaria isso ?
    Obrigado e parabéns pela iniciativa !