Diseño e implementación de un balanceador de carga para la optimización de los recursos de protección en una red Enterprise mediante un banco de Firewalls N: 1 controlado vía SDN - Quispe Ordoñez, Christian Isaac (2019)
El presente trabajo consiste en el diseño e implementación de un balanceador de carga que permite el funcionamiento del modelo de protección banco de Firewalls N: 1 controlado vía SDN sin pérdida de paquetes o interrupción de las sesiones migradas. Para ello, se realiza el diseño del balanceador a través de un algoritmo que realice la migración de tráfico por flow entries al orden de una subred para no exceder el límite de entradas disponibles en la memoria TCAM del switch SDN/OpenFlow a utilizar (8K a lo máximo). La implementación del balanceador será en módulos escritos en el lenguaje Python. El objetivo principal del balanceador es garantizar que las pruebas realizadas en él tengan el mismo o mejor rendimiento que los balanceadores de carga comerciales (legacy) en presencia de tráfico que bordea el 1 Gbps. En el primer capítulo, se describe el marco de la problemática, donde se compara los costos que requiere el modelo de protección activo - respaldo versus el banco de Firewalls N:1. Luego, se describe los retos que enfrenta el diseño del balanceador de este trabajo. Por último, con todo lo anterior se plantea la hipótesis y los objetivos de la presente tesis. En el segundo capítulo se exponen las bases teóricas para entender el diseño del balanceador. Se explica el paradigma SDN; los modelos de protección y sus elementos más importantes entre ellos los firewalls de primera, segunda, tercera y cuarta generación; los balanceadores de carga comerciales, ADC como BIG-IP o ServerIron ADX, y el comportamiento del tráfico en las redes de banda ancha. En el tercer capítulo, se describe la arquitectura del balanceador de carga. Se introduce el concepto de “Rama” y se explica el proceso Hand Off para entender la migración del tráfico de una subred desde un equipo congestionado a uno descongestionado. Asimismo, se mencionan los requerimientos a considerar en el diseño y las principales limitaciones y dificultades que se encuentran. Finalmente, se presenta el diseño a alto y bajo nivel incluyendo el algoritmo para el balanceo de carga, la funcionalidad de los módulos del diseño del balanceador y el diagrama a nivel de código para su posterior implementación en el lenguaje Python. En el capítulo final, se presentan los resultados obtenidos al realizar la prueba de concepto con la finalidad de demostrar que el balanceador funciona en un entorno cuya intensidad de tráfico bordea el 1Gbps en base a los objetivos y requerimientos planteados. Finalmente, se presentan las conclusiones obtenidas por la implementación del balanceador y la prueba de concepto, basadas en los objetivos de la tesis y los requerimientos del balanceador, así como los trabajos futuros a surgir debido a la presente tesis.