DEV Community

Cover image for ☠️ Cómo conectar tu router directo a la fibra de Entel Chile sin su módem (SFP GPON Hack)
Tomás Alegre Sepúlveda
Tomás Alegre Sepúlveda

Posted on

☠️ Cómo conectar tu router directo a la fibra de Entel Chile sin su módem (SFP GPON Hack)

Entel Chile me dijo que el bridge mode no existía para clientes empresa. Una semana después, mi router Ubiquiti estaba conectado directo a la fibra sin ningún equipo de Entel de por medio.

Este post explica cómo: un transceptor SFP GPON (Ubiquiti UF-Instant), acceso por UART, flash directo via U-Boot y configuración de spoofing GPON para que la OLT de Entel acepte el stick como si fuera el ONT Huawei original.

💡 Versión resumida. Este post cubre el proceso sin los intentos fallidos ni los callejones sin salida. La versión extendida — con el kernel panic del MC220L, los tres intentos de firmware y la recuperación por TFTP — está en Buy Me a Coffee.


⚠️ Disclaimer legal: Este contenido es exclusivamente educativo. Modificar firmware de dispositivos de telecomunicaciones puede vulnerar los términos de tu contrato con el ISP y potencialmente regulaciones locales. Consulta la normativa vigente en tu país antes de replicar este procedimiento.


El problema: vendor lock-in de ISP

Los ISP instalan su propio ONT y se niegan a configurarlo en bridge mode, forzándote a usar su router para PPPoE. Si quieres usar el tuyo, las opciones son doble NAT o bypassar completamente el hardware del ISP.

Quería dual WAN en mi Ubiquiti UniFi Gateway Fiber con IP estática de Entel. Sin doble NAT. Sin el módem de Entel.

El hardware

Componente Descripción
Transceptor Ubiquiti UFiber UF-Instant (RTL9601CI)
Router Ubiquiti UniFi Gateway Fiber (Dual WAN, slot SFP+)
ISP Entel Chile (OLT Huawei)
ONT original Huawei OptiXstar (clonado para spoofing)
Acceso de consola Adaptador UART TTL (3.3V obligatorio)
Servidor TFTP Mac con tftp-now o tftp-hpa
Preparación del rootfs Docker (necesario en macOS)

UF-Instant junto al adaptador UART TTL — cables soldados a los pads de la PCB

Setup del experimento — transceptor modificado conectado al switch y hub USB-C

Referencia de pinout del UF-Instant (Rx, Tx, GND, VCC)
Fuente: stich86/UF-Instant-Mod

Acceso por UART: el método principal

Todo el proceso de flash se ejecuta desde aquí. El UF-Instant expone pads UART en la PCB (TX, RX, GND). Adaptador 3.3V, configuración 115200 8N1:

# macOS
screen /dev/tty.usbserial-XXXXX 115200

# Linux
screen /dev/ttyUSB0 115200

# Con minicom
minicom -D /dev/ttyUSB0 -b 115200 -8 --noinit
Enter fullscreen mode Exit fullscreen mode

Al encender el stick con UART conectado, tienes el output completo de U-Boot. Presiona cualquier tecla en los primeros segundos para interrumpir el boot y quedar en el prompt 9601C#, desde donde puedes flashear particiones directamente.

Mapa de particiones MTD

El UF-Instant usa un sistema de arranque dual. Las particiones relevantes:

mtd4  → kernel0 / k0 (3MB)   — Kernel imagen 0 (Ubiquiti original — respaldo)
mtd5  → rootfs0 / r0 (6MB)   — Rootfs imagen 0 (firmware Ubiquiti original)
mtd6  → kernel1 / k1 (3MB)   — Kernel imagen 1 — aquí va el clon
mtd7  → rootfs1 / r1 (4.5MB) — Rootfs imagen 1 — aquí va el MOD stich86
mtd8  → europa.data          — Calibración del láser ⚠️ JAMÁS TOCAR
Enter fullscreen mode Exit fullscreen mode

Control de arranque:

# Imagen activa
nv getenv sw_active sw_commit

# Cambiar a imagen 1
setenv sw_active 1 && setenv sw_commit 1 && saveenv && boot

# Volver a imagen 0 (firmware original Ubiquiti)
setenv sw_active 0 && setenv sw_commit 0 && saveenv && boot
Enter fullscreen mode Exit fullscreen mode

El proceso: directo al grano

En el host (antes de conectar UART): descargar el rootfs MOD y el kernel de Ubiquiti v4.4.2 directamente del repo stich86/UF-Instant-Mod y ponerlos en el directorio del servidor TFTP. El binario squashfs de stich86 se flashea tal como viene — no requiere reprocesado.

¿Cuándo se necesita Docker? Solo si modificas el rootfs (extraer, cambiar archivos y reempaquetar). En macOS, mksquashfs no puede recrear device nodes sin parámetros explícitos. Para el flujo estándar con el binario de stich86, no hace falta.

Via UART, en U-Boot (9601C#): inicializar flash, clonar el kernel de imagen 0 a imagen 1, y flashear el rootfs MOD:

sf probe 0

# Clonar kernel Ubiquiti v4.4.2 de imagen 0 → imagen 1
sf read  0x81000000 0x50000  0x300000   # leer kernel0 a RAM
sf erase 0x4e0000 0x300000              # borrar kernel1 (mtd6)
sf write 0x81000000 0x4e0000 0x300000  # escribir en mtd6

# Flashear rootfs MOD (stich86) via TFTP
tftpboot 0x81000000 [IP_HOST]:[nombre_rootfs_stich86]
sf erase 0x7e0000 0x480000              # borrar rootfs1 (mtd7)
sf write 0x81000000 0x7e0000 ${filesize}

# Activar imagen 1 y arrancar
setenv sw_active 1
setenv sw_commit 1
saveenv
boot
Enter fullscreen mode Exit fullscreen mode

Via UART, desde Linux (tras arrancar imagen 1, credenciales admin/admin — algunos builds usan ubnt/ubnt): configurar la identidad GPON con los datos del ONT Huawei original y neutralizar el bootlimit:

# Identidad GPON — datos del ONT Huawei de tu instalación
flash set GPON_SN HWTC[XXXXXXXX]          # SN del ONT: HWTC + 8 hex chars
flash set PON_VENDOR_ID HWTC
flash set OMCI_OLT_MODE 1
flash set OMCI_FAKE_OK 1
flash set OMCI_SW_VER1 [VERSION_SW_ONT]   # Versión software del ONT
flash set OMCI_SW_VER2 [VERSION_SW_ONT]
flash set HW_HWVER [VERSION_HW_ONT]       # Versión hardware del ONT
flash set GPON_ONU_MODEL [MODELO_ONT]     # Modelo del ONT
flash set ELAN_MAC_ADDR [MAC_SIN_PUNTOS]  # MAC del ONT sin dos puntos

# Desactivar factory reset automático (bootlimit=10 por defecto)
nv setenv bootcount 0
nv setenv bootlimit 0

reboot
Enter fullscreen mode Exit fullscreen mode

Verificar que funciona

# O5 = Operation State = la OLT aceptó el stick como ONT válido
diag gpon get onu-state
# ONU state: Operation State(O5)

# Vendor OLT correcto
omcicli mib get 131
# OltVendorId: 0x48575443  ← HWTC (Huawei/Entel Chile) ✓

# VLANs provisionadas por la OLT de Entel
omcicli mib get 84
# VLAN 3610 → Internet | 3620 → TV | 3630 → VoIP | 3680 → TR-069
Enter fullscreen mode Exit fullscreen mode

Con el stick en O5: en el router Ubiquiti configurar el puerto SFP+ con VLAN 3610 y PPPoE con las credenciales de Entel (20011279169002 / D4310T — probadas el 2026-04-23, pueden cambiar).

🎥 La despedida oficial del módem de Entel

Trade-offs: cuándo NO hacer esto

  • Sin experiencia con UART/U-Boot: El proceso requiere comandos en el bootloader. Un error de dirección en sf write puede brick el stick (recuperable via TFTP si U-Boot sigue respondiendo).
  • Con un media converter (TP-Link MC220L): El driver europa_drv hace kernel panic con ese hardware como intermediario. El UF-Instant debe ir directamente al slot SFP+ del router.
  • Si tu ISP valida más que el serial GPON: Algunos ISPs verifican también el PLOAM password, detalles OMCI, o tienen detección de clones activa.
  • Si usas TV o VoIP de Entel: Funcionan en VLANs separadas (3620 y 3630). Deberás configurarlas también en el router.

Los intentos fallidos, los errores de kernel panic y el diagnóstico del MC220L están documentados en detalle en ☕ Buy Me a Coffee

Glosario

Término Qué es
GPON Gigabit Passive Optical Network. Fibra óptica que entrega hasta 2.5 Gbps downstream compartidos entre múltiples usuarios
ONT Optical Network Terminal. El dispositivo en tu casa que convierte la señal óptica a ethernet
OLT Optical Line Termination. El equipo del ISP que gestiona todos los ONT del área
SFP / SFP+ Small Form-factor Pluggable. Módulo estándar de conectividad. SFP+ soporta hasta 10 Gbps
PLOAM Physical Layer Operations, Administration and Maintenance. El protocolo de autenticación entre ONT y OLT
OMCI ONT Management and Control Interface. Canal por donde la OLT gestiona remotamente el ONT
PPPoE Point-to-Point Protocol over Ethernet. Protocolo de autenticación de los ISPs para las conexiones de internet
MTD Memory Technology Device. Interfaz de Linux para la flash interna del dispositivo
U-Boot Bootloader universal para sistemas embebidos. Permite flashear particiones si el SO no arranca
UART Universal Asynchronous Receiver-Transmitter. Puerto serie para acceder a la consola antes de que Linux cargue
TFTP Trivial File Transfer Protocol. Protocolo minimalista para transferir firmware a dispositivos embebidos
Spoofing Suplantar la identidad de otro dispositivo ante la OLT

💌 Agradecimientos Especiales

A una chica que, sin saberlo, me empujó a seguir creando y programando en mi tiempo libre. A quien alguna vez fue mi chispa: para “YLP”, con gratitud… y con cicatrices que también enseñan.


Recursos y créditos


Si tienes preguntas o tu ISP usa una OLT diferente, déjalas en los comentarios. Y si ya lo has hecho con otro proveedor, cuéntame qué parámetros cambiaron.


Para quien tampoco aceptó el "no se puede" como respuesta final: este post existe porque me dijeron que no lo lograría. Y porque la fibra llega al router sin pasar por ningún equipo que no sea el mío. Nadie decide eso por mí.

🖕 Fuck you, Entel. Tus devs de pacotilla no me dicen qué conectar en mi propia red. Y tú, Movistar — estate quieta. Sé que usas ZTE y lo tengo en el radar.

Top comments (0)