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.
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:
- El cliente (ONT, modem ADSL, o radio) inicia una sesión PPPoE
- El router MikroTik (BNG/LAC) autentica contra su base local o un servidor RADIUS
- Si la autenticación pasa, el cliente recibe una IP del pool asignado y un perfil de velocidad
- El router aplica las restricciones de ancho de banda definidas en el PPP profile
- 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.
# 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.
# 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
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.
# 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
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).
# 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:
# 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
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.
# 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
# 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
| Problema | Causa probable | Solucion |
|---|---|---|
| Cliente conecta pero sin internet | NAT no configurado o pool agotado | Verificar /ip firewall nat y /ip pool used |
| Velocidad menor a la del plan | rate-limit en perfil incorrecto o cola global | Revisar /ppp profile print y /queue simple |
| Sesion cae cada X minutos | keepalive-timeout muy corto | Aumentar keepalive-timeout a 60 segundos |
| Error "authentication failed" | Usuario/clave incorrectos o RADIUS no responde | Verificar /ppp secret o /radius monitor |
| MTU issues (sitios no cargan) | MSS no ajustado | Activar 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 →