Página 1 de 26 123456 ... ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão PCC Balance de 3 a 16 links - Por: M4D3

    PCC LOADBALANCE - 3 LINKS SIMÉTRICOS (TESTADO DE 2 ATÉ 16 LINKS)
    MKV: 3.x
    MKR: 3.28

    EthLinkA = Interface do primeiro link
    EthLinkB = Interface do segundo link
    EthLinkC = Interface do terceiro link
    EthClientes = Interface dos clientes

    Quando em modo roteado:
    10.1.10.129 = Ip do modem A
    10.1.10.161 = Ip do modem B
    10.1.10.193 = Ip do modem C

    Endereços das interfaces no Mikrotik ROS
    10.1.10.130/27 = Ip da interface EthLinkA
    10.1.10.162/27 = Ip da interface EthLinkB
    10.1.10.194/27 = Ip da interface EthLinkC

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

    Vamos as regras e explanações sobre o sistema PCC

    Em mangle
    add action=accept chain=prerouting comment="SEM BALANCE" disabled=no dst-address-list=sem_balance in-interface=EthClientes
    esta primera regra aceita as conexões para todos os ips de destino que se encontrarem na lista 'sem_balance' que irão sair pela rota padrão

    add action=mark-connection chain=input comment="" connection-state=new disabled=no in-interface=EthLinkA new-connection-mark=conn_na passthrough=yes
    add action=mark-connection chain=input comment="" connection-state=new disabled=no in-interface=EthLinkB new-connection-mark=conn_nb passthrough=yes
    add action=mark-connection chain=input comment="" connection-state=new disabled=no in-interface=EthLinkC new-connection-mark=conn_nc passthrough=yes
    cria as marcas (conn_na, conn_nb, conn_nc) para novas conexões em cada uma das interfaces (EthLinkA, EthLinkB, EthLinkC)

    add action=mark-routing chain=output comment="" connection-mark=conn_na disabled=no new-routing-mark=to_ra passthrough=no
    add action=mark-routing chain=output comment="" connection-mark=conn_nb disabled=no new-routing-mark=to_rb passthrough=no
    add action=mark-routing chain=output comment="" connection-mark=conn_nc disabled=no new-routing-mark=to_rc passthrough=no
    utiliza as marcações (conn_na, conn_nb, conn_nc) para criar as marcações das respectivas rotas (to_ra, to_rb, to_rc)

    add action=mark-connection chain=prerouting comment="" disabled=no dst-address-type=!local in-interface=EthClientes new-connection-mark=conn_ma0 passthrough=yes per-connection-classifier=both-addresses:3/0
    add action=mark-connection chain=prerouting comment="" disabled=no dst-address-type=!local in-interface=EthClientes new-connection-mark=conn_mb1 passthrough=yes per-connection-classifier=both-addresses:3/1
    add action=mark-connection chain=prerouting comment="" disabled=no dst-address-type=!local in-interface=EthClientes new-connection-mark=conn_mc2 passthrough=yes per-connection-classifier=both-addresses:3/2

    agora utilizando os classificadores (0,1,2 e portanto são 3) na interface de clientes criamos novas marcas de conexão (conn_ma0, conn_mb1, conn_mc2), notem que se tivessemos 4 links seria aquie que fariamos as alterações para (0,1,2,3 e portanto são 4) ficando 4/0, 4/1, 4/2, 4/3 ou ainda se tivessemos links assimétricos onde por exemplo:

    LinkX de 512k
    LinkY de 1024k
    LinkZ de 2048k

    somariamos todos os links e dividiriamos pelo valor do menor link então teriamos 3584k/512k=7 então teriamos 7 marcações de pcc indo de 7/0 até 7/6 das quais devemos direcionar a primeira pro link X, a segunda e terceira pro link Y e as quatro restantes para o link Z fazendo nosso sistema perfeitamente equilibrado, vale resaltar que sistemas do tipo ADSL não garantem a banda e portanto devemos fazer testes em cada um dos links para aferir as velocidades possíveis em cada um, já vi muitos casos onde um link desse tipo de 2Mb era melhor do que o de 4Mb da mesma operadora instalada no mesmo local, também se deve criar as marcações para input e output.


    add action=mark-routing chain=prerouting comment="" connection-mark=conn_ma0 disabled=no in-interface=EthClientes new-routing-mark=to_nra passthrough=no
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_mb1 disabled=no in-interface=EthClientes new-routing-mark=to_nrb passthrough=no
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_mc2 disabled=no in-interface=EthClientes new-routing-mark=to_nrc passthrough=no
    utilizando das novas marcações (conn_ma0, conn_mb1, conn_mc2) criamos uma nova marcação de rota na interface de clientes como (to_nra, to_nrb, to_nrc)

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

    Em nat
    add action=masquerade chain=srcnat comment="MASCARAMENTO PCC" disabled=no out-interface=EthLinkA
    add action=masquerade chain=srcnat comment="" disabled=no out-interface=EthLinkB
    add action=masquerade chain=srcnat comment="" disabled=no out-interface=EthLinkC
    vale resaltar que o mascaramento pode ser feito de várias formas, indicando por exempo o ip da interface em src-nat, pela range de ips dos clientes e pela interface do link como acima.

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

    Em rotas
    add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.1.10.129 scope=30 target-scope=10
    add comment="" disabled=no distance=3 dst-address=0.0.0.0/0 gateway=10.1.10.161 scope=30 target-scope=10
    add comment="" disabled=no distance=4 dst-address=0.0.0.0/0 gateway=10.1.10.193 scope=30 target-scope=10
    definimos 3 rotas padrão sendo que cada uma tem um custo diferente e portanto a primeira terá a preferencia, caso venha a faltar a segunda assume, em seguida a terceira

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.1.10.129 routing-mark=to_nra scope=30 target-scope=10
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.1.10.161 routing-mark=to_nrc scope=30 target-scope=10
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.1.10.193 routing-mark=to_nrb scope=30 target-scope=10
    em seguida todas as 3 rotas que utilizam marca de rotas (to_nra, to_nrb, to_nrc) dividem a carga que foi previamente marcada pelo mangle

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

    Ainda é possível fazer com que o próprio Mikrotik ROS disque as conexões do tipo ADSL aumentando a eficiência do sistema (MODENS EM BRIDGE), sendo que neste caso é recomendado fazer o mascaramento por range de ips e não por interface e a indicação dos gateways por interface e não por ip, no caso de links dedicados é recomendável fazer a indicação do ip do gateway e não da interface.

    Em nat
    add action=masquerade chain=srcnat src-address=10.0.0.0/24 comment="MASCARAMENTO PCC" disabled=no

    Em rotas
    add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=EthLinkA scope=30 target-scope=10
    add comment="" disabled=no distance=3 dst-address=0.0.0.0/0 gateway=EthLinkB scope=30 target-scope=10
    add comment="" disabled=no distance=4 dst-address=0.0.0.0/0 gateway=EthLinkC scope=30 target-scope=10
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=EthLinkA routing-mark=to_nra
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=EthLinkB routing-mark=to_nrb
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=EthLinkC routing-mark=to_nrc

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

    Com relação ao usar o check ping, devemos tomar um certo cuidado pois links de diferentes tipos tendem a ter diferentes tempos de resposta ao ping e quando este método é utilizado pode ocorrer desigualdade entre os consumos dos links apesar de as marcações estarem corretas, isso porque o sistema leva em consideração o tempo de resposta de cada gateway.

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

    Dica:
    /system ntp client
    set enabled=yes mode=unicast primary-ntp=a.ntp.br
    set enabled=yes mode=unicast secondary-ntp=b.ntp.br
    importante manter o relógio do seu sistema em sincronia com UTC para automação de tarefas e registro de logs.

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

    Complemento:
    utilize sofware Mikrotik ROS original, quando você utiliza um sofware Mikrotik ROS original, esta contribuindo para o desenvolvimento de novas e importantes ferramentas como é o caso do PCC e tantas outras melhorias incorporadas.

    Licença Mikrotik Level 4 - Até 200 usuários simultâneos ~ R$ 110,00
    Licença Mikrotik Level 5 - Até 500 usuários simultâneos ~ R$ 210,00
    Licença Mikrotik Level 6 - Ilimitados usuários simultâneos ~ R$ 510,00
    valores em reais em 29/08/2009 - onde encontrar:> http://www.mikrotikbrasil.com.br

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

    Fonte:
    https://under-linux.org/f128610-pcc
    PCC - MikroTik Wiki
    http://forum.mikrotik.com/viewtopic....31415&start=50

    Agradecimentos:
    normis, NetworkPro, Chupaka, omega-00, tiagom, andre

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

    Compilado por:
    Última edição por m4d3; 31-08-2009 às 20:11.

  2. #2

    Padrão

    Show, muuitoo massaaa!!! Obrigado!!!

  3. #3

  4. #4

    Padrão Bridge

    Bom pessoal to precisando de uma referência pra esse load balance em PCC só que com os modems em Bridge !


    Alguém sabe ou jah conseguiu ???

  5. #5

  6. #6

    Padrão

    Citação Postado originalmente por admskill Ver Post
    Bom pessoal to precisando de uma referência pra esse load balance em PCC só que com os modems em Bridge !


    Alguém sabe ou jah conseguiu ???
    Já, se você ler com atenção o que escrevi acima vai ver que o exemplo é citado e completo.


    Abraço
    Última edição por m4d3; 29-08-2009 às 13:15.

  7. #7

    Padrão

    Citação Postado originalmente por FernandodeDeus Ver Post
    Não funciona com 2 links?

    Funciona perfeitamente, no exemplo acima vai encontrar detalhado como fazer o balanceamento inclusive para links assimétricos.

  8. #8

    Padrão

    Citação Postado originalmente por m4d3 Ver Post

    Agradecimentos:
    normis, NetworkPro, Chupaka, omega-00, tiagom, andre

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

    Compilado por:
    Ola m4d3, tiagom no forum intermacional sou eu obrigado por lembrar da gente, seu howto ficou bem explicadinho, mas mesmo assim vai ter muitas perguntas da galera.

    abraços e felicidades para você

  9. #9

    Padrão

    Olá m4d3 e tiagom, Sabem dizer se na versao 3.28 ja melhoraram a parte do both adr. e ports ou ainda continua dando aqueles probleminhas no qual nos força a usar somente o both adr.

    Valeu
    T+

  10. #10

    Padrão

    Citação Postado originalmente por tiagomatias Ver Post
    Ola m4d3, tiagom no forum intermacional sou eu obrigado por lembrar da gente, seu howto ficou bem explicadinho, mas mesmo assim vai ter muitas perguntas da galera.

    abraços e felicidades para você
    Verdade e ai vai a minha pergunta hehehe to usando a um mez ja o balance PCC com 3 links de 2mb tudo tranquilo por aki so que aconteceu 3 X ja das placas de rede mudarem seus ips de lugar tipo o ip da wan 1 passou pra 3 da 3 pra 2 e assim foi os ips mudaram de lugar e ja aconteceu 3 X alguma luz ai pra nois a respeito uso o MK v. 3,28 em maquina separada do MK controle

  11. #11

    Padrão pcc

    Luciano parabens pelo tutorial pra galera que precisa de explicações para poder enteder o funcionamento ficou bacana e bem explicado.

  12. #12

    Padrão

    Parabens ao post!Realmente muito bem explicativo e 100% funcional.Testamos com 2 links tambem e funciona perfeitamente.

    Show de bola!

  13. #13

    Padrão

    Passou despercebido na hora da publicação, removido o 'ports' ficando apenas o address na marcação, tiagom e aprinou é um prazer tê-los por aqui, demais participantes também, na medida do possível vamos respondendo as dúvidas que forem surgindo enquanto for possível pelo primeiro post. Com relação a troca de ips não tive o problema, não posso falar pelos outros, com relação a uso em bridge fica perfeito também.

    Abraço a todos.

  14. #14

    Padrão

    olá, implemente este exemplo de balanço com dois ADSL e parece que esta trabalhando bem, minha pergunta agora é como se pode fazer o fail over com PCC utilizando os modems adsl em modo ruteador

    saludos

  15. #15
    vmh0909
    Visitante

    Padrão

    Ola M4D3, Parabéns pelo tutorial, muito bom mesmo, me ajudou a entender o funcionamento do PCC.
    Mas estou com um probleminha e quem sabe os universitarios podem me ajudar.

    implantei o PCC com hotspot em dois links de 10Mb um da NetVirtua e um da gvt, com um roteador na ponta de cada link antes do MK funciona muito bem com hotspot, porem ao eliminar estes roteadores e deixando os modens em bridge não tem jeito de fazer funcionar.

    vou detalhar bem como eu fiz para ver se podem me ajudar.

    RB 450G com MK 3.28

    Link1 - netvirtua = ether1
    Link2 - GVT bridge = ether2
    Clientes - hotspot = ether4

    /ip dhcp-client
    add add-default-route=yes comment="" default-route-distance=0 disabled=no \
    interface=ether1 use-peer-dns=yes use-peer-ntp=yes
    add add-default-route=yes comment="" default-route-distance=0 disabled=no \
    interface=ether2 use-peer-dns=yes use-peer-ntp=yes

    /ip dns
    set allow-remote-requests=no cache-max-ttl=1w cache-size=2048KiB \
    max-udp-packet-size=512 primary-dns=189.38.95.95 secondary-dns=\
    189.4.64.17

    /ip firewall mangle
    add action=accept chain=prerouting comment="SEM BALANCE" disabled=no \
    dst-address-list=sem_balance in-interface=ether4
    add action=mark-connection chain=input comment="" connection-state=new \
    disabled=no in-interface=ether1 new-connection-mark=conn_na passthrough=\
    yes
    add action=mark-connection chain=input comment="" connection-state=new \
    disabled=no in-interface=ether2 new-connection-mark=conn_nb passthrough=\
    yes
    add action=mark-routing chain=output comment="" connection-mark=conn_na \
    disabled=no new-routing-mark=to_ra passthrough=no
    add action=mark-routing chain=output comment="" connection-mark=conn_nb \
    disabled=no new-routing-mark=to_rb passthrough=no
    add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=ether4 new-connection-mark=conn_ma0 \
    passthrough=yes per-connection-classifier=both-addresses:2/0
    add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=ether4 new-connection-mark=conn_mb1 \
    passthrough=yes per-connection-classifier=both-addresses:2/1
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_ma0 \
    disabled=no in-interface=ether4 new-routing-mark=to_nra passthrough=no
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_mb1 \
    disabled=no in-interface=ether4 new-routing-mark=to_nrb passthrough=no

    /ip route
    add comment="" disabled=no distance=3 dst-address=0.0.0.0/0 gateway=ether2
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether1 \
    routing-mark=to_nra
    add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=ether1
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether2 \
    routing-mark=to_nrb

    /ip firewall nat
    add action=masquerade chain=srcnat comment=HOTSPOT disabled=no src-address=\
    10.5.50.0/16

    bem é isso, não vou adicionar as regras do hotspot pois eu configuro ele padrão seguindo o winbox.

    se alguem puder me ajudar eu agradeço muito, pois ja estou quebrando a cabeça fazem algumas semanas e não consegui resolver.

    um Grande abraço a todos.

  16. #16

    Padrão erro /ip route

    Bom dia amigo, ja tive o mesmo problema e vou te explicar o que acontece: Não podemos colocar como gateway-interface uma interface ethernet (ether1, ether2). Colocar o gateway como interface, só funciona para interfaces ponto-a-ponto (ppp-client, pppoe-client, etc). No caso as interfaces ethernet sao interfaces broadcast portanto nao funciona colocando as mesmas como gateway diretamente.
    No caso do Virtua, nao tem oq fazer... só um roteador na frente mesmo, no caso do GVT é só colocar o modem em bridge, criar um pppoe-client no mikrotik, e no /ip route , colocar a interface como sendo esse pppoe-client. Faça como no exemplo abaixo (ja testado em outras ocasioes e funcionando muito bem), supondo que 192.168.0.1 seja o ip do roteador que recebe o virtua, e o virtua seja a rota padrao do sistema:

    # RB 450G com MK 3.28

    # Link1 - netvirtua = ether1
    # Link2 - GVT bridge = pppoe-out1
    # Clientes - hotspot = ether4
    # Substitua o user e password do pppoe-client conforme as nescessidades

    /interface pppoe-client
    add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 comment="" dial-on-demand=no disabled=no interface=\
    ether2 max-mru=1480 max-mtu=1480 mrru=disabled name=pppoe-out1 password=12345678 profile=default service-name="" \
    use-peer-dns=no [email protected]

    /ip address
    add address=192.168.0.2/24 broadcast=192.168.0.255 comment="" disabled=no interface=ether1 network=192.168.0.0

    /ip dns
    set allow-remote-requests=yes cache-max-ttl=1w cache-size=4096KiB \
    max-udp-packet-size=512 primary-dns=189.38.95.95 secondary-dns=\
    189.38.95.96

    /ip firewall mangle
    add action=accept chain=prerouting comment="SEM BALANCE" disabled=no \
    dst-address-list=sem_balance in-interface=ether4
    add action=mark-connection chain=input comment="" connection-state=new \
    disabled=no in-interface=ether1 new-connection-mark=conn_na passthrough=\
    yes
    add action=mark-connection chain=input comment="" connection-state=new \
    disabled=no in-interface=ether2 new-connection-mark=conn_nb passthrough=\
    yes
    add action=mark-routing chain=output comment="" connection-mark=conn_na \
    disabled=no new-routing-mark=to_ra passthrough=no
    add action=mark-routing chain=output comment="" connection-mark=conn_nb \
    disabled=no new-routing-mark=to_rb passthrough=no
    add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=ether4 connection-state=new new-connection-mark=conn_ma0 \
    passthrough=yes per-connection-classifier=both-addresses:2/0
    add action=mark-connection chain=prerouting comment="" disabled=no \
    dst-address-type=!local in-interface=ether4 connection-state=new new-connection-mark=conn_mb1 \
    passthrough=yes per-connection-classifier=both-addresses:2/1
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_ma0 \
    disabled=no in-interface=ether4 new-routing-mark=to_ra passthrough=no
    add action=mark-routing chain=prerouting comment="" connection-mark=conn_mb1 \
    disabled=no in-interface=ether4 new-routing-mark=to_rb passthrough=no

    /ip firewall nat
    add action=masquerade chain=srcnat out-interface=ether1 comment="NAT" disabled=no
    add action=masquerade chain=srcnat out-interface=pppoe-out1 disabled=no

    /ip route
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.1
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.1 \
    routing-mark=to_ra
    add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=pppoe-out1
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1 \
    routing-mark=to_rb

  17. #17

    Padrão

    Ótimo post, show de bola, esse vai pros meus Favoritos!

    Abraços!

  18. #18

    Padrão

    Fiz a configuração, porem, notei que os links não "somam".
    Cenario:

    Link dedicado 2MB.
    ADSL ip valido e fixo 6MB.

    Após essas configurações (modifiquei de acordo com minha necessidade), qdo eu adicionei as 2 rotas, uma delas ficou em azul (segunda rota, do link adsl, é normal?
    Qdo executo um download, o mesmo não passa dos 2mb, ou seja, velocidade do primeiro link.
    No momento do donwload, eu verifico na interface da ADSL, que a mesma continua com pouquissimo trafego.
    Disparei entao 2 downloads e o mm também não passaram de 2mb juntos.

  19. #19

    Padrão

    Citação Postado originalmente por skullred Ver Post
    Fiz a configuração, porem, notei que os links não "somam".
    Cenario:

    Link dedicado 2MB.
    ADSL ip valido e fixo 6MB.

    Após essas configurações (modifiquei de acordo com minha necessidade), qdo eu adicionei as 2 rotas, uma delas ficou em azul (segunda rota, do link adsl, é normal?
    Qdo executo um download, o mesmo não passa dos 2mb, ou seja, velocidade do primeiro link.
    No momento do donwload, eu verifico na interface da ADSL, que a mesma continua com pouquissimo trafego.
    Disparei entao 2 downloads e o mm também não passaram de 2mb juntos.
    Boa tarde skullred,

    Primeiro, esse balanceamento não soma o link, como o proprio nome diz ele BALANCEIA a carga entre os links configurados. Ele não vai somar os links quando fizer um download.
    Segunddo, sobre as rotas algumas ficarem em azul é normal, quando se tem mais de uma rota padrão com distancias diferentes sempre as que estão com distancias maiores ficam como backup, pelo q vi é novo em mikrotilk, te aconcelho a ler sobre ECMP, FailOver, esse material existe no site da milrotil.com e alguns aqui no forum.

    espero ter esclarecidos as coisas para vc

    abraços

  20. #20
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.412
    Posts de Blog
    10

    Thumbs up M4D3 - Luciano

    Bom não poderia deixar de dar os parabéns e elogiar o nosso amigo Luciano pelo exelente tutorial.