Last modified by Jean Franco on 2023/06/28 17:52

Show last authors
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
21 * Uma lista de IPs internos utiliza uma rota e uma outra lista utiliza a segunda rota.
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
39 **Conexão:**
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
45 **Mangle:**
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
51 **Rotas:**
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
59 **Topologia:**
60
61 Internet - ISP 1  Internet - ISP 2
62
63 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-  ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
64
65 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
66
67 ~| |
68
69 Roteador
70
71 {{code language="none"}}
72 /interface ethernet
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
76 add address=1.1.1.2/24 interface=ISP_1
77 add address=2.2.2.3/24 interface=ISP_2
78 /ip firewall nat
79 add action=masquerade chain=srcnat out-interface=ISP_1
80 add action=masquerade chain=srcnat out-interface=ISP_2
81 {{/code}}
82
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}}
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