SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

35
IEL2-I-05-03 1 SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN REDES IP. NES TO R C AM ILO BUSTO S ULLOA UNIVERSIDAD DE LO S ANDES FAC ULTAD DE ING ENIERIA DEP ARTAMEN TO ELEC TRIC A Y EL EC TRO NICA BO GO TA 2005

Transcript of SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

Page 1: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

1

SIMULAC IÓ N DEL DESC UBRIMIENTO DE TOPOLOGIAS EN REDES IP.

NES TO R C AMILO BUSTO S ULLOA

UNIVERSIDAD DE LOS ANDES

FAC ULTAD DE ING ENIERIA

DEPARTAMEN TO ELEC TRIC A Y EL EC TRONICA

BOGO TA

2005

Page 2: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

2

SIMULAC IÓ N DEL DESC UBRIMIENTO DE TOPOLOGIAS EN REDES IP.

NES TO R C AMILO BUSTO S ULLOA

Proyecto de grado para optar por el titulo de Ingeniero Electrónico.

Asesor P.h. D Néstor Peña.

UNIVERSIDAD DE LOS ANDES

FAC ULTAD DE ING ENIERIA

DEPARTAMEN TO ELEC TRIC A Y EL EC TRONICA

BOGO TA

2005

Page 3: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

3

AGRADEC IMIEN TO S.

El autor desea expresar su agradecimiento a:

Ph.D. Néstor peña Director de postgrados de la Universidad de los Andes, por su

Orientación, participación e invaluables aportes en el desarro llo de este proyecto.

Page 4: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

4

RESUMEN.

Conocer la topología de una red IP nos ayuda a llevar a cabo varias tareas

administrativas, tales como lo son el manejo de recursos activos, proactivos y

correlación de eventos. La existencia de algoritmos que sean capaces de descubr ir la

topología física de una red IP se hace cada vez más necesaria, ya que el crecimiento

desenfrenado de las mismas nos obliga como administradores a estar al tanto de los

cambios sign ificativos y sucesos que se presenten dentro de nuestra red IP. La prueba

lógica de los algoritmos planteados en [1] es el in icio del desarrollo de una herramienta

que podrá desempeñarse en un ambiente real.

La contribución del trabajo se basa en un primer acercamiento al sistema “NetInventory”

y a su teoría de funcionamiento y donde por primera vez son puestos a prueba sus

algoritmos en redes especificas basándonos en el modelo planteado por [1].

Page 5: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

5

TAB LA DE CO NTENIDO .

1. INTRODUCCIÓN

2. PROTOCOLOS

2.1 SPANNING TREE PROTOCOL (STP)

2.3 SIMPLE NETWORK MANAGMENT PROTOCOL (SNMP)

2.3.1 MIB-II.

3. ARQUITECTURA CONCEPTUAL DEL SISTEMA NETINVENTORY. 4. MODELO DEL SIST EMA.

5. PRESENTACIÓN DE LOS ALGORITMOS.

6. TRATAMIENTO DEL P ROBLEMA.

7. RESULTADOS.

8. CONCLUSIONES.

9. TRABAJO FUTURO.

10. BIBLIOGRAFIA.

Page 6: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

6

TAB LA DE FIGURAS. Figura. 1. Arquitect ura Conceptual NetInventory System.

Figura.2 Grafo de una red para un dominio Administrativo.

Figura 3. Ejemplo #1.

Figura 4. Ejemplo #2.

Figura 5. Arquitect ura Conceptual (Descubrimiento de dispositivos).

Figura 6. Diagrama de flujo (Descubrimiento de dispositivos).

Figura 7. Ejemplo #3 (Descubrimiento de dispositivos).

Figura 8. Arquitect ura conceptual (Encontrar Interconexiones)

Figura 9. Diagrama de flujo (encontrar interconexiones).

Figura 10. Ejemplo #4 (Encontrar Interconexiones).

Figura 11. Escenario #1.

Figura 12. Descubr imiento de Dispositivos.

Figura 13. Descubr imiento Interconexiones.

Figura 14. Escenario # 2

Figura 15. Descubr imiento de dispositivos.

Figura 16. Descubr imiento Interconexiones.

Figura 17. Descubr imiento de dispositivos.

Figura 18. Escenar io # 3.

Figura 19. Descubr imiento Interconexiones.

Figura 20. Topología Descubierta.

Page 7: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

7

1. INTRODUCCIÓN

El est udio orientado a la estimación topológica de una red IP esta encaminado hacia la

solución de problemas en el campo de la administración de redes. La topología de una

red IP revela información crucial que concierne a tareas de administración de redes

incluyendo el manejo de recursos proactivos y reactivos, análisis de la causa principal

(root-cause analysis) y correlación de eventos.

La topología física de una red se refiere a la identificación de las relaciones físicas que

hay entre diferentes dispositivos pertenecientes a la misma. ¿Por qué es importante

esto? Ya que el trabajo administrativo en redes se torna mas difícil en estos días debido

al crecimiento desmesurado de las redes. Es importante contar con la ayuda de

herramientas capaces de revelar la topología física de una red IP, esto con el f in de tener

información detallada a la hora de tomar decisiones importantes. Por ejemplo,

supóngase una falla en uno de los dispositivos de la red, esto generara una inundación

de señales de alarma provenientes de los elementos relacionados con el dispositivo

defectuoso. Para hacer el análisis de la causa principal (root-cause analysis) Conocer la

interconexión entre los elementos nos ayudaría a saber que señales de alarma son

realmente importantes para así solucionar el problema.

Este trabajo es la primera etapa para el desarrollo de una herramienta de soft ware que

sea capaz de actuar en un ambiente real. La importancia de este trabajo se basa en la

prueba lógica de los algoritmos que se proponen en [1] y su aplicación en ciertas redes

de prueba.

Los objetivos principales del proyecto son la implementación de los algor itmos en

cuestión y el análisis de los resultados logrados en cada una de las redes de prueba. Otro

de los objetivos comprende el desarrollo de los diferentes escenar ios a los cuales se les

aplicaran los algoritmos. Además de la comprensión y el análisis del modelo teórico

propuesto en [1].

Trabajo Relacionado: Hay muchas investigaciones dedicadas a la estimación de

topologías de redes, esta el trabajo de m easuring ISP topolog ies with rocketfuel [2]

articulo que se concentra en estimar las topologías de un ISP (in ternet service provider)

Page 8: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

8

investigación que se hace exclusivamente en la capa de red ya que la estimación hecha

da como resultado cada router perteneciente a un ISP. La retroalimentación salto por

salto basado en el comando traceroute parte del ICMP (Internet control mesage

protocol) esta propone el proyecto Mercator en [3], en el cual se descubre la

adyacencia entre routers. Muchos de los trabajos se enfocan a n ivel de red, estos

trabajos quieren llegar a conclusiones futuras como por ejemplo: ¿Qué tan grande

llegara a ser Internet dentro de 20 años? Investigaciones mas de prevención y

estimación a largo plazo, pero lo que se propone en este proyecto es una herramienta

ágil y además útil para las necesidades de ahora.

Page 9: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

9

2. PROTOCOLOS.

En esta sección daremos una breve reseña de los protocolos mencionados en [1] y en

este texto, para referenciar la información concerniente a estos estándares.

2.1 SPANNING TREE PROTOCOL1

Abreviado como STP, Es un protocolo parte del estándar de IEEE 802.1

(Administración de Redes). Que Usando el algoritmo del árbol en expansión, STP

proporciona una reducción de las trayectorias previniendo así lo s lazos indeseables, que

en una red son causados por las trayectorias múltiples activas entre las estaciones. Los

lazos ocurren cuando hay rutas alternativas entre los anfitriones. Para establecer la

reducción de las trayectorias, STP crea un árbol que atraviese todos los interruptores en

una red extendida, forzando las trayectorias múltiples a un estado seguro, o bloqueado.

STP permite solamente una trayectoria activa a la vez entre cualquier par de

dispositivos de la red (éste previene los lazos) pero guarda las múltiples trayectorias

como reserva si el acoplamiento inicial falla. Si un segmento de la red en el STP llega a

ser inalcanzable, el algoritmo de árbol en expansión conf igura de nuevo la topología de

árbol en expansión y restablece el acoplamiento activando la trayectoria hacia el

segmento inalcanzable.

2.2 SNMP2

Abreviación para Simple Network Management Protocol, un sistema de protocolos para

manejar redes complejas. Las primeras versiones del SNMP fueron desarrolladas en los

80s. Enviando mensajes llamados unidades de datos de protocolo (PDUs), a diversas

partes de una red. lo s dispositivos SNMP, llamados agentes, almacenan datos sobre sí

mismos en las bases de información administrativa (MIBs) y devuelven estos datos a los

solicitantes del SNMP.

1Tomado de http://isp.webopedia.co m. Recuperado el 23 de junio del 2005. en http://isp.webopedia.co m/ TE RM/S/spanning_tree_protocol .ht ml . 2Tomado de http://isp.webopedia.co m Recuperado el 23 de junio del 2005 en http://isp.webopedia.co m/ TE RM/S/SNMP .ht ml.

Page 10: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

10

2.2.1 MIB-II.

La información necesaria para llevar a cabo las funciones del sistema en [1] se

encuentra almacenada en los MIB-II del protocolo SNMP. A continuación veremos la

información que nos interesa basado en [4].

Dentro de los MIB-II esta el grupo IP, que es obligatoria su implementación para todos los sistemas, dentro del grupo IP esta iproutetable, tabla que contiene una entrada de datos para cada ruta presente de esta entidad. La estructura de la entrada de datos es la siguiente: 3IpRouteEntry ::=

SEQUENCE { ipRouteDest----- Destino Final. IpAddress, ipRouteIfIndex INTEGER, ipRouteMetric1 INTEGER, ipRouteMetric2 INTEGER, ipRouteMetric3 INTEGER, ipRouteMetric4 INTEGER, ipRouteNextHop--- Dirección Ip por la que se pasa para ir hacia IpAddress, ipRouteDest o Destino Final. ipRouteType INTEGER, ipRouteProto INTEGER, ipRouteAge INTEGER, ipRouteMask IpAddress, ipRouteMetric5 INTEGER, SNMP Working Group [Page 33] RFC 1213 MIB-II March 1991 ipRouteInfo OBJECT IDENTIFIER }

A su vez el grupo IP contiene ipforwarding, ipaddrtable, ipnettomediatable información

que facilita la diferenciación entre router, swt ich, host. Esta información se encuentra

detallada en[4].

3. ARQUITECTURA CONCEPTUAL DEL SISTEMA NETINVENTORY.

3 Management Information Base for Network Management of TCP/IP-based internets: MIB-II. Marzo 1991 RFC1213

Page 11: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

11

En esta sección se presenta la arquitectura conceptual de todo el sistema NetInventory .

NetInven tory asume que cada nodo es un tipo de los cuales vamos a estudiar (router,

switch, host), se asume que cada switched dom ain es un árbol y que la red tiene var ios.

A continuación el esquema general de la arquitect ura.

4

Figura. 1. Arquitect ura Conceptual NetInventory System.

Los Elementos básicos de la arquitectura del NetInventory son la GUI (interfaz con el

usuario), Los algoritmos que conforman Topology discovery, El Encargado de

conseguir lo s recursos que están en los MIB Resource Discovery y por ultimo

NetInven tory Database La base de datos que almacena los recursos conseguidos por

Resource Discovery. Estos elementos en conjunto conforman lo que es la arquitectura

conceptual del NetInventory.

4 Topology Discovery in Heterogene ous IP Networ ks: The Ne tInve ntory System Yur i Bre itbart, Minos Garofalakis,

Member, I EEE, Be n Jai, Cliff Martin, Rajeev Ra stogi, a nd Avi Silbersc hatz, Fe llow, I EEE

Page 12: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

12

4. MODELO DEL SISTEMA.

El modelo del sistema ya ha sido revisado en [1] pero es necesaria una breve

explicación para contextualizar la información que se va a proporcionar en este avance.

El dominio sobre el cual vamos a aplicar el algoritmo será el adm inistra tive dom ain, los

nodos de la red pueden ser (routers, switches, hosts), una conexión entre un par de

nodos que pertenecen a diferentes elementos de la red se denomina edge. Switched

domain máximo conjunto de switches tal que halla un camino entre todos los pares del

conjunto S. IP subnet máximo conjunto de direcciones IP tal que cualquiera par de

nodos puedan comunicarse uno con el otro sin involucrar un router.

En la figura de abajo Figura. 2 se pueden ver claramente todos los conceptos del modelo

del sistema, R1, R2, R3 son routers, {S1, S2, S3} que pertenecen a un swithed domain y

{S4,S5} que pertenecen a otro switched domain. Las diferentes Subnets

{S1,S2}{S2}{S4,S5} y el administrative domain que incluye todos los elementos de la

figura 1.

5 Figura.2 Grafo de una red para un dominio Administrativo.

Ahora defin imos j como la jotaesima interfase de un switch Si. Y Aij corresponde al conjunto de direcciones MAC que han sido aprendidas por Backward learning por la

interfase Sij . Ahora def inimos lo que es el con junto U. U es el conjunto que comprende

todos los elementos de una Subnet.

Ejemplos 1,2 refuerzan los conceptos estudiados en el capitulo del modelo del sistema.

5 Topology Disc overy in He terogene ous IP Ne twor ks: The Ne tInve ntory System Yur i Breitbar t, Minos Garofalakis,

Member, I EEE, Be n Jai, Cliff Martin, Rajeev Ra stogi, a nd Avi Silbersc hatz, Fe llow, I EEE

Page 13: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

13

Figura 3. Ejemplo #1.

Figura 4. Ejemplo #2.

Page 14: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

14

5.PRESENTACIÓN DE ALGORTIMOS.

La presentación de los algoritmos tiene como objetivo principal mostrar de una manera

clara y concreta como funcionan los algoritmos dentro de su entorno sistemático

(algoritmos presentados en [1]).

Descubrimiento de dispositivos: Arquitectura Conceptual.

Figura 5. Arquitect ura Conceptual (Descubrimiento de dispositivos).

En la figura 5 revisamos brevemente lo que es la arquitectura conceptual del algor itmo

de descubrimiento de dispositivos, definiendo así las entradas las salidas y la

información adicional que se le debe proporcionar al algoritmo para que pueda realizar

el proceso adecuado.

Pseudo Algoritmo. EncontrarRouters(R1). R1 es un router que sabem os que esta en el administra tive domain sobre el cual se aplicara el a lgoritm o. Comenzar: routerset={R1}, routersvisited = ø; Mientras routerset ≠ ø haga

{escoger R de rou terset. Routerset=Routerset-{R} If (R no pertenece a routersvisited )

routersvisited = routersvisited U {R} NH(R) = proxim o salto por R para algún destino. Routerset =Routerset U NH(R)}

Page 15: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

15

Figura 6. Diagrama de flujo (Descubrimiento de dispositivos).

El algoritmo presentado en la figura 6 encuentra los elementos de la red, ya sean

routers, switches o hosts (la información acerca de su condición de router, switch o host es dada por el protocolo SNMP). El procedimiento que sigue este algoritmo será

explicado a partir del ejemplo de la f igura 7. Además el conjunto NH(R) es

proporcionado por el Backward Learn ing que hace cada nodo a través de el árbol de

expansión que proporciona SPT (spanning tree protocol).

Figura 7. Ejemplo #3 (Descubrimiento de dispositivos).

Page 16: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

16

Comienza por recibir un elemento R1 que se sabe, hace parte del adm inistrative dom ain

sobre el cual vamos a aplicar el algoritmo. A continuación se crea el conjunto

routerset={R1} como se puede observar R1 no pertenece al conjunto routersvisited

entonces la siguiente instrucción lo agrega a este con junto para que se de por entendido

que ya se visito, quedando guardado así en rou tersvisited. NH(R) = proximo salto por R

para algún destino con esta instrucción se trae el conjunto NH(R) que guarda los

diferentes elementos vecinos por los cuales va a pasar para ir a cualquier destino,

NH(R1)={S1}. Y por ultimo Routerset =Routerset U NH(R) esta instrucción agrega los

elementos vecinos al conjunto inicial, actualizando así Routerset =Routerset U NH(S1) .

Es indispensable realizar esta ultima instrucción para que el algoritmo evalué todos y

cada uno de los dispositivos del administrative dom ain. Para la siguiente iteración el

algoritmo ejecuta las misma operaciones pero comenzando con rou terset={S1} y

routersvisited={R1}.

Encontrar Interconexiones: Arquitectura Conceptual.

Figura 8. Arquitect ura conceptual (Encontrar Interconexiones)

En la arquitectura concept ual de este algoritmo, def inimos las entradas las salidas y la

información adicional que se necesita para llevar a cabo un desempeño normal.

Page 17: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

17

Pseudo Algoritmo.

Encontrando Interconexiones(S1,S2…Sn,R1,R2…Rn) . S1,S2,….Sn son switches de la Subnet S. R1,R2,….Sn son routers de la Subnet S. Comenzar: Para cada switch Si haga Para cada interfase j de Si haga. If (Sij no ha sido asignado ) If(Aij ∪ Akl = U y Aij ∩ Akl = φ) Conectar Sij con Skl. Para cada router Rk y swithc Si haga Para cada interfase j de Si haga. If (Sij no ha sido asignado y Aij contiene a Rk ) Conecte S ij con Rk.

Figura 9. Diagrama de flujo (encontrar interconexiones). Para explicar este segundo algoritmo es necesario hacer algunas definiciones. Sea U el

conjunto de direcciones MAC correspondientes a los switches y routers pertenecientes a

la subnet S. Para la descripción del descubrimiento de los edges se estableció un lema

que instaura la condición suficiente para que una interfase de un switch este conectada a

la interfase de otro swith.

Lema 3.1: Interfases Sij y Sk l estan directamente conectadas si y solo si Aij ∪ Akl = U y

Aij ∩ Akl = φ) la demostración de esta lema esta consignada en [1]. Lema 3.3: Un router R esta conectado a la interfase Sij si y solo si Sij es una interfase

libre y Aij contiene la dirección MAC de R.

Siguiendo los lemas anteriormente propuestos por [1], es notorio que siendo estas las

condiciones suficientes para fijar una conexión entre dos interfases o entre un router y

una interfase, lo que hacemos a continuación es evaluar cada interfase de cada switch y

Page 18: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

18

cada router que este dentro de cada subnet. Esto puede ser comprobado más fácilmente

con un ejemplo.

Figura 10. Ejemplo #4 (Encontrar Interconexiones).

En el ejemplo #4 se muestra claramente como la condición suf iciente de interconexión

se hace valida entre S12 y S21, al cumplir con que su unión es igual al conjunto

definido anteriormente como U, y su intersección es igual a vació.

.

Page 19: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

19

6.TRATAMIENTO DEL P ROBLEMA.

El problema fue tratado de diferentes maneras, se pensó en varios métodos para

acercarnos a una so lución óptima. Una de las primeras alternativas era implementar los

algoritmos en la herramienta de simulación QualNet, pero esta idea fue descartada

debido a la ausencia de la información que proporciona el protocolo SNMP (MIB) la

cual es necesaria para las entradas adicionales de cada algoritmo como se puede ver en

la arquitectura conceptual.

También se intento capturar la información de la topología de red que genera QualNet

como información inicial de nuestros algor itmos. Esta idea fue la más desarrollada

debido a su versatilidad, pero a causa de la complejidad para accesar la información se

decidió seguir adelante sin ello. Además de esto se intento montar el algoritmo sobre un

nuevo protocolo de comunicación utilizando el Protocol Designer de la herramienta

simulación QualNet que se desarrollaría exclusivamente para este fin.

La solución f inal se basa en hacer una prueba lógica de los algor itmos sobre algunos

escenarios representativos. Los datos de entrada están consignados en archivos de texto

que representan la información necesar ia para que los algoritmos funcionen. Los

algoritmos están desarro llados sobre la herramienta Visual C++ suministrada por la

facultad de ingeniería electrónica en las instalaciones de la sala de computadores del

laboratorio.

Page 20: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

20

7. RESULTADOS.

Se han estimado varios resultados usando varios escenar ios de pruebas, parte de estos

escenarios fueron tomados de [1] y la parte restante fueron sugeridos por mi persona

como parte de un objetivo adicional.

Figura 11. Escenar io #1.

Figura 12. Descubr imiento de Dispositivos.

Figura 13. Descubrimiento Interconexiones.

Page 21: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

21

Como se puede apreciar en las f iguras anteriores, estos son los resultados mostrados por

el algoritmo aplicado al escenario #1. Las figuras son muy claras al respecto y se

distingue claramente la topología revelada por el algor itmo. Como se puede apreciar en

la figura 12 el algoritmo de descubr imiento de dispositivos hace 26 iteraciones para

encontrar 9 dispositivos, esto se debe a que el algoritmo consta de una parte aleatoria

donde se genera un número aleatorio entre 0 y el tamaño de Routerset, esto causa este

pequeño retraso. El algor itmo de descubr imiento de interconex iones funciona

perfectamente para este ejemplo en particular y se puede observar que es más inmediato

que el anterior.

El siguiente escenar io corresponde a la Figura 14 donde se puede observar una red

ligeramente más compleja que la anterior.

Figura 14. Escenar io # 2

Figura 15. Descubr imiento de dispositivos.

Page 22: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

22

Figura 16. Descubrimiento Interconexiones.

El algoritmo de descubrimiento de dispositivos funciono normalmente así como el de

las interconexiones, al parecer en este tipo de redes sencillas el algoritmo se comporta

muy bien y no tiene n ingún tipo de anomalía.

A continuación el escenario # 3, uno de los más importantes no solo por su tamaño sino

por su estructura y por los problemas que se presentaron a la hora de descubrir sus

interconexiones. Este escenario esta propuesto en [1] con la diferencia del nodo J que no esta en la topología que plantea [1], pero se agrego simplemente por hacer el diseño

mas interesante. El análisis de los resultados de este escenario se enfocara al

descubrimiento de las interconex iones ya que existen ciertas discrepancias con la teoría.

El algor itmo de descubrimiento de dispositivos funciona normalmente los resultados a

continuación.

Figura 17. Descubr imiento de dispositivos.

Page 23: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

23

Figura 18. Escenar io # 3

Figura 19. Descubr imiento Interconexiones.

Page 24: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

24

Figura 20. Topología Descubierta.

Las conex iones generadas en este caso particular reflejan parcialmente la topología real

ya que la conexión entre G y H no esta incluida en los resultados así como la conexión

entre N y Q, bien pudo haber sido una mal interpretación del algoritmo o un caso muy

especial dentro de los escenar ios puestos a prueba. En el caso de haber sido una mal

interpretación del algoritmo esto quiere decir que va a haber muchos mas casos en

donde estas anomalías se van a presentar. Haciendo un seguimiento del error y

confrontando con la teoría es posible que haya una def iciencia en los casos que hay mas

de una subnet dentro de un swicth domain. El Artículo nos muestra la manera de

corregir estas discordancias pero por ahora los resultados y las pruebas realizadas con

esta modif icación no han sido para nada alentadores.

Sin embargo los resultados obtenidos en las redes de prueba que no tienen esta

característica funcionan adecuadamente y este seria el primer paso para empezar a

pensar en la implementación real de este algor itmo, con el fin de conformar un sistema

que les permita a los administradores de la red conocer su red a fondo.

Page 25: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

25

8. CONCLUSIONES.

El éx ito de algunas de las pruebas lógicas se debe a la calidad del algor itmo en cuestión

y al modelamiento del sistema que es la base para que estos algoritmos funcionen. La

comprensión del modelo es un logro que hay que tener en cuenta ya que este modelo no

solo lo maneja este artículo sino muchos otros escritos importantes para el desarrollo del

tema en cuestión.

Los resultados fueron acordes con los escenarios trabajados a excepción del caso

mencionado donde el algor itmo de interconexiones no pudo estimar algunas

conexiones. De igual manera hay topologías que con la información que tenemos es

imposible de estimar correctamente. Contar con esta información es v ital a la hora de

evaluar un algoritmo ya que la falla puede no estar en el.

Se concluyo que la modificación de multisubnet no funciono correctamente y que afecto

el desempeño de el algoritmo sin la modif icación, si bien el caso no se considero

importante es crucial saber el efecto que causo sobre el algor itmo. Además es necesario

retomar la def inición y la modificación de multisubnet para un fut uro.

Los resultados obtenidos nos dan una clara visión de las utilidades que tiene este

sistema (The NetInventory System ), como lo son el manejo adecuado de los recursos

proactivos y reactivos, la correlación de eventos y root-cause analysis. Además de dar

información para manejar las tareas anteriormente señaladas, este sistema nos ayuda a

comprender como el crecimiento de las redes afecta los procedimientos actuales y la

necesidad de actualizar nuestros sistemas para que se enfrenten a nuevos retos. Es así

como este sistema basa su operación en el estándar SNMP MIB que es soportado

ampliamente por las redes IP modernas.

La extrapolación de un sistema como este a Redes Inalámbricas no es del todo

descabellado, es mas yo creería que no ser ia una utopía siempre y cuando el modelo se

adapte a nuevas condiciones donde los enlaces no son estables, donde los vecinos no

son los mismos, pero si la información que se tiene satisface las condiciones del modelo

para ese preciso instante podr íamos estar hablando de un gran avance en el manejo

Page 26: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

26

administrativo de la s Redes Inalámbr icas. El costo computacional es bastante alto, esa

seria una de las dificultades mas grandes ya que un factor que hay que reducir en las

redes inalámbricas es el costo computacional con el fin de no utilizar procesador y

batería en estos procesos.

El análisis de los resultados obtenidos es una fuente de información para un

acercamiento menos temeroso a lo que es The NetInventory System si bien el trabajo que

queda por hacer es considerable, el primer paso es el más dif ícil en este camino hacia el

desarrollo de nuevas ideas y de nuevos horizontes.

La aplicabilidad de un sistema como este es tan versátil que, no se pasa por alto la

posibilidad de desarrollar un producto como estos con el fin de comercializarlo en un

mercado nuevo como lo seria Co lombia. El producto comercial se refiere a un estimador

de topologías para uso de un administrador de redes IP

Page 27: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

27

9. TRABAJO FUTURO.

Con relación al trabajo realizado es importante dar ciertas pautas para guiar a las

próximas personas que quieran continuar con un trabajo de esta nat uraleza.

El primer acercamiento al problema de la estimación de topologías en redes IP

siguiendo el modelo de [1], ya esta resuelto esperamos que el modelo, lo s algoritmos y

la información necesar ia para ejecutar estos mismos este claro y que esta sea la base

para un trabajo futuro que vaya mas allá de lo que este fue.

El objetivo final de este proyecto a mediano podría llevarse a cabo en una herramienta

de simulación como QualNet (ya que esta disponible en la Universidad de los Andes) o

cualquiera de las muchas que herramientas de simulación existentes.

La estimación de topologías no es un aspecto importante en cuanto a sim ulación de

redes pero si lo es en cuanto a la experiencia y a los resultados simulados, ya que para

implementarlo en un sistema real se necesitan la experiencia de haberlo sim ulado y que

la evaluación de resultados sea coherente con las expectativas de el modelo real a

implementar. Por estas razones el primer paso del trabajo a futuro según mi criterio

seria la implementación del sistema en un ambiente de simulación.

La siguiente etapa en el desarrollo de una herramienta de descubrimiento de topologías

tiene que ser el montaje de este sistema sobre todos y cada uno de los integrantes de la

red, esta implementación real puede beneficiar en grande la investigación en este tema

en Co lombia, ya que no solo se utilizaría en la estimación de topologías de redes sino en

todo lo que es la administración de redes que es un tema muy importante, para la

evolución del desempeño de las mismas.

Page 28: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

28

BIBLIOGRAFIA.

[1] Topology Discovery in Heterogeneous IP Net works: The NetInventory System.

Yuri Breitbart, Minos Garofalakis, Mem ber, IEEE, Ben Jai, Cliff Martin, Rajeev

Rastogi, andAvi Silberschatz, Fellow, IEEE. IEEE/ACM TRANSACTIONS ON

NETWORKING, VOL. 12, NO. 3, JUNE 2004

[2] Measuring Isp toplogies with Rocketfuel.

Neil spr ing, Ratul Mahajan, David wetherall.

SIGCOMM ACM August 2002.

[3] R. Govindan and H. Tangmunarunkit, “Heur istics for Internet map discovery,” in

Proc. IEEE INFOCOM, 2000, pp. 1371–1380.

[4] Management Information Base for Net work Management of TCP/IP-based internets:

MIB-II, RFC 1213, MARZO 1991

Page 29: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

29

ANEXO A.

Código escrito para el algor itmo de descubrir dispositivos Escenario #3. #include<stdio.h> #include<stdlib.h> #include<string.h> void borrarnodo (char[],char); void insertarnodo (char[],char); void buscarvecinos(char [],char,char [],char [],char [],char[],char [],char [],char [],char [],char [],char [],char [],char[],char [],char [],char [],char [],char [],char []); m ain () { char A[10]; char B[10]; char C[10]; char D[10]; char F[10]; char H[10]; char G[10]; char I[10]; char J[10]; char K[10]; char L[10]; char M[10]; char N[10]; char O[10]; char P[10]; char Q[10]; char R[10]; char S[10]; char T[10];

char routerset[50]; char routersvisited[50]="******************"; char elegido; char vecinos[20]="*******************"; int tam routerset=0; FILE *dptr; if ((dptr= fopen("grande.txt","r")) == NULL) printf("ERROR AL ABRIR EL ARCHIVO\n"); else { while(!feof(dptr)){

fscanf(dptr,"%s",A); fscanf(dptr,"%s",B); fscanf(dptr,"%s",C); fscanf(dptr,"%s",D); fscanf(dptr,"%s",F); fscanf(dptr,"%s",G); fscanf(dptr,"%s",H); fscanf(dptr,"%s",I); fscanf(dptr,"%s",J); fscanf(dptr,"%s",K); fscanf(dptr,"%s",L); fscanf(dptr,"%s",M); fscanf(dptr,"%s",N); fscanf(dptr,"%s",O); fscanf(dptr,"%s",P); fscanf(dptr,"%s",Q); fscanf(dptr,"%s",R); fscanf(dptr,"%s",S); fscanf(dptr,"%s",T); } } strcpy(routerset,A); tam routerset = strlen (routerset); while (tamrouterset>=1) {elegido = routerset[tamrouterset-(1+rand() %tamrouterset)]; borrarnodo(routerset,elegido); if (strchr(routersvisited,elegido)==NULL)

Page 30: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

30

{ insertarnodo(routersvisited,elegido); buscarvecinos(vecinos,elegido,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T);

strcat(routerset,vecinos); } tam routerset = strlen (routerset); } printf("Routersvisited = %s\n",routersvisited); return 0; } void borrarnodo(char routerset[],char nodo) { int i=0; int j=0; int tam ; char *ptr; while(routerset[i] != nodo){ i++; } ptr=strchr(routerset,nodo); tam = strlen(routerset); j=tam-i; i=0; for (i=0;i<=j ;i++) { *(ptr+i)=*(ptr+1+i); } } void insertarnodo (char routersvisited[],char nodo) { int i=0; printf("Routersvisited = %s\n",routersvisited); while(routersvisited[i] != '*') i++;

routersvisited[i]=nodo; } void buscarvecinos(char vecinos[],char nodo,char b[],char c[],char d[],char f[],char g[],char h[],char I[],char j [],char k[],char l[],char m [],char n[],char o[],char p[],char q[],char r[],char s[],char t[]) { int i=0; if(nodo==b[0]) { while(b[i+1]!=NULL) { vecinos[i]=b[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0';}

i=0; if(nodo==c[0]) { while(c[i+1]!=NULL) { vecinos[i]=c[i+1]; i++;} i=0;

while(vecinos[i]!='*') i++; vecinos[i]='\0';}

i=0; if(nodo==d[0]) { while(d[i+1]!=NULL) {

Page 31: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

31

vecinos[i]=d[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0';} i=0;

if(nodo==f[0]) { while(f[i+1]!=NULL) { vecinos[i]=f[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0'; } i=0; if(nodo==g[0]) { while(g[i+1]!=NULL) { vecinos[i]=g[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0'; } i=0; if(nodo==h[0]) { while(h[i+1]!=NULL) { vecinos[i]=h[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0'; i=0; if(nodo==I[0]) { while(I[i+1]!=NULL) { vecinos[i]=I[i+1]; i++; } i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0';} } i=0; if(nodo==j[0]) { while(j[i+1]!=NULL) { vecinos[i]=j[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; }

Page 32: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

32

i=0; if(nodo==k[0]) { while(k[i+1]!=NULL) { vecinos[i]=k[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==l[0]) { while(l[i+1]!=NULL) { vecinos[i]=l[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==m[0]) { while(m[i+1]!=NULL) { vecinos[i]=m[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==n[0]) { while(n[i+1]!=NULL) { vecinos[i]=n[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==o[0]) { while(o[i+1]!=NULL) { vecinos[i]=o[i+1]; i++; } i=0; while(vecinos[i]!='*') i++;

Page 33: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

33

vecinos[i]='\0'; } i=0; if(nodo==p[0]) { while(p[i+1]!=NULL) { vecinos[i]=p[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==q[0]) { while(q[i+1]!=NULL) { vecinos[i]=q[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0'; } i=0; if(nodo==r[0]) { while(r[i+1]!=NULL) { vecinos[i]=r[i+1]; i++; } i=0; while(vecinos[i]!='*') i++; vecinos[i]='\0';}

i=0; if(nodo==s[0]) { while(s[i+1]!=NULL) { vecinos[i]=s[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0';} i=0; if(nodo==t[0]) { while(t[i+1]!=NULL) { vecinos[i]=t[i+1]; i++;} i=0; while(vecinos[i]!='*') i++;

vecinos[i]='\0'; } }

Page 34: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

34

ANEXO B. Código escrito para el algor itmo de descubrir interconexiones Escenar io #3. #include<stdio.h> #include<stdlib.h> #include<string.h> int uniona(char,char,int); int inters(char,char); void insertarnodo (char[],char); m ain() { int i=0; int j=0; char routers[10]; char switches[10]; char Aij [10]; char A1ij [10]; FILE *dptr;

if ((dptr= fopen("swrout.txt","r")) == NULL) printf("ERROR AL LLAMAR ARCHIVO \n"); else { fscanf(dptr,"%s",&routers); fscanf(dptr,"%s",& switches); fscanf(dptr,"%s",&Aij); fscanf(dptr,"%s",&A1ij );} while(switches[i] != NULL) { j=0; while(Aij[j]!= NULL) { if((uniona(Aij [j],Aij[i],i+1) ==1) && (inters(Aij [j],Aij[i]) == 1)){ printf("Conexion Existentes entre Switches\n"); printf("%c ----------> %c\n",switches[i],switches[j]); } if((uniona(A1ij [j],A1ij[i],i+1) ==1) && (inters(A1ij [j ],A1ij[i]) == 1)){ printf("Conexion Existentes entre Switches\n"); printf("%c ----------> %c\n",switches[i],switches[j]); } if((uniona(A1ij [j],Aij[i],i+1) ==1) && (inters(A1ij[j ],Aij[i]) == 1)){ printf("Conexion Existentes entre Switches\n"); printf("%c ----------> %c\n",switches[i],switches[j]); } j++; } i++; } i=0; printf("conexion existente entre routers y switches\n"); while (switches[i] != NULL) { if(Aij[i]!='0'){ printf("%c ----------> %c\n",switches[i],Aij [i]);} i++; } return 0; } int inters(char Aij ,char actual) { if (Aij!= actual)

Page 35: SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...

IEL2-I-05-03

35

return 1; else return 0; } int uniona(char Aij ,char actual,int i) { char aux[10]="\0"; char U1[10]; char U2[10]; char U3[10]; char U4[10]; char U5[10]; char U6[10]; FILE *dptrU; if ((dptrU= fopen("U.txt","r")) == NULL) printf("paila\n"); else { fscanf(dptrU,"%s",& U1); fscanf(dptrU,"%s",& U2); fscanf(dptrU,"%s",& U3); fscanf(dptrU,"%s",& U4); fscanf(dptrU,"%s",& U5); fscanf(dptrU,"%s",& U6); } if(Aij == actual) return(1); else{ insertarnodo(aux,Aij ); insertarnodo(aux,actual); //printf("%s\n",aux); if (i==1){ if(strcm p(aux,U1)==0) return 1; else return 0;} if (i==2){ if(strcm p(aux,U2)==0) return 1; else return 0;} if (i==3){ if(strcm p(aux,U3)==0) return 1; else return 0;} if (i==4){ if(strcm p(aux,U4)==0) return 1; else return 0;} if (i==5){ if(strcm p(aux,U5)==0) return 1; else return 0;} if (i==6){ if(strcm p(aux,U6)==0) return 1; else return 0;}} } void insertarnodo (char aux[],char nodo) { int i=0; while(aux[i]!='\0') i++; aux[i]= nodo; }