BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
Fibra
💡

Guía para montar una red local con hardware genérico, software libre y GPON/XGS-PON de Digi

v0ctor
19

El objetivo de esta guía es explicar los conceptos básicos necesarios para poder diseñar y ejecutar una red local con hardware genérico y software libre con el servicio de FTTH de Digi, ya sea GPON (1 Gb/s) o XGS-PON (10 Gb/s). Con pequeños cambios se puede aplicar a cualquier proveedor que utilice las mismas tecnologías, que son prácticamente todos.

Este montaje reemplaza el router de Digi por hardware propio que está bajo el control total del administrador de la red local, sin que Digi pueda acceder o modificar de ninguna forma los dispositivos. De esta forma se puede hacer cualquier montaje de red, según las necesidades de cada caso.

Téngase en cuenta que no es malo que el proveedor ofrezca equipamiento propio y que pueda gestionarlo remotamente. De hecho, es lo más apropiado en la mayoría de casos. Sin embargo, los usuarios más avanzados que quieran tomar el control de su red, también deben poder hacerlo. Es fundamental para mantener la neutralidad de internet y su naturaleza distribuida.

De ahí la motivación para hacer esta guía, que tiene un nivel técnico avanzado. La intención no es explicar hasta el mínimo detalle de la ejecución, sino proporcionar toda la información necesaria en un mismo sitio. En cualquier caso, si a alguien le surge alguna consulta, por favor, que no dude en preguntar en los comentarios.

Arquitectura y tecnologías

Los proveedores de servicios de internet (ISP) tienen redes que cubren áreas geográficas muy grandes: barrios, municipios, comarcas, provincias y países enteros. Estas redes de un mismo proveedor están conectadas entre sí y a su vez también lo están con las redes de otros proveedores. Juntas, todas forman lo que conocemos como internet:

Fuente: Wikimedia Commons

Está fuera del ámbito de esta guía explicar cómo funcionan estas redes tan grandes. Lo que nos ocupa en este caso es el último tramo de entrega, entre la central de telecomunicaciones de nuestra zona (barrio, municipio, etc.) y nuestro domicilio, que es donde se utilizan las redes ópticas pasivas (PON).

La característica definitoria de las redes de fibra pasivas es que no necesitan componentes electrónicos en los puntos intermedios, solo en los dos extremos. El proveedor tiene un dispositivo llamado OLT (terminal de línea óptica, por sus siglas en inglés) en un edificio, y desde él sale un cable de fibra que se puede ir subdividiendo por el camino hasta llegar a los puntos de entrega finales. Esta subdivisión se hace con unas cosas llamadas splitters, que separan la luz sin necesidad de electricidad (básicamente son unos espejos sofisticados).

Fuente: Wikimedia Commons

Al otro lado del cable conectado a la OLT se encuentran muchas ONU (unidad de red óptica, por sus siglas en inglés, no Organización de las Naciones Unidas), también llamadas ONT (terminal de red óptica). Concretamente, puede haber hasta 128.

La distancia entre la OLT y la ONU/ONT puede ser de hasta 20 km. Las redes ópticas pasivas permiten hacer llegar internet de alta velocidad y baja latencia con un coste de despliegue y mantenimiento imbatibles.

El proveedor entrega una fibra monomodo en el punto final (normalmente, un domicilio o una oficina) con conector SC/APC. Esta fibra, como hemos visto, está conectada a la OLT que se encuentra en la central de nuestra zona. A partir de ese conector empieza nuestra red local.

Fuente: Wikimedia Commons

Las redes ópticas pasivas permiten dar saltos tecnológicos sin necesidad de cambiar el cableado, únicamente actualizando las OLTs y las ONUs, o sea, los dispositivos de los extremos. En España, la primera tecnología de fibra óptica pasiva que se desplegó fue GPON, que permite alcanzar hasta 2,4 Gb/s de descarga y 1,2 Gb/s de subida el punto de entrega. Recientemente, operadores como Digi y Orange han empezado a actualizar sus OLTs y ONUs a XGS-PON, que permite velocidades de 10 Gb/s simétricos en el punto de entrega. Además, las OLTs pueden trabajar simultáneamente con ambas tecnologías para poder ir actualizándolas progresivamente conforme los clientes también lo vayan haciendo.

Diseño

Explicados los conceptos, el siguiente paso es hacer el montaje de la red local. La fibra monomodo que nos entrega el proveedor se conectará a una ONU/OLT, que a su vez estará conectada a un router, el cual finalmente se conectará al switch:

OLT - ONU - Router - Switch

Hardware

Estos son los requisitos de hardware para poder hacer el montaje:

  • ONU/ONT. Dependiendo de la tecnología que utilice la OLT (es decir, el primer dispositivo del operador que hay al otro lado de la fibra que nos llega a casa), necesitaremos una ONU GPON o XGS-PON. Además, dependiendo de los requisitos de la OLT, será necesario que la ONU permita modificar algunos parámetros de PON (como el número de serie o la MAC de la interfaz).
  • Router. Puesto que las tarjetas de red modernas suelen encargarse del trabajo duro, no es necesario que sea tremendo maquinote.
    • Mínimo 2 interfaces SFP+ (una para upstream y otra para downstream, es decir, una para el lado del proveedor y otra para el nuestro).
    • CPU con arquitectura AMD64 (o sea, AMD o Intel). Es una limitación del software que se va a utilizar.
    • Memoria y almacenamiento suficientes.
  • Switch:
    • Mínimo 2 interfaces SFP+. También puede tener interfaces RJ45 10GBASE-T (10 Gb/s) y/o RJ45 1GBASE-T (1 Gb/s), según las necesidades y el presupuesto.
    • Es recomendable que sea gestionable para poder hacer más virguerías, pero no es necesario.
  • Cableado para los enlaces. Según las interfaces a conectar.

Se propone el siguiente hardware para este caso en concreto:

Todo el hardware propuesto ha sido probado con éxito para este caso de uso. Esto no significa que no haya más opciones, sino que estas funcionan y son buenas.

Software

En este caso se escoge VyOS, pero podría ser cualquier software compatible con el hardware escogido:

El software debe ser compatible con PPPoE.

Montaje

Router

El primer paso será descargar la versión rolling VyOS o compilarse uno mismo la versión estable (así lo exige la licencia) y crear un USB arrancable con alguna herramienta como Balena Etcher.

A continuación, con el router conectado a un monitor y un teclado (o, para los más frikis, a la consola serie), habría que instalar VyOS. Es seguir los pasos como con cualquier instalador, no tiene mayor misterio este punto. Recomiendo dejar todos los valores por defecto, especialmente la contraseña (vyos), esto último por comodidad.

Una vez instalado VyOS, lo recomendable es configurar alguna de las interfaces de red para poder conectarnos por SSH y terminar la configuración. Para ello, a manubrio en el teclado que aún tenemos conectado a la máquina, ejecutaremos los siguientes comandos (una vez iniciada la sesión):

Por ejemplo, en el router Qotom propuesto, la interfaz eth8 es la última RJ45, la que queda separada de las demás.

configure # para entrar en el modo de edición de la configuración

set system option keyboard-layout es # nos ahorramos dolores de cabeza

commit

set interfaces ethernet eth8 address 172.16.0.1/24
set service ssh

commit
save

A continuación, conectaremos nuestra máquina directamente a la interfaz eth8 del router y nos asignaremos la IP 172.16.0.2/24 para poder llegar. Además, pondremos la puerta de enlace por defecto 172.16.0.1, lo cual nos será de utilidad en pasos posteriores.

Nos conectamos al router por SSH (con la contraseña que hemos definido en el instalador, que por defecto es vyos):

ssh vyos@172.16.0.1

Una vez dentro, podemos crear un archivo de texto en el que pegar y editar la configuración:

nano config.boot

Y pegamos la siguiente configuración base:

interfaces {
    loopback lo {
    }

    ethernet eth0 {
        description "upstream-digi"

        offload {
            gro
            gso
            rfs
            rps
            sg
            tso
        }

        vif 20 {
        }
    }

    ethernet eth1 {
        description "downstream"

        offload {
            gro
            gso
            rfs
            rps
            sg
            tso
        }

        address "192.168.1.1/24"
        address "fe80::1/64"
    }

    ethernet eth2 {
        
    }

    ethernet eth3 {
    }

    ethernet eth4 {
    }

    ethernet eth5 {
    }

    ethernet eth6 {
    }

    ethernet eth7 {
    }

    ethernet eth8 {
        description "management"
        address "172.16.0.1/24"
    }

    pppoe pppoe0 {
        source-interface "eth0.20"
        mtu "1492"
        no-peer-dns

        authentication {
            username "<reemplazar>@digi"
            password "<reemplazar>"
        }

        dhcpv6-options {
            pd 0 {
                length "56"
                interface eth1 {
                    sla-id "0"
                    address "1"
                }
            }
        }

        ip {
            adjust-mss "clamp-mss-to-pmtu"
            source-validation "strict"
        }

        ipv6 {
            adjust-mss "clamp-mss-to-pmtu"
            address {
                autoconf
            }
        }
    }
}

protocols {
    static {
        route 10.0.0.0/8 {
            blackhole {
                distance "254"
            }
        }
        route 172.16.0.0/12 {
            blackhole {
                distance "254"
            }
        }
        route 192.168.0.0/16 {
            blackhole {
                distance "254"
            }
        }
    }
}

firewall {
    global-options {
        broadcast-ping "disable"
        ip-src-route "disable"
        ipv6-src-route "disable"
        receive-redirects "disable"
        ipv6-receive-redirects "disable"
        send-redirects "disable"
        source-validation "strict"
        syn-cookies "enable"
        twa-hazards-protection "enable"
    }

    state-policy {
        established {
            action "accept"
        }
        related {
            action "accept"
        }
        invalid {
            action "drop"
        }
    }

    zone wan {
        interface "pppoe0"
        default-action "drop"

        from private {
            firewall {
                name accept-all-v4
                ipv6-name accept-all-v6
            }
        }
    }

    zone private {
        interface "eth1"
        default-action "drop"

        from wan {
            firewall {
                name accept-icmp-v4
                ipv6-name accept-icmp-v6
            }
        }
    }
    
    name accept-all-v4 {
        default-action "accept"
    }

    ipv6-name accept-all-v6 {
        default-action "accept"
    }

    name accept-icmp-v4 {
        default-action "drop"

        rule 10 {
            action "accept"
            protocol "icmp"
        }
    }

    ipv6-name accept-icmp-v6 {
        default-action "drop"

        rule 10 {
            action "accept"
            protocol "ipv6-icmp"
        }
    }
}

nat {
    source {
        rule 1 {
            description "ipv4 masquerade"
            outbound-interface "pppoe0"
            source {
                address "192.168.1.0/24"
            }
            destination {
                address "!192.168.1.0/24"
            }
            translation {
                address "masquerade"
            }
        }
    }
}

service {
    ntp {
        server 0.pool.ntp.org {
        }
        server 1.pool.ntp.org {
        }
        server 2.pool.ntp.org {
        }
    }
    
    lldp {
        interface eth0 {
        }
        interface eth1 {
        }
        interface eth2 {
        }
        interface eth3 {
        }
        interface eth4 {
        }
        interface eth5 {
        }
        interface eth6 {
        }
        interface eth7 {
        }
        interface eth8 {
        }
    }

    ssh {
        listen-address "192.168.1.1"
        disable-host-validation
    }

    dhcp-server {
        listen-address "192.168.1.1"

        shared-network-name private {
            authoritative

            domain-name "local"
            domain-search "local"

            name-server "1.1.1.1"
            name-server "8.8.8.8"
            name-server "76.76.2.5"

            subnet 192.168.1.0/24 {
                default-router "192.168.1.1"
                lease "86400"

                range 1 {
                    start "192.168.1.100"
                    stop "192.168.1.254"
                }
            }
        }
    }

    router-advert {
        interface eth1 {
            name-server "2606:4700:4700::1111"
            name-server "2001:4860:4860::8888"
            name-server "2606:1a40::5"

            prefix ::/64 {
                decrement-lifetime
                deprecate-prefix
                preferred-lifetime "4294967295"
                valid-lifetime "4294967295"
            }
        }
    }
}

system {
    host-name "router"

    name-server "2606:4700:4700::1111"
    name-server "2001:4860:4860::8888"
    name-server "2606:1a40::5"
    name-server "1.1.1.1"
    name-server "8.8.8.8"
    name-server "76.76.2.0"

    option {
        keyboard-layout "es"
    }
    
    login {
        banner {
            pre-login ""
            post-login ""
        }
        
        user vyos {
            authentication {
                plaintext-password "<reemplazar>"
            }
        }
    }

    syslog {
        global {
            facility all {
                level "notice"
            }
        }
    }

    console {
        device ttyS0 {
            speed "115200"
        }
    }
}

En la cual tendremos que reemplazar todos los <reemplazar> por sus correspondientes valores:

  • Usuario y contraseña PPPoE: si se tiene GPON, se pueden pedir a Digi directamente por el chat de la web o por teléfono. Si no, oficialmente no los proporcionan, pero se pueden obtener mediante varios métodos.
  • Contraseña del router: una contraseña suficientemente segura que almacenaremos en nuestro gestor de contraseñas y que servirá para autenticarse por SSH (solo desde la red local) o por consola en el router.

Una vez el archivo de configuración tenga los valores correctos:

load config.boot
commit
save

Y con esto el router ya estaría listo.

ONU

El siguiente paso es conectar la ONU al router. De acuerdo con la configuración anterior, lo haremos en la primera interfaz SFP+ (eth0).

Dependiendo de la ONU que hayamos adquirido, le asignaremos al router una IP en su interfaz para que podamos llegar a la interfaz de gestión de la ONU desde nuestra máquina:

set interfaces ethernet eth0 address 192.168.100.2/24 # XGS-ONU-25-20NI
set interfaces ethernet eth0 address 192.168.11.2/24 # EN-XGSFPP-OMAC-V2 / WAS-110
set interfaces ethernet eth0 address 192.168.1.11/24 # XGS-ONU-25-20NI

commit
save

Antes de continuar necesitaremos obtener el número de serie PON de nuestro router Digi. Lo podremos encontrar en la etiqueta, tanto de la caja como del propio dispositivo, y tiene el siguiente aspecto: ZTEGABCD0123. Empieza siempre por ZTEG, que es el identificador del fabricante de la OLT y la ONU/ONT, y va seguido de ocho caracteres hexadecimales en mayúsculas. Tomaremos nota para posteriores pasos.

XGS-ONU-25-20NI

Si hemos adquirido la ONU XGS-ONU-25-20NI, a continuación nos conectaremos a ella por Telnet desde nuestra máquina:

telnet 192.168.100.1

Nos preguntará por el nombre de usuario y la contraseña. En este enlace podemos obtener más información sobre cómo conseguirlos la primera vez.

Una vez dentro, hay que activar el modo de administración:

enable

La contraseña de esta ONU cambia en función del número de serie PON. Es importantísimo obtener la nueva contraseña antes de hacer cualquier cambio. Si no, perderemos acceso al dispositivo para siempre. En el enlace anterior hay una herramienta equivalente a ejecutar este comando, pero no hay garantías de que vaya a estar ahí siempre.

Ejecutaremos el siguiente comando, con la parte hexadecimal del número de serie PON en minúsculas, y guardaremos el resultado en nuestro gestor de contraseñas. Estas serán las credenciales para autenticarse por Telnet las siguientes veces.

/system/debug/md5 "ZTEGabcd0123" 8

Finalmente, cambiaremos el número de serie PON y reiniciaremos la ONU.

/system/misc/eqsn set "ZTEGabcd0123"

reboot

EN-XGSFPP-OMAC-V2 / WAS-110

Si hemos adquirido la ONU EN-XGSFPP-OMAC-V2 (o Azores WAS-110, que es la misma), a continuación abriremos la interfaz web desde nuestro navegador:

  • URL: http://192.168.11.1
  • Usuario: admin
  • Contraseña: QsCg@7249#5281

Iremos a la pestaña "Service", activaremos SSH y guardaremos los cambios.

Después, nos conectaremos por SSH desde nuestra máquina con el siguiente comando y la contraseña QpZm@4246#5753:

ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1

Finalmente, ejecutaremos los siguientes comandos para establecer el registration id a DEFAULT y el número de serie PON al que hemos anotado previamente.

load_cli factory

set registration_id DEFAULT
set gpon_sn ZTEGabcd0123

exit
reboot

A esta ONU se le puede instalar fácilmente un firmware personalizado, aunque en mis pruebas tenía aproximadamente un 30 % de pérdida de tráfico y no he conseguido averiguar la causa. Tanto aquí como aquí pueden encontrarse instrucciones de instalación.

Existe una comunidad de Discord donde puede obtenerse soporte sobre esta ONU, así como las versiones más recientes del firmware oficial para poder actualizar.

GPON-ONU-34-20BI

Si hemos adquirido la ONU GPON-ONU-34-20BI, a continuación nos conectaremos por SSH desde nuestra máquina con el siguiente comando y la contraseña 7sp!lwUBz1:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa ONTUSER@192.168.1.10

Y ejecutaremos el siguiente comando para establecer el número de serie PON al que hemos anotado previamente.

set_serial_number ZTEGabcd0123

reboot

Enlaces

Una vez configurada la ONU y antes de empezar a conectar enlaces, es recomendable eliminar la dirección asignada previamente a la interfaz del router en la que tenemos conectada la ONU para evitar que cualquier máquina de la red local pueda alcanzarla.

Para ello, ejecutaremos lo siguiente en el router, en función de la ONU que hayamos adquirido:

delete interfaces ethernet eth0 address 192.168.100.2/24 # XGS-ONU-25-20NI
delete interfaces ethernet eth0 address 192.168.11.2/24 # EN-XGSFPP-OMAC-V2 / WAS-110
delete interfaces ethernet eth0 address 192.168.1.11/24 # XGS-ONU-25-20NI

commit
save

El último paso es conectar los diferentes enlaces:

  • La fibra del proveedor a la ONU con un cable SC/APC (el mismo que viene con el router del proveedor).
  • Cualquier interfaz SFP+ del switch a la interfaz eth1 del router con un cable twinax DAC.
  • El resto de dispositivos (puntos de acceso, ordenadores, etc.) a cualquier interfaz del switch.

Comprobación

Para comprobar que todo está funcionando correctamente, ejecutaremos el siguiente comando en VyOS (si aún estamos en el modo de configuración, hay que añadirle run delante):

show interfaces pppoe pppoe0

Si vemos algo así, es que Digi nos ha delegado con éxito una IPv4 y un prefijo IPv6 /56, con lo que la ONU ha sincronizado correctamente con la OLT y además hemos configurado bien el router.

vyos@router:~$ show interfaces pppoe pppoe0
pppoe0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 1.2.3.4 peer 10.0.0.1/32 scope global pppoe0
       valid_lft forever preferred_lft forever
    inet6 fe80::a8bb:ccff:fedd:eeff/64 scope link
       valid_lft forever preferred_lft forever

    RX:      bytes  packets  errors  dropped  overrun       mcast
         936777963  1275362       0        0        0           0
    TX:      bytes  packets  errors  dropped  carrier  collisions
         157513026   912981       0        0        0           0

Desde nuestra máquina se nos tendrá que haber asignado una IPv4 por DHCP y anunciado el prefijo IPv6 /64 de la red local para que se autoconfigure una dirección:

victor@example[~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global enp6s18
       valid_lft forever preferred_lft forever
    inet6 2001:0db8::a8bb:ccff:fedd:eeff/64 scope global dynamic mngtmpaddr
       valid_lft 4294943156sec preferred_lft 4294943156sec

Comentarios

  • La configuración del router es segura por defecto y no permite iniciar conexiones desde internet hacia la red local, pero sí al revés. Téngase en cuenta que NAT no es un mecanismo de seguridad, por lo que es imprescindible tener el firewall configurado de esta forma independientemente de si el proveedor nos ofrece dual-stack o no.
  • Si se adquiere un switch administrable, es posible tener varias redes locales en diferentes VLANs, con prefijos IPv4 e IPv6 diferentes y políticas de firewall específicas entre las diferentes redes. Como Digi delega un prefijo IPv6 /56, es posible tener hasta 256 redes locales /64. Puede utilizarse para tener red de invitados, red del trabajo, red para IoT, etc.
  • VyOS es compatible con DNS dinámico. Véase la documentación.
  • VyOS es compatible con WireGuard. Véase la documentación. Por ejemplo, yo tengo un túnel entre dos ubicaciones con montajes equivalentes al de esta guía, de forma que las redes que escojo pueden llegar directamente a las redes de otras ubicaciones de forma completamente transparente. Como curiosidad, el tráfico del túnel alcanza unos 3 Gb/s. Por fuera del túnel, unos 6 o 7.
  • Es posible contratar varios proveedores de red y configurar el router para que los utilice por prioridad. Si estos proveedores utilizan redes diferentes, se conseguirá tener la conexión a internet en alta disponibilidad.

Conclusiones

Espero que esta guía sea de utilidad.

Si alguien cree que falta algo, que algo se puede explicar mejor o que hay algún error, estoy abierto a sugerencias y aportaciones.

Y, como decía al principio, si alguien tiene alguna consulta, que no dude en preguntar en los comentarios.

v0ctor

Soy un poco novato y hay unas separaciones después de algunos párrafos que no entiendo por qué aparecen. 😞

🗨️ 4
Aell6782

Gracias por el aporte, te llevas positivo.

Post bien redactado, detallado con imágenes y bastante técnico.

🗨️ 1
v0ctor

¡Muchísimas gracias!

PeJota

v0ctor esas separaciones que dices son los espacios de publicidad que se añaden al post, seguramente tu usas un adblock que te los bloquea y por eso ves el espacio en blanco.

🗨️ 1
v0ctor

Ahora que lo dices, en el móvil sí que me aparece la publicidad. Lo raro es que uso Firefox tal cual, no tengo ninguna extensión de bloqueo de anuncios, filtro por DNS ni nada del estilo.

dukez

El tutorial esta muy currado, pero ese "Router" con un intel atom, es capaz de hacer NAT sobre interface PPPoE y dar los 10gbps?

🗨️ 2
v0ctor

La CPU que lleva es una Intel Atom C3758R, que saca 5131 puntos en PassMark. Como referencia, una AMD Ryzen 5 3600 saca 17772 puntos, un 71,1 % más.

Es más que suficiente. Moviendo tráfico vía PPPoE alrededor de 6 Gb/s simétricos (a veces un poco más y a veces un poco menos) con conntrack (para NAT y para el firewall), la carga y uso de CPU están alrededor de 1/7, mientras que el uso de memoria ronda los 600 MiB.

Si no pudiera, además Qotom habría diseñado mal la máquina. Porque si tiene 4 interfaces SFP+ y 5 RJ45 1000BASE-T y luego no puede mover el tráfico con algo de procesamiento… En cualquier caso, recomiendo activar siempre el offloading en todas las interfaces involucradas para delegar en el chipset de red el trabajo duro.

🗨️ 1
kaleth
1

Mejor que la CPU ARM A53 quad core 1.1 GHz y los 512MB de RAM del Zte F8648P seguro que es. Todavía queda quien lee "Atom" y aún se acuerda de los nefastos N270 y compañía, pero esto es una CPU de 8 núcleos con todas sus cosas de servidor pequeño.

EmuAGR
1

Una guía como esta tenía pensado hacer yo, pero esta es buena así que me lo ahorras, ¡gracias!

Varias observaciones:

  1. Ojo que para PPPoE hay serias dudas de que pfSense/OPNsense pueda con 10 Gbps por limitaciones del stack de FreeBSD. Tenía pendiente probarlo con VyOS que usa el kernel Linux. Entiendo que sólo lo has probado con VyOS, obteniendo resultados aceptables.
  2. Otro punto, varios usuarios comentan que tienen cortes semanales/ocasionales con el módulo XGS de FS. ¿Cuánto llevas probando esto, te los has encontrado? Cuando ocurre (tanto en zona Zyxel como Zte) no se ha encontrado solución. A mí no me ocurre pero lo comento por si acaso.
  3. Veo que tuviste problemas con el módulo ECI, ¿la solución fue poner el registration_id DEFAULT como comentas?

Sobre precios a corto/largo plazo:

  1. La ONT XGS de FS (que es la que yo tengo), sale por unos 250€ (o 230€ si pagas en dólares). ¿Tuviste que pagar aduanas por la ONT de ECI? ¿Qué precio final salió?
  2. ¿Podrías comentar qué consumo tienes en enchufe en el router? Por compararlo con los Mikrotik CCR2004 o CCR2116.
  3. ¿Se está utilizando la capacidad QAT del C3758R de algún modo? Imagino que no. Quizás un equipo con N100 sería mejor opción por consumo, a ver si encontrara uno con al menos 3-4 SFP+. EDIT: Leo que los N100 están limitados a 2 puertos mientras los C3758 (Denverton) suelen tener 4.
  4. Si no es mucha molestia, ¿podrías comentar sobre el precio final de tu configuración del Qotom? Por tener una referencia precio/consumo.

Me quito el sombrero por la buena recopilación de datos que has hecho aquí, que lo sepas. ;)

PD: En ServeTheHome hay un hilo bastante interesante sobre ese PC: forums.servethehome.com/index.php?thread…sfp.41331%2F Y un artículo: servethehome.com/the-everything-fanless-…ap-teamgroup

🗨️ 3
v0ctor
1

Llevaba tiempo queriendo hacerla, porque una parte del conocimiento estaba en comentarios que había ido dejando por hilos y otra estaba pendiente de investigar.

Bien visto lo de PPPoE con FreeBSD, ni lo había pensado. Solo he probado con VyOS, pero estaría bien si alguien se anima a ver qué pasa con los otros dos.

Respecto a los cortes, nunca he tenido ninguno. Llevo con la ONU XGS-PON de FS desde junio de 2023. Y desde julio en otra ubicación. En el primer caso, es la versión R4.4.20.018 del firmware (no es la más reciente), y en el otro no lo sé.

En cuanto a la ONU de ECI, efectivamente, tras hacer mil pruebas, terminé poniendo ese parámetro (por comparación con la de FS) y ya sincronizó con la OLT. Llegué a ponerle el firmware personalizado (la versión "basic"), que está chulísimo y le da mil patadas al original, pero me perdía el 30 % del tráfico y no llegué a averiguar por qué. Imagino que se podría haber solucionado con algún ajuste de configuración, pero ya no tenía ganas de seguir investigando.

Sobre el coste total de la de ECI, fueron 196,45 € del producto, 106,09 de envío (ojo) y 91,87 de aduanas y gestión. En total, la broma salió por 394,41 € (IVA incluido).

Respecto al consumo, lo siento, pero no tengo forma de medirlo.

En cuanto a si se usa QAT, no sabría decirte. Al llevar 4 puertos SFP+, no sé si el SoC llevará un chipset específico para red. Desconozco las particularidades de este modelo. En cualquier caso, por las observaciones que he hecho, la CPU no mueve directamente los paquetes. Lo que ya no sé es qué componente del SoC se encarga de hacerlo exactamente. El TDP del SoC entero son 25 W, lo cual no está nada mal para ser AMD64. Estaría bien hacerme con algo para medir el consumo con la CPU ociosa y compararlo con otros routers ARM64.

Cogiendo la configuración más básica del Qotom (8 GiB de memoria y 256 de almacenamiento), son 367,19 € (IVA incluido). Se puede comprar sin memoria ni almacenamiento, por cierto. No es barato, pero en este caso es para una oficina. Yo en mi casa el router lo tengo en una máquina virtual dentro de un Proxmox con una AMD Ryzen 7 5800X.

¡Muchísimas gracias!

Por cierto, has puesto el mismo enlace para el hilo que para el artículo. Estoy viendo que en los comentarios la gente se ha quejado de problemas de compatibilidad con los puertos SFP+. Por mi parte, con QNAP y cables DAC de FS con transceptores genéricos funcionan perfectamente.

🗨️ 2
EmuAGR

¡Gracias por responder!

Uf, desde luego el ECI es una buena clavada, varias personas de Hack-GPON también se gastaron esa pasta en Alibaba para pillar un CIG cuando todavía no estaba el de FS.

Yo entiendo que toda la parte de encapsulamiento en PPPoE la tiene que hacer la CPU. Supuestamente VyOS también tenía en desarrollo una parte con DPDK/VPP que mejoraría el rendimiento hasta 100 Gbps pero todavía está a medio hacer, esta CPU es precisamente la que usa TNSR (pero no tiene cliente PPPoE). Tengo planes de montar VyOS en una placa con un 5600X + tarjeta Intel X710 y si lo hago ya mediré el consumo. Si pillase el Qotom, tengo por aquí también 8GB de RAM de actualizar un portátil y como comentas más arriba iría sobrado. La verdad es que pinta interesante calidad/precio.

Ya que dices que tienes uno en el Qotom y otro en una VM con un Ryzen 5800X, ¿notas diferencias de velocidad entre uno y otro?

PD: Enlace arreglado, gracias por avisar.

🗨️ 1
v0ctor
2

No noto diferencias de velocidad ni latencia entre ambos casos. En el caso de la 5800X, la máquina virtual está limitada a 4 núcleos.

djbill
1

Gracias por el aporte

daviddrf
1

Hola @v0ctor y mil gracias por este hilo que está genial. Un saludo y enhorabuena.