hfwr )lq gh &duuhud ,qjhqlhutd gh 7hohfrpxqlfdflyq …bibing.us.es › proyectos › abreproy...

82
Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Descubrimiento de topología física de redes no gestionadas Autor: Juan Emilio Zurita Macías Tutor: Ignacio Campos Rivera Departamento de Ingeniería Telemática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017

Upload: others

Post on 26-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Proyecto Fin de CarreraIngeniería de Telecomunicación

Formato de Publicación de la Escuela TécnicaSuperior de Ingeniería

Autor: F. Javier Payán Somet

Tutor: Juan José Murillo Fuentes

Dep. Teoría de la Señal y ComunicacionesEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2013

Trabajo Fin de GradoGrado en Ingeniería de las Tecnologías deTelecomunicación

Descubrimiento de topología física de redesno gestionadas

Autor: Juan Emilio Zurita Macías

Tutor: Ignacio Campos Rivera

Departamento de Ingeniería TelemáticaEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 2: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 3: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Trabajo Fin de Grado

Grado en Ingeniería de las Tecnologías de Telecomunicación

Descubrimiento de topología física de redes nogestionadas

Autor:

Juan Emilio Zurita Macías

Tutor:

Ignacio Campos Rivera

Profesor Asociado

Departamento de Ingeniería Telemática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 4: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 5: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Trabajo Fin de Grado: Descubrimiento de topología física de redes no gestionadas

Autor: Juan Emilio Zurita MacíasTutor: Ignacio Campos Rivera

El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores:

Presidente:

Vocal/es:

Secretario:

acuerdan otorgarle la calificación de:

El Secretario del Tribunal

Fecha:

Page 6: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 7: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Agradecimientos

El camino a seguir para conseguir grandes propósitos debe ser espinoso y empedrado, si no esasí, reflexiona y pregúntate si realmente vas por el camino correcto. Cualquier estudiante que

haya pasado por nuestro querido edificio rojo se podrá sentir identificado con esto. Echando la vistaatrás, quedan horas de sufrimiento, de impotencia, de rabia, de desesperación en esos interminablesdías en los que el final se ve cada vez más lejos...pero también quedan esas horas de café en loslaboratorios, esas benditas cervezas post-exámen, de esas interminables pizzas del dominos...todoesto también forma parte del camino, de esas excepciones que siempre confirman la regla, porquecomo bien hemos aprendido durante estos años, nada es incondicional ni lineal.

Este agradecimiento va por todos vosotros, los que habéis hecho esto posible. Gracias a todoslos que creíais en mí, los que me habéis apoyado y ayudado a crecer tanto profesional comopersonalmente, pero gracias también a aquellos que habéis puesto dificultades adicionales y nocreíais en que este día llegara, esto también va por vosotros.

No pueden quedar fuera de estas lineas de agradecimiento aquellos que habéis formado partede la última etapa de formación, tanto la familia de Galgus-Aoifes como de IEEE Student Branch,habéis sido clave en mi inicio profesional.

Juan Emilio Zurita Macías

Sevilla, 2017

I

Page 8: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 9: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Resumen

En este trabajo se realizará la investigación, modelado y desarrollo de un sistema de descubri-miento de topología física de red. En la mayoría de sistemas actuales, esto se lleva a cabo

mediante recopilación de datos de los equipos para generar la configuración de red.

Para esta recopilación de datos, son necesarias credenciales de administración de red para poderhacerlo, esto es un problema en el caso de redes en las que no se dispone de dichas credenciales.

La solución de este trabajo será un sistema que realice este descubrimiento topológico en redesdonde no se dispone de credenciales administrativas ni acceso a los equipos que la componen. Parallevar a cabo el descubrimiento, se diseñará un proceso basado en el intercambio de mensajes entreequipos externos a la red donde se ejecutará el sistema y posteriormente se representará un modelobasado en grafos de esta topología de nivel de enlace.

III

Page 10: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 11: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Abstract

The aim of this work will be the research, modelling and development of a network topologydiscovery system. In most current systems, this is done by collecting data from the devices in

order to generate the network configuration.

For this data collection, network management credentials are required. This is a problem in thecase of networks where credentials are not available.

The solution proposed on this work will be a system which performs this topological discoveryin networks where administrative credentials and access to the internal devices that compose itare not available. In order to carry out the discovery, a process based on the exchange of messagesbetween external devices will be designed, resulting in a graph model of the link level topology ofthe network being analyzed.

V

Page 12: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 13: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Índice

Resumen III

Abstract V

Índice de Figuras IX

Índice de Tablas XI

1 Introducción 11.1 Estado del arte del descubrimiento de redes 1

1.1.1 Simple Network Management Protocol (SNMP) 3

1.1.2 Address Forwarding Tables (AFT) 3

1.1.3 Link Layer Discovery Protocol (LLDP) 4

1.1.4 Link Layer Topology Discovery (LLTD) 5

1.1.5 Cisco Discovery Protocol (CDP) 6

1.2 Puentes transparentes y árbol de expansión 8

1.3 Conclusiones 15

2 Modelado y Definición 172.1 Modelado del sistema 17

2.1.1 Diseño del sistema 18

2.1.2 Pruebas de viabilidad del sistema 20

2.2 Desarrollo del sistema 22

2.2.1 Elección de maestro 23

2.2.2 Maestro y Esclavo 23

2.2.3 Método EFV 25

2.3 Conclusiones 29

3 Implementación y Simulación 313.1 Implementación del sistema 31

3.1.1 Python 31

VII

Page 14: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

VIII Índice

3.1.2 Scapy 34

3.1.3 Estructura de datos 35

3.2 Simulación del sistema 37

3.2.1 GNS3 38

3.2.2 Ejemplo de aplicación paso a paso 40

3.2.3 Otros ejemplos de aplicación 51

4 Conclusiones 594.1 Fortalezas y debilidades 59

4.2 Características técnicas 60

4.3 Trabajo futuro 61

Bibliografía 63

Page 15: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Índice de Figuras

1.1 Ejemplo de una topología de red 2

1.2 Matriz de adyacencia de un grafo no dirigido 3

1.3 Funcionamiento de SNMP 4

1.4 Funcionamiento de LLDP 5

1.5 Funcionamiento de LLTD en Windows Vista 6

1.6 Funcionamiento de un puente 8

1.7 Estructura de un puente transparente 9

1.8 Aprendizaje de puertos en puentes 10

1.9 Formato de trama BPDU 11

1.10 Resultado de aplicación de STP 14

1.11 Estados de un puerto en STP 14

1.12 Proceso de cambio topológico 15

2.1 Red compuesta por conmutadores sin bucles 18

2.2 Vista de la red después de aplicar la primera fase 18

2.3 Matriz de adyacencia por cada nivel 20

2.4 Formato de BPDU obtenida con Wireshark 20

2.5 Caso particular EFV 26

2.6 Ejecución de EFV 27

3.1 Diagrama de Estados 32

3.2 Secuencia de mensajes EFV 33

3.3 Tecnologías utilizadas 33

3.4 Representación gráfica de un grafo de Networkx 37

3.5 Topología de pruebas del ejemplo paso a paso 39

3.6 Dispositivos usados en la simulación 39

3.7 Captura de paquetes generados en la simulación con Wireshark 48

3.8 Topología de red generada en el ejemplo paso a paso 51

IX

Page 16: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

X Índice de Figuras

3.9 Ejemplo 2 -Topología de red 52

3.10 Ejemplo 2 - Topología de red generada 52

3.11 Ejemplo 3 -Topología de red 53

3.12 Ejemplo 3 - Topología de red generada 54

3.13 Ejemplo 4 - Topología de red generada 54

3.14 Ejemplo 5 - Topología de red 57

3.15 Ejemplo 5 - Topología de red generada 57

4.1 Ejemplo de topología no compatible con el sistema 60

Page 17: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Índice de Tablas

1.1 Ancho de banda y Path Cost 13

2.1 Repeticiones de EFV en función del número de dispositivos 29

3.1 Definición de mensajes EFV 32

XI

Page 18: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 19: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1 Introducción

Las cenizas de una tecnología obsoleta son el abono de lasiguiente.

Ramón M. Medrán

En este capitulo se introducirá al lector en el descubrimiento de redes, analizando cuales son lastendencias actuales y los problemas que se pueden encontrar en cada uno de ellos. Además,

se profundizará posteriormente en el funcionamiento de los encaminadores y el protocolo SpanningTree, que será de ayuda a la hora de determinar la topología física de una red.

1.1 Estado del arte del descubrimiento de redes

Internet, compuesto por aproximadamente 50000 Autonomous Systems (AS), pertenecientes ygestionados por diferentes entidades, cubren diferentes areas geográficas, construyen sus propiasinfraestructuras y sirven para diferentes propósitos. Por ejemplo, un AS puede ser un InternetService Provider (ISP). Cada uno de estos AS posee diferentes políticas y protocolos de reenvío,por lo que debido a esta heterogeneidad de redes se vio la necesidad del uso de Border GatewayProtocol (BGP) para la interconexión de cada AS.

Esta heterogeneidad podemos encontrarla hoy en día incluso en las Local Area Network (LAN)s,donde cientos de dispositivos de diferentes fabricantes que se comunican entre sí con multitudprotocolos componen una estructura de red jerárquica. Esta masiva red se prevé que en los próximosaños se vea incrementada de forma exponencial con el auge de lo que se conoce como el Internet delas cosas, Internet of Things (IoT).

Esta gran cantidad de equipos puede provocar más de un quebradero de cabeza al administradorde la red a la hora de configurar o resolver cualquier tipo incidencias si no conoce que dispositivos

1

Page 20: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2 Capítulo 1. Introducción

componen una red y que tecnología usan. Es en este punto cuando hay que pararse a pensar comose va a atajar este problema y que soluciones existen al respecto. Reza y Willinger ofrecen unavisión general de la topología de redes en [1] haciendo un análisis de los principales estudios sobredescubrimiento de topología de redes de los últimos 10-15 años.

Analizando a [1, 2, 3] se puede observar que la tendencia es separar estas topologías en diferentesniveles, siendo esta topología de red una combinación de la topología a nivel de enlace, tambiénreferida como topología física, y la topología a nivel de red. Se podría añadir otro nivel un pocomás superficial para representar conexiones Transport Control Protocol (TCP) a nivel de transporteo incluso que protocolos están siendo usados por los equipos de la red a nivel de aplicación. Estosería muy util cuando queremos tener un control total de nuestra red pudiendo incluso detectarposibles vulnerabilidades existentes en la misma. También se puede ver, que la topología de unared es modelada mediante el uso de grafos no dirigidos, siendo los equipos que la componen losvértices y las aristas los enlaces que unen estos equipos.

Figura 1.1 Ejemplo de una topología de red.

El resultado del descubrimiento de esta topología de red sería la matriz de adyacencia de los nodosque componen la red. Una matriz de adyacencia es una matriz cuadrada de n filas y n columnas,siendo n el número total de nodos de un grafo. En un grafo no dirigido cada elemento ai j de lamatriz de adyacencia es igual a 1 cuando existe al menos, una arista que une a los vértices i y j. Sepuede ver un ejemplo en la Figura 1.2.

Para la obtención de esta matriz existen diferentes métodos, la mayoría basados en la extracciónde información de los equipos haciendo uso de Simple Newtork Management Protocol (SNMP)[4]como se puede ver en [5].

Page 21: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.1 Estado del arte del descubrimiento de redes 3

Figura 1.2 Matriz de adyacencia de un grafo no dirigido.

1.1.1 Simple Network Management Protocol (SNMP)

SNMP es un protocolo de gestión que facilita el intercambio de información entre los equiposque componen una red. Cada uno de estos equipos debe poseer un servicio llamado agente quees el encargado de reportar esta información a través de SNMP cuando algún equipo la solicita.Estos equipos que solicitan información suelen ser las estaciones de gestión o MS (ManagementStation) y son los encargados de recopilar información de cada uno de los equipos de la red. Estainformación está organizada jerárquicamente en una Base de Información de Administración oMIB (Management Information Base) y cada entrada es accesible a través del identificador deobjeto u OID (Object IDentifier). Existe una MIB estándar compuestas por objetos que representanmendiante un OID único a equipos, por ejemplo un router de un determinado fabricante. Podemosver un esquema del funcionamiento de SNMP en la Figura 1.3.

El uso de SNMP puede parecer una solución a la hora de obtener los datos, pero se puede dar elcaso en el que los equipos tengan desactivado el agente por motivos de seguridad, o que simplementeno lo tengan implementado. Además, habría que conocer previamente la dirección IP y la comunidadperteneciente a cada uno de los equipos y estar en la misma red para poder acceder a ellos.

Para esto existen métodos alternativos como los de Nowicki y Malinowski en [6] o el uso deprotocolos destinados al descubrimiento de equipos a nivel de enlace. A continuación se va a analizaralgunos métodos y protocolos usados para el descubrimiento de redes a nivel de enlace.

1.1.2 Address Forwarding Tables (AFT)

Muchos mecanismos de descubrimiento de redes están basados en la extracción de informaciónde las tablas AFT (Address Forwarding Tables), almacenadas en los switches de la red. Las tablasAFT almacenan una relación de la dirección MAC asociada a cada puerto del switch. La ventaja de

Page 22: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

4 Capítulo 1. Introducción

Figura 1.3 Funcionamiento de SNMP.

este tipo de mecanismos es que están soportados por cualquier switch del mercado, sin embargo,solo funciona con redes Ethernet y no con otro tipo de redes como las Wifi o PLC (Power LineCommunication). Por otro lado, para leer estas tablas de cada equipo es necesario un protocolo degestión como SNMP, que como ya se ha comentado antes, tiene ciertas limitaciones que se quierensuperar en este trabajo.

1.1.3 Link Layer Discovery Protocol (LLDP)

IEEE 802.1AB (LLDP) [7] es un protocolo de capa 2 diseñado para el descubrimiento de redes enredes locales. Cada equipo que usa LLDP tiene instalado un agente LLDP, encargado de recepción,envío y gestión de LLDP. Para este intercambio de información entre equipos, se una una tramaMAC que es transmitida con dirección destino broadcast, pero solo es recibida por los equiposvecinos en el enlace, esto quiere decir que la información recibida no se reenvía a otros equipos.Esta información es enviada mediante unidades llamadas LLDPDU, que contienen informacióncomo:

• Chassis ID, identifica al equipo

• Port ID, identifica al puerto de ese equipo

• TTL, es el tiempo de vida de la trama

Junto a un campo opcional y el fin de trama. Esta información está compuesta por campos TLV(Type-Lenght-Value), un formato usado que indica el tipo, longitud y valor de cada uno de loscampos.

Page 23: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.1 Estado del arte del descubrimiento de redes 5

LLDP está diseñado para operar junto a SNMP, ya que la información obtenida como se dijopreviamente, no se comparte con el resto de los equipos, pero esta información puede ser almacenadacomo una MIB y con ayuda de SNMP ser solicitada desde cualquier punto de la red. En la Figura 1.4puede verse como funcionaría LLDP dentro de un equipo.

Figura 1.4 Funcionamiento de LLDP.

Existe una versión mejorada de LLDP llamada LLDP-MED (Link Layer Discovery Protocol - Me-dia Endpoint Discovery) que permite compartir esta información entre los equipos no necesariamenteconectados al mismo enlace, además de suministrar información adicional como:

• Políticas de red

• Localización de dispositivos

• Administración de energía

• Gestión de inventario

• Capacidades de los equipos

• Velocidad en LAN

Este protocolo se estudió de cara a usar alguna implementación, pero debido a la necesidad detener instalado además de un agente propio en cada uno de los equipos, como otro adicional en elcaso de LLDP simple como es el de SNMP, se descartó porque se salía del objetivo de descubriruna red no gestionada.

1.1.4 Link Layer Topology Discovery (LLTD)

LLTD [8] es un protocolo de capa de enlace usado para el descubrimiento de equipos y el diagnósticode calidad del servicio de una red. Se trata de un protocolo propietario desarrollado por Microsoft.

Page 24: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

6 Capítulo 1. Introducción

LLTD está incluido en los Windows Vista y Windows 7, y se usa para representar gráficamentelos equipos que componen las redes locales, tanto cableadas como inalámbricas. En la Figura 1.5puede verse una captura de esta utilidad.

Figura 1.5 Funcionamiento de LLTD en Windows Vista.

LLT está compuesto por dos módulos principales. El primer módulo maestro, llamado LLTDMapper, que controla el proceso de descubrimiento y genera el mapa de red. El segundo componentees el LLTD responder, que contesta al Mapper con la información de su equipo.

Aunque se trata de un protocolo que no usa SNMP, si requiere de al menos un LLTD responderen cada equipo, por lo que también se sale del objetivo de este trabajo.

1.1.5 Cisco Discovery Protocol (CDP)

CDP es un protocolo de descubrimiento de redes que opera en el nivel 2 desarrollado por CiscoSystems. Es usado para compartir información sobre otros equipos Cisco directamente conectados.Estos dispositivos envían anuncios CDP a la dirección destino de multidifusión cada 60 segundos,por defecto. Esta información recibida de otros equipos puede consultarse en cada uno de losequipos, y es refrescada cada vez que se recibe un nuevo anuncio o eliminada si no se ha recibidoun anuncio en los últimos tres anuncios recibidos.

La información enviada puede variar en función del dispositivo, pero suele incluir informacióncomo la versión del sistema operativo, el nombre del equipo, la dirección IP, identificador depuerto,...además de información de gestión de red relacionada con el equipo. Por defecto se encuentrahabilitado en todas las interfaces de los equipos Cisco.

Dada la cantidad de redes que se pueden encontrar con este tipo de equipos lo hacen interesante,sin embargo no cumpliría del todo con el objetivo de este trabajo, ya que limitaría a sólo redes conequipos Cisco, así que se decidió aparcar esta opción.

Page 25: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.1 Estado del arte del descubrimiento de redes 7

Otro punto a tener en cuenta es la elección entre el uso de técnicas activas o pasivas de descubri-miento de redes, donde la diferencia reside en la inyección o no de tráfico. En el caso de SNMP,Cisco Discovery Protocol (CDP) o Link Layer Discovery Protocol (LLDP) el tráfico que se generaes prácticamente nulo, ya que los equipos estarían recolectando información de la red hasta que laMS la solicite. Pero se tendrían los problemas ya mencionados anteriormente, para acceder a lainformación de estos equipos. En el caso de técnicas activas de descubrimiento de redes se obtendríauna topología sin necesidad de acceder a estos equipos, pero con el coste de generación adicionalde tráfico.

Para realizar este descubrimiento usando técnicas activas, se requiere conocer a gran detalle elfuncionamiento de los equipos que conforman esta red y el manejo que realizan con la informaciónque les llega y reenvían.

En redes empresariales existe una alta tendencia al uso de bridges autoconfigurables. Actualmenteexisten dos ramas principales de investigación, por un lado el Shortest Path Bridging (SPB) y porotro el Transparent Interconnection of Lots of Links (TRILL). El SPB es considerado por el Instituteof Electrical and Electronics Engineers (IEEE) la evolución lógica de estas redes y del árbol deexpansión, en cambio el Internet Engineering Task Force (IETF) considera la creación de bridges amedio camino entre los clásicos y los routers, que es el TRILL. En la siguiente sección se analizarácon gran detalle los equipos predominantes y los protocolos usados con el fin de tener un mayorconocimiento sobre ellos y poder diseñar algún método que nos permita obtener la topología físicade un red.

El lector se preguntará el por qué del uso de Spanning Tree protocol (STP), que estudiaremos enmayor profundidad en la siguiente sección, ya que se trata un protocolo usado para evitar bucles. Elpunto en común reside en que es tan usado que prácticamente todos los puentes lo implementan ylo traen activo por defecto, por lo que nos servirá de gran ayuda para resolver la topología a nivel deenlace.

Existen técnicas de descubrimiento de redes basadas en STP como se analiza en [9] y [10], peroestán basadas en la extracción de la información recopilada por los puentes mediante SNMP. Uno delos puntos clave de este trabajo estará en la manera de recolectar esta información de los diferentesequipos sin hacer uso de ninguna MIB.

Para finalizar este estado del arte del descubrimiento de redes, se llega a la conclusión que elobjetivo de este trabajo se va a centrar en el descubrimiento de redes no gestionadas haciendo usode protocolos ya existentes, de donde se obtiene información necesaria para dar forma a la red. Estetipo de protocolo debe ser un factor común en todos los equipos de la red, donde en un primer lugarse piensa que puede ser buena opción pensar en LLDP o CDP, pero no cubría todas las necesidades.Más adelante, se realiza un estudio del tipo de equipos que conforman estas redes objetivo deltrabajo, basadas en equipos de capa 2 que ejecutan STP para resolver el árbol de expansión, así quese tira por esta línea y se comienza un estudio más en profundidad de estos equipos como podráverse en la siguiente sección. Esto último fue motivado por el uso de técnicas activas usadas en [6],

Page 26: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

8 Capítulo 1. Introducción

y se pensó que junto a la información extraída de STP podía ser un buen punto de comienzo paraeste trabajo.

1.2 Puentes transparentes y árbol de expansión

En esta sección se va a introducir la idea de encaminamiento basado en puentes transparentes y losprotocolos de árbol de expansión. El funcionamiento de los puentes transparentes [11] está formadopor 3 mecanismos básicos:

• Construcción de un árbol de expansión.

• Reenvío de tramas por el árbol de expansión.

• Aprendizaje y asociación de direcciones MAC a cada puerto.

La función del árbol de expansión es facilitar una estructura de difusión de las tramas por toda lared de forma que cada trama llegue a su destino, conservando su orden, evitando duplicidad de lasmismas y la creación de bucles.

En redes locales cuando se necesita extender una red, es muy común el uso de puentes transparen-tes y la tecnología Ethernet (802.3). Un puente permite la interconexión de diferentes tecnologíasde red gracias a que opera sobre la capa LLC (802.2) como se puede ver en la Figura 1.6. Entre susventajas destacan su economía de escala y su autoconfiguración. Su economía de escala, porqueel coste de extender una red es relativamente bajo comparado con el uso de otras tecnologías y suautoconfiguración, ya que no requiere de configuración de tablas de encaminamiento ni protocolosde descubrimiento y/o cálculo de rutas.

Figura 1.6 Funcionamiento de un puente.

Existen dos tipos de puentes, encaminados en el origen y transparentes. Los encaminados enel origen dan por hecho que el equipo que genera la trama puede distinguir entre todos los queestán o no en la misma red física. Aunque aprovechan mejor el ancho de banda, este tipo de

Page 27: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.2 Puentes transparentes y árbol de expansión 9

puentes exigen de una mayor complejidad en los sistemas finales debido a la necesidad del uso deprotocolos para determinar la ruta de los posibles destinos, por lo que están en desuso. Los puentestransparentes, definidos en la IEEE 802.1D no requieren de software en los equipos finales ni deconfiguración manual, adaptándose de forma transparente a los equipos finales para localizar eldestino. El inconveniente que tiene es un rendimiento menor en la utilización del ancho de banda.Los conmutadores o switches son puentes transparentes con multitud de puertos interconectadosmediante un backplane de alta velocidad. En la Figura 1.7 se puede ver la estructura interna de unpuente transparente.

Figura 1.7 Estructura de un puente transparente.

Los conmutadores pueden recibir tramas simultáneamente por diferentes puertos, por lo que espreciso disponer de un buffer para almacenar todas las tramas entrantes. Los puertos trabajan enmodo promiscuo, es decir, reciben todas las tramas de todos los puertos y los reenvían solo porlos puertos necesarios para que lleguen a su destino. Para conseguir esto mantienen una tabla dereenvío que mapea direcciones MAC a un puerto determinado y le asocia un tiempo (age time).

Cuando un puente recibe una trama, mira la dirección física destinataria y comprueba su tabla dereenvío para encontrar el puerto por el que necesita reenviarla. Si la encuentra, enviará la trama porese puerto, y si no se enviará por todos. Las tramas dirigidas a la dirección de difusión tambiénse reenviarán por todos los puertos. En cualquiera de los casos, la trama nunca se reenviará por elpuerto donde llegó.

Esta tabla puede ser configurada manualmente, pero para evitar esto, los puentes transparentesimplementan el aprendizaje autónomo (backward learning) que se ejecuta de la siguiente forma.El puente está continuamente escuchando por todas sus interfaces en modo promiscuo, cuandorecibe una trama por un puerto guarda la dirección MAC origen en el buffer junto al puerto por elque fue recibido. A continuación busca en su tabla de reenvío la dirección MAC destino, si no laencuentra reenvía el paquete por todos los puertos excepto por el que fue recibido, y si la encuentra

Page 28: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

10 Capítulo 1. Introducción

reenvía el paquete sólo por el puerto indicado en la tabla. En el caso en el que este puerto sea elmismo por el que se ha recibido se descarta. Todas estas entradas de la tabla tienen un temporizadorasociado llamado age time. Cada vez que se recibe una trama por un puerto se actualiza su valor,esto permite la adaptación de cambios de topología a la vez de reducir el tamaño de las tablas dereenvío. También implementan un tiempo máximo sin refresco, donde la entrada es borrada si enun tiempo máximo no se ha actualizado su age time.

Figura 1.8 Aprendizaje de puertos en puentes.

Esto funciona perfectamente en una red compuesta por puentes siempre que los equipos esténconectados en forma de árbol, es decir, libre de bucles, ya que si esto no ocurriese el paquete podríallegar a estar de forma indefinida reenviandose entre los puentes. En la práctica es difícil encontrarsecon topologías que estén libre de bucles, por lo que los puentes ejecutan STP. En teoría de grafos,STP es un árbol que conecta a todos los vértices del grafo, estos vértices serían los puentes y lasaristas los enlaces entre los puentes.

El algoritmo más usado es el IEEE 802.1D Spanning Tree Algorithm Protocol [12] que fuedesarrollado para prevenir las tormentas broadcast causadas por los bucles. STP identifica si haybucles en la red y desactiva tantos puertos como sea necesario para eliminar los bucles.

En STP se definen los siguientes parámetros:

• Bridge ID, es el identificador del puente, compuesto por 16 bits de prioridad seguidos de los6 bytes que componen la dirección física del propio puente.

• Designated Root, es el identificador del puente asignado como raíz.

• Designated Bridge, es el identificador del puente conectado al otro extremo de un puerto si elpuerto está designado, o el propio Bridge ID si no lo es.

• Designated Port, es el identificador del puerto, Port ID, correspondiente al parámetro anterior,Designated Bridge.

• Path Cost, es el coste asignado a un enlace.

• Root Path Cost, es la suma de las todos los costes asignados hasta llegar al nodo raíz.

Page 29: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.2 Puentes transparentes y árbol de expansión 11

Cada puente recopila estos parámetros para cada puerto en la Tabla STP que obtiene graciasal intercambio de Bridge Protocol Data Unit (BPDU). Las BPDU son mensajes encapsulados entramas LLC, y enviados a un DSAP (01000010) que es interpretado por todos los puentes.

Figura 1.9 Formato de trama BPDU.

Los campos enviados en cada BPDU son:

• Protocol Id (2 bytes), El campo ID de protocolo indica el tipo de protocolo que se utiliza.Este campo contiene el valor cero.

• Protocol Version Id (1 byte), El campo Versión indica la versión del protocolo. Este campocontiene el valor cero.

• BPDU Type (1 byte), El campo Tipo de mensaje indica el tipo de mensaje. Este campocontiene el valor cero.

• Flags (1 byte) El campo Indicadores incluye uno de los siguientes:

– Bit de cambio de topología (TC), que indica una modificación en la topología en casode que se haya interrumpido una ruta al puente raíz.

– Bit de acuse de recibo de cambio de topología (TCA), que se establece para confirmarla recepción de un mensaje de configuración con el conjunto de bits de TC.

• Root Id (8 bytes), El campo ID de raíz señala el puente raíz indicando su prioridad de 2 bytesseguida de la ID de dirección MAC de 6 bytes. Cuando un switch arranca, la ID de raíz es lamisma que la ID de puente. Sin embargo, a medida que se lleva a cabo el proceso de elección,la ID de puente más baja reemplaza la ID de raíz local para identificar el switch de puenteraíz.

Page 30: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

12 Capítulo 1. Introducción

• Root Path cost (4 bytes), El campo Costo de la ruta indica el costo de la ruta desde el puenteque envía el mensaje de configuración al puente raíz. El campo costo de la ruta es actualizadopor cada switch de la ruta al puente raíz.

• Bridge Id (8 bytes), El campo ID de puente indica el ID de dirección MAC y de prioridad delpuente que envía el mensaje. Esta etiqueta permite que el puente raíz identifique dónde seoriginó el BPDU, así como las rutas múltiples desde el switch hasta el puente raíz. Cuando elpuente raíz recibe más de un BPDU de un switch con distintos costos de ruta, reconoce queexisten dos rutas diferentes y utiliza aquella ruta con el menor costo.

• Port Id (2 bytes), El campo ID de puerto indica el número de puerto desde el cual se envía elmensaje de configuración. Este campo permite que los bucles generados por puentes múltiplesconectados sean detectados y corregidos.

• Message Age (2 bytes), El campo Antigüedad del mensaje indica la cantidad de tiempo queha transcurrido desde que la raíz envió el mensaje de configuración en el cual se basa elmensaje de configuración actual.

• Max Age (2 bytes), El campo Antigüedad máxima indica el momento en que el mensaje deconfiguración actual debe ser eliminado. Una vez que la antigüedad del mensaje alcanza laantigüedad máxima, el switch elimina la configuración actual e inicia una nueva elecciónpara determinar un puente raíz nuevo, ya que asume que ha sido desconectado del mismo.Este valor está predeterminado en 20 segundos, pero puede ajustarse a intervalos entre 6 y 40segundos.

• Hello Time (2 bytes), El campo Tiempo de saludo indica el tiempo entre los mensajes deconfiguración del puente raíz. El intervalo define la cantidad de tiempo que el puente raízespera para enviar BPDU de mensajes de configuración. Este valor está predeterminado en 2segundos pero puede ajustarse a intervalos entre 1 y 10 segundos.

• Forward Delay (2 bytes), El campo Retraso de envío indica la cantidad de tiempo que lospuentes deben esperar antes de sufrir la transición a un nuevo estado luego de un cambioen la topología. Si la transición de un puente es muy repentina, es posible que no todos losenlaces de la red estén preparados para cambiar su estado, lo que puede generar bucles. Estevalor es igual a 15 segundos de manera predeterminada para cada estado pero puede ajustarsea intervalos entre 4 y 30 segundos.

La contrucción de la tabla STP está compuesta por la convergencia de una serie de procesos. Elprimer paso es elegir al puente raíz (Root Bridge). El puente raíz sirve como punto de referencia enla topología STP. Un puente raíz es el que tiene el Bridge ID más bajo, que como se dijo previamenteestá compuesto por dos componentes, la prioridad del puente (16 bits) y la dirección MAC (48bits). Por defecto, la mayoría de los puentes tienen asignada la prioridad 32768, por lo que si no semodifica, el Bridge Root será designado a aquel cuya dirección MAC sea más baja. En el arranque,

Page 31: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.2 Puentes transparentes y árbol de expansión 13

todos los puentes se asignan ellos mismos como raíz, hasta que reciben una BPDU con un BridgeID más bajo, donde actualizan el Designated Root y envían un mensaje a todos los vecinos con estainformación. Este proceso terminará cuando todos los puentes tienen el mismo Designated Root.

El siguiente proceso consiste en la identificación de los puertos raíz. Los puertos raíz son aquellospor los cuales el coste hasta llegar al puente raíz (Root Path Cost) es menor. Cada puente puedetener solo un puerto raíz y el puente raíz no puede tener ninguno.

El Path Cost, es un coste acumulativo basado en el ancho de banda de cada enlace. A mayorancho de banda, menor coste.

Tabla 1.1 Ancho de banda y PathCost.

Ancho de banda Path Cost

4 Mbps 25010 Mbps 10016 Mbps 6245 Mbps 39100 Mbps 19155 Mbps 141 Gbps 410 Gbps 2

El proceso comenzará con la recepción de los equipos adyacentes al puente raíz de las BPDUcon un Root Path Cost igual a cero, con lo que el Root Path Cost de este equipo será el mismo alasignado al enlace conectado al puerto por el que ha recibido este paquete, el Path Cost. Una vezactualizado, se enviará esta información por todos los puertos.

El tercer proceso consiste en identificar el parámetro Designated Port. Este puerto será aquelcuyo Root Path Cost sea menor, en el caso de tener más de un camino hasta llegar al puente raíz, encuyo caso al puerto de mayor coste se asignará el estado de bloqueado. Un puerto bloqueado nopodrá reenviar paquetes y eliminará los bucles en la red.

Hay que tener en cuenta la diferencia entre un puerto designado y un puerto raíz. Un puerto raíznunca puede ser designado y viceversa. El puerto raíz será el más cercano al puente raíz (menorRoot Path Cost) y un puerto designado reenviará tráfico, y será usado por el puente del otro extremopara asignar como puerto raíz al puerto que los conecta.

Un puerto irá pasando por una serie de estados durante cada uno de los procesos descritos.Inicialmente un puerto se encuentra en estado bloqueado (blocking), un puerto bloqueado no reenvíatramas ni aprende direcciones MAC. Un puerto bloqueado solo estará escuchando BPDUs de otrospuentes.

La transición del estado bloqueado será escuchando (listening). En este estado el puerto puede ser

Page 32: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

14 Capítulo 1. Introducción

Figura 1.10 Resultado de aplicación de STP.

Figura 1.11 Estados de un puerto en STP.

o raiz o designado. En este estado sigue sin reenviar tramas ni aprender MAC y sigue escuchandolas BPDUs. Si un puerto no ha sido establecido como designado o raiz, vuelve al estado de blocking.

Cuando un puerto es elegido como raiz o designado, pasará al estado de aprendiendo (learning).Un puerto asignado como learning continua enviando y escuchando BPDUs y empieza a añadirdirecciones MAC a su tabla de reenvío, pero sigue sin poder reenviar paquetes. Antes de pasar alúltimo estado debe pasar un tiempo (forward delay).

Finalmente tenemos el estado de reenviando (forwarding). En este estado el puerto es totalmentefuncional donde además de enviar y recibir BPDUs, aprende direcciones MAC y reenvía paquetes.Podemos encontrarnos un quinto estado, desactivado (disabled), que no juega en el proceso de STP.

Hay tres temporizadores que son cruciales en el proceso de STP:

• Hello time, determina con que frecuencia son enviadas las BPDUs. Por defecto se envíancada 2 segundos.

• Forward delay time, indica el tiempo que debe pasar entre el estado de learning y listening.

Page 33: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

1.3 Conclusiones 15

• Max age time, es el tiempo que un switch considera que la información recibida por un vecinono es válida y debe descartarla. Por defecto, son 20 segundos.

Los puentes intercambian dos tipos de BPDUs a la hora de construir la tabla STP.

• Configuration BPDUs, usadas para elegir a los puentes raiz, puertos raices y puertos designa-dos.

• Topology Change Notification (TCN) BPDUs, que será enviada en dos circunstancias, cuandoun puerto transiciona al estado de forwarding o cuando un puerto que está en estado forwardingo learning pasa a estado de blocking o es desactivado.

Figura 1.12 Proceso de cambio topológico.

Cuando se produce un cambio de topología, un puente envía una TCN BPDU por su puerto raiz,destinado al puente raiz. La TCN no contiene información sobre el cambio, solo indica que algúncambio ha ocurrido. Una vez que el puente raiz recibe el TCN envía una BPDU de configuración atodos los puentes con el Topology Change (TC) flag activo. Esto asegura que todos los puentes sonnotificados del cambio.

1.3 Conclusiones

En este capitulo se ha introducido al estado del arte del descubrimiento de redes llegando a laconclusión que la mayoría de los sistemas de descubrimiento de redes usan técnicas pasivas basadasen la extracción de datos de los equipos mediante protocolos de gestión como SNMP. Como elobjeto de este proyecto es el descubrimiento de una red no gestionada, no es posible el uso de estetipo de técnicas ya que no se dispone de credenciales ni acceso a los equipos. Por ello, se realiza unainvestigación sobre las técnicas activas de descubrimiento de redes basadas en la inyección de tráfico.Para este tipo de técnicas se requiere un mayor conocimiento de los equipos que pueden encontrarseen la red y es por lo que se opta por un intenso estudio de los puentes transparentes, usados en la

Page 34: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

16 Capítulo 1. Introducción

mayoría de las redes, analizando su funcionamiento interno. Además se realiza una inmersión en elprotocolo STP usado por estos conmutadores para la generación del árbol de expansión necesariopara evitar bucles en la red.

Page 35: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2 Modelado y Definición

If you want to find the secrets of the universe, think in termsof energy, frequency and vibration.

Nikola Tesla

En este capitulo se llevará a cabo el modelado y diseño del sistema que se tiene por objetivo eneste trabajo. Después de realizar una búsqueda y comprobar el estado del arte del descubri-

miento de redes, se decantó por el uso de técnicas activas haciendo uso de la inyección de tráficopara determinar información de adyacencia no proporcionada por STP. Es en este capitulo donde seintroducirá al mecanismo propuesto y al diseño del mismo.

2.1 Modelado del sistema

Se recordará del capitulo anterior que se llegó a la conclusión del uso y obtención de datos deuna red compuesta principalmente por conmutadores. El acceso a estos conmutadores es limitado,ya que no se dispondría de credenciales de acceso y sólo se podría usar aquellos en los que seesté directamente conectado. Por ello, para el modelado del sistema se supondrá las siguientescondiciones iniciales:

• Acceso completo a los equipos finales que componen la red.

• La red estará compuesta principalmente por puentes transparentes que ejecuten STP.

La red tendría una forma tal como muestra la Figura 2.1

17

Page 36: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

18 Capítulo 2. Modelado y Definición

Figura 2.1 Red compuesta por conmutadores sin bucles.

2.1.1 Diseño del sistema

La primera fase del modelo propuesto será la obtención de los datos generados por STP, dondecada uno de los equipos finales estará escuchando la red en modo promiscuo y recopilará las BPDUtransmitidas por estos equipos con el fin de determinar que equipos están conectados al mismoconmutador, y por otro lado se obtendrá también que equipo es el root, y su dirección MAC queserá usada en la siguiente fase del proceso.

En este ejemplo se ha supuesto que a cada conmutador del nivel más externo de la red habíaconectado un equipo a los cuales se tiene acceso, con el fin de simplificar este ejemplo de aplicación.

Una vez aplicada esta primera fase, se obtendría una vista de la red como muestra la Figura 2.2,donde se han bautizado a cada uno de los conmutadores con un nombre que representa el nivel conuna letra y el número de equipo con un número, por ejemplo, A3 será el tercer equipo del primernivel.

Figura 2.2 Vista de la red después de aplicar la primera fase.

En la segunda fase se hará uso de las tablas de reenvío de los conmutadores y de un sistema

Page 37: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.1 Modelado del sistema 19

compuesto por maestro y esclavos. Esta segunda fase será esencial para el descubrimiento de lared, ya que gracias a ella se averiguará que equipos existe en esa nube de la cual se desconoce porcompleto su estructura.

Durante las segunda fase, se aplicará de forma iterativa un algoritmo usado para determinar si dosequipos están conectados al mismo conmutador. Para realizar dicho proceso, hay que seleccionar 3equipos que se sepa que no están directamente conectados. Estos 3 equipos se seleccionarán de laprimera fase realizada anteriormente y que para este ejemplo serán A1, A2 y A3. Todo el procesoque se detalla a continuación está gestionado por el maestro que está implementado en uno delos equipos, el equipo en el que se implemente el maestro también puede ser usado como esclavo.Antes de iniciar el proceso, el maestro realiza un descubrimiento de esclavos donde almacenará ladirección MAC de cada uno de ellos.

1. El equipo A1 envía una trama con dirección MAC origen indicada por el maestro, debe seruna dirección que esté fuera de asignación de IANA. Esta trama se enviará con direcciónMAC destino A2.

2. La trama es recibida por el equipo directamente conectado a A2.

3. El equipo A3 envía una trama con la misma dirección MAC origen que la enviada previamentepor A1, pero esta vez dirigida al root.

4. La trama es recibida por el root.

5. El equipo A2 envía una trama de respuesta a la dirección MAC ficticia que usaron previamenteA1 y A2 como dirección origen.

6. En este caso la trama es recibida por el equipo A1, lo que indica que A1 y A3 no estándirectamente conectados. Si lo estuviesen, la segunda trama enviada por A3 hubiera actualizadola tabla de reenvío del conmutador y la trama de respuesta enviada por A2 habría llegado aA3.

Esto se aplicaría de forma recursiva para determinar la conectividad entre A1 y A2, y finalmentepara comprobar esta conectividad entre A2 y A3. Posteriormente, se usará también para determinarla conectividad entre A4 y el resto de los equipos.

Una vez determinada la conectividad de todos los equipos, se habría obtenido la matriz deadyacencia correspondiente a ese nivel. Posteriormente se aplicará los niveles superiores el mismomecanismo, descartando los equipos en los que haya duplicidad de conectividad, es decir, queestén conectados al mismo equipo y quedándose solo con 1. En la Figura 2.3 se puede ver comoiría modelándose la matriz de adyacencia en cada uno de los niveles a medida que se ejecuta elalgoritmo.

Page 38: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

20 Capítulo 2. Modelado y Definición

Figura 2.3 Matriz de adyacencia por cada nivel.

2.1.2 Pruebas de viabilidad del sistema

Para la obtención de datos proporcionados por STP se ha realizado la captura de una trama medianteWireshark, haciendo uso de GNS3 del que se hablará en Sección 3.2, con el fin de analizar el valorde cada uno de sus campos.

En la figura Figura 2.4 se puede observar el valor de cada uno de los campos. En este ejemplo losdatos que pueden ser de interés son los flags, el identificador tanto de root como de bridge y losvalores de Root Path Cost y Message Age. Este último según la definición indica la edad máximade vida que debe tener el paquete antes de ser eliminado, y curiosamente coincide con el número desaltos entre otros puentes hasta llegar al root.

Figura 2.4 Formato de BPDU obtenida con Wireshark.

El valor Root Path Cost puede darnos junto al valor de Message Age en este caso información deque los dos enlaces que hay hasta llegar al root son de 1 Gbps, tal como indica la Tabla 1.1.

Page 39: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.1 Modelado del sistema 21

Otro valor interesante es el de las banderas, ya que nos da información de si el mecanismo deárbol de expansión está en curso o por el contrario está estabilizado. Cuando este valor es 0x3c enhexadecimal indica que está estabilizado, en cambio cuando el valor es 0x3d indica que el últimobit, correspondiente a la bandera de cambio de topología, está activo.

Otra prueba realizada fue comprobar el correcto funcionamiento de las tablas de reenvío de losswitch en el sistema.

Para ello hay se ejecuta el siguiente comando en el switch haciendo uso de GNS3 para simulareste caso:

Switch>show mac address−tableMac Address Table

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Vlan Mac Address Type Ports−−−− −−−−−−−−−−− −−−−−−−− −−−−−

1 0000.813f.d300 DYNAMIC Gi0/01 0000.816f.c002 DYNAMIC Gi0/11 0000.81d0.8200 DYNAMIC Gi0/0

Total Mac Addresses for this criterion : 3

Se puede ver que la tabla de reenvío de este equipo contiene 3 direcciones asociadas a diferentespuertos, Gi0/0 y Gi0/1. A continuación se lanza un paquete desde un equipo conectado al puertoGi0/0 con dirección MAC origen 73:00:00:00:00:73 a un equipo conectado en el puerto Gi0/1.

Para enviar este paquete se hace uso de un pequeño script escrito en Python haciendo uso de lalibrería scapy, de la cual se hablará en el próximo capitulo.

Ejecutando de nuevo el comando en el switch para obtener el listado de direcciones MAC:

Switch>show mac address−tableMac Address Table

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Vlan Mac Address Type Ports−−−− −−−−−−−−−−− −−−−−−−− −−−−−

1 0000.813f.d300 DYNAMIC Gi0/01 0000.816f.c002 DYNAMIC Gi0/11 0000.81d0.8200 DYNAMIC Gi0/01 7300.0000.0073 DYNAMIC Gi0/0

Total Mac Addresses for this criterion : 4

Se puede observar que se ha añadido una entrada con la dirección MAC usada, asociándola alpuerto Gi0/0.

Ahora se realizará la operación inversa, es decir, el equipo que había recibido el paquete, conectado

Page 40: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

22 Capítulo 2. Modelado y Definición

al puerto Gi0/1 será ahora quien envíe un paquete con la misma dirección MAC origen. Si todo vabien, el switch debe haber actualizado la tabla con la misma dirección MAC asociada a otro puerto.

Ejecutando de nuevo el comando se obtiene:

Switch>show mac address−tableMac Address Table

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Vlan Mac Address Type Ports−−−− −−−−−−−−−−− −−−−−−−− −−−−−

1 0000.813f.d300 DYNAMIC Gi0/01 0000.816f.c002 DYNAMIC Gi0/11 0000.81d0.8200 DYNAMIC Gi0/01 7300.0000.0073 DYNAMIC Gi0/1

Total Mac Addresses for this criterion : 4

El resultado es positivo, por lo tanto se puede hacer uso del método que usa las tablas de reenvíopara determinar la adyacencia de equipos.

Se ha investigado sobre este punto y puede ser que no funcione en todos los casos, ya que el switchpuede estar configurado para evitar ataques de MAC Flooding o CAM Table Overflow. En el casode los switches de Cisco, incorporan un mecanismo de seguridad de puertos que permite especificarestáticamente direcciones MAC a un puerto, o incluso aprender dinámicamente un número fijo dedirecciones.

Como esta opción se encuentra deshabilitada por defecto, se considerará como un caso puntual,pudiendose ejecutar en la mayoría de los casos.

2.2 Desarrollo del sistema

Para llevar a cabo el desarrollo del sistema se ha hecho uso de una maquina de estados para ladefinición de cada uno de las fases en la que el sistema se encuentra.

En el intercambio de mensajes para la determinación de adyacencia se requiere de un sistema quegestione la comunicación entre todos los equipos finales. Para esto se usará un sistema basado enmaestro y esclavo dinámico. Esto de dinámico se refiere a que se tendrá en cuenta la posibilidad deque el supuesto maestro pueda desconectarse del sistema debido a cualquier motivo, por lo que elsistema caería. En este caso, se realizaría un procedimiento de elección del nuevo maestro. Para laelección del maestro se hace uso de la dirección MAC de cada uno de los dispositivos que hacen usode este procedimiento, donde se toma concretamente la suma de los últimos 3 Bytes de la misma yel equipo con esta suma más alta será elegido maestro.

Page 41: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.2 Desarrollo del sistema 23

2.2.1 Elección de maestro

Este procedimiento de elección de maestro será el primer estado en el que se encontrará un sistemacuando inicie el proceso. Hay que tener en cuenta dos situaciones diferentes en este paso:

1. No hay maestro elegido. Sería en el tiempo cero del sistema, cuando se encienden los equiposy comienzan en proceso, donde durante cierto tiempo se produce un envío mediante broadcastcon la suma de comprobación de cada uno de ellos, y si un equipo recibe una suma que esmayor a la que tiene deja de transmitir y pasa automáticamente al estado de esclavo. Si dadoun tiempo máximo de 60 segundos un equipo no ha recibido una trama con una suma decomprobación mayor que la propia se establece como maestro.

2. Hay maestro elegido y activo. Es el momento en el que un equipo se conecta al sistemafuera de estos 60 segundos iniciales, donde un equipo ya se ha establecido como maestro.En este caso ocurre algo similar, ya que un maestro sigue enviando este tipo de trama cada20 segundos, con el objetivo de que los esclavos del sistema sepan que el maestro siguevivo, y que los equipos de nueva incorporación puedan determinar que hay un maestro activo.En este caso, la trama tendrá enviada por el maestro tendrá un flag activo indicando que elmaestro está establecido y por lo tanto el equipo que se incorpora no hace uso de esta suma decomprobación y automáticamente se establece como esclavo.

2.2.2 Maestro y Esclavo

Los siguientes estados posibles serán el de maestro o de esclavo. Empezando por el esclavo, sebasará simplemente en recopilar la información de STP que transmite cada uno de los puentes a losque está conectado. Para recopilar una información válida debe fijarse en que el proceso de STP estáestabilizado, donde antes de guardar dicha información se fija en si el flag de TC (Topology Change)está activo, en tal caso desecha la información y sigue leyendo a la espera de que la topologíaconverja.

Una vez establecida la topología, el esclavo guarda esta información, la envía al maestro y pasa aestado de escucha esperando a que el maestro envíe las tramas correspondiente al inicio del métodode determinación de adyacencia. En esta fase también se queda a la espera por si recibe algunaBPDU con el flag de Topology Change activo, y esperará hasta que se establezca la topología.

En paralelo a este estado, y en otra máquina se ejecuta el maestro, la pieza clave del sistema. Elmaestro será el equipo que gestione a todos los demás dispositivos y determinará que función tendrácada dispositivo en el método de determinación de adyacencia del que hablaremos mas adelante.

El maestro comienza por una fase similar al esclavo, ya que intrínsecamente hace las laboresde esclavo, donde recopila la información enviada por los puentes y de igual forma a como hacíael esclavo, espera a que la red esté estable. Una vez recopilada la información la guarda como

Page 42: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

24 Capítulo 2. Modelado y Definición

los primeros nodos que componen la topología. El siguiente paso es ponerse a la escucha de latrama correspondiente a cada uno de los esclavos con la información recopilada mediante STP. Eltiempo de escucha máximo será de 10 segundos, tiempo suficiente para que cada esclavo envíe lainformación.

Cuando este proceso termine se tendrá una estructura de la red correspondiente a cada uno de losdispositivos finales que hemos añadido para determinarla junto a los equipos a los que lo hemosconectados, además del nivel al que se encuentra cada uno de ellos del root y quién es el root.

Aquí entra en un punto clave donde tiene que determinar la topología existente entre los puentesque ha recopilado y el root. El modelo determinará siempre una topología acorde a la informaciónrecibida:

1. Que porcentaje de fiabilidad tiene la topología. Para ello comprobará a cuantos puentes estánconectados cada uno de los dispositivos y cuantos niveles hay hasta llegar al root. Con estarelación se puede determinar como de fiable puede llegar a ser la topología determinada.

2. Si es necesario hacer uso del método de determinación de adyacencia. Como requisito únicopara poder ejecutar este método es tener al menos tres equipos conectados de forma aislada acada uno de los puentes exteriores. Es decir, si dos esclavos están conectados al mismo puentesólo nos servirá uno de ellos.

Como se acaba de comentar, para determinar la topología, la primera comprobación sería sabercuál es el nivel en el que se encuentran los equipos hasta llegar al root. A este nivel se le llamaránivel máximo y será el correspondiente al del puente más lejano al root en el que se ha conectadoun esclavo.

El procedimiento sigue realizando un barrido desde ese nivel máximo hasta el uno, el anterior aldel root, de los equipos que tenemos conectados de forma única a un puente, a los que llamaremosa partir de ahora dispositivos aislados, y de los puentes que corresponden a ese nivel.

Una vez determinado los que puentes y dispositivos aislados hay en el correspondiente nivelcomprueba si se encuentra en el nivel correspondiente al root, en tal caso añade al root y lo conectaa todos los equipos del nivel inmediatamente inferior, si se encuentra en un nivel inferior compruebacuantos dispositivos aislados hay en el nivel, y si hay menos de tres crea un nuevo nodo en el nivelsuperior, en el que conecta al o los equipos de este nivel. Se ha optado por esta solución, porque enel peor de los casos habría un equipo sobre cada uno de ellos, y en el mejor solo uno que conecta atodos, así que en este procedimiento y en todos se ha optado por esta solución de topología másóptima con el fin de minimizarla.

Page 43: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.2 Desarrollo del sistema 25

2.2.3 Método EFV

Ahora se presenta el caso interesante, cuando se dispone de un mínimo de 3 equipos y es necesariodeterminar cuales de ellos comparten equipo en el nivel superior, por lo que hay que hacer uso delmétodo bautizado como EFV.

Las siglas EFV es el acrónimo de Energía, Frecuencia y Vibración. Se ha elegido este nombre enhomenaje a la famosa cita de Nikola Tesla, "Si quieres conocer los secretos del universo, piensa entérminos de energía, frecuencia y vibración". Había que bautizar a este método de alguna forma,y debido a la gran admiración del autor de este trabajo por el visionario/inventor, se atribuyó esenombre ya que el método estaba compuesto por tres pasos, por cierto, uno de sus números favoritos.

El primer paso en el método EFV es obtener una secuencia de roles con el orden adecuado decada uno de los tres equipos que van a participar en el procedimiento. Para explicar esto lo mássencillo es con un ejemplo. Supongamos el caso más sencillo, con tres equipos en este paso, por loque habría que determinar la adyacencia en el nivel superior entre los equipos 1-2, 1-3 y 2-3.

A continuación se debe saber que para la determinación de adyacencia de cada uno de estos pareses necesaria una secuencia de roles, que para el primer caso del ejemplo, entre los equipos 1 y 2,será la siguiente:

• E=3, F=1 y V=2.

• E=3, F=2 y V=1

Los equipos implicados en esta determinación de adyacencia siempre tomarán los roles de F y V,mientras que cualquier otro equipo, en este caso el único posible que hay, tomará el rol de E.

Esto se repetirá en los otros dos casos, teniendo que aplicar el procedimiento un total de seisveces con los siguientes roles:

• E=1, F=2 y V=3

• E=1, F=3 y V=2

• En este punto se determina adyacencia entre 2-3

• E=2, F=1 y V=3

• E=2, F=3 y V=1

• En este punto se determina adyacencia entre 1-3

• E=3, F=1 y V=2

• E=3, F=2 y V=1

Page 44: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

26 Capítulo 2. Modelado y Definición

• En este punto se determina adyacencia entre 1-2

Y se preguntará el lector que como que criterio se determina adyacencia o no, pues muy sencillo,recordando el método explicado en la Sección 2.1 se podía averiguar si la trama devuelta por Fllega a E significa que E y V no son vecinos, y en caso contrario, si la trama devuelta por F llega aV determina que E y V son vecinos. Esto funciona en la mayoría de los casos, pero se llegó a ladeterminación que no funcionaba en un caso particular como el que se muestra en la Figura 2.5.Aquí se puede apreciar en verde la trama dirigida desde E hacia F, en rojo la trama enviada por Vpara atravesar el root y en amarillo la respuesta de F. Se puede apreciar como en ambos casos larespuesta llega a V, indicando que son vecinos en un nivel superior cuando realmente no lo son.

Figura 2.5 Caso particular EFV.

Para solucionar esto se ha tenido que tener en cuenta otro procedimiento de determinación distinto.En vez de comprobar la adyacencia entre E y V, habría que comprobar el resultado entre F y V. Sila trama devuelta por F le llega a E, determina que F y V no son vecinos, en cambio si la trama larecibe V se concluye en que si. Pero esto no queda aquí, hay que comprobarlo en el caso simétrico,es decir, manteniendo el rol de E, pero intercambiando los de F y V, y si en ambos la respuestada positivo en adyacencia se determina que la hay realmente. Esto se puede ver de nuevo con unejemplo de aplicación sobre la Figura 2.5.

• En el el primer caso se comprueba la adyacencia entre F-V y el resultado es positivo.

• En el segundo caso se comprueba adyacencia entre F-V intercambiando los roles, y el resultadotambién es positivo.

Por lo tanto determina que hay adyacencia y el siguiente paso que se da dentro del proceso es lageneración de un nuevo nodo en el nivel superior y unirlo mediante un enlace a cada uno de ellos.

En la Figura 2.6 se puede apreciar todos los casos mencionados anteriormente y comprobar comoel resultado sale negativo en los otros 2 casos.

Este sería un ejemplo con 3 dispositivos, ¿pero que ocurriría con 4? habría que comprobar denuevo cada una de las trazas, igual que en la Figura 2.6, pero lamentablemente el resultado no es elesperado.

Page 45: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.2 Desarrollo del sistema 27

Figura 2.6 Ejecución de EFV.

En este punto, se llega a la generalización del método para cualquier número de dispositivos,ya que al intentar trazar este método en el que se comprueba la adyacencia de F y V, en principiopuede parecer que el rol de E es arbitrario, pero juega un papel muy importante. Para generalizaresto y comprobar todas las posibilidades existentes hay que probar también variando el papel de E.

Se puede ver en el siguiente ejemplo como quedaría esta asignación de roles para el caso de 4dispositivos cuando se quiere determinar la adyacencia entre los dispositivos 1 y 2:

• E=3, F=1 y V=2

• E=3, F=2 y V=1

• E=4, F=1 y V=2

• E=4, F=2 y V=1

Ahora no solo habría que comprobarlo alternando F y V, sino con todos los posibles disposi-tivos que restantes para E. Esto se repetirá ahora en los otros dos casos, teniendo que aplicar elprocedimiento un total de 24 veces con los siguientes roles:

• E=3, F=1 y V=2

• E=3, F=2 y V=1

• E=4, F=1 y V=2

• E=4, F=2 y V=1

• En este punto se determina adyacencia entre 1-2

Page 46: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

28 Capítulo 2. Modelado y Definición

• E=2, F=1 y V=3

• E=2, F=3 y V=1

• E=4, F=1 y V=3

• E=4, F=3 y V=1

• En este punto se determina adyacencia entre 1-3

• E=2, F=1 y V=4

• E=2, F=4 y V=1

• E=3, F=1 y V=4

• E=3, F=4 y V=1

• En este punto se determina adyacencia entre 1-4

• E=1, F=2 y V=3

• E=1, F=3 y V=2

• E=4, F=2 y V=3

• E=4, F=3 y V=2

• En este punto se determina adyacencia entre 2-3

• E=1, F=2 y V=4

• E=1, F=4 y V=2

• E=3, F=2 y V=4

• E=3, F=4 y V=2

• En este punto se determina adyacencia entre 2-4

• E=1, F=2 y V=3

• E=1, F=3 y V=2

• E=4, F=2 y V=3

• E=4, F=3 y V=2

• En este punto se determina adyacencia entre 3-2

En la Tabla 2.1 se muestra el número de iteraciones necesarias para determinar la adyacencia en

Page 47: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

2.3 Conclusiones 29

función del número de dispositivos. Cabe destacar que el tiempo incrementa de forma considerable,pero en la práctica se ve ligeramente reducido, ya que se ha implementado de forma que en el primerencuentro de "no adyacencia" corte y siga con el siguiente.

Tabla 2.1 Repeticiones de EFV en fun-ción del número de dispositi-vos.

Dispositivos Iteraciones de EFV

3 2x34 4x65 6x106 8x157 10x218 12x289 14x2610 16x45

Una vez comprobado para cada uno de los diferentes casos posibles, el siguiente paso antes deseguir con el siguiente nivel es comprobar si alguno de los nodos del nivel actual no está emparejadocon algún nodo del nivel superior, y en tal caso añade un nuevo nodo en el nivel superior y une aambos.

Hecho esto se da por completado la determinación de adyacencia en este nivel y se procede conel siguiente. Antes de comenzar el siguiente, comprueba con la nueva estructura de red cuantosdispositivos aislados dispongo en el nuevo nivel, ya que si se da el caso de que dos equipos sonvecinos, tenemos que descartar a uno de ellos.

Se procede hasta llegar al nivel uno, y una vez añadido el root se da por finalizado el procesode descubrimiento de la topología de red. El resultado es almacenado en el master y la estructuragenerada permite obtener tanto la matriz de adyacencia como el poder representarla gráficamente.

2.3 Conclusiones

En este capitulo se ha desarrollado el modelado y diseño del sistema. Se comenzó con la definicióndel método basado en la extracción de información de Spanning Tree Protocol enunciando lainformación proporcionada. Se prosiguió con la explicación del método de determinación deadyacencia haciendo una breve introducción de su funcionamiento. Para la parte de definición delsistema se ha explicado y comentado como debe ser el funcionamiento de cada una de las partes quelo componen para que funcione según lo esperado. En resumen, se podría decir que el sistema estábasado en una aplicación maestro-esclavo, donde se va trazando todo el mecanismo en función delestado en el que se encuentra cada máquina. Comenzaría por la elección de ese maestro y esclavos

Page 48: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

30 Capítulo 2. Modelado y Definición

prosiguiendo con la extracción de la información de STP para dar paso al método EFV el cualdeterminará que equipos hay y como están conectados hasta llegar la root.

Page 49: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3 Implementación y Simulación

Me lo contaron y lo olvidé; lo vi y lo entendí; lo hice y loaprendí.

Confucio

Tras modelar y definir el sistema en el capitulo anterior llega la hora de desarrollar el sistema.Se describirán las tecnologías y diseño usados terminando con una simulación del sistema.

3.1 Implementación del sistema

En esta sección se va a desarrollar la implementación comenzando con el diseño y las tecnologíasusadas para llevar a la práctica el sistema.

En primer lugar se ha definido una máquina de estados con cada uno de los posibles estados quepuede adquirir cada dispositivo. En la Figura 3.1 se puede ver como al inicio todos los equipos pasanpor el estado de asignación de Maestro/Esclavo. En cada estado siguiente, independientemente de sies maestro o esclavo va pasando por cada uno de los correspondientes E, F y V, siempre volviendoal Maestro o Esclavo. El lenguaje utilizado para el desarrollo es Python.

3.1.1 Python

Python [13] es un lenguaje de programación bastante flexible y fácil de aprender. Su uso está muyextendido y cuenta con un gran número de librerías específicas para tareas relacionadas con análisisde datos, machine learning, trazado numérico... y un sinfín más.

Al ser interpretado hace que el desarrollo de cualquier aplicación sea muy sencillo e intuitivo,gracias además a su filosofía de legibilidad y transparencia.

31

Page 50: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

32 Capítulo 3. Implementación y Simulación

Figura 3.1 Diagrama de Estados.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos,programación imperativa y, en menor medida, programación funcional.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto,denominada Python Software Foundation License,1 que es compatible con la Licencia públicageneral de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

En el caso del sistema a desarrollar venía de perlas, ya que puede ser ejecutado en cualquiermáquina, desde una simple Raspberry Pi a un supercomputador.

Una vez diseñado el motor principal sobre el que se elaborará el sistema, el modelo esclavo-maestro y los estados usados en el método EFV en función de los mensajes que recibidos, esnecesaria el diseño de éstos.

Para llevar a cabo el intercambio de mensajes entre los dispositivos se ha diseñado una capa dedatos que viaja sobre Ethernet haciendo uso del Ethertype. Cada uno de los equipos leerá esta capaidentificando a cada tipo de paquete gracias al campo Ethertype de la cabecera Ethernet. La relaciónentre estos mensajes junto a los parámetros que envía cada uno puede verse en la Tabla 3.1

Tabla 3.1 Definición de mensajes EFV.

Tipo de mensaje Ethertype Parámetros

SlaveSTP 0x7300 root, bridge, levelEnergy 0x7303 mac, mac_f, mac_v

Frequency 0x7306 mac, mac_e, mac_vVibration 0x7309 mac, mac_e, mac_fDeathBeam 0x7310 deathbeam, mac_s

ACK 0x7373

Page 51: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.1 Implementación del sistema 33

Para el caso del método de EFV se ha procedido con el uso del tipo de mensaje DeathBeam,donde el valor de éste determina en que momento se encuentra. Una vez determinada la secuencia deroles que va a tomar cada equipo en cada una de las iteraciones es necesario hacer saber a cada unode los equipos que rol va a tomar. Para ello, el maestro envía un tipo de mensaje Energy, Frequencyo Vibration a cada destinatario, y si él es uno de los que participa, ya que el maestro hace funcionesde esclavo al mismo tiempo, se autoasigna un rol, pero no se envía ningún mensaje.

En la Figura 3.2 se puede observar el intercambio de mensajes correspondiente al método deEFV implementado. El equipo E envía un mensaje Deathbeam con valor 1 con una dirección MACFalsa no perteneciente a ningún equipo como dirección origen y destino F. Este tipo de mensajeademás lleva la dirección MAC del equipo E pero no es útil en este punto para F.

Figura 3.2 Secuencia de mensajes EFV.

Una vez que F ha recibido este Deathbeam con valor 1 envía uno con valor 2 a V, indicando queya ha recibido el primer mensaje y que ya puede enviar su Deathbeam con valor 1 para atravesar alroot. V responde con un ack a F, el cual se pone en espera durante un tiempo suficiente en el quea V le de tiempo de enviar su mensaje y envía un mensaje Deathbeam con valor 3 a la direcciónMAC falsa. En el ejemplo de la Figura 3.2 este mensaje es recibido por E, pero podría ser V. SeaE o V, el equipo que reciba este Deathbeam con valor 3 envía un ack de vuelta a F, el cual yasabe que equipo ha recibido y da por finalizada su función. Además, el equipo E o V que recibe elmensaje Deathbeam con valor 3 le envía un mensaje Deathbeam con valor 4 a V o E en cada caso.Con esto todos los equipos pueden finalizar esta fase de paso de mensajes sabiendo que equipo harecibido el Deathbeam con valor 3, ya que no se sabe cuál es el master a priori, el cual almacenaesta información y la usa para determinar la adyacencia.

Figura 3.3 Tecnologías utilizadas.

La librería usada para poder implementar este sistema es Scapy.

Page 52: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

34 Capítulo 3. Implementación y Simulación

3.1.2 Scapy

Scapy [14] es una poderosa librería cuyo objetivo es la manipulación de paquetes. Es capaz decrear o decodificar paquetes de un gran número de protocolos, enviarlos, capturarlos y responderpeticiones entre otras muchas más funciones.

Es capaz de replicar el funcionamiento casi al completo de herramientas como hping, nmap,arpspoof, arp-sk, arping, tcpdump...Posee además un intérprete donde se pueden ejecutar todasestas funciones, pero este caso se usará a modo de scripting desactivando los mensajes de respuestade las funciones.

Se usarán principalmente dos funciones de esta librería:

• sendp(), para poder enviar las tramas personalizadas desde la capa 2.

• sniff(), para capturar estas tramas, además de las bpdu de los switches.

Scapy permite la creación de nuevas capas de datos de forma muy simple. Definiendo una clasey los campos que debe contener junto al tipo de dato se han definido todas las capas definidasanteriormente. Una definición de una capa, por ejemplo de Energy, sería:

class Energy(Packet) :name = "Energy 0x7303"fields_desc =[ MACField("mac", None),

MACField("mac_f", None),MACField("mac_v", None) ]

En este ejemplo, se ha definido la case Energy al que se le ha asignado un nombre y definidolos campos mac, mac_f y mac_v de tipo MACfield, ya que almacenarán una dirección MAC, cuyovalor por defecto es none. Este valor por defecto se usa a la hora de enviar un paquete con la funciónsendp() por ejemplo, donde los campos que no hayan sido inicializados son enviados con estosvalores.

Un ejemplo de uso de la función sendp() es el siguiente:

l2=Ether( dst=mac_frequency, src=mac_fake, type=0x7310)l3=DeathBeam(deathbeam=1, mac_src=mac)sendp(l2 / l3 , iface ="eth0" , verbose=False)

Donde se han definido dos variables l2 y l3. L2 es inicializada con un objeto de la clase Ether(Ethernet) con una serie de parámetros como son la dirección MAC destino, dirección MAC origeny Ethertype. La variable l3 en cambio se ha definido como un objeto de la clase DeathBeam conlos valores deathbeam y mac_src. La función sendp une estos dos objetos y los envía a través de lainterfaz eth0. El valor verbose igual a False desactiva la generación de texto informativo por partede scapy.

Page 53: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.1 Implementación del sistema 35

Un ejemplo de uso de la función sniff() puede verse en el siguiente código:

def stop_stp (packet ) :’’’ Sniff and stop when STP bpdu is received ’’’if packet . haslayer (LLC):

if packet [0][ LLC].dsap == 0x42 and packet [0][LLC].ssap == 0x42:if packet . haslayer (STP):

rootmac=packet[0][STP].rootmacbridgemac=packet[0][STP].bridgemacage=packet [0][ STP].agereturn True

sniff ( iface ="eth0" , filter ="stp" , stop_filter =stop_stp )

En este caso la función realiza una captura en modo promiscuo ininterrumpida a través de lainterfaz eth0 donde tiene aplicado un filtro "stp" que indica que sólo procesa bpdu usadas en STP. Elparámetro stop_filter indica la función que gestiona esta captura la cual finaliza cuando esta funcióndevuelve el valor True.

Esta función comprueba los valores dsap y ssap del campo LLC y si son iguales a 0x42 guardalos valores correspondientes a la información de STP en las variables rootmac, bridgemac y age. Enresumen, esta función escucha en la red en busca de mensajes de STP en el enlace y cuando recibealguno guarda los valores correspondientes y para.

Una vez definida la máquina de estados y solucionado el problema de envío y recepción demensajes quedaba otra de las grandes decisiones, la estructura a la hora de guardar la informaciónenviada o recibida.

3.1.3 Estructura de datos

Este punto es crucial, ya que todo el procesamiento intermedio requiere tanto de almacenar comode leer de esta estructura. Tras hacer una investigación se optó por una estructura basada en JSON.

JSON (Java Script Object Notation) [15] es un formato pensado para el intercambio de datos. Hasuplantado a XML en la tarea de intercambio de datos entre un navegador web y un servidor, dadalas ventajas respecto a la sencillez de éste a la hora de estructurar y manejar la información.

Los tipos de datos disponibles con JSON son:

• Números: Se permiten números negativos y decimales separados por puntos. Ejemplo: 123.456

• Cadenas: Se ponen entre doble comilla y se permiten cadenas de escape. Ejemplo: "Hola"

• Booleanos: Representan valores booleanos y pueden tener dos valores: true y false

• null: Representan el valor nulo.

Page 54: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

36 Capítulo 3. Implementación y Simulación

• Array: Representa una lista ordenada de cero o más valores los cuales pueden ser de cual-quier tipo. Los valores se separan por comas y el vector se mete entre corchetes. Ejemplo["juan","pedro","jacinto"]

• Objetos: Son colecciones no ordenadas de pares de la forma <nombre>:<valor> separadospor comas y puestas entre llaves. El valor puede ser de cualquier tipo. Ejemplo: "nom-bre":"Pedro","apellido":"Fernandez"

En la estructura de este sistema se han usado básicamente objetos, también conocidos comodiccionarios en python, y arrays.

A la hora de definir esta estructura, se hizo una investigación de como representar posteriormenteesos datos graficamente sin demasiados problemas. La librería tomada como referencia tanto parala creación como para la representación de grafos es Networkx.

Networkx [16] es un paquete especializado en la creación, manipulación y estudio de estructurasde redes complejas.

Con Networkx se puede cargar y almacenar redes en formatos estándar o no cualquier otro, ademásde generar grafos de red, analizar su estructura y crear modelos, se pueden dibujar gráficamente.

Una de sus funciones, node_link_data(), permite exportar un grafo como JSON, para que puedaser ejecutada con d3.js para representarlo gráficamente. Y fue esta estructura la que se tomó comoreferencia para guardar los datos almacenados de los equipos con el fin de poder hacer uso de estosdatos mediante una interfaz web.

{" directed " : false ,"graph": {}," links " : [

{"source" : 0," target " : 1

}],"multigraph": false ,"nodes": [

{"id" : 0," level " : 0,"mac": "82:82:b6:7d:ca:93" ,"rootmac": "00:00:81:3 f :d3:00"

},{

"id" : 1," level " : 3,"mac": "00:00:81: df :17:00" ,

Page 55: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 37

"rootmac": "00:00:81:3 f :d3:00"}

]}

Como puede observarse se trata de una estructura que defina nodos y enlaces además de algunaspropiedades como que se trata de un grafo no dirigido o un multigrafo.

Las estructuras interesantes son los arrays de objetos "nodes" y "links". En el caso de nodes setrata de un array de objetos, donde cada objeto representa a un nodo de la red. Almacena cuatroparámetros, que son el identificador, el nivel en el que se encuentra respecto al root, la dirección mac,y quién es su root. Este último se ha añadido por si en un futuro el sistema necesita desarrollarsepara diferentes VLAN donde podría haber un root diferente.

Figura 3.4 Representación gráfica de un grafo de Networkx.

El array "links" estaría formado por cada uno de los enlaces que unen a los nodos, teniendo sólodos parámetros, el nodo fuente y el nodo destino, almacenando el identificador de cada uno de ellos.En este ejemplo, el grafo estaría compuesto por dos nodos unidos, donde el primer nodo sería elnodo fuente y el segundo el nodo destino.

Una representación gráfica de un grafo generado por Networkx puede verse en la Figura 3.4

3.2 Simulación del sistema

Una vez realizada el diseño e implementación del sistema solo queda probarlo. Para probar elsistema existen dos formas, hacerlo directamente sobre un escenario real, lo cual implica tener unlaboratorio de pruebas dedicado a ello con material específico. La otra forma, que es la elegida eneste trabajo es, simularlo haciendo uso de un simulador de redes. Para la simulación del sistema se

Page 56: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

38 Capítulo 3. Implementación y Simulación

ha usado GNS3.

3.2.1 GNS3

GNS3 [17] es un simulador gráfico de redes, muy similar al conocido Cisco Packet Tracer, peroopen source. GNS3 es bastante usado para simular, configurar y probar entornos reales de red,además está soportado por una comunidad de unos 800.000 miembros.

En sus inicios, solo era capaz de simular dispositivos Cisco usando el software llamado Dynamips,pero en la actualidad soporta multiples fabricantes, incluyendo Cisco virtual switches, Cisco ASAs,Brocade vRouters, Cumulus Linux switches, instancias docker, HPE VSRs y muchos más.

GNS3 está formado por dos componentes, cliente y servidor. GNS3-all-in-one software (GUI) esla interfaz gráfica de usuario y hace las labores de cliente. Cuando se crean topologías de red en elcliente, los dispositivos creados necesitan ejecutarse en un proceso servidor. Este servidor puedeser ejecutado de varias formas:

• Servidor Local GNS3, se ejecuta localmente en el mismo equipo que el cliente ejecutando elmismo proceso.

• Máquina Virtual Local GNS3, se ejecuta como un proceso adicional haciendo uso de softwarede virtualización de imágenes como VMWare o Virtualbox.

• Máquina Virtual Remota GNS3, se ejecuta también como otro proceso pero en este caso elsoftware de virtualización se encuentra fuera del equipo en el que se ejecuta el cliente, comopuede ser VMware ESXi o incluso en la nube.

La opción de Máquina Virtual Local GNS3 es la recomendada y la que se usará para simular elsistema.

En el siguiente enlace se puede descargar el cliente para Windows, Linux y Mac: https:// gns3.com/ software/ download

Y para descargar la máquina virtual que se usará como servidor: https:// gns3.com/ software/download-vm

Donde habrá que elegir el software de virtualización que se va a usar (Virutalbox, WMwareWorkstation o VMware ESXI)

En la Figura 3.5 se puede ver una captura de uno de los escenarios usado, a continuación seexplicará cada uno de los componentes.

Los dispositivos que pueden diferenciarse en el escenario son los siguientes, cuya representacióngráfica puede verse en la Figura 3.6:

Page 57: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 39

Figura 3.5 Topología de pruebas del ejemplo paso a paso.

Figura 3.6 Dispositivos usados en la simulación.

• Nat, permite conectar la topología a internet haciendo uso de la tarjeta de red del equipo enel que se está ejecutando.

• Switch Cisco, equipo que emula a un switch de Cisco y ejecuta IOSvL2 en su versión152-4.0.55.E.

• Python, se trata de un contenedor docker que corre sistema operativo Linux basado en debianque se ha personalizado para que tenga instalado python y todas las librerías usadas en estetrabajo.

Una vez puesta en marcha la simulación (tras pulsar el botón Start), hay que esperar unos minutospara que los Switches se inicien. El equipo en el que se ha ejecutado estas pruebas es un Macbook

Page 58: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

40 Capítulo 3. Implementación y Simulación

pro con las siguientes características:

• Procesador: 2,7 GHz Intel Core i5

• Memoria: 8 GB 1867 Mhz DDR3

• Sistema Operativo: OS X El Capitan

3.2.2 Ejemplo de aplicación paso a paso

Una vez arrancados los equipos, se configura cual de ellos va ser el root, con el fin de saber latopología que se quiere determinar. Para ello se ejecutan los siguientes comandos accediendo a unaconsola de uno de los switches haciendo click con el botón derecho > Console, y ejecutando lasiguiente secuencia:

Switch>enableSwitch#configure terminalSwitch( config )#spanning−tree vlan 1 root primarySwitch( config )#endSwitch#show spanning−tree detail

VLAN0001 is executing the rstp compatible Spanning Tree protocolBridge Identifier has priority 24576, sysid 1, address 0000.813f.d300Configured hello time 2, max age 20, forward delay 15, transmit hold−count 6We are the root of the spanning treeTopology change flag not set , detected flag not setNumber of topology changes 22 last change occurred 00:03:56 ago

from GigabitEthernet0 /0Times: hold 1, topology change 35, notification 2

hello 2, max age 20, forward delay 15Timers: hello 0, topology change 0, notification 0, aging 300

A continuación se ejecuta el programa, que para simplificar la tarea de copiar-pegar en cadamaquina, se ha condensado en un solo fichero.

La traza generada por los equipos sería:

En primer lugar, el proceso de elección de maestro, donde cada equipo deja de enviar su MACsi recibe una de mayor tamaño. En este ejemplo se puede observar como el equipo 3 es elegidomaestro:

............................MAC Addr: a2:9a:21:dc:1f:a0macsum: 411

............................Master is f6 :c9:11:bc:f8:20Master is 82:82:b6:7d:ca:93

Page 59: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 41

El equipo 1 y 2 dejan de enviar su macsum al recibir la del equipo 3, pero se puede observarcomo el equipo 1 ha actualizado el valor del maestro, ya que en primera instancia había recibidola suma de comprobación del equipo 2, la cual es mayor, pero al recibir la del equipo 3, esta essustituida.

............................MAC Addr: f6:c9:11:bc:f8:20macsum: 468

............................Master is 82:82:b6:7d:ca:93

El equipo 3, no recibe ninguna suma de comprobación mayor a la suya.

............................MAC Addr: 82:82:b6:7d:ca:93macsum: 474

............................

El siguiente punto del proceso consiste en la recolección y envío de información de cada uno delos esclavos al maestro.

............................SLAVE

............................−−−−−−−−−−[a2:9a:21:dc:1f:a0]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:96:3a:00Level : 3−−−−−−−−−−−−−−−−−−−−−−Sent 0x7301Sent 0x7301ACK received

Los equipos 1 y 2 recopilan esta información que es la mostrada, y la envía al maestro hastarecibir un ack.

............................SLAVE

............................−−−−−−−−−−[f6:c9:11:bc:f8:20]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:6 f :c0:00Level : 3−−−−−−−−−−−−−−−−−−−−−−Sent 0x7301Sent 0x7301ACK received

Page 60: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

42 Capítulo 3. Implementación y Simulación

El maestro primero captura y guarda esta información del propio equipo, porque al fin y al cabohace las labores de esclavo, y añade a la estructura de datos esta información, tanto propia como larecibida por los equipos.

............................MASTER

............................Added node 0 (82:82:b6:7d:ca:93) in level 0Try add: 00:00:81: df :17:00Added node 2 (00:00:81: df :17:00) in level 4Try add: f6 :c9:11:bc:f8:20Added node 3 (f6 :c9:11:bc:f8 :20) in level 0Try add: 00:00:81:6 f :c0:00Added node 4 (00:00:81:6 f :c0:00) in level 4−−−−−−−−−−[f6:c9:11:bc:f8:20]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:6 f :c0:00Level : 3−−−−−−−−−−−−−−−−−−−−−−Try add: a2:9a :21:dc:1f :a0Added node 5 (a2:9a :21:dc:1f :a0) in level 0Try add: 00:00:81:96:3a:00Added node 6 (00:00:81:96:3 a:00) in level 4−−−−−−−−−−[a2:9a:21:dc:1f:a0]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:96:3a:00Level : 3−−−−−−−−−−−−−−−−−−−−−−

Una vez finalizado este proceso de recolección de información de STP llega el momento dedeterminar que equipos son vecinos en niveles superiores hasta llegar al root.

Para ello, el maestro se encarga de comprobar cuantos equipos hay aislados y si es posibleejecutar dicho método, además de enviar los mensajes correspondiente a los roles que va a tomarcada equipo en este proceso. En el ejemplo se puede ver como ha determinado que existen 3 equiposaislados en el nivel 4 (correspondiente al switch en el que están conectados los equipos) y envía losmensajes correspondientes a cada uno de ellos, exceptuando el 0x7303 que corresponde al mensajede asignación de Energy, que será el usado por él.

Start Adjacency model procedure in level 4−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Launch EFV method−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[’82:82: b6:7d:ca :93’, ’f6 :c9:11:bc:f8 :20’, ’a2:9a :21:dc:1f :a0’]send_Freq_assignment to a2:9a :21:dc:1f :a0Sent 0x7306 to a2:9a :21:dc:1f :a0send_Vibration_assignment to f6 :c9:11:bc:f8:20

Page 61: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 43

Sent 0x7309 to f6 :c9:11:bc:f8:20Launch efv_method with efv : 3

Los equipos 1 y 2 están a la espera de estos mensajes y una vez recibidos comenzaría el intercambiode mensajes entre equipos. En este ejemplo, la primera comprobación parece ser la determinaciónde adyacencia entre el equipo 1 y 2. Por lo que en los 2 procesos que dura esto, los equipos 1 y 2recibirán los roles correspondientes a F y V alternativamente, mientras que el equipo 3 será E.

EFV method starts with efv : 6............................

Received Frequency............................

[35:13:611] Received db1 from 82:82:b6:7d:ca:93[35:14:391] Sent db2 to f6 :c9:11:bc:f8:20ACK received[35:16:639] Sent db4 from a2:9a :21:dc:1f :a0 to 82:82:b6:7d:73:73ACK receivedFinished EFVEFV method starts with efv : 9

............................Received Vibration............................

[35:25:891] Received db2 from f6 :c9:11:bc:f8:20[35:25:939] Sent frame to root[35:28:408] Sent db5 to 82:82:b6:7d:ca:93Finished EFVEFV method starts with efv : 6

Se puede observar los mensajes enviados y recibidos por el equipo 1 y 2.

EFV method starts with efv : 9............................

Received Vibration............................

[35:14:423] Received db2 from a2:9a :21:dc:1f :a0[35:14:475] Sent frame to root[35:16:663] Sent db5 to 82:82:b6:7d:ca:93Finished EFVEFV method starts with efv : 6

............................Received Frequency............................

[35:23:829] Received db1 from 82:82:b6:7d:ca:93[35:25:843] Sent db2 to a2:9a :21:dc:1f :a0ACK received[35:28:375] Sent db4 from f6 :c9:11:bc:f8:20 to 82:82:b6:7d:73:73ACK receivedFinished EFV

Page 62: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

44 Capítulo 3. Implementación y Simulación

EFV method starts with efv : 3

Y los mensajes enviados y recibidos por el equipo 3. Donde además determina que tras los 2procesos de paso de mensajes, los equipos 1 y 2 son vecinos en el nivel 3. Así que añade un nuevoequipo en este nivel y un enlace a ambos.

............................Received Energy............................

[35:13:619] Sent db1 to a2:9a :21:dc:1f :a0[True]Finished EFVsend_Freq_assignment to f6 :c9:11:bc:f8:20Sent 0x7306 to f6 :c9:11:bc:f8:20send_Vibration_assignment to a2:9a :21:dc:1f :a0Sent 0x7309 to a2:9a :21:dc:1f :a0Launch efv_method with efv : 3

............................Received Energy............................

[35:23:811] Sent db1 to f6 :c9:11:bc:f8:20[True, True]Finished EFV

f6 :c9:11:bc:f8:20 and a2:9a :21:dc:1f :a0 are neighbors

Add common neighbor in level 3Try add: 3:5:00:00:00:3Added node 7 (3:5:00:00:00:3) in level 3Added link between 3 and 6Added link between 5 and 6

El proceso continúa para el resto de equipos y niveles:

En el equipo 1:

............................Received Frequency............................

[35:37:564] Received db1 from f6 :c9:11:bc:f8:20[35:38:739] Sent db2 to 82:82:b6:7d:ca:93ACK received[35:41:115] Sent db4 from a2:9a :21:dc:1f :a0 to 82:82:b6:7d:73:73ACK receivedFinished EFVEFV method starts with efv : 9

............................Received Vibration

Page 63: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 45

............................[35:48:951] Received db2 from 82:82:b6:7d:ca:93[35:49:003] Sent frame to root[35:52:855] Sent db5 to f6 :c9:11:bc:f8:20Finished EFVEFV method starts with efv : 3

............................Received Energy............................

[36:02:919] Sent db1 to f6 :c9:11:bc:f8:20[36:06:595] Sent db5 to 82:82:b6:7d:ca:93Finished EFVEFV method starts with efv : 3

............................Received Energy............................

[36:13:751] Sent db1 to 82:82:b6:7d:ca:93Finished EFV

En el equipo 2:

............................Received Energy............................

[35:37:571] Sent db1 to a2:9a :21:dc:1f :a0[35:41:155] Sent db5 to 82:82:b6:7d:ca:93Finished EFVEFV method starts with efv : 3

............................Received Energy............................

[35:48:335] Sent db1 to 82:82:b6:7d:ca:93Finished EFVEFV method starts with efv : 6

............................Received Frequency............................

[36:02:924] Received db1 from a2:9a :21:dc:1f :a0[36:04:123] Sent db2 to 82:82:b6:7d:ca:93ACK received[36:06:563] Sent db4 from f6 :c9:11:bc:f8:20 to 82:82:b6:7d:73:73ACK receivedFinished EFVEFV method starts with efv : 9

............................Received Vibration............................

[36:14:727] Received db2 from 82:82:b6:7d:ca:93[36:14:779] Sent frame to root

Page 64: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

46 Capítulo 3. Implementación y Simulación

[36:19:671] Sent db5 to a2:9a :21:dc:1f :a0Finished EFV

Y en el equipo 3, donde se pueden ver los resultados de cada proceso.

send_Energy_assignment to f6 :c9:11:bc:f8:20Sent 0x7303 to f6 :c9:11:bc:f8:20send_Freq_assignment to a2:9a :21:dc:1f :a0Sent 0x7306 to a2:9a :21:dc:1f :a0Launch efv_method with efv : 9

............................Received Vibration............................

[35:38:763] Received db2 from a2:9a :21:dc:1f :a0[35:38:811] Sent frame to root[ False ]Finished EFVsend_Energy_assignment to f6 :c9:11:bc:f8:20Sent 0x7303 to f6 :c9:11:bc:f8:20send_Vibration_assignment to a2:9a :21:dc:1f :a0Sent 0x7309 to a2:9a :21:dc:1f :a0Launch efv_method with efv : 6

............................Received Frequency............................

[35:48:379] Received db1 from f6 :c9:11:bc:f8:20[35:48:891] Sent db2 to a2:9a :21:dc:1f :a0ACK received[35:52:819] Sent db4 from 82:82:b6:7d:ca:93 to 82:82:b6:7d:73:73ACK received[ False , True]Finished EFV

82:82:b6:7d:ca:93 and a2:9a :21:dc:1f :a0 are not neighbors

send_Energy_assignment to a2:9a :21:dc:1f :a0Sent 0x7303 to a2:9a :21:dc:1f :a0send_Freq_assignment to f6 :c9:11:bc:f8:20Sent 0x7306 to f6 :c9:11:bc:f8:20Launch efv_method with efv : 9

............................Received Vibration............................

[36:04:163] Received db2 from f6 :c9:11:bc:f8:20[36:04:215] Sent frame to root[ False ]Finished EFVsend_Energy_assignment to a2:9a :21:dc:1f :a0Sent 0x7303 to a2:9a :21:dc:1f :a0

Page 65: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 47

send_Vibration_assignment to f6 :c9:11:bc:f8:20Sent 0x7309 to f6 :c9:11:bc:f8:20Launch efv_method with efv : 6

............................Received Frequency............................

[36:13:756] Received db1 from a2:9a :21:dc:1f :a0[36:14:695] Sent db2 to f6 :c9:11:bc:f8:20[36:15:731] Sent db2 to f6 :c9:11:bc:f8:20ACK received[36:19:635] Sent db4 from 82:82:b6:7d:ca:93 to 82:82:b6:7d:73:73ACK received[ False , True]Finished EFV

82:82:b6:7d:ca:93 and f6 :c9:11:bc:f8:20 are not neighbors

Finished neighborhood procedure in level 4There are someone single over hereTry add: 00:00:1:00:00:3Added node 8 (00:00:1:00:00:3) in level 3Added link between 1 and 7

Cuando termina el proceso de determinación de adyacencia en el nivel 4, y comienza con el nivel3, se puede observar como en este caso no puede realizar este mismo proceso al contar solo con 2equipos en este caso, así que añade un nodo y lo une a los ya existentes en el nivel, así hasta añadiral root, el cual sabe su dirección MAC, obtenida mediante STP.

Start Adjacency model procedure in level 3Add node in level 2Try add: 00:00:00:00:00:2Added node 9 (00:00:00:00:00:2) in level 2add link between 6 and new node ( level 2)add link between 7 and new node ( level 2)Finished neighborhood procedure in level 3Start Adjacency model procedure in level 2Add root in level 1Try add: 00:00:81:3 f :d3:00Added node 10 (00:00:81:3 f :d3:00) in level 1add link between 8 and new node ( level 1)Finished neighborhood procedure in level 2

En la Figura 3.7 se puede observar como los paquetes son transmitidos por la red. Se puede haceruna captura con Wireshark (si está instalado en el equipo) en el enlace que se prefiera solo conhacer click con el botón derecho > capture sobre el enlace.

El resultado de ejecución genera un fichero JSON con la siguiente estructura:

Page 66: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

48 Capítulo 3. Implementación y Simulación

Figura 3.7 Captura de paquetes generados en la simulación con Wireshark.

{" directed ": false ,"graph": {}," links ": [

{"source ": 0," target ": 1

},{

"source ": 2," target ": 3

},{

"source ": 4," target ": 5

},{

"source ": 3," target ": 6

},{

"source ": 5," target ": 6

},

Page 67: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 49

{"source ": 1," target ": 7

},{

"source ": 6," target ": 8

},{

"source ": 7," target ": 8

},{

"source ": 8," target ": 9

}],"multigraph ": false ,"nodes": [

{"id ": 0," level ": 0,"mac": "82:82:b6:7d:ca :93","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 1," level ": 4,"mac": "00:00:81: df :17:00","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 2," level ": 0,"mac": "f6 :c9:11:bc:f8 :20","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 3," level ": 4,"mac": "00:00:81:6 f :c0 :00","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 4," level ": 0,"mac": "a2:9a :21:dc:1f :a0","rootmac": "00:00:81:3 f :d3:00"

},

Page 68: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

50 Capítulo 3. Implementación y Simulación

{"id ": 5," level ": 4,"mac": "00:00:81:96:3 a :00","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 6," level ": 3,"mac": "3:5:00:00:00:3","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 7," level ": 3,"mac": "00:00:1:00:00:3","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 8," level ": 2,"mac": "00:00:00:00:00:2","rootmac": "00:00:81:3 f :d3:00"

},{

"id ": 9," level ": 1,"mac": "00:00:81:3 f :d3:00","rootmac": "00:00:81:3 f :d3:00"

}]

}

También se genera la matriz de adyacencia en formato Scipy, una librería de Python muy usadaen problemas de optimización, algebra y procesamiento de señales entre otros. Dirigida al mismotipo de usuario de aplicaciones como Matlab, Octave o Scilab.

[[0 1 0 0 0 0 0 0 0 0][1 0 0 0 0 0 0 1 0 0][0 0 0 1 0 0 0 0 0 0][0 0 1 0 0 0 1 0 0 0][0 0 0 0 0 1 0 0 0 0][0 0 0 0 1 0 1 0 0 0][0 0 0 1 0 1 0 0 1 0][0 1 0 0 0 0 0 0 1 0][0 0 0 0 0 0 1 1 0 1][0 0 0 0 0 0 0 0 1 0]]

Page 69: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 51

Como la máquina de simulación no tiene interfaz gráfica hay que exportar el JSON generadopara poder representarlo gráficamente, haciendo uso de la librería networkx y Graphviz se pintaríagráficamente tal como muestra la Figura 3.8.

Figura 3.8 Topología de red generada en el ejemplo paso a paso.

3.2.3 Otros ejemplos de aplicación

Otro ejemplo de resultado para una topología más compleja como la de la Figura 3.9 puede verseen la Figura 3.10. Siendo su matriz de adyacencia:

[[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0][1 0 0 0 0 0 0 0 0 1 0 0 0 0 0][0 0 0 1 0 0 0 0 0 0 0 0 0 0 0][0 0 1 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 1 0 0 0 0 0 0 0 0 0][0 0 0 0 1 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 0 1 0 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 1 0 0 0 0][0 0 0 1 0 1 0 0 0 0 0 1 0 0 0][0 1 0 0 0 0 0 0 0 0 0 0 1 0 0][0 0 0 0 0 0 0 1 0 0 0 1 0 0 0][0 0 0 0 0 0 0 0 1 0 1 0 0 1 0][0 0 0 0 0 0 0 0 0 1 0 0 0 1 0][0 0 0 0 0 0 0 0 0 0 0 1 1 0 1][0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]]

Otro ejemplo, esta vez en con una topología más simple es la mostrada en la Figura 3.11 y elresultado de aplicación en la Figura 3.12. En este caso en concreto, no es necesaria la ejecución del

Page 70: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

52 Capítulo 3. Implementación y Simulación

Figura 3.9 Ejemplo 2 -Topología de red.

Figura 3.10 Ejemplo 2 - Topología de red generada.

Page 71: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 53

método EFV, por lo que su resolución es casi inmediata, al disponer sólo de dos dispositivos en elnivel más externo.

Figura 3.11 Ejemplo 3 -Topología de red.

Como dato importante a tener en cuenta está el uso de una topología en la que el switch rootsiempre tiene un equipo colgando directamente de él, esto es porque para ejecutar el método EFV,el equipo V tiene que enviar una trama que atraviese al root, es decir, a un equipo que no seadirectamente el root pero que esté conectado a él, como puede ser el caso de un router o gateway.

Otra alternativa es usar directamente la dirección del root proporcionada por STP, pero requiereque solo tenga un switch colgando de él, ya que cuando el root recibe una trama con direccióndestino la del switch proporcionada por STP la reenvía por todos los puertos excepto por la que laha recibido. Esto es debido, a que si se observa bien, ninguno de los puertos de ese switch tienedicha dirección MAC, la cual suele acabar en 00, y cada uno de los puertos tiene una direcciónMAC que coincide con el número de puerto como 01, 02, 03...Esto causó más de un quebradero decabeza a la hora de implementar y simular el sistema.

De cara a facilitar la implementación se optó por la segunda opción, por lo que la razón de quetodas las topologías mostradas tengan esta forma no quiere decir que sea una limitación del método,

Page 72: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

54 Capítulo 3. Implementación y Simulación

Figura 3.12 Ejemplo 3 - Topología de red generada.

sino que se ha optado por esta forma a modo de simplificación.

En el siguiente ejemplo de la Figura 3.13 como se puede observar, no tiene este switch, ya que alno ser necesaria la ejecución del método EFV no interfiere.

Figura 3.13 Ejemplo 4 - Topología de red generada.

Otro ejemplo, en este caso con tres dispositivos, en el que no se hace uso del método EFV es elmostrado en la Figura 3.14. Si se observa la traza en cada uno de los equipos correspondientes, sepuede ver como no se ha ejecutado dicho método, por lo que la resolución es inmediata:

root@python−1:~# clear;python master .py............................

MAC Addr: de:2e:c1:29:ec:e1

Page 73: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 55

macsum: 502........................................................

MASTER............................

Added node 0 (de:2e:c1:29:ec:e1) in level 0Added node 1 (00:00:81:96:3 a:00) in level 2Added link between 0 and 1Added node 2 (b2:6a:7 f :d9:68:56) in level 0Added node 3 (00:5b :33:14: fa :00) in level 3Added link between 2 and 3−−−−−−−−−−[b2:6a:7f:d9:68:56]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:5b :33:14: fa :00Level : 2−−−−−−−−−−−−−−−−−−−−−−Added node 4 ( fa :d4:9e :53:20:7d) in level 0Added node 5 (00:00:81: d0:82:00) in level 3Added link between 4 and 5−−−−−−−−−−[fa:d4:9e:53:20:7d]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:d0:82:00Level : 2−−−−−−−−−−−−−−−−−−−−−−Start Adjacency model procedure in level 3Added node 6 (00:00:00:00:00:2) in level 2Added link between 3 and 6Added link between 5 and 6Finished neighborhood procedure in level 3Start Adjacency model procedure in level 2Add root in level 1Added node 7 (00:00:81:3 f :d3:00) in level 1Added link between 1 and 7Added link between 6 and 7Finished neighborhood procedure in level 2

En el caso del equipo 1, que ha sido elegido maestro se puede observar que cuando recibe lainformación correspondiente de los esclavos, comienza el proceso de modelado de adyacencia yautomáticamente después añade los nodos correspondientes.

root@python−2:~# clear; python master .py............................

MAC Addr: b2:6a:7f:d9:68:56macsum: 407

............................Master is de:2e:c1:29:ec:e1

............................SLAVE

............................

Page 74: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

56 Capítulo 3. Implementación y Simulación

−−−−−−−−−−[b2:6a:7f:d9:68:56]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:5b :33:14: fa :00Level : 2−−−−−−−−−−−−−−−−−−−−−−Sent 0x7301Sent 0x7301ACK received

Ambos esclavos, sólo envían su información correspondiente de STP y finalizan con el ACKrecibido por el maestro.

root@python−3:~# clear;python master .py............................

MAC Addr: fa:d4:9e:53:20:7dmacsum: 240

............................Master is de:2e:c1:29:ec:e1

............................SLAVE

............................−−−−−−−−−−[fa:d4:9e:53:20:7d]−−−−−−−−−Root: 00:00:81:3 f :d3:00Bridge: 00:00:81:d0:82:00Level : 2−−−−−−−−−−−−−−−−−−−−−−Sent 0x7301Sent 0x7301Sent 0x7301ACK received

Page 75: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

3.2 Simulación del sistema 57

Figura 3.14 Ejemplo 5 - Topología de red.

Figura 3.15 Ejemplo 5 - Topología de red generada.

Page 76: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 77: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

4 Conclusiones

One machine can do the work of fifty ordinary men. Nomachine can do the work of one extraordinary man.

Elbert Hubbard

Como conclusiones se van a exponer una serie de fortalezas y debilidades que posee el sistemajunto a las condiciones necesarias y limitaciones del mismo. Además se comentará aspectos rela-cionados con el rendimiento, tiempo de ejecución y tráfico inyectado en la red. Para finalizar, seofrecerá una lista de mejoras y aplicaciones futuras.

4.1 Fortalezas y debilidades

En primer lugar, cabe destacar la gran utilidad del sistema para entornos donde no se tiene accesoadministrativo, además de poder descubrir posibles malas configuraciones o puntos de falla decualquier red. Su principal tarea es la del descubrimiento de redes que puede ser usada paradeterminar ramificaciones de red para tareas relacionadas con el balanceo de carga, seguridad ycontrol de zonas de red. Por lo tanto se considera superado el objetivo principal de este trabajo,que era el descubrimiento topológico de una red de la cual no se dispone de ningún dato deadministración.

En cambio, es un sistema no libre de bugs que necesita de necesarias mejoras para ser completa-mente funcional, pero su desarrollo se escapaba de número de créditos que cubre este trabajo. Laprincipal debilidad es el no poder determinar una topología en la que exista un switch que no sea elroot, de donde cuelguen más de tres ramificaciones. En la Figura 4.1 puede verse un ejemplo deeste tipo de topología, donde se puede observar como el segundo switch, que no es el root, tienecolgando 3 ramas. De cara a la metodología, es imposible determinar con este método que equipos

59

Page 78: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

60 Capítulo 4. Conclusiones

se encuentran unidos en los niveles superiores, ya que los equipos 1 y 4 son detectados como vecinosal pasar los mensajes por el mismo switch.

La posible solución a esto pasaría por la inclusión de un tiempo de vida en los mensajes EFV,concretamente en el mensaje Deathbeam, que indique el número de saltos que ha dado, esto es,el número de switch que ha tenido que superar para llegar de un equipo a otro, así si se podríadeterminar este número de saltos y fijar un patrón de determinación que sea capaz de solucionaresto.

Sin embargo, es complicado encontrar una topología real que esté bien diseñada con esta topología,ya que un diseño optimo de red estaría compuesto por un árbol binario, pero en la práctica se puedenencontrar infinidad de casos.

Figura 4.1 Ejemplo de topología no compatible con el sistema.

4.2 Características técnicas

Un aspecto esencial como puede ser el comportamiento o los recursos necesarios por el sistema paraejecutarse son muy importantes. Puede darse el caso de tener desarrollada una aplicación que haceinfinidad de funciones, pero el hardware que se tiene diseñado para ello es incapaz de soportarlo. Elprimer requisito es tener instalado python y las librerías usadas como son el caso de scapy, json oNetworkx entre otras. El proceso ejecutado en las máquinas virtuales del simulador GNS3 parecía

Page 79: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

4.3 Trabajo futuro 61

no tener un gran consumo ocupando una media de un 2% de CPU, a continuación se puede ver unamuestra:

root 116 0.3 0.4 69788 32292 ? T 17:14 0:00 python master .p

Otra de las características más importantes, sería el tiempo de ejecución. Este tiempo de ejecuciónes variable dependiendo del número de dispositivos aislados, es decir, conectados a diferentesswitches en el mismo nivel, ya que el método EFV tiene un tiempo aproximado de ejecución de unos4 segundos. Este tiempo esta fijado con este valor, porque incluye los tiempos de espera necesariospor todos los componentes de dicho método y se ajustó para que funcionase en el simulador. No seha probado, pero se cree que en la práctica se podría ajustar aun más siendo mucho menor. Estetiempo de ejecución de EFV tendría que ser multiplicado por cada una de las iteraciones llevadas acabo, tal como se mostró en Tabla 2.1. El resultado total sería un tiempo aproximado, ya que enla mayoría de aplicaciones del método no son completadas al determinar la no adyacencia muchoantes de terminar éste.

Por otro lado, hay que tener en cuenta el tráfico generado en la red. En este caso, se trata de pocotráfico, ya que es una media de 15-20 paquetes por equipo de una longitud que no supera los 60bytes, por lo que el impacto que sufre es inapreciable.

4.3 Trabajo futuro

Como trabajo futuro, además de la debilidad de 3 ramas explicada en la Sección 4.1 sería larepresentación gráfica mediante interfaz web de la aplicación. Para esto, se usaría el JSON generadopara representarlo gráficamente con alguna librería de JavaScript. Para hacer esto se había pensado enel uso de electron, un framework que usa JavaScript, HTML y CSS para la creación de aplicacionesde escritorio usando tecnologías web.

Otra mejora interesante sería añadir capacidad de descubrimiento de equipos en diferentes niveles,es decir, poder elegir entre descubrimiento de topología física de redes (Nivel 2), descubrimientoa nivel de red (Nivel 3) o incluso a nivel 4 mostrando conexiones TCP activas entre diferentesequipos. Todo esto junto a soporte de descubrimiento de redes haciendo uso de SNMP, donde seobtendría un control casi al 100% de la red dividido en diferentes niveles y condensado en unacómoda aplicación de escritorio.

Page 80: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1
Page 81: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

Bibliografía

[1] S. M. I. Reza Motamedi, Reza Rejaie and I. Walter Willinger, Fellow, “A survey of techniquesfor internet topology discovery,” IEEE Communications Surveys, vol. VOL. 17, NO. 2, 2015.

[2] T. F. Benoit Donnet, “Internet topology discovery: a survey,” IEEE Communications Surveys,vol. VOL. 9, NO. 4, 2007.

[3] X. M. G. Yang, “Research on algorithm for physical topology discovery in heterogeneousmulti-subnet,” 2011 International Conference on Multimedia Technology, pp. 460–462, 2011.

[4] D. Case, Fedor, “A Simple Network Management Protocol(SNMP),” IETF, RFC 1157, 1990.[Online]. Available: https://tools.ietf.org/html/rfc826

[5] Z. D. W. H. Wang Zhangchao, Zhang Yan, “An algorithm and implementation of networktopology discovery based on snmp,” First IEEE International Conference on Computer Com-munication and the Internet, 2016.

[6] K. N. A. Malinowski, “Topology discovery of hierarchical ethernet lans without snmp support,”IECON2015-Yokohama, 2015.

[7] Using link layer discovery protocol in multivendor networks. Cisco. [Online]. Availa-ble: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/cether/configuration/15-mt/ce-15-mt-book/ce-lldp-multivend.html

[8] Link layer topology discovery. Microsoft. [Online]. Available: https://msdn.microsoft.com/es-es/library/windows/desktop/dn594471(v=vs.85).aspx

[9] H. P. LiXiangdong, “Physical topology discovery based on spanning tree protocol,” ICCASM2010, 2010.

[10] G. H. Y. L. X. Wu, “A new algorithm for physical topology discovery based on stp and aft,”2013 5th International Conference on Intelligent Human-Machine Systems and Cybernetics,2013.

63

Page 82: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH 7HOHFRPXQLFDFLyQ …bibing.us.es › proyectos › abreproy › 91203 › fichero › TFG+Juan... · 1.1 Estado del arte del descubrimiento de redes1

64 Bibliografía

[11] A. S. Tanenbaum, Redes de Computadoras. Pearson.

[12] “IEEE 802.1D,” IEEE, Tech. Rep., 1998. [Online]. Available: http://standards.ieee.org/getieee802/download/802.1D-2004.pdf

[13] Python. Python. [Online]. Available: https://www.python.org

[14] Scapy. SecDev. [Online]. Available: http://www.secdev.org/projects/scapy

[15] Json. JSON. [Online]. Available: http://www.json.org

[16] Networkx. Networkx. [Online]. Available: https://networkx.github.io/documentation/networkx-1.9/index.html

[17] Gns3. GNS3. [Online]. Available: https://gns3.com