Integraci贸n Wisphub Wifi - WispHub.net

Integraci贸n Wisphub Wifi

Integración de Wisphub Wifi

Wisphub Wifi es un sistema que nos permite actualizar la información de la red wifi(nombre de red wifi y contraseña) de nuestros usuarios, para poder utilizar esta función es importante seguir una serie de pasos, de igual manera es importante cumplir con ciertos requisitos, a continuación se detallan los pasos a seguir para poder usar esta función.

Requisitos

  1. Mikrotik v7.4 o superior
  2. Mikrotik con arquitecturas compatibles x86, arm, arm64 o amd64
  3. Al menos 1GB de almacenamiento disponible
  4. En caso de no contar con un Mikrotik compatible, se puede hacer uso de  CHR o algun dispositivo capaz de soportar el uso de contenedores (Docker)

Consideraciones

  1. Para un correcto funcionamiento, las ONU's deben tener habilitado el puerto HTTP, caso contrario no podrá utilizar esta función.
  2. Actualmente el proyecto esta diseñado para funcionar unicamente con ONU's de la marca Huawei, por lo que, en caso de utilizar ONU's de otras marcas no podrá hacer uso de esta función.
  3. No todos los modelos de Mikrotik son compatibles con esta función, por lo que en caso de querer usarla tendrá que recurrir a algun otro dispositivo capaz de ejecutar contenedores, asi mismo dicho dispositivo tendrá que estar bajo la misma red y debe ser capáz de conectarse a las ONU's.
  4. Si desea utilizar in CHR tendrá que asegurarse de que este sea capaz de conectarse a las ONU's de sus cliente, igualmente tendrá que crear las reglas necesarias para que la petición sea procesada por el CHR.

Ejemplo de configuraciones de red

Opción 1 - Configuración con Mikrotik v7 y almacenamiento externo SSD

En el primer escenario, se muestra la configuración de una conexión con Mikrotik v7 mientras se aprovecha el uso de contenedores en el mismo dispositivo. Este enfoque ofrece una gestión eficiente de redes y servicios. En este ejemplo se puede observar que el Mikrotik v6 que no es compatible con el uso de contenedores esta conectado al Mikrotik v7 el cual es el encargado de ejecutar los contenedores, por lo que, con esta configuración el Mikrotik v7 es capaz de interactuar con los clientes del Mikrotik v6, esto gracias a que existe una conexión entre ambos.

Ventajas:

  • Si todos los Mikrotik estan bajo la misma red o tienen conexión entre si, basta con configurar unicamente un Mikrotik que cumpla con los requisitos necesarios para el uso de contenedores.

 

Desventajas

  • Para que este escenario sea posible, es necesario el uso de un almacenamiento adicional, debido a que el almacenamiento de fabrica con el que cuenta la mayoria de Mikrotik no es suficiente para poder almacenar contenedores.
  • No todos los dispositivos Mikrotik son compatibles, debe verificar que su arquitectura soporte el uso de contenedores.
  • Si los Mikrotik no estan conectados entre si o en la misma ubicación seria necesario configurar otro Mikrotik v7 con el almacenamiento adicional en la otra ubicación.

 

Este escenario es el mismo que el anterior, sin embargo, en este ejemplo el Mikrotik v6 podria estar conectado a la misma OLT que el Mikrotik v7, de igual manera ambos Mikrotik deben tener conexión entre si.

Opción 2 - Configuración con CHR

El segundo caso implica la interconexión entre dos Mikrotik v6 (Mk v6) y un Mikrotik Cloud Hosted Router v7 (CHR v7). En este ejemplo ambos Mikrotik estan conectados al mismo CHR, por lo que el CHR es capaz de realizar acciones en ambos Mikrotik sin la necesidad de que los Mikrotik esten conectados entre si.

Ventajas:

  • Opción recomendada
  • Todo esta centralizado en el CHR y no es necesario realizar modificaciones a la red.
  • Los Mikrotik pueden estar fisicamente en diferentes ubicaciones

Desventajas:

Opción 3 - Configuración con Dispositivo Linux/Raspberry Pi

En el tercer escenario, se muestra la conectividad entre dos Mikrotik v6 (Mk v6) y uno de ellos conectado a un dispositivo Linux que ejecuta contenedores. En este ejemplo ambos Mikrotik estan conectados entre si, esto con el fin de que el dispositivo Linux sea capaz de realizar acciones en los clientes de ambos Mikrotik.

Ventajas:

  • No es necesario que el Mikrotik cumpla con los requisitos necesarios para el uso de contenedores, puesto que, el dispositivo Linux sera el encargado de ejecutar los contenedores.
  • Si todos los Mikrotik estan bajo la misma red o tienen comunicación entre si, unicamente deberia configurar un dispositivo Linux el cual podrá estar conectado al Mikrotik de su preferencia.

 

Desventajas:

  • Tendra que depender de algun dispositivo externo que soporte el uso de contenedores.
  • Si los Mikrotik no estan conectados entre si o en la misma ubicación seria necesario instalar otro dispositivo en la otra ubicación.

 

 

Habilitar Contenedores en Mikrotik

Para poder hacer uso de los contenedores en nuestro Mikrotik, es necesario descargar el archivo all_packages de la página oficial de Mikrotik., es importante asegurese de descargar el archivo correspondiente a su Mikrotik de lo contrario no podrá hacer uso de los contenedores.

Una vez haya descargado el archivo, debera descomprimir el archivo e importar el archivo container a nuestro Mikrotik.

Una vez importado el archivo, será necesario reiniciar nuestro Mikrotik, podemos hacerlo desde System/Reboot.

Nota

En caso de que el archivo all_packages correspondiente a su versión de Mikrotik no cuente con el archivo container no podrá hacer uso de esta función, por lo que, en caso de querer utilizar Wisphub Wifi tendrá que depender de algún dispositivo externo que soporte el uso de contenedores, de igual manerá tendra que crear sus respectivas reglas para indicar que sera este dispositivo el encargado de ejecutar el proyecto.

Finalmente para poder hacer uso de los contenedores es necesario ejecutar el comando

/system/device-mode/update container=yes

Esto pedirá una confirmación que podemos realizar con el boton mode del Mikrotik, en caso de no contar con este boton es necesario desconectar el Mikrotik de la corriente, esperar unos segundos y conectarlo nuevamente, con esto deberia quedar habilitado el uso de contenedores en nuestro Mikrotik.

Crear Reglas en Mikrotik

Una vez hayamos habilitado el uso de contenedores es necesario agregar algunas configuraciones para nuestro contenedor.

Añadir interfaz veth para el contenedor

    /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1

Crear un bridge para nuestro conenedor, utilizar la interfaz veth

    /interface/bridge/add name=containers
    /ip/address/add address=172.17.0.1/24 interface=containers
    /interface/bridge/port add bridge=containers interface=veth1

Configurar NAT para el tráfico saliente

    /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24

Configurar redireccionamiento 

/ip/firewall/nat/add chain=dstnat protocol=tcp dst-port=7000 action=dst-nat to-address=172.17.0.2 to-ports=7000 comment=CONTENEDOR

Con esta instrucción estamos especificando que todo aquello que llegue por el puerto 7000 sea redirigido a nuestro contenedor, el cuál será el encargado de modificar la red wifi

Crear entorno del contenedor

    /container/envs/add name=wisphub_wifi_envs key=TZ value="America/United States"
    /container/envs/add name=wisphub_wifi_envs key=WEBPASSWORD value="mysecurepassword"
    /container/envs/add name=wisphub_wifi_envs key=DNSMASQ_USER value="root"

Crear mount del contenedor

    /container/mounts/add name=etc_wisphub_wifi src=disk1/etc dst=/etc/wisphub_wifi
    /container/mounts/add name=dnsmasq_wisphub_wifi src=disk1/etc-dnsmasq.d dst=/etc/dnsmasq.d

Estas son algunas variables de entorno para el uso de nuestro contenedor, puede cambiar los valores si asi lo desea.

Añadir registry-url

    /container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/pull

Esto nos permitirá descargar imagenes de los repositorios de Docker.

Nota

Las instrucciones anteriores son necesarias para un correcto funcionamiento del contenedor, puede realizar modificaciones a las instrucciones siempre y cuando estas funcionen correctamente, puede basarse de las intrucciones aqui mostradas y modifcarlas de la manera mas conveniente. En aquellas instrucciones que especificas una ruta(src) tenga en cuenta que es donde se alojará nuestro contenedor, de igual manera si asi lo desea puede especificar otra ruta.

Descargar Imagen del Proyecto

Una vez hayamos realizado las configuraciones previas, procedemos a descargar la imagen con el siguiente comando, asegurese de ejectuar el comando correspondiente a la arquitectura de su Mikrotik.

X86

    /container/add remote-image=soportewisphub/wisphub_wifi:latest interface=veth1 root-dir=disk1/wisphub-wifi/ envlist=wisphub_wifi_envs mounts=dnsmasq_wisphub_wifi,etc_wisphub_wifi hostname=WisphubWifi

ARM

    /container/add remote-image=soportewisphub/wisphub_wifi_arm:latest interface=veth1 root-dir=disk1/wisphub-wifi/ envlist=wisphub_wifi_envs mounts=dnsmasq_wisphub_wifi,etc_wisphub_wifi hostname=WisphubWifi

ARM64

    /container/add remote-image=soportewisphub/wisphub_wifi_64:latest interface=veth1 root-dir=disk1/wisphub-wifi/ envlist=wisphub_wifi_envs mounts=dnsmasq_wisphub_wifi,etc_wisphub_wifi hostname=WisphubWifi

A continuación comenzara la descarga de nuestro contenedor, en este punto unicamente debemos esperar a que se descargue la imagen

Nota

En el comando antes mencionado, en root-dir se especifica la ruta, en este caso será dentro de disk1, en caso de ser una ruta diferente sera necesario cambiar este valor.

Una vez se haya extraido será necesario inicializarlo, hasta este punto nuestro contenedor deberia funcionar correctamente, por lo que, la configuración restante se haría del lado de Wisphub

Configurar eventos de API personalizada

Es necesario agregar los eventos de API personalizada al Mikrotik al que configuramos previamente, para ello nos dirigimos a la pestaña de editar router/eventos de api personalizada y agregar un nuevo registro.

En dominio ponemos la dirección IP de nuestro Mikrotik, en caso de usar VPN tendremos que poner esta dirección IP, en ambos casos tendremos que añadir el puerto 7000, el cual es el puerto a través del cual accederemos al contenedor que aloja el proyecto, activamos la API personalizada y guardamos los cambios.

 

Información Servicio Cliente

Para un correcto funcionamiento es necesario que nuestro cliente cuente con la información necesaria, concretamente es necesario tener los datos de acceso al router wifi, dicha información la podremos ver al editar el servicio de nuestros clientes.

Actualizar Onu Wifi

Una vez se haya realizado la configuración correspondiente, desde el listado de clientes seleccionamos al que queramos modificar la información de la red wifi, en herramientas seleccionamos la opción Cambiar Contraseña Wifi, a continuación nos llevara a una nueva vista donde podremos modificar la información.

Aqui podremos actualizar el nombre y contraseña de la red wifi, tanto la banda de 2.4ghz como la de 5ghz, al modificar la información nos mostrará una pantalla indicandonos que se estan aplicando los cambios, si todo ha salido bien al final nos mostrará un mensaje indicandonos que la información se ha actualizado correctamente.

En caso de que haya ocurrido algún error se nos mostrará un mensaje indicandonos lo ocurrido. 

Portal del Cliente

Esta función fue diseñada para que el cliente también pueda modificar su red wifi, para ello es necesario activar la opción desde los ajustes de Portal del Cliente, si no se activa el cliente no podrá hacer uso de esta funcón pero un usuario de tipo Staff si podrá realizarlo siempre y cuando se hayan configurado los eventos de API personalizada.

 

El cliente tendra unicamente los campos de nombre de red y contraseña wifi, esto por simplicidad, en el caso de que el router wifi del cliente soporte doble banda el cambio se realizará en las redes de 2.4ghz y 5ghz.

Como actualizar la imagen

No existe una manera automatica de actualizar la imagen por lo que cuando haya una nueva versión disponible será necesario eliminar la existente y volver a descargarla.

Detener y eliminar contenedor

Descargar nuevamente la imagen

Iniciar contenedor

Configurar Dispositivo Linux

Si no le es posible configurar su Mikrotik por limitaciones, puede optar por utilizar algún dispositivo, recomendamos el uso de un Raspberry Pi o algún dispositivo con sistema operativo Linux, a continuación le mostramos un ejemplo de como realizar la configuración en Ubuntu, tenga presente que esto es unicamente para poder configurar el dispositivo, en su Mikrotik deberá crear las reglas necesarias para que que este dispositivo sea el encargado de procesar las solicitudes.

Actualizamos nuestro sistema

sudo apt update

sudo apt upgrade

Instalamos Docker

sudo snap install docker

Verificamos la versión de Docker

docker --version

Descargamos la imagen del proyecto

x86
sudo docker pull soportewisphub/wisphub_wifi
arm sudo docker pull soportewisphub/wisphub_wifi_arm 
arm64 sudo docker pull soportewisphub/wisphub_wifi_64

Verificamos que la imagen se haya descargado

sudo docker images

Corremos la imagen en el puerto 7000

sudo docker run -p 7000:7000 soportewisphub/wisphub_wifi

16 de Octubre de 2023 a las 14:58 - Visitas: 2865