3

Post muito bom, até salvei aqui pra ler mais tarde. Estou começando agora com roteador dedicado
(configurando um E50UG) e esse cenário de CGNAT é exatamente o tipo de coisa que eu
não sabia como resolvia, então fiquei com algumas dúvidas de iniciante:

  1. Quando você fala em isolar cada cliente numa subnet própria (10.100.1.x,
    10.100.2.x...), a separação por endereçamento já basta? Fiquei na dúvida porque, se
    todo o tráfego dos peers passa pelo servidor, o que impede um cliente de rotear até
    a rede do outro? Você faz alguma regra de firewall no servidor além disso?

  2. Os MikroTik atrás de CGNAT mantêm o túnel de pé de forma estável? Li que sem
    persistent-keepalive o NAT da operadora derruba o mapeamento e o peer some da VPN
    até gerar tráfego de novo. Você precisou mexer nisso ou nunca teve problema?

  3. Como você lida com o Raspberry Pi ser o ponto central? Se ele ou a internet
    dele caírem, você perde o acesso a todos os clientes de uma vez, né? Tem algum
    plano B tipo um segundo servidor, ou na prática isso nunca foi problema?

  4. E a dúvida que mais me intriga: como isso resolve o cenário que abre o post?
    Se o cliente ligou dizendo que a internet caiu, o MikroTik dele também não consegue
    fechar o túnel WireGuard. Nesse caso a VPN te ajuda em quê, ou ela serve mais pros
    outros chamados (lentidão, configuração, monitoramento) e queda total continua
    exigindo ir até o local? Vi que você cita "coletar logs" na parte de automação: você
    já deixa algo rodando continuamente, pra quando o túnel cair ter uma visão do que
    aconteceu logo antes?

Aproveitando: como você provisiona um peer novo na instalação? Gera um script .rsc
ou configura na mão?

Carregando publicação patrocinada...
1

Cara, excelentes perguntas. E principalmente a 4 é uma observação que eu mesmo tive durante a montagem, porque existe uma diferença importante entre acesso remoto e monitoramento da queda do acesso.

Vou responder por partes:

1. Isolamento dos clientes

Não considero a subnet sozinha como uma camada de segurança suficiente.

A ideia é que cada cliente tenha sua própria rede dentro da VPN, por exemplo:

Servidor
10.100.0.1

Cliente 01 → 10.100.1.0/24
Cliente 02 → 10.100.2.0/24
Cliente 03 → 10.100.3.0/24

Mas no servidor eu também colocaria regras de firewall para impedir o tráfego lateral entre os peers.

Ou seja, o fato de o Cliente 01 estar em uma subnet diferente do Cliente 02 não significa automaticamente que ele não consiga rotear até ela. Se o servidor estiver fazendo o roteamento entre essas redes, preciso bloquear isso explicitamente.

A ideia é:

                 SERVER
                   │
        ┌──────────┼──────────┐
        │          │          │
     Cliente 01 Cliente 02 Cliente 03
        │          │          │
       X───────────X───────────X
          sem acesso lateral

O servidor só deve permitir o que realmente for necessário.


2. CGNAT + persistent-keepalive

Sim, esse é um ponto importante.

No cenário em que o MikroTik está atrás de NAT/CGNAT, o problema não é exatamente o WireGuard não funcionar, mas o mapeamento NAT poder expirar quando fica muito tempo sem tráfego.

Nesse caso o persistent-keepalive é justamente uma das coisas que considero na configuração dos peers que estão atrás de NAT.

Algo como:

persistent-keepalive=25

faz o peer enviar tráfego periodicamente para manter o mapeamento.

Ainda estou tratando isso como parte do padrão de provisionamento, porque quero que o processo seja automático e não depender de lembrar dessa configuração em cada instalação.


3. Raspberry Pi como ponto central

Essa é provavelmente a maior fragilidade da arquitetura inicial.

Se eu tiver:

                 INTERNET
                    │
                 SERVER
                    │
       ┌────────────┼────────────┐
       │            │            │
    Cliente 01   Cliente 02   Cliente 03

e o servidor cair, perco o acesso remoto a todos.

Por isso não considero o Raspberry Pi o "ponto final" da arquitetura. Ele é o primeiro estágio.

A ideia é evoluir para:

                 SERVIDOR A
                /           \
               /             \
        Cliente 01          Cliente 02
               \             /
                \           /
                 SERVIDOR B

ou pelo menos ter um segundo ponto de acesso/backup para os clientes mais críticos.

No meu caso estou começando simples justamente para validar a arquitetura antes de colocar alta disponibilidade em cima.


4. Essa foi a melhor pergunta

Você está certo.

Se o cliente liga falando:

"Minha internet caiu completamente."

e o MikroTik depende daquela mesma Internet para estabelecer o túnel, eu não consigo magicamente entrar nele através da VPN.

Se:

INTERNET DO CLIENTE
       X
       │
    MikroTik
       X
    WireGuard

não existe caminho físico para o servidor.

Então a VPN resolve principalmente situações como:

  • configuração;
  • lentidão;
  • diagnóstico;
  • firewall;
  • DHCP;
  • DNS;
  • Wi-Fi;
  • monitoramento;
  • alterações de configuração;
  • análise de logs;
  • problemas que ainda deixam o MikroTik conectado.

Para queda total do link, preciso de outra estratégia se quiser diagnóstico remoto.

E foi justamente essa questão que me fez pensar que o projeto não deveria ser somente "VPN para acessar MikroTik".

Quero transformar isso em uma infraestrutura de monitoramento + acesso remoto.

Por exemplo, se o túnel cair, o servidor já pode saber:

09:41:02 → Cliente online
09:41:15 → perda de comunicação
09:41:20 → peer não responde
09:41:30 → cliente offline

E antes disso eu posso ter informações como:

último handshake
último tráfego
CPU
memória
interfaces
logs
estado das rotas

Isso não resolve uma queda física da Internet, obviamente, mas ajuda muito a diferenciar:

Internet caiu
       X
MikroTik travou
       X
WireGuard caiu
       X
DNS parou
       X
rota foi alterada
       X
equipamento desligou

Essa parte de monitoramento ainda é uma das coisas que estou evoluindo no projeto.


Sobre provisionar um peer novo:

Hoje eu não quero depender de configuração manual.

A ideia é justamente chegar em algo assim:

Novo cliente
     ↓
Gerar chave
     ↓
Definir IP do peer
     ↓
Gerar configuração
     ↓
Aplicar no MikroTik
     ↓
Cadastrar no servidor
     ↓
Monitorar

No começo é perfeitamente possível fazer isso através de .rsc, mas o objetivo é automatizar a geração.

Por exemplo, eu cadastro:

CLIENTE = 004
IP = 10.100.4.2

e o sistema gera a configuração correspondente.

Então, resumindo: você apontou exatamente algumas das limitações que eu estou tentando resolver na segunda etapa do projeto. A primeira versão é basicamente "preciso conseguir chegar nos equipamentos mesmo atrás de CGNAT". A próxima é transformar isso em uma plataforma de provisionamento + monitoramento + backup + diagnóstico.

E valeu pelas perguntas, porque a 4 principalmente é uma distinção que acho que vale colocar no próprio post. A VPN não faz milagre quando o link do cliente morreu; ela resolve o problema de como chegar no equipamento enquanto ainda existe conectividade.

2

Valeu demais pela resposta, ficou mais claro que o post: essa distinção entre "acesso remoto" e "monitoramento da queda do acesso" resolveu exatamente a minha confusão. A parte da timeline (último handshake, último tráfego, estado antes de cair) pra diferenciar internet caiu / MikroTik travou / túnel caiu foi o que mais me agregou e inclusive vou implementar no meu, atualmente tenho o wireguard rodando em uma vps mas tenho usado apenas pra acesso remoto de serviços nos computadores lá de casa e n.

Sobre a queda total do link, fiquei pensando: já considerou um canal fora de banda pros clientes mais críticos, tipo um chip 4G/LTE como link de gerência? Pergunto porque não sei se na prática o custo compensa ou se é overkill pra instalação pequena.

1

Valeu demais pelas perguntas e pela contribuição! 👊

E sobre esse ponto da redundância, hoje eu pensaria em Starlink como o plano B mais robusto, principalmente para clientes em locais onde a segunda operadora também não é confiável. A Starlink Mini, por exemplo, tem Ethernet e entrada DC de 12–48 V, então dá para integrar bem em uma estrutura de backup.

Para instalações onde o custo precisa ser menor, eu colocaria 4G/5G com SIM como solução custo-benefício. Aí entra um modem LTE/5G compatível + antena, quando necessário, e o MikroTik fazendo o failover entre o link principal e o link móvel.

Então eu vejo mais ou menos assim:

LINK PRINCIPAL
      │
      ▼
   MikroTik
      │
      ├── Failover ──► 4G/5G + SIM
      │
      └── Failover ──► Starlink

A ideia é justamente evoluir o projeto para que, quando o link principal morrer, o próprio MikroTik consiga continuar conectado ao servidor pela segunda WAN.

Ainda estou evoluindo essa parte, mas acho que esse é o caminho mais interessante: VPN + monitoramento + failover, em vez de simplesmente ter uma VPN para acessar o equipamento.

Obrigado mesmo pelo comentário! Essas perguntas estão ajudando bastante a melhorar o projeto e até a complementar o post. 🚀

1

Meus 2 cents,

Apesar de nao ser o autor do post, vou comentar como resolvi estas questoes no meu cenario:

  1. Client-to-Client no Wireguard: eh possivel fazer via Wireguard/Peers/Allowed Address e colocar uma subnet /16 (englobando todos os peers) ao inves de /24 (de cada peer). Sim, pode ser necessario ajustar no firewall (e ter cuidado para nao deixar aberto demais, senao o cliente "invade" tua rede local/servidor)

  2. Como o WG eh UDP, o Wireguard/Peers/PersistentKeepalive ajuda a manter a conexao (geralmente 30s eh o bastante, mas ajuste conforme teu caso)

  3. Nao usei com raspberry, sempre optei para uma VPS hospedando o server, entao o servidor acaba sendo mais estavel. Mas sim, o servidor morreu, ja era. Eu uso NAGIOS/ICINGA/ZABBIX para monitorar logs, mas se fosse comecar do zero talvez iria de Prometheus+grafana.

  4. Costumo usar o MK em clientes com failover para 2 links (p.ex. VIVO+CLARO), entao eh raro acontecer de ficar sem conexao alguma. Em casos raros (ou nem tanto com a chuva de SP...) onde preciso acessar sempre, uso um 4G/5G como redundancia extra so para acessar o MK do cliente (neste caso prefiro um modem/roteador 4G/5G apesar de mais caro, mas modem usb tambem funciona).

4.1. Tenho um painel NOC que monitora todos os MK de clientes: quando cai um link ou algo assim (p.ex. DVRs), ja sinaliza e posso tentar a recuperacao dele (p.ex. mandando um ciclo power off/on para um ESP32 com rele, mas tambem tenho usado com sucesso tomadas inteligentes "sabor" SONOFF)

  1. Provisionamento: o sistema que criei, ja tenho os templates do rsc para provisionamento e mantenho backup das versoes que estao rodando no cliente. Preencho os dados do cliente, testo em LAB e mando ja pronto - plug n' play. Para testar cenarios e simulacoes, uso o EVE-NG/PNETLAB.

Durante muito tempo usei o OpenVPN para este tipo de trafego, o wireguard eh uma opcao mais recente - e que funciona melhor/mais estavel/melhor velocidade.

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

2

Aqui onde moro não é tão comum um setup com 2 links (na verdade não é normal nem usar roteador proprio e 90% dos provedores não deixam nem acessar o painel de admin do roteador) mas faz total sentido realmente, anotei esses detalhes principalmente esse primeiro ponto para estudar esse fim de semana.

2

Algo que lembrei agora de comentar sobre a redundancia 4G/5G: esta comecando a se tornar comum os clientes usarem StarLink como segundo link/redundancia, que tem se mostrado bem estavel. Eu mesmo estou convencendo a patroa a me deixar assinar um para fazer testes.

2

No meu trabalho dava pra fazer isso (meio que já tem dois links) só que o patrão não libera orçamento pra um roteador então quando o principal que é o da Vivo caí tem que trocar o cabo pro da starlink manualmente.

2

Este eh o tipo de solucao que o MK atende bem (failover automatico de 2 links). Uma opcao de baixo custo eh o tplink TL-ER605, so para evitar de ficar trocando o cabo toda hora...

Mas sem grana para investir, nao tem jeito mesmo.

2

Ele tá mais caro que o E50UG e a maior questão é que só o MK não resolveria pois no setup atual a cobertura do roteador do provedor é necessaria junto com a rede mesh então pra colocar o MK teria que comprar pelo menos mais um AP aí no orçamento o MK + AP tá saindo 1200