ROUTER CENTOS 8: Control de ancho de banda con HTB-GEN

Como están amigos en esta oportunidad les quiero mostrar como montar un router con Centos 8 para controlar y administrar el ancho de banda de los clientes que se conectan a internet por medio de este dispositivo.

Llevar a cabo esta tarea es muy importante se queremos evitar que nuestra red colapse cada vez que algún usuario haga un uso indiscriminado del ancho de banda que tenemos contratado.

LA SOLUCIÓN AL PROBLEMA DEL TRAFICO.

Existen muchas y variadas soluciones para hacer un control del ancho de banda en una red que administra varios dispositivos. Pero en esta ocasión les hablare de una muy sencilla y además free cost.

Se trata de HTB-GEN, una poderosa herramienta escrita por el amigo Luciano Ruete que se encarga de este problema de forma tan simple que basta con colocar unos cuantos parámetros en sus archivos de configuración y listo. Necesitaras por su puesto instalar un router Linux y 2 interfaces de red y conectarlo entre tu red y tu conexión a Internet.

Sin embargo, el hecho de que esta herramienta sea sencilla de poner en marcha no significa que su funcionamiento sea sencillo de comprender.

Es más, existe una gran cantidad de desconocimiento de cómo funcionan estos mecanismos de control de tráfico también llamado QoS. Y esto creo que se debe a lo complejo y variado de las disciplinas de encolamiento, sumado a la gran cantidad de términos técnicos y a todos los conocimientos previos que se deben tener para alcanzar un dominio básico de un rompecabezas tan amplio como este.

CONOCIMIENTO PREVIO A LA INSTALACIÓN HTB-GEN

No quisiera entrar al tema de configuración de esta herramienta sin antes recordar algunos conceptos básicos de una red , como, por ejemplo:

  1. El tráfico de una red se mide por la cantidad de paquetes que circulan en un determinado momento. Los paquetes son un conjunto encapsulado de datos que salen de una maquina atreves de su interface de red con destino a otra. El destino puede estar dentro o fuera de la misma red.
  2. El tráfico de una red puede provenir de distintos tipos de protocolos, entre los principales tenemos a ICMP para la capa de red, TCP y UDP para la capa de transporte.
  3. Todos los paquetes de datos de una red que salen a Internet pasan siempre por un ROUTER, que en nuestro caso será un servidor con CENTOS y con un mínimo de 2 interfaces físicas de red, una conectada a la LAN y otra a la WAN.
  4. A todos los paquetes de datos que salen hacia internet a través del router, se les realiza un procedimiento de enmascaramiento de IP por medio de la tabla NAT (Netwok Addres Transaltion), NAT es una de las tres tablas que maneja IPTABLES (las otras 2 son Filter y Mangle), y consiste en que el ROUTER coloca su dirección IP publica a todos estos paquetes sacándolos a Internet como si fueran suyos y luego cuando los recibe de regreso coloca nuevamente la dirección IP de origen, haciendo que el paquete llegue a su destino.
  5. Si por si acaso te preguntas como sabe el router una vez que retorna el paquete a que pc o mejor dicho a qué IP le corresponde el paquete recibido, bueno es porque NAT maneja una tabla en donde están registrados todos los paquetes alterados con sus respectivos puertos y entonces es fácil reconocer de donde era originalmente.

En el siguiente gráfico puedes observar cómo funciona la tabla NAT y su registro de datos cuando un usuario solicita la página de Yahoo!.

Enmascaramiento IP CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

6. Otra cosa que también debes saber es que las velocidades comerciales de Internet se manejan en múltiplos de la unidad informática “bit”. Por ejemplo, cuando escuchas hablar de una velocidad de 20 Mbps se refiere a 20 mega bits por segundo, que es lo mismo decir 20,000 kilo bits por segundo (20,000kbps) o lo mismo que 20,000,000 bits por segundo (20,000,000 bps).

LABORATORIO DE PRUEBAS PARA CONTROL DE TRAFICO.

A continuación realizaremos un laboratorio de pruebas con un host cliente con IP 192.168.1.10 ruteado a Internet por un servidor con CENTOS 8, el cual realiza el enmascaramiento IP del cliente en el puerto WAN.

El procedimiento de enmascaramiento se puede realizar tanto con IPTABLES como con FIREWALLCMD. en este caso lo haremos con firewallcmd.

# firewall-cmd --zone=public --add-masquerade --permanent

El servidor cuenta con un ancho de banda disponible de 4 Mbits tanto para la subida como para la descarga.

CONSUMO DE ANCHO DE BANDA ANTES DEL CONTROL DE TRAFICO.

Este seria nuestro laboratorio de pruebas antes de implementar el control de trafico. :

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Para verificar el ancho de banda del que dispone nuestro ruteador podemos valernos de la herramienta speedtest-cli.

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Como podemos observar el resultado muestra un valor muy cercano a los 4 Mbps reales con los que cuenta el ruteador.

Ahora veamos el consumo de nuestro cliente conectado a este ruteador antes de la instalación del control de ancho de banda.

Si corremos un test de velocidad en el cliente obtenemos este resultado:

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

El cliente como vemos consume todo el ancho de banda disponible del Router.

Una manera también muy interesante de saber el ancho de banda que consume un host pero desde el lado del router es con la herramienta gráfica NTOPNG.

Como vemos en esta imagen el cliente con la ip 192.168.1.10 muestra un consumo total de los 4Mbps de los que dispone el ruteador.

Para llevar a cabo esta comprobación desde el lado del cliente descargamos el instalador de corel draw. Esa información también es mostrada en el panel de NTOP.

ntopng CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Este escenario sin ningún control de trafico supondría el colapso de la red para los demás usuarios en caso de que existieran o estuvieran conectados.

INSTALACIÓN DE HTB-GEN EN CENTOS 8

Ahora vamos a ver ahora como instalamos HTB-GEN para implementar un control de trafico sobre nuestro cliente. Descargamos el archivo RPM.

instalación de HTB-GEN

Sin embargo al ejecutar el comando de instalación por terminal la instalación falla mostrando el siguiente error:

Nos indica un error de compatibilidad del paquete con filesystem, lo que supone una incompatibilidad de la versión CENTOS 8 con el rpm de HTB-GEN . Bueno no todo esta perdido

Lo que debemos hacer para superar este inconveniente, al menos es la solución que yo he encontrado, es ejecutar el RPM desde la interface web del servidor WEBMIN.

Nos dirigimos a la opción de instalación de paquetes y le damos la ruta del RPM

En webmin le indicamos al instalador que se salte todas las restricciones de compatibilidad:

Finalmente HTB-GEN se instala sin problemas:

Para comprobar que se realizo la instalación nos dirigimos a /etc y se debe haber creado la carpeta /htb-gen

#cd /etc
#ls -l

CONFIGURACIÓN DE HTB-GEN EN EL RUTEADOR

Luego de la instalación continuamos con la instalación de nuestra herramienta.

Para editar los archivos de configuración puedes usar un terminal, yo prefiero seguir usando WEBMIN.

Nos dirigimos a la carpeta /etc/htb-gen y encontraremos los 2 archivos de configuración.

Editamos primero el archivo htb-gen.conf

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

En este archivo deberemos colocar el nombre de nuestras interfaces de red, en mi caso enp11s0 es para la WAN y enp6s0 es para la LAN y la velocidad tanto de subida como de bajada que tenemos contratado con nuestro operador de servicio.

Es importante señalar que la velocidad tanto de subida como se bajada se declara en el valor de Kbps osea Kilo Bits por segundo. En nuestro caso nuestro servidor cuenta con 4 Mbps para la subida y bajada esto equivale a 4000 Kbps

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Guardamos el archivo y listo.

A continuación editamos el archivo htb-gen-rates.conf.

En este archivo deberemos indicar la IP o las Ips de nuestros host de red y las velocidades que le vamos a asignar. Los valores de cada columna y su significado se detalla a continuación.

  1. Down_Rate. Señala el valor mínimo garantizado de ancho de banda de descarga para este host.
  2. Down_Ceil. Indica el valor máximo NO garantizado de descarga que podría alcanzar el host en el caso de que exista ancho de banda sobrante de otras conexiones. En nuestro caso sera el mismo valor que Down_rate.
  3. Up_Rate. Señala el valor mínimo garantizado de ancho de banda de Subida para este host.
  4. UP_Ceil. Indica el valor máximo NO garantizado de subida que podría alcanzar el host en el caso de que exista ancho de banda sobrante de otras conexiones. En nuestro caso sera el mismo valor que Up_rate.
CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Luego de escribir nuestros valores, salvamos el archivo y luego ejecutamos el comando :

# htb-gen tc_all

Y eso seria todo por el lado del ruteador.

Ahora para comprobar los cambios. Ejecutamos nuevamente un test de velocidad en la Pc del cliente y obtenemos el siguiente resultado:

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

El ancho de banda de consumo del cliente ha sido controlado eficazmente por HTB-GEN. a un trafico casi perfecto y muy cercano a los 2 Mbps definidos en los archivos de configuración.

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Y para finalizar la comprobación del control de ancho de banda en nuestro HOST, abrimos nuevamente nuestro NTOPNG y mientras descargamos nuevamente el instalador de COREL en el lado del cliente observamos su máxima capacidad de descarga.

2 Mbps !

CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA

Y eso ha sido todo por ahora amigos en nuestro post “CENTOS 8 Y HTB-GEN : CONTROL DE ANCHO DE BANDA”

Link de descarga de HTB-GEN

Recuerda que puedes visitar todas las entradas de nuestro blog en:

BLOG TECNOCIENCIA

También puedes visitar nuestro canal de youtube:

Canal de Yotube de Tecnociencia.

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *