PPPoE es el protocolo de autenticación de clientes más usado por ISP y WISP en Latinoamérica. MikroTik RouterOS lo implementa de forma nativa y es capaz de manejar desde decenas hasta miles de sesiones simultáneas dependiendo del hardware. Esta guía cubre la configuración completa del servidor PPPoE en RouterOS, desde el pool de IPs hasta la integración con RADIUS.

Versión de RouterOS

Esta guía aplica a RouterOS 6.49.x y 7.x. La sintaxis de PPPoE no cambió entre versiones, pero si usas User Manager para RADIUS, requiere ROS 7. Verifica tu versión con /system resource print.

1. Arquitectura PPPoE en un ISP MikroTik

En un despliegue típico ISP/WISP con MikroTik, el flujo es el siguiente:

  1. El cliente (ONT, modem ADSL, o radio) inicia una sesión PPPoE
  2. El router MikroTik (BNG/LAC) autentica contra su base local o un servidor RADIUS
  3. Si la autenticación pasa, el cliente recibe una IP del pool asignado y un perfil de velocidad
  4. El router aplica las restricciones de ancho de banda definidas en el PPP profile
  5. El NAT convierte la IP privada a la IP pública del ISP

2. Configurar el pool de IPs para clientes

Primero define el rango de IPs que recibirán los clientes PPPoE. Usa subredes RFC1918 privadas — la IP pública se asigna en el NAT del router o en un upstream.

RouterOS — /ip pool
# Pool principal para clientes PPPoE
/ip pool add name=pppoe-pool ranges=10.10.0.2-10.10.0.254 comment="clientes pppoe bloque 1"

# Si tienes mas de 253 clientes, agrega mas pools encadenados
/ip pool add name=pppoe-pool-2 ranges=10.10.1.2-10.10.1.254 next-pool=pppoe-pool-2
/ip pool set pppoe-pool next-pool=pppoe-pool-2

# Verificar pools configurados
/ip pool print
/ip pool used print

3. Configurar perfiles PPP por plan de velocidad

Los PPP profiles definen los parametros de cada plan de servicio: velocidad, IP local (gateway del cliente), pool de IPs remotas, DNS y limites de sesion.

RouterOS — /ppp profile
# Perfil base (herencia para todos los demas)
/ppp profile add name=base-isp     local-address=10.10.0.1     dns-server=8.8.8.8,8.8.4.4     only-one=yes     use-compression=no     use-encryption=no     change-tcp-mss=yes     comment="perfil base ISP"

# Plan 10 Mbps simetrico
/ppp profile add name=plan-10M     local-address=10.10.0.1     remote-address=pppoe-pool     rate-limit=10M/10M     dns-server=8.8.8.8,8.8.4.4     only-one=yes     change-tcp-mss=yes     comment="plan basico 10Mbps"

# Plan 20 Mbps simetrico
/ppp profile add name=plan-20M     local-address=10.10.0.1     remote-address=pppoe-pool     rate-limit=20M/20M     dns-server=8.8.8.8,8.8.4.4     only-one=yes     change-tcp-mss=yes     comment="plan estandar 20Mbps"

# Plan 50 Mbps asimetrico (mas download que upload)
/ppp profile add name=plan-50M     local-address=10.10.0.1     remote-address=pppoe-pool     rate-limit=50M/20M     dns-server=8.8.8.8,8.8.4.4     only-one=yes     change-tcp-mss=yes     comment="plan premium 50/20Mbps"

# Verificar perfiles
/ppp profile print
rate-limit: formato

El formato de rate-limit es RX/TX desde la perspectiva del router: 10M/10M = 10 Mbps de bajada / 10 Mbps de subida para el cliente. Puedes agregar burst: 10M/10M 15M/15M 8M/8M 8 10.

4. Habilitar el servidor PPPoE en la interface

El servidor PPPoE escucha en la interface hacia los clientes. Puede ser una interface Ethernet, una VLAN, o una interface bridge.

RouterOS — /interface pppoe-server server
# Servidor PPPoE en la interface hacia la red de acceso
/interface pppoe-server server add     interface=ether2-clientes     service-name=MIKROHELP-ISP     default-profile=plan-10M     one-session-per-host=yes     keepalive-timeout=30     max-mtu=1480     max-mru=1480     mrru=1600     disabled=no     comment="servidor pppoe principal"

# Si los clientes estan en una VLAN
/interface pppoe-server server add     interface=vlan100-clientes     service-name=MIKROHELP-ISP     default-profile=plan-10M     one-session-per-host=yes     disabled=no

# Verificar servidor activo
/interface pppoe-server server print
MTU y fragmentacion

PPPoE agrega 8 bytes de overhead al frame Ethernet. Con una MTU de 1500, el MSS real es 1452. Siempre configura max-mtu=1480 y activa change-tcp-mss=yes en el perfil para evitar problemas con sitios que no respetan PMTUD.

5. Agregar clientes con autenticacion local

Para entornos pequenos (menos de 50 clientes), puedes autenticar directamente con /ppp secret. Para ISP mas grandes, usa RADIUS (ver seccion 6).

RouterOS — /ppp secret
# Agregar cliente con IP dinamica del pool
/ppp secret add     name=cliente001     password=clave-segura-001     service=pppoe     profile=plan-10M     comment="Juan Perez - Calle 5 #23"

# Agregar cliente con IP estatica fija
/ppp secret add     name=cliente002     password=clave-segura-002     service=pppoe     profile=plan-20M     remote-address=10.10.0.50     comment="Empresa XYZ - IP estatica"

# Ver clientes configurados
/ppp secret print

# Ver sesiones activas en tiempo real
/interface pppoe-server print
/ppp active print

# Desconectar un cliente manualmente
/ppp active remove [find where name=cliente001]

# Cambiar plan a un cliente activo (requiere reconexion)
/ppp secret set [find name=cliente001] profile=plan-20M

6. Integracion con RADIUS para ISP

Para ISP con mas de 50 clientes, RADIUS es indispensable. RouterOS 7 incluye User Manager nativo. Aqui la configuracion del cliente RADIUS en el router:

RouterOS — /radius (cliente RADIUS)
# Apuntar RouterOS a tu servidor RADIUS
/radius add     address=10.99.100.1     secret=clave-radius-segura     service=ppp     timeout=3000     comment="servidor radius principal"

# Habilitar autenticacion RADIUS para PPP
/ppp aaa set     use-radius=yes     accounting=yes     interim-update=5m     use-circuit-id-in-nas-port-id=yes

# Verificar conectividad con RADIUS
/radius monitor 0

# Ver estadisticas de autenticacion
/radius incoming print
User Manager en ROS 7

Si usas RouterOS 7, puedes habilitar User Manager directamente en el router con /user-manager settings set enabled=yes. No necesitas un servidor RADIUS externo para flotas medianas. Consulta nuestra guia de User Manager.

7. NAT para sesiones PPPoE

Las IPs asignadas a los clientes PPPoE son privadas. Necesitas NAT para que salgan a internet con la IP publica del router.

RouterOS — /ip firewall nat
# NAT masquerade para clientes PPPoE hacia WAN
/ip firewall nat add     chain=srcnat     src-address=10.10.0.0/16     out-interface=ether1-wan     action=masquerade     comment="NAT clientes pppoe a WAN"

# Alternativa: usar src-nat con IP publica fija (mas eficiente que masquerade)
/ip firewall nat add     chain=srcnat     src-address=10.10.0.0/16     out-interface=ether1-wan     action=src-nat     to-addresses=203.0.113.1     comment="SNAT clientes pppoe"

8. Monitoreo y troubleshooting

RouterOS — Diagnostico PPPoE
# Ver sesiones activas con IP asignada, tiempo conectado y trafico
/ppp active print detail

# Ver sesiones por perfil
/ppp active print where profile=plan-10M

# Estadisticas de interface pppoe por cliente
/interface pppoe-server print stats

# Ver uso del pool de IPs
/ip pool used print

# Log de autenticaciones (activar primero)
/system logging add topics=ppp action=memory
/log print where topics~"ppp"

# Ver cuantas sesiones hay activas
/ppp active print count-only

# Cantidad maxima de sesiones que soporta el hardware
/system resource print
ProblemaCausa probableSolucion
Cliente conecta pero sin internetNAT no configurado o pool agotadoVerificar /ip firewall nat y /ip pool used
Velocidad menor a la del planrate-limit en perfil incorrecto o cola globalRevisar /ppp profile print y /queue simple
Sesion cae cada X minutoskeepalive-timeout muy cortoAumentar keepalive-timeout a 60 segundos
Error "authentication failed"Usuario/clave incorrectos o RADIUS no respondeVerificar /ppp secret o /radius monitor
MTU issues (sitios no cargan)MSS no ajustadoActivar change-tcp-mss=yes en el profile

Gestionamos tu servidor PPPoE

Configuracion, migracion a RADIUS y soporte 24/7 para tu flota MikroTik.

Conocer el soporte MikroTik remoto o solicita una evaluación gratuita →