SIMULAC IÓ N DEL DESC UBRIM IENTO DE TO PO LOG IAS EN ...
Transcript of 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
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
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.
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].
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.
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.
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)
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.
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.
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
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
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
IEL2-I-05-03
13
Figura 3. Ejemplo #1.
Figura 4. Ejemplo #2.
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)}
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).
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.
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
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ó.
.
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.
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.
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.
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.
IEL2-I-05-03
23
Figura 18. Escenar io # 3
Figura 19. Descubr imiento Interconexiones.
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.
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
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
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.
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
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)
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) {
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'; }
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++;
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'; } }
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)
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; }