Desarrollo de un sistema de redirección de tráfico de red por aplicación

Sistema de redirección de tráficoKernelExperts ha desarrollado un sistema de redirección de tráfico de red para sistemas Windows que permite gestionar todo el ancho de banda disponible (p.e. combinando varias conexiones a través de diversos adaptadores como Ethernet, WiFi, 3G, etc.) De esta forma, es posible configurar, mediante una serie de reglas sencillas, qué adaptador utilizará cada aplicación.

Así mismo, es posible definir la QoS de cada aplicación, obteniendo de esta forma un mecanismo que permite asignar y/o reservar más ancho de banda a las aplicaciones que consideremos importantes mientras que aquellas otras que sean de baja prioridad no podrán hacer un uso abusivo de los recursos disponibles.

El sistema de redirección de tráfico por aplicación está construido en torno a dos drivers de modo kernel que realizan las siguientes funciones:

  • NDIS IM MUX 1:1 driver: Se instala sobre cada adaptador de red, interceptando los paquetes enviados y recibidos y modificándolos para poder ser procesados por un adaptador distinto al que el sistema operativo ha elegido. Los cambios que tiene que realizar sobre los paquetes consisten en modificar (dependiendo de si el paquete está siendo enviado o recibido), la dirección IP, puerto y dirección de red (de origen o destino) así como recalcular el checksum tanto a nivel IP como TCP/UDP. Por otro lado, el driver NDIS IM mantiene una tabla de NAT en la que almacena la información necesaria sobre los flujos detectados de forma que los siguientes paquetes relacionados con el mismo flujo puedan ser modificados según las mismas reglas.
  • TDI (Transport Driver Interface) driver: Implementa la intercepción de los paquetes iniciales de cada uno de los flujos, estableciendo de esta forma una relación entre los mismos y las aplicaciones relacionados con dichos flujos. De esta forma, mantiene una tabla que puede ser consultada por el driver NDIS para implementar la correspondiente redirección.

Finalmente, existe un servicio de Windows que se comunica con el driver TDI y hace las veces de “helper” para la resolución de las reglas de redirección de tráfico y la identificación de las aplicaciones implicadas.

Desde el punto de vista de configuración, el sistema de redirección de tráfico admite dos niveles: un nivel principal que define las reglas globales (por ejemplo establecidas por la política de IT de la compañía) y un nivel secundario que puede ser modificado por el usuario para adaptarlo a sus necesidades particulares. En cualquier caso, las reglas principales o de compañía, prevalecen sobre las del usuario.