[RouterOS] leiniercs-renovarConcesionesDHCP-0.4

 Leinier Cruz Salfran     08/Feb/2019
DHCP, Mikrotik, Recetas, RouterOS


Tabla de contenidos

Introducción

Esta receta trata sobre el mecanismo a implementar para renovar, de forma automática, las concesiones DHCP en nuestro RouterOS. Con ello lograremos que no se pause el flujo de transmisión de datos en el enlace inalámbrico establecido a puntos de acceso que liberan las direcciones IP de los dispositivos clientes que no transmiten datos durante determinado tiempo.

Procedimiento de instalación

Se utilizará Winbox para implementar esta receta en nuestro RouterOS. Lo primero que se debe hacer es iniciar sesión, una vez completado este paso, procedemos a la implementación.

WinBox

  1. Abrir la ventana System->Scripts
  2. Crear un nuevo guión
  3. Asignar el nombre leiniercs-renovarConcesionesDHCP-0.4
  4. Establecer permisos de lectura y escritura
  5. Pegar todo el texto del guión en el campo Source
  6. Guardar los cambios
  7. Abrir System->Scheduler
  8. Crear una nueva planificación
  9. Asignar el nombre leiniercs-renovarConcesionesDHCP-0.4
  10. Asignar la fecha de incio a Jan/01/1970
  11. Asignar la hora de incio a 00:00:00
  12. Especificar el intervalo a 00:01:00
  13. Establecer permisos de lectura y escritura
  14. Escribir en el campo Evento:
    /system script run leiniercs-renovarConcesionesDHCP-0.4

Guión

# Fecha: 7-feb-2019 10:38 am
# Autor: Leinier Cruz Salfran <leiniercs@gmail.com>
# Nombre: renovarConcesionesDHCP
# Version: 0.4
# Licencia: GPLv3
# Grupo en Telegram: https://t.me/ccari_grupo
#
# Como instalar:
#   - Pegar todo el texto de este archivo en un nuevo guion con las siguientes
#     caracteristicas:
#     * Nombre: leiniercs-renovarConcesionesDHCP-0.4
#     * Permisos: lectura, escritura
#   - Crear una planificacion con las siguientes caracteristicas:
#     * Nombre: leiniercs-renovarConcesionesDHCP-0.4
#     * Fecha de inicio: Jan/01/1970
#     * Hora de inicio: 00:00:00
#     * Intervalo: 00:01:00
#     * Permisos: lectura, escritura
#     * Evento: /system script run leiniercs-renovarConcesionesDHCP-0.4
#
# Logica:
#   Forzar la recuperacion/renovacion de la concesion DHCP de todas las interfaces inalambricas
#   virtuales dependiendo de su ratio de transmision.
#
# Variables que se pueden ajustar:
#   - prefijoInterfacesVirtuales: Prefijo de los nombres de las interfaces inalambricas virtual.
#                                 Tipo: cadena de texto
#

##
# Variables modificables
#
:local prefijoInterfacesVirtuales "vwlan"
##
# Variables no modificables para uso en el guion
#
:local totalInterfacesVirtuales [:len [/interface wireless find interface-type=virtual mode=station disabled=no]]

:for iI from=1 to=$totalInterfacesVirtuales do={
  :local rxRate [/interface wireless registration-table get [find interface="$prefijoInterfacesVirtuales$iI"] rx-rate]

  :if ($rxRate = "---") do={
    /ip dhcp-client release [find interface="$prefijoInterfacesVirtuales$iI" disabled=no]
  } else={
    /ip dhcp-client renew [find interface="$prefijoInterfacesVirtuales$iI" disabled=no]
  }
}