Última modificação por Jean Franco em 2023/06/28 17:52

Hide last authors
Jean Franco 1.1 1 **Motivo:**
2
3 Prover um balanceamento entre os links e certamente redundância.
4
5 **Tipos de Balanceamento:**
6
7 - Bonding
8
9 - Policy Route
10
11 - PCC
12
13 - Por banda
14
15 **Bonding:**
16
17 * Utiliza a tecnologia 802.3ad LACP e ambos os lados necessitam utilizar o mesmo tipo de equipamento para evitar compatibilidades.
18
19 **Policy Routing:**
20
Jean Franco 5.1 21 * Uma lista de IPs internos utiliza uma rota e uma outra lista utiliza a segunda rota.
Jean Franco 1.1 22 * Não é dinâmico
23
24 **PCC (Per Connection Classifier):**
25
26 * Escalável e estável, mas não faz balanceamento.
27
28 **Por banda:**
29
30 * Escalável
31 * Utiliza o link status como gatilho
32 * Controle sobre as conexões
33 * Pode usar links com diferentes velocidades
34
35 ----
36
37 Definido o tipo de balanceamento, vamos trabalhar.
38
Jean Franco 5.1 39 **Conexão:**
Jean Franco 1.1 40
41 Um pacote originado de uma origem precisa retornar para esta origem. Chamamos de Stream.
42
43 No caso de uma conexão UDP, UDP stream.
44
Jean Franco 5.1 45 **Mangle:**
Jean Franco 1.1 46
47 Uma facilidade do ROS que permite que as conexões sejam "marcadas" e então ser utilizadas para um propósito.
48
49 Essas marcas não saem do roteador, ficam localmente.
50
Jean Franco 5.1 51 **Rotas:**
Jean Franco 1.1 52
53 Tabelas para onde o roteador encaminha os pacotes.
54
55 Por padrão todos os pacotes no Mikrotik são direcionadas para a tabela "main".
56
57 Podemos criar nossas tabelas manualmente e direcionar os pacotes para essas novas rotas.
58
Jean Franco 5.1 59 **Topologia:**
Jean Franco 1.1 60
61 Internet - ISP 1  Internet - ISP 2
62
63 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-  ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
64
65 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
66
67 ~| |
68
69 Roteador
70
Jean Franco 3.1 71 {{code language="none"}}
72 /interface ethernet
Jean Franco 2.1 73 set 0 name=LAN
74 set 3 name=ISP_1 set 4 name=ISP_2
75 /ip address add address=192.168.22.1/24 interface=LAN
Jean Franco 3.1 76 add address=1.1.1.2/24 interface=ISP_1
77 add address=2.2.2.3/24 interface=ISP_2
Jean Franco 2.1 78 /ip firewall nat
79 add action=masquerade chain=srcnat out-interface=ISP_1
Jean Franco 3.1 80 add action=masquerade chain=srcnat out-interface=ISP_2
81 {{/code}}
Jean Franco 1.1 82
Jean Franco 3.1 83 Neste exemplo, estamos configurando o ISP_1 e ISP_2 com IPs estáticos. Criamos as regras de mascaramento de cada um.
84
85 Agora para a parte de Roteamento:
86
87 {{code language="none"}}
88 /ip route
89 add gateway=1.1.1.1 distance=1
90 add gateway=2.2.2.1 distance=2
91 add gateway=1.1.1.1 routing-mark=ISP1_Route distance=1
92 add gateway=2.2.2.1 routing-mark=ISP2_Route distance=1
93 {{/code}}
Jean Franco 4.1 94
95 Adicionamos ambos os gateways, com pesos diferentes e também criamos distâncias diferentes para o failover.
96
97 {{code language="none"}}
98 /ip firewall address-list
99 add address=1.1.1.0/24 list=Conectado
100 add address=2.2.2.0/24 list=Conectado
101 add address=192.168.22.0/24 list=Conectado
102 add address=192.168.22.0/24 list=LAN
103 {{/code}}
104
105 Para evitar a perda de contato entre as redes, precisamos criar listas de conexões. Criamos portanto a lista Conectado
106
107 {{code language="none"}}
108 /ip firewall mangle
109 add chain=prerouting src-address-list=Conectado
110 dst-address-list=Connected action=accept
111 {{/code}}
112
113 Deste modo temos a conexão do roteador para fora, a conexão da WAN para LAN e da LAN para WAN.
114
115 Quando a conexão vier da WAN precisamos certificar de que o pacote irá sair pela mesma interface que entrou.
116
117 Vamos marcar os pacotes:
118
119 {{code language="none"}}
120 /ip firewall mangle
121 add chain=input connection-mark=no-mark in-interface=ISP_1
122 action=mark-connection new-connection-mark=ISP_1-LAN
123 add chain=input connection-mark=no-mark in-interface=ISP_2
124 action=mark-connection new-connection-mark=ISP2-LAN
125 {{/code}}
126
127 Agora adicionamos na tabela:
128
129 {{code language="none"}}
130 add chain=output connection-mark=ISP_1-LAN
131 action=mark-routing new-routing-mark=ISP1_Route
132 add chain=output connection-mark=ISP_2-LAN
133 action=mark-routing new-routing-mark=ISP2_Route
134 {{/code}}
135
136 O mesmo para a LAN:
137
138 {{code language="none"}}
139 /ip firewall mangle
140 add chain=forward connection-mark=no-mark in-interface=ISP_1
141 action=mark-connection new-connection-mark=WAN1->LANs
142 add chain=forward connection-mark=no-mark in-interface=ISP_2
143 action=mark-connection new-connection-mark=WAN2->LANs
144 add chain=prerouting connection-mark=WAN1->LANs src-address-list=LAN
145 action=mark-routing new-routing-mark=ISP1_Route
146 add chain=prerouting connection-mark=WAN2->LANs src-address-list=LAN
147 action=mark-routing new-routing-mark=ISP2_Route
148 {{/code}}
149
150 Entrada pronta, agora a parte da LAN.
151
152 {{code language="none"}}
153 /ip firewall mangle
154 add chain=prerouting connection-mark=no-mark src-address-list=LAN dst-addresslist=!Conectado dst-address-type=!local action=mark-connection
155 new-connection-mark=LAN->WAN
156 add chain=prerouting connection-mark=LAN->WAN src-address-list=LAN
157 action=mark-routing new-routing-mark=ISP1_Route
158 comment="Load-Balance"
159 {{/code}}
160
161 Precisamos desta regra pois quando trocarmos de link, vai trocar também por onde saem os links.
162
163 {{code language="none"}}
164 add chain=prerouting connection-mark=LAN->WAN routing-mark=ISP1_Route
165 action=mark-connection new-connection-mark=Sticky_ISP1
166 add chain=prerouting connection-mark=LAN->WAN routing-mark=ISP2_Route
167 action=mark-connection new-connection-mark=Sticky_ISP2
168 add chain=prerouting connection-mark=Sticky_ISP1 src-address-list=LAN
169 action=mark-routing new-routing-mark=ISP1_Route
170 add chain=prerouting connection-mark=Sticky_ISP2 src-address-list=LAN
171 action=mark-routing new-routing-mark=ISP2_Route
172 {{/code}}
173
174 Estas regras resolvem o problema de iniciar a conexão por um provedor e tentar usar outro provedor depois, muito importante especialmente para acesso a bancos.
Maila Networks