Ping de Mantenimiento para Conexiones PPP en MikroTik RouterOS

Las conexiones PPP, como PPTP, pueden enfrentar problemas de inactividad cuando no hay tráfico regular en el túnel. Esto puede provocar que las conexiones se cierren inesperadamente después de un tiempo específico. Una solución simple y efectiva es usar un script que envíe pings periódicos para mantener estas conexiones activas.


¿Qué hace este script?

  1. Prevención de desconexiones por inactividad: Envía pings a las direcciones remotas de las conexiones PPTP activas, reiniciando el temporizador de inactividad.
  2. Automatización programada: Configurado con el programador del sistema (scheduler), el script se ejecuta automáticamente cada 45 segundos, asegurando que las conexiones permanezcan activas.

El script

Aquí tienes el código para mantener activas las conexiones PPTP:

# Script: PPTP-KeepAlive
:local addr
/ppp active {
   :foreach i in=[find] do={
      :if ([get $i service] = "pptp") do={
         :set addr [get $i address]
         /ping ($addr) count=1
      }
   }
}


Programación del script

Para que el script se ejecute automáticamente, utiliza el programador de MikroTik:

/system scheduler
add comment="" disabled=no interval=45s name=PPTP-KeepAlive on-event=PPTP-KeepAlive policy=read,test start-time=startup

Ventajas

  • Evita desconexiones innecesarias: Ideal para túneles que deben mantenerse activos incluso con tráfico mínimo.
  • Ejecución periódica: Reduce la necesidad de supervisión manual.
  • Ligero: El impacto en el rendimiento del sistema es mínimo, ya que solo se envía un ping por conexión.

Personalización

  1. Intervalo de tiempo: El valor de interval=45s en el programador puede ajustarse según la configuración de tiempo de inactividad de tu túnel PPTP.
  2. Adaptación a otros servicios: Este script está diseñado para PPTP, pero se puede modificar para soportar otros tipos de conexiones PPP, como L2TP o PPPoE, cambiando el filtro de service.

Consideraciones finales

  • Limitado a conexiones PPTP activas: Si no hay conexiones activas, el script no hace nada.
  • Probar antes de implementar: Asegúrate de probar el script en un entorno de prueba antes de implementarlo en producción.
  • Complemento, no reemplazo: Este método no soluciona problemas de conectividad inherentes o configuraciones incorrectas de red. Asegúrate de que tu infraestructura esté configurada correctamente.