Esse é meu setup pessoal de rede. Tá tudo rodando na minha casa, mas foi feito pras minhas necessidades, não é um projeto genérico plug-and-play. Se quiser usar como base pro seu, fica à vontade. Copia, adapta, quebra, conserta. É assim que se aprende.
Scripts pra RouterOS v7: dual WAN com load balancing ECMP + FastTrack, failover automático, VPN WireGuard com full tunnel, Pi-Hole como DNS, DHCP estático com hostnames .internal, traffic steering por dispositivo e hardening de segurança.
Rodando com Vivo (PPPoE) + Claro (DHCP/CGNAT) num hEX S (RB760iGS).
- Load balancing ECMP: distribui conexões entre as duas WANs automaticamente
- FastTrack: conexões estabelecidas vão direto pelo hardware, sem passar pelo firewall (~900Mbps no hEX S)
- Failover automático: se um ISP cair, o tráfego migra pro outro em ~10 segundos
- WireGuard VPN: acesso remoto à rede de casa de qualquer lugar, com full tunnel e DDNS
- Pi-Hole DNS: DHCP entrega o Pi-Hole como DNS primário, com fallback pra Cloudflare
- DHCP estático + hostnames: IPs fixos por MAC e nomes
.internal(ex:ping meupc.internal) - Traffic steering: força dispositivos específicos a usar um ISP, com fallback pro outro
- Firewall + hardening: bloqueia acesso externo, rate limit de SYN/ICMP, anti-spoofing, serviços desnecessários desabilitados
- PPPoE e DHCP: scripts auxiliares pra Vivo (PPPoE/bridge) e Claro (DHCP/CGNAT)
- Monitor de ISP: loga mudanças de estado, opcionalmente manda email
- MikroTik com RouterOS v7.20+
- 5 portas ethernet (2 WAN + 3 LAN) ou mais
- Winbox, WebFig ou SSH
- Pi-hole (opcional)
- Muita paciência e persistência pra deixar tudo redondo
Testado em: hEX S (RB760iGS), RB750Gr3
- Baixe o
mikrotik-dual-wan-ecmp.rsc - Edite as variáveis no topo (interfaces, IPs, MACs, timezone)
- Remova as seções marcadas com
[OPCIONAL]que não precisa - Suba no router (Winbox > Files > arrastar) e importe:
/import mikrotik-dual-wan-ecmp.rsc
CUIDADO: o script reseta toda a configuração do router. Conecte fisicamente, não faça isso por VPN/remoto. Backup antes:
/export file=backup
- Troque a senha admin:
/user set admin password=SUA-SENHA-FORTE
Suba a pasta scripts/ no router e importe o que precisar:
| Script | O que faz | Quando usar |
|---|---|---|
scripts/wireguard-setup.rsc |
WireGuard VPN com DDNS e full tunnel | Quer acessar sua rede de fora |
scripts/wireguard-rollback.rsc |
Remove toda configuração WireGuard | Quer desfazer a VPN |
scripts/vivo-pppoe.rsc |
Troca Vivo de DHCP pra PPPoE | Colocou a Vivo em bridge |
scripts/vivo-dhcp-rollback.rsc |
Reverte Vivo pra DHCP | Quer voltar a Vivo pro modo roteador |
scripts/claro-static-restore.rsc |
Configura IP estático na Claro | Claro em bridge não entrega IPv4 |
scripts/claro-dhcp-rollback.rsc |
Remove estático e reativa DHCP | Quando o lease da Claro expirar |
scripts/claro-sfp-swap.rsc |
Troca modem Claro em ether2 por SFP GPON stick em sfp1 | Tirar o modem do caminho |
scripts/claro-sfp-swap-rollback.rsc |
Volta pro modem Claro em ether2 | Desfazer o swap do stick |
scripts/dns-optimization.rsc |
Redireciona DNS pro Pi-Hole + bloqueia DoT | Quer forçar todo DNS pelo Pi-Hole |
scripts/ipv6-setup.rsc |
Habilita IPv6 dual-stack com NAT66 nas duas WANs | Quer IPv6 na LAN (ver seção IPv6 abaixo) |
scripts/ipv6-rollback.rsc |
Reverte tudo de IPv6 (volta disable-ipv6=yes) |
Quer desfazer o IPv6 |
# DHCP pegou IP dos ISPs?
/ip dhcp-client print
# Duas rotas ECMP ativas?
/ip route print where dst-address=0.0.0.0/0
# FastTrack processando tráfego?
/ip firewall filter print stats where comment~"FastTrack"
# Log do monitor
/log print follow where message~"MONITOR"
Puxa o cabo de uma WAN. Em ~10 segundos a rota desativa e o tráfego vai pela outra. Reconecta e volta automaticamente.
O script principal tem seções marcadas com [OPCIONAL] que você pode remover:
| Seção | O que faz | Quando remover |
|---|---|---|
| DHCP Leases Estáticos | IPs fixos por MAC | Não precisa de IP fixo |
| DNS Hostnames | Nomes .internal |
Não quer acessar dispositivos por nome |
| Traffic Steering | Força dispositivo pra um ISP | Não precisa direcionar tráfego |
| Alertas de queda/retorno por email | Não quer notificações | |
| Monitor de ISP | Log de estado dos ISPs | Não quer monitoramento |
| Monitor de Memória | Alerta de memória alta | Não quer monitoramento |
O script assume que os ISPs entregam IP via DHCP. Funciona com os modems em modo roteador (double NAT) -- pra uso residencial é OK, mas convenhamos: se você chegou até este projeto, só OK não é o suficiente -- ou em bridge.
A Claro com OLT ZTE pode não reconhecer o MAC do seu roteador e não entregar IPv4. Sintoma: só IPv6 funciona, DHCP fica em requesting pra sempre.
Solução 1: IP estático temporário
- Antes de ativar bridge, anote no modem: IP público, gateway e máscara (Status > WAN)
- Coloque o modem em bridge
- Configure a WAN do MikroTik com IP estático usando os dados anotados (a internet vai funcionar)
- Quando parar de funcionar (lease expirou), troque de volta pra DHCP
- A partir daí o DHCP funciona normalmente
Scripts auxiliares pros passos 3 e 4:
scripts/claro-static-restore.rscconfigura o IP estáticoscripts/claro-dhcp-rollback.rscremove estático e reativa DHCP
Solução 2: Clonar MAC Clone o MAC da WAN do modem Claro na interface WAN do MikroTik antes de ativar bridge.
Se quiser tirar o modem Claro do caminho, dá pra plugar um SFP GPON stick direto na sfp1 do MikroTik.
Testado com ODI DFP-34X-2C2 + Claro + OLT ZTE do Ali. Outros sticks podem funcionar, desde que suportem clonagem de GPON SN, Vendor ID e parâmetros OMCI.
-
SFP GPON stick compatível com o OLT ZTE da Claro
-
Anotar do modem Claro original (aba Status > Device Info + etiqueta física). Estes valores são só exemplos do formato, os seus vão ser diferentes:
Campo Formato / Exemplo fake GPON SN4 ASCII (vendor) + 8 hex (serial), ex: ZTEGABCDEF12Vendor ID4 chars ASCII, ex: ZTEGProduct Classmodelo do modem, ex: F6600PHW Versionex: V1.1.00Device Serial Numbervalor completo da UI do modem, ex: ZTEGABCDEF12 -
DHCP client da Claro ativo na ether2 antes do swap (estado normal)
-
Acesso físico pra trocar cabos
- Pluga o stick em
sfp1sem fibra - Pra link Ethernet subir sem sinal óptico, força
sfp-ignore-rx-los=yes:
/interface ethernet set sfp1 sfp-ignore-rx-los=yes
- Cria acesso temporário à UI do stick (
http://192.168.1.1):
/ip address add address=192.168.1.10/24 interface=sfp1 comment="Access GPON stick (temp)"
/ip firewall nat add chain=srcnat src-address=192.168.100.0/24 out-interface=sfp1 action=masquerade comment="NAT to GPON stick (temp)"
-
Abre
http://192.168.1.1no browser e preenche só os 5 campos anotados do modem Claro (destacados em vermelho):- Form superior:
GPON SN - Form inferior:
Vendor ID,Product Class,HW version,Device Serial Number
Todos os outros campos (LOID, LOID Password, PLOAM Password, software versions, OMCC version, OUI, MAC, MACKEY) podem ficar no factory default.
Fiber ResetsempreDisable—Enablereseta o canal PON na hora do Apply. Salva cada form clicando no Apply Changes correspondente. - Form superior:
-
Configura a VLAN na página
http://192.168.1.1/vlan.asp:- Modo Manual
- PVID marcado, com VID =
11(VLAN da Claro no Brasil) - Salva em Apply Changes
O stick vai adicionar a tag 802.1Q VID 11 upstream e strip na volta, então a MikroTik enxerga sfp1 como untagged — nada de
/interface vlanprecisa na MikroTik. -
CRÍTICO:
Apply Changessó persiste em RAM. Pra gravar em flash vai emAdmin > Commit/Reboote clica Commit and Reboot. Sem esse passo, tudo some no próximo reboot do stick.
- Conecta a fibra no SFP GPON stick (
sfp1) antes de rodar o script - Espera 30-60s pra autenticação GPON (stick vai pra O5)
- Roda o script:
/import scripts/claro-sfp-swap.rsc
O script libera o lease atual da ether2 (DHCPRELEASE — OLT desassocia o MAC antigo), move o DHCP client pro sfp1, garante MAC factory (sem clone), atualiza a WAN interface-list e adiciona a ether2 ao bridge-lan como porta LAN extra. Em seguida reabilita o DHCP client, que manda novo DHCPDISCOVER do sfp1 — OLT aceita o MAC factory do SFP e entrega um lease novo.
/interface ethernet monitor sfp1 once # sfp-rx-loss: no, status: link-ok
/ip dhcp-client print where name=client2 # status=bound
/tool ping 1.1.1.1 interface=sfp1 count=3
/ip route print where dst-address=0.0.0.0/0 and active
Pra confirmar que o stick autenticou no OLT, acessa http://192.168.1.1/status_pon.asp (o temp access continua ativo pós-swap pra diagnóstico). Status code 05 (O5) = registrado com sucesso.
/import scripts/claro-sfp-swap-rollback.rsc
Libera o lease do sfp1, move DHCP client pra ether2, reativa a porta. Depois inverte os passos físicos (fibra de volta no modem, copper na ether2).
- Confirma O5 em
http://192.168.1.1/status_pon.asp. Se estiver em O0/O1, problema é na fibra/config da ONU, não na MikroTik. - Confirma que o MAC field do stick não é igual ao factory MAC da sfp1. Se for, vira self-loopback (stick dropa as próprias frames). Muda pra qualquer outro valor (factory default funciona) e commita.
- Confere VLAN em
vlan.asp: Mode=Manual, PVID=11.
A Vivo usa PPPoE, não DHCP. Precisa configurar o modem pra passar PPPoE por uma porta LAN pro MikroTik.
Modems Vivo (Askey, Mitrastar, etc.) bloqueiam o acesso às configurações avançadas. Pra desbloquear:
- Desconecte a fibra óptica do modem
- Conecte um PC por cabo no modem
- Acesse
192.168.15.1/instaladorcom usuáriosupporte a senha da etiqueta - Mude a região pra outra (VIVO2 → VIVO1) e aplique. O modem reseta.
- Acesse
192.168.15.1/padraopra confirmar acesso (não mexa em nada ainda) - Volte em
192.168.15.1/instaladore restaure a região original. Reseta de novo. - Agora acesse
192.168.15.1/padraocomsupporte configure - Desative gerenciamento remoto: Manutenção > TR-069 Client > CWMP > Desativar
- Reconecte a fibra óptica
Em 192.168.15.1/padrao:
-
WAN Setting > WAN Interface: desabilite a conexão PPPoE (ip2, VLAN 600)
-
Bridging > Filtering (L2 Ingress Filtering)
-
Encontre a porta LAN que vai no MikroTik (ex:
eth0.4= LAN4) -
Edite: Associated Bridge =
1(Internet WAN), VLAN ID =600, Adm.State = Enable -
Salve
A porta LAN4 agora recebe os frames PPPoE direto da fibra. Seu modem vai funcionar como uma simples ONU sem a necessidade de trocar o equipamento. As outras portas e WiFi (se habilitado) continuam ativos, mas servem só pra gerenciar o modem.
Conecte a ether1 do MikroTik na porta LAN4 do modem Vivo e importe:
/import scripts/vivo-pppoe.rsc
Credenciais padrão: cliente@cliente / cliente (pode variar por região).
A VLAN depende da região: Vivo2 usa VLAN 600. Confira em WAN Setting > WAN Interface no modem.
/interface pppoe-client print # deve mostrar R (RUNNING)
/ip route print where dst-address=0.0.0.0/0 # rota PPPoE ativa
/tool ping 1.1.1.1 interface=pppoe-vivo count=3
Se não conectar, tente clonar o MAC da WAN do modem na ether1: /interface ethernet set ether1 mac-address=XX:XX:XX:XX:XX:XX
Pra reverter: /import scripts/vivo-dhcp-rollback.rsc e reabilite ip2 no modem.
Acesse sua rede de casa de qualquer lugar: celular, notebook, tanto faz. O tráfego passa por um túnel criptografado até o MikroTik e sai pela sua internet. Ideal pra WiFi público, 4G, hotel, aeroporto.
Requer pelo menos uma WAN com IP público (sem CGNAT). Não usa login/senha. A autenticação é por chaves criptográficas: quem não tem a chave nem recebe resposta do servidor.
/import scripts/wireguard-setup.rsc
O script configura tudo (DDNS, WireGuard, firewall, NAT) e imprime as instruções.
- Ativa DDNS gratuito da MikroTik (hostname fixo que acompanha o IP dinâmico)
- Força tráfego do DDNS pela WAN com IP público (com ECMP + CGNAT, o DDNS pode travar se sair pela WAN errada)
- Cria interface WireGuard na porta UDP 13231
- Abre porta no firewall só na interface da WAN pública
- Libera tráfego VPN pra LAN e internet (full tunnel)
- NAT pro tráfego VPN sair pela internet de casa
- Instale o app WireGuard (Android/iOS/Windows/Linux)
- Crie um túnel novo (o app gera as chaves)
- Configure a Interface:
- Endereço:
10.0.0.2/32 - DNS:
1.1.1.1(ou IP do Pi-Hole)
- Endereço:
- Adicione um Peer:
- Chave pública: pegue do MikroTik (
/interface wireguard print) - Endpoint:
<seu-ddns>.sn.mynetname.net:13231(veja com/ip cloud print) - IPs permitidos:
0.0.0.0/0(todo tráfego pela VPN) - Keepalive persistente:
25
- Chave pública: pegue do MikroTik (
- No MikroTik, adicione o peer:
/interface wireguard peers add interface=wireguard1 public-key="CHAVE_DO_CLIENTE" allowed-address=10.0.0.2/32 comment="Peer: Celular" - Ative o túnel e teste:
http://10.0.0.1
Cada dispositivo usa um IP diferente: celular = .2, notebook = .3, etc.
Pra remover: /import scripts/wireguard-rollback.rsc
Certificado HTTPS gratuito via ACME direto no MikroTik. Usa o DDNS do IP Cloud como domínio. Útil pra HTTPS no WebFig e pra exportar o certificado pro seu servidor na LAN.
/import scripts/letsencrypt-setup.rsc
O script:
- Habilita DDNS (IP Cloud)
- Abre porta 80 temporariamente pra validação HTTP-01
- Solicita certificado Let's Encrypt (aguarda ~3 minutos)
- Fecha porta 80
- Aplica no WebFig HTTPS
- Cria scripts no router:
letsencrypt-exporteletsencrypt-renew - Cria scheduler diário que abre porta 80 quando faltam menos de 20 dias pra expirar
Pra usar o certificado num servidor na LAN (Nginx, Caddy, etc.):
/system script run letsencrypt-export
Gera dois arquivos em Files: .crt (certificado) e .key (chave privada, criptografada com passphrase changeme). Baixe via SCP ou Winbox.
Pra descriptografar a chave:
openssl rsa -in cert_export_*.key -out key_decrypted.pemPra remover tudo: /import scripts/letsencrypt-rollback.rsc
Habilita IPv6 nas duas WANs com NAT66 (masquerade IPv6 → endereço global da WAN de saída). LAN recebe ULA fd64:1e57:9364:1::/64 via SLAAC.
/import scripts/ipv6-setup.rsc
Failover: funciona igual IPv4 — check-gateway=ping na default route.
Pré-requisito Pi-Hole: desabilitar filter-AAAA em Pi-hole admin → Settings → All settings → DNS → "Additional dnsmasq lines". Senão hosts LAN não resolvem AAAA e IPv6 não é usado pra hostname.
Pra reverter: /import scripts/ipv6-rollback.rsc
O firewall bloqueia IPs privados vindos da WAN (anti-spoofing). Se seu ISP entrega IP privado (ex: 192.168.x.x no modo roteador), desabilite a regra:
/ip firewall raw disable [find where comment~"192.168"]
MIT
Fork de vishnunuk/mikrotik-dual-wan-loadbalance-failover. Adaptado com brasileiridades.



