Giter VIP home page Giter VIP logo

trafficengineering-sdwan's Introduction

Solución de Ingeniería de Tráfico - TFM 2019/2020

Este repositorio forma parte del trabajo de TFM de Andrés Muracciole para el Master Universitario en Ingeniería en Redes y Servicios Telemáticos (MUIRST) de la Universidad Politécnica de Madrid (UPM)

Mención especial para Carlos M. Lentisco Sánchez quien tutorizó el trabajo desde un principio.

OBJETIVO: Estudio e implementación de una solución de ingeniería de tráfico y controlador SD-WAN para tratamiento de datos en una red WAN en tiempo real. El objetivo es sensar los caminos hasta el destino y determinar el camino mas óptimo para el tráfico sensible, en función del ancho de banda disponible en los canales.

El controlador a utilizar será Ryu y se hará un fuerte uso de su API.

El escenario tiene la particularidad de tener una topologia "tipo pez" de forma que se crea un loop se conmutadores como se puede apreciar en la figura. Aquí radica la dificultad del escenario ya que se debe aplicar una solución óptima para que no queden paquetes en el loop haciendo que se congestione la red.

Main_menu

Main Menu:

Iniciar la aplicación con el ejecutable TE_SD-WAN.desktop

main_menu Esto levanta una interfaz de menu en la terminal desde donde se pueden realizar las siguientes cosas:

  1. Crear escenario

  2. Destruir escenario

  3. Ejecutar controlador

  4. Realizar configuración

  5. Visualizar configuración

Al seleccionar la tercer opción, por defecto se envía todo el tráfico por el camino mas corto. Luego el usuario mediante la opción 4 será capaz de poder configurar el camino que desea que tome cada tipo de tráfico identificándolo por IPv4, IPv6 o ARP y direcciones IP (v4 o v6) origen y destino.

1 - Crear escenario

Levanta el escenario Laboratory_full.xml. Conjuntamente con este se ejecuta un script que limita el ancho de banda de los canales a 100 Mbps.

ACLARACIÓN: Puede que sea necesario cambiar el path del archivo para que funcione en su máquina.

Para ello es necesario de antemano tener instalado el wondershaper mediante los siguientes comandos:

git clone https://github.com/magnific0/wondershaper.git
cd wondershaper
sudo make install

2 - Destruir escenario

Elimina el escenario creado en el punto 1.

3 - Ejecutar controlador

Ejecuta el controladore RyU. Por defecto se crean reglas para que todo el tráfico IPv4, Ipv6 y ARP se encamine por el camino mas corto (CONM_A - CONM_C - CONM_E).

Paralelamente se ejecuta una instancia de Monitor.py que mide el promedio de los últimos 30 segundos del ancho de banda utilizado. Si se supera el 65% del total, se activan polçiticas para priorizar el tráfico sensible. Este proceso es automático en función de las prestaciones actuales de la red.

4 - Realizar configuración

Permite agregar reglas en las tablas de flujos así como también eliminar aquellas anteriormente creadas. Está configurado para que solo se eliminen aquellas con prio=10, es decir aquellas creadas explicitamente por el usuario para encaminar determinado tráfico IP en función de sus direcciones origen y destino.

5 - Visualizar configuración

Visualización de la información de los conmutadores, tablas de flujo, diagrama de red o tráfico por los enlaces (gráficos).

6 - Salir

Se cierra el escenario, controlador, monitor y diagrama de red.

NOTA: Guardar la carpeta network_awareness2 en el path .../ryu/ryu/app/

trafficengineering-sdwan's People

Contributors

amuracciole avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.