You are on page 1of 4

PCC LOADBALANCE - 3 LINKS SIMTRICOS (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
Endereos 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 explanaes sobre o sistema PCC
Em mangle
add action=accept chain=prerouting comment="SEM BALANCE" disabled=no dstaddress-list=sem_balance in-interface=EthClientes
esta primera regra aceita as conexes para todos os ips de destino que se
encontrarem na lista 'sem_balance' que iro sair pela rota padro
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 conexes 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 marcaes (conn_na, conn_nb, conn_nc) para criar as marcaes
das respectivas rotas (to_ra, to_rb, to_rc)

add action=mark-connection chain=prerouting comment="" disabled=no dstaddress-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 dstaddress-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 dstaddress-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 so 3) na interface de
clientes criamos novas marcas de conexo (conn_ma0, conn_mb1,
conn_mc2), notem que se tivessemos 4 links seria aquie que fariamos as
alteraes para (0,1,2,3 e portanto so 4) ficando 4/0, 4/1, 4/2, 4/3 ou
ainda se tivessemos links assimtricos onde por exemplo:
LinkX de 512k
LinkY de 1024k
LinkZ de 2048k
somariamos todos os links e dividiriamos pelo valor do menor link ento
teriamos 3584k/512k=7 ento teriamos 7 marcaes 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
no garantem a banda e portanto devemos fazer testes em cada um dos
links para aferir as velocidades possveis 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, tambm se deve criar as marcaes
para input e output.
add action=mark-routing chain=prerouting comment="" connectionmark=conn_ma0 disabled=no in-interface=EthClientes new-routing-mark=to_nra
passthrough=no
add action=mark-routing chain=prerouting comment="" connectionmark=conn_mb1 disabled=no in-interface=EthClientes new-routing-mark=to_nrb
passthrough=no
add action=mark-routing chain=prerouting comment="" connectionmark=conn_mc2 disabled=no in-interface=EthClientes new-routing-mark=to_nrc
passthrough=no
utilizando das novas marcaes (conn_ma0, conn_mb1, conn_mc2)
criamos uma nova marcao 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 outinterface=EthLinkB
add action=masquerade chain=srcnat comment="" disabled=no outinterface=EthLinkC
vale resaltar que o mascaramento pode ser feito de vrias 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 padro 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 possvel fazer com que o prprio Mikrotik ROS disque as conexes
do tipo ADSL aumentando a eficincia do sistema (MODENS EM BRIDGE),
sendo que neste caso recomendado fazer o mascaramento por range de
ips e no por interface e a indicao dos gateways por interface e no por
ip, no caso de links dedicados recomendvel fazer a indicao do ip do
gateway e no 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 relao 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 mtodo utilizado pode ocorrer desigualdade entre os
consumos dos links apesar de as marcaes estarem corretas, isso porque
o sistema leva em considerao 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 relgio do seu sistema em sincronia com UTC para
automao de tarefas e registro de logs.

You might also like