Este tutorial explica como utilizar o recurso Horizon para isolar o tráfego dentro de uma Bridge. Isso é essencial quando você tem caminhos redundantes ou múltiplos links que podem causar tempestades de broadcast.
Imagine a Bridge como uma sala com várias portas. Por padrão, se alguém grita em uma porta, o som sai por todas as outras. Ao colocar o mesmo número de Horizon em duas portas, você cria uma parede entre elas: elas continuam ouvindo a "sala" (Bridge), mas não ouvem uma à outra.
Identifique quais interfaces não devem trocar dados entre si. Exemplos comuns:
Dois links de rádio que conectam os mesmos dois pontos.
Vários túneis (EoIP, VPLS, OpenVPN) que chegam na mesma Bridge.
Portas de clientes em um provedor (onde um cliente não deve ver o tráfego do vizinho).
Acesse o menu Bridge na barra lateral esquerda.
Vá até a aba Ports. Aqui você verá todas as interfaces que estão "escravizadas" pela Bridge.
Abra a interface suspeita: Clique duas vezes na primeira porta que você deseja isolar (Ex: ether1 ou vlan-link-A).
Defina o Grupo de Horizonte: Na aba General, localize o campo Horizon.
Digite um número inteiro (Ex: 1).
Repita nas outras portas: Vá em todas as outras interfaces que fazem parte do "caminho de risco" e coloque o mesmo número (Ex: 1).
Regra de Ouro: Interfaces com o mesmo valor de Horizon não conversam entre si. Interfaces com Horizon 0 (padrão) conversam com todo mundo.
Enquanto o Horizon impede o tráfego lógico, o Loop Protect age como um disjuntor caso um loop físico ocorra (ex: um cabo ligado nas duas pontas de um switch).
Vá no menu Interfaces.
Selecione a interface física.
Na aba Loop Protect, altere para on.
No campo Send Interval, defina 00:00:05 (5 segundos).
Se um loop for detectado, o MikroTik colocará a porta em estado disabled automaticamente, protegendo o processamento do roteador.
Certifique-se de que a Bridge está monitorando a topologia:
Vá em Bridge -> aba Bridge.
Clique duas vezes na sua Bridge.
Na aba STP, verifique se o Protocol Mode está como rstp.
Isso permite que o MikroTik eleja uma "Root Bridge" e bloqueie portas redundantes de forma automática se necessário.
Recurso
Quando usar?
O que ele faz?
Horizon
Túneis, VPLS, Rádios e Redes de Clientes.
Impede que pacotes de uma porta saiam pela outra.
Loop Protect
Portas de acesso e cabos físicos.
Desliga a porta se detectar o próprio pacote voltando.
RSTP
Em toda a Bridge.
Organiza a hierarquia da rede e evita loops de switches.
Log: O erro bridge RX looped packet deve desaparecer.
CPU: O uso de CPU deve estabilizar (loops geralmente causam picos de 100%).
Torch: Use a ferramenta Tools -> Torch na interface. Se você vir muito tráfego de "Broadcast" ou "Multicast" sem parar, o loop ainda pode existir em outra parte da rede.
Para criar um sistema de alerta eficiente, vamos utilizar o Logging Action do MikroTik. Em vez de um script que fica rodando o tempo todo (o que consome CPU), vamos configurar o roteador para disparar um script somente no instante exato em que o loop-protect detectar o problema.
Antes de tudo, o seu MikroTik precisa conseguir enviar e-mails.
Vá em Tools -> Email.
Configure o servidor (Ex: Gmail, Outlook ou seu SMTP próprio).
Faça um teste clicando em Send Email para garantir que está funcionando.
Este script será o responsável por montar a mensagem e enviar.
Vá em System -> Scripts.
Clique no + e dê o nome de alerta-loop.
No campo Source, cole o código abaixo (mascarei os nomes para o seu tutorial):
:local Identidade [/system identity get name];
:local Data [/system clock get date];
:local Hora [/system clock get time];
/tool e-mail send to="seu-email@dominio.com" \
subject="ALERTA: Loop Detectado em $Identidade" \
body="O recurso Loop Protect foi ativado no roteador $Identidade.\n\nUma porta foi desativada para proteger a rede.\nData: $Data\nHora: $Hora\n\nVerifique os Logs do Winbox para identificar a interface exata."
Clique em OK.
Agora vamos fazer o MikroTik "ler" o log e executar o script acima quando a frase do Loop Protect aparecer.
Vá em System -> Logging.
Vá na aba Actions e clique no +.
Name: disparar-script
Type: echo (isso fará o log "ecoar" para um comando).
Remember: marcado.
Vá na aba Rules e clique no +.
Topics: critical (o loop protect gera alertas críticos).
Prefix: (deixe em branco ou coloque loop-protect).
Action: selecione disparar-script.
Para que a Action echo execute o script, precisamos rodar esse comando rápido no New Terminal:
/system logging action set disparar-script remember=yes on-logging-exec="/system script run alerta-loop"
O Evento: Um loop físico ocorre.
A Proteção: O Loop Protect detecta e gera um log crítico: "loop-protect: interface etherX disabled".
O Gatilho: O sistema de Logging percebe a mensagem crítica e chama o script alerta-loop.
O Alerta: Você recebe o e-mail em segundos informando qual roteador teve o problema.
Se você preferir usar Telegram, basta trocar a linha do /tool e-mail no script pelo comando do Bot do Telegram:
/tool fetch url="https://api.telegram.org/botTOKEN_DO_BOT/sendMessage?chat_id=SEU_ID&text=Loop+Detectado+no+Roteador+$Identidade" keep-result=no
O que achou desse método? Ele é muito mais leve para o roteador do que scripts agendados (Scheduler), pois só age quando o problema realmente acontece.