De un homelab caótico a una infraestructura semi-profesional… sin gastar un peso y en una tarde

Hace años que tengo todo tirado en la red 192.168.0.0/24 del router de la operadora:

  • Home Assistant
  • Nextcloud familiar
  • 3 sitios WordPress
  • Bases de datos master/slave
  • Un nodo Monero + P2Pool + xmrig minando 24×7
  • Sensores Zigbee, cámaras, PCs de la familia y el clásico “todo junto y revuelto”

El resultado: un quilombo hermoso, pero quilombo al fin.

Ayer le metí motosierra (literal, modo Javier Milei ) y en 4 horas reales pasé toda la capa de servidores a una red interna 10.10.0.0/24 usando equipamiento que ya tenía juntando polvo.

¿Qué logré?

  • Segmentación real de redes
  • Aislamiento del nodo de minería (seguridad + ruido de reglas de firewall)
  • Cero downtime perceptible
  • El router de la operadora sigue intacto (solo cambié los port-forwards)
  • Escalabilidad brutal para cuando se me ocurra agregar más juguetes

Hardware usado (todo ya en casa):

  • Router operador → sigue siendo el gateway a Internet y WiFi familiar
  • MikroTik RB750GL (el héroe olvidado) → ahora router interno y firewall
  • Switch tonto de 8 puertos
  • 4 servers + RPi4 + NAS D-Link

Diagrama final (sencillo y claro)

                      ┌────────────────────┐
                      │     Internet       │
                      └────────────────────┘
                               │
                    ┌────────────────────┐
                    │ Router Operadora   │  IP pública
                    │ 192.168.0.1        │
                    └────────────────────┘
                           │   │
          WiFi + IoT + PCs │   │ 192.168.0.250 (WAN)
        ┌──────────────────┘   │
        │                      │
        │              ┌─────────────────┐
        │              │ MikroTik RB750GL│
        │              │ WAN: 192.168.0.250
        │              │ LAN: 10.10.0.1/24
        │              └─────────────────┘
        │                         │
        │                1 Gbps Switch
        │                         │
   ┌────┴─────┬─────┬─────┬───────┴───────┬─────┐
   │          │     │     │               │     │
Servidor1  Servidor2  RPi4   NAS        Monero Node
10.10.0.20 10.10.0.22   HA   10.10.0.15  10.66.66.108
(apps)     (Traefik+WP)    10.10.0.10       (VLAN 66 aislada)

Internet
   │
Router Operadora (IP pública) ← solo port-forward 80/443/22/P2Pool a 192.168.0.250 (MikroTik WAN)
   │192.168.0.1
   ├─► Wifi/IoT/Home PCs/Sensores → 192.168.0.0/24
   └─► Ether1 → 192.168.0.250 → MikroTik RB750GL (WAN)
                   │
                   └── Ether2 → LAN SERVIDORES 10.10.0.1/24
                            ├─► Servidor1 (apps)      10.10.0.20
                            ├─► Servidor2 (Traefik+WP) 10.10.0.22
                            ├─► Servidor3 (Monero)     10.10.0.108  ← VLAN 66 o física separada
                            ├─► Servidor4 HA (RPi4)    10.10.0.10
                            └─► NAS Dlink              10.10.0.15

Paso a paso real que seguí (para que lo copies si querés hacer lo mismo)
Etapa 0 – Backup de todo (docker-compose, volúmenes, config MikroTik)
Etapa 1 – Configuré el MikroTik

Ether1 → WAN → IP fija 192.168.0.250 (reservada en router operadora)
Ether2 → LAN → 10.10.0.1/24 + DHCP server
NAT masquerade y firewall básico

Etapa 2 – Migré servidores de a uno (15 min cada uno)

Cambié IP estática + gateway 10.10.0.1
Probé ping y servicios internos
Cuando llegó el turno del servidor con Traefik (.22):
Cambié port-forwards del router operadora: 80/443/22 → 192.168.0.250
En MikroTik hice DNAT → 10.10.0.22

→ Los dominios nunca cayeron
Etapa 3 – Nodo Monero → VLAN 66 (Ether3 del MikroTik) + reglas específicas
Etapa 4 – Pi-hole/Adguard en 10.10.0.53 como DNS interno (resuelve *.lan y *.home)
Etapa 5 – Fail2ban + CrowdSec en todos + WireGuard para acceso remoto seguro

# === IDENTIDAD ===
/system identity set name="mikrotik-homelab"

# === INTERFACES ===
/interface ethernet
set [ find default-name=ether1 ] name=ether1-WAN
set [ find default-name=ether2 ] name=ether2-LAN-SERVERS
set [ find default-name=ether3 ] name=ether3-MONERO  comment="Nodo minería aislado (opcional VLAN 66)"
set [ find default-name=ether4 ] disabled=yes
set [ find default-name=ether5 ] disabled=yes

# === IP WAN (recibe de router operadora) ===
/ip address add address=192.168.0.250/24 interface=ether1-WAN network=192.168.0.0 comment="WAN - reservar esta IP en router operadora"

/ip address add address=10.10.0.1/24 interface=ether2-LAN-SERVERS network=10.10.0.0 comment="LAN servidores"

/ip address add address=10.66.66.1/24 interface=ether3-MONERO network=10.66.66.0 comment="Monero aislado (opcional)"

# === DHCP SERVER (para servidores que no tengan IP fija) ===
/ip dhcp-server
add name=dhcp-servers address-pool=dhcp-servers interface=ether2-LAN-SERVERS lease-time=3d
/ip dhcp-server network
add address=10.10.0.0/24 gateway=10.10.0.1 dns-server=10.10.0.53,1.1.1.1 comment="DNS interno + Cloudflare"

/ip pool add name=dhcp-servers ranges=10.10.0.100-10.10.0.200

# === NAT MASQUERADE (salida a internet) ===
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-WAN comment="Salida a Internet desde 10.10.0.0/24"
add action=masquerade chain=srcnat out-interface=ether1-WAN src-address=10.66.66.0/24 comment="Salida Monero"

# === DNAT (port-forward desde router operadora) ===
# El router operadora ya apunta 80/443/22 a 192.168.0.250 → acá redirigimos a Traefik
add action=dst-nat chain=dstnat dst-port=80 protocol=tcp in-interface=ether1-WAN to-addresses=10.10.0.22 to-ports=80 comment="HTTP → Traefik"
add action=dst-nat chain=dstnat dst-port=443 protocol=tcp in-interface=ether1-WAN to-addresses=10.10.0.22 to-ports=443 comment="HTTPS → Traefik"
add action=dst-nat chain=dstnat dst-port=22 protocol=tcp in-interface=ether1-WAN to-addresses=10.10.0.22 to-ports=22 comment="SSH (solo si querés, yo lo saqué y uso WireGuard)"

# Puertos Monero (si querés exponer P2Pool o monerod)
/add action=dst-nat chain=dstnat dst-port=3333 protocol=tcp in-interface=ether1-WAN to-addresses=10.66.66.108 to-ports=3333 comment="P2Pool"
add action=dst-nat chain=dstnat dst-port=18080 protocol=tcp in-interface=ether1-WAN to-addresses=10.66.66.108 to-ports=18080 comment="monerod RPC (solo si es necesario)"

# === FIREWALL BÁSICO PERO EFECTIVO ===
/ip firewall filter
# INPUT (protección del propio MikroTik)
add action=accept chain=input comment="established/related" connection-state=established,related
add action=accept chain=input in-interface=ether2-LAN-SERVERS comment="Todo desde LAN servidores"
add action=accept chain=input in-interface=ether3-MONERO comment="Todo desde Monero"
add action=drop chain=input comment="Drop todo lo demás"

# FORWARD (tráfico entre redes)
add action=accept chain=forward comment="established/related" connection-state=established,related
add action=accept chain=forward in-interface=ether2-LAN-SERVERS out-interface=ether1-WAN comment="Servidores → Internet"
add action=accept chain=forward in-interface=ether3-MONERO out-interface=ether1-WAN comment="Monero → Internet"
add action=accept chain=forward in-interface=ether1-WAN out-interface=ether2-LAN-SERVERS comment="Respuestas desde Internet"
add action=drop chain=forward comment="Drop todo lo demás"

# === RUTEO ESTÁTICO (para que 192.168.0.0 llegue a los servidores internos) ===
/ip route
add dst-address=10.10.0.0/24 gateway=192.168.0.250 comment="Desde router operadora (si usás static route, sino no hace falta)"

# === DNS (cache y resolución rápida) ===
/ip dns set allow-remote-requests=yes servers=1.1.1.1,1.0.0.1
/ip dns static add address=10.10.0.1 name=router.lan

# === NTP, HOSTNAME, ETC ===
/system ntp client set enabled=yes
/system clock set time-zone-name=America/Argentina/Buenos_Aires

Cómo aplicarla en 2 minutos

Abrís Winbox → New Terminal
Copiás todo desde # === IDENTIDAD === hasta el final
Pegás → Enter
Listo, el MikroTik ya está en modo dios.

Qué cambiar según tu caso

Si no querés VLAN para Monero → usá ether3 con IP 10.10.0.108 y borrá la red 10.66.66.0
Si querés SSH desde afuera → dejá el DNAT del puerto 22, sino borralo y usá WireGuard (recomendado)
Cambiá el DNS interno (10.10.0.53) por el que uses (Pi-hole, Adguard, etc.)

Con esto tenés una infra que cualquier empresa chica pagaría 5 lucas verdes por mes… y vos la armaste con un RB750GL del 2013 y una birra.

A veces basta con un MikroTik de 2014, ganas de romper todo ordenadamente y una tarde de sábado.

¡Larga vida al homelab argentino! 🦁🇦🇷🚀

joalweingartt