Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación MPLS MULTI PROTOCOL LABEL SWITCHING Una Arquitectura de Backbone para la Internet del Siglo XXI por María Sol Canalis Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Lic. Ricardo Monzón Licenciatura en Sistemas Corrientes Argentina Corrientes 2003 A mis padres, por el apoyo incondicional, y a la luz que hoy ilumina mi vida. Prefacio El protocolo TCP / IP es hoy día una solución clásica y estándar al trans- porte de información en las redes. Aceptado por toda la comunidad de Inter- net, ha sido hasta hoy una solución aceptable para el envío de información, utilizando Routing de paquetes con ciertas garantías de entrega. A su vez, los avances en el hardware y en las metodologías de ingeniería del trá…co están dando lugar al empleo creciente de las tecnologías de Conmutación, enca- bezadas por la tecnología ATM. Aportando velocidad, calidad de servicio y facilitando la gestión de los recursos en la red. El principal objetivo de este Trabajo es analizar y dar a conocer las so- luciones que existen actualmente al problema de integrar trá…co IP dentro de la tecnología ATM. Para ello, se comienza estudiando el protocolo IP, la tecnología ATM y las diferencias entre ellos. También se verán las necesidades crecientes por parte de proveedores y administradores de redes de mantener un control sobre el trá…co, gestión de recursos,anchodebandadisponibleycalidaddeservicio(QoS).Comprobando cómo el protocolo de Internet actual, IP, puede bene…ciarse de las caracterís- ticas que aportan las nuevas tecnologías, principalmente ATM. Tras esto, se estudian a fondo las soluciones IP - ATM más destacadas, y se desarrolla una simulación sobre MPLS, la solución más sólida de todas las estudiadas,amiparecer. Estesimuladornosproporcionaráunaideamásclara de las ventajas, inconvenientes, costes de implantación del nuevo sistema, etc. El Simulador utilizado fue desarrollado en el Área Telemática del Depar- tamento de Informática de la Universidad de Extremadura, agradeciéndose muy especialmente a Miguel Ángel Martín Tardío, Miguel Gaspar Rodríguez y José Luis Gonzalez Sánchez. Sobre el mismo se ha desarrollado una Interfaz de Captura de Datos de Entrada. Se ha optado por el lenguaje Java para realizar la implementación. Los motivos: su orientación a objetos, la posibilidad de manejar hilos de ejecución y la ejecución multiplataforma. A continuación pasamos a describir cada uno de los capítulos de los que consta este texto: Lenguaje Java. ² Debido a que se utilizó este lenguaje en la elaboración del Simulador de Redes MPLS y de la interfaz de Captura de Datos de Entrada, se dedicó vi este capítulo a Java, lenguaje orientado a objetos (OO)y multiparadig- ma. Preparación de Documentos con Latex. ² Esta sección explica como se hace un libro con Latex; un sistema de composición profesional que consiste en un conjunto de macrocomandos creado por Donald Knuth de la Universidad de Stanford en los años 1970s. Tambiénse utilizó para confeccionareste libroel editorScienti…c WorkPlace, que utiliza Latex como lenguaje de composición del texto. Introducción a MPLS. ² Esta sección nos introduce a la esencia misma del MPLS, explicando el porqué esta arquitectura es apta para la convergencia de las redes de altas prestaciones. También en este apartado se describen las diferentes alternativasqueexistenparamejorarlaperfomancedelasgrandesredes, conluyendo que MPLS es la mejor opción. MPLS Multi Protocol Label Switching. ² Nos sumergidos por completo en el MPLS, explicando en detalle su tec- nología, arquitectura, principales aplicaciones, etc. Simulador de Redes MPLS. ² EstasecciónexplicaeldesarrollocompletodelSimuladordeRedesMPLS, haciendounestudiodelsistemaactualydelsistemapropuestoaplicando MPLS. Se divide en las siguientes fases: Análisis, Diseño e Implementa- ción. Interfaz de Captura de Datos de Entrada. ² Se desarrollóestaherramientapara hacerunainterfaz másamigablecon el usuario a la hora de cargar los datos del archivo de con…guración que necesita el Simulador de Redes MPLS para su correcta ejecución. Ampliaciones y Conclusiones. ² Y por último, este apartado se re…ere a las ampliaciones del Simulador de Redes MPLS, y de la Interfaz de Captura de Datos, …nalizando con las conclusiones acerca de esta arquitectura. María Sol Canalis Licenciatura en Sistemas Universidad Nacional del Nordeste Índice General 1 Java 1 1.1 Introducción al Lenguaje. . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Bibliotecas de Clases Estándares de Java . . . . . . . . 3 1.1.2 Java es Multiplataforma . . . . . . . . . . . . . . . . . . 3 1.1.3 Características del Lenguaje Java . . . . . . . . . . . . . 4 1.2 Estructura General de un Programa Java . . . . . . . . . . . . 6 1.3 Conceptos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2 Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.3 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.4 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.5 La jerarquía de clases de Java (API) . . . . . . . . . . . 10 1.4 Variables dentro del Lenguaje Java . . . . . . . . . . . . . . . . 10 1.4.1 Visibilidad y vida de las variables . . . . . . . . . . . . . 13 1.5 Operadores en Java . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.1 Operadores aritméticos . . . . . . . . . . . . . . . . . . 14 1.5.2 Operadores de asignación . . . . . . . . . . . . . . . . . 14 1.5.3 Operadores unarios . . . . . . . . . . . . . . . . . . . . . 15 1.5.4 Operadores incrementales . . . . . . . . . . . . . . . . . 15 1.5.5 Operadores relacionales . . . . . . . . . . . . . . . . . . 15 1.5.6 Operador de concatenación de cadenas de caracteres (+) 17 1.5.7 Precedencia de operadores . . . . . . . . . . . . . . . . . 17 1.6 Estructuras de Programación . . . . . . . . . . . . . . . . . . . 17 1.6.1 Sentencias o expresiones . . . . . . . . . . . . . . . . . . 18 1.6.2 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . 19 1.6.3 Bifurcaciones . . . . . . . . . . . . . . . . . . . . . . . . 20 1.6.4 Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.7 Clases en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 vii viii ÍNDICE GENERAL 1.7.1 Características importantes de las clases . . . . . . . . 24 1.7.2 Métodos o Funciones Miembros . . . . . . . . . . . . . . 25 1.8 Algunas Clases de Utilidad . . . . . . . . . . . . . . . . . . . . 27 1.8.1 Clase Arrays . . . . . . . . . . . . . . . . . . . . . . . . 27 1.8.2 Clases String y StringBu¤er . . . . . . . . . . . . . . . . 28 1.8.3 Clase Double . . . . . . . . . . . . . . . . . . . . . . . . 29 1.8.4 Clase Integer . . . . . . . . . . . . . . . . . . . . . . . . 30 1.9 El AWT (Abstract Windows Toolkit). . . . . . . . . . . . . . . 30 1.9.1 Qué es el AWT . . . . . . . . . . . . . . . . . . . . . . . 30 1.9.2 Creación de una Interface Grá…ca de Usuario . . . . . . 30 1.9.3 Objetos “event source” y objetos “event listener” . . . . 31 1.9.4 Proceso a seguir para crear una aplicación interactiva (orientada a eventos) . . . . . . . . . . . . . . . . . . . . 32 1.10 Errores Frecuentes de Programación . . . . . . . . . . . . . . . 33 1.10.1 Scheduling de Hilos de Ejecución . . . . . . . . . . . . . 33 1.10.2 Errores en el Uso de las Características de Portabilidad de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.10.3 Uso de directorios de…nidos . . . . . . . . . . . . . . . . 35 1.10.4 Carga de Drivers JDBC . . . . . . . . . . . . . . . . . . 38 1.10.5 Terminación de Líneas . . . . . . . . . . . . . . . . . . . 39 1.10.6 Entrada/Salida por Archivo . . . . . . . . . . . . . . . . 40 1.10.7 Fuentes de Caracteres . . . . . . . . . . . . . . . . . . . 40 2 Preparación de documentos con LATEX 41 2.1 Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.1.1 Forma de trabajo con LATEX . . . . . . . . . . . . . . . . 42 2.1.2 Modo de trabajo en LATEX . . . . . . . . . . . . . . . . . 46 2.2 Documentos en LATEX . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.1 El Preámbulo . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2.2 Especi…cación y Estilo de Documento . . . . . . . . . . 47 2.2.3 Estilo de Página . . . . . . . . . . . . . . . . . . . . . . 50 2.2.4 La página del Título . . . . . . . . . . . . . . . . . . . . 53 2.2.5 El Documento Propiamente Dicho . . . . . . . . . . . . 55 2.2.6 División de un documento en partes . . . . . . . . . . . 57 2.2.7 Documento Tipo Libro. . . . . . . . . . . . . . . . . . . 58 2.2.8 Trabajo en Modo Texto . . . . . . . . . . . . . . . . . . 63 2.3 Partes Flotantes . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.3.1 Referencia Cruzada e Índice de Palabras . . . . . . . . . 71 2.3.2 Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . 74 ÍNDICE GENERAL ix 3 Introducción al MPLS 77 3.1 Presentación de una Nueva Arquitectura . . . . . . . . . . . . . 77 3.2 Estudio del Sistema Actual . . . . . . . . . . . . . . . . . . . . 78 3.2.1 Protocolo IP . . . . . . . . . . . . . . . . . . . . . . . . 79 3.2.2 Tecnología ATM . . . . . . . . . . . . . . . . . . . . . . 82 3.2.3 El Protocolo IP sobre la estructura ATM . . . . . . . . 84 3.2.4 Modelo lógico del sistema existente . . . . . . . . . . . . 86 3.3 Evaluación de alternativas . . . . . . . . . . . . . . . . . . . . . 88 3.3.1 LANE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.3.2 IP clásico sobre ATM . . . . . . . . . . . . . . . . . . . 90 3.3.3 NHRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 3.3.4 MPOA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.3.5 Arequipa . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.3.6 IP Switching . . . . . . . . . . . . . . . . . . . . . . . . 93 3.3.7 Tag Switching. . . . . . . . . . . . . . . . . . . . . . . . 94 3.3.8 MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.4 Selección de una alternativa . . . . . . . . . . . . . . . . . . . . 96 3.4.1 Viabilidad técnica . . . . . . . . . . . . . . . . . . . . . 96 3.4.2 Viabilidad operacional . . . . . . . . . . . . . . . . . . . 96 3.4.3 Viabilidad económica . . . . . . . . . . . . . . . . . . . 97 4 MPLS Multi Protocol Label Switching 99 4.1 Introducción a MPLS . . . . . . . . . . . . . . . . . . . . . . . 99 4.1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.2 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.2.1 Visión general. . . . . . . . . . . . . . . . . . . . . . . . 102 4.2.2 Protocolo de Intercambio de Etiquetas LDP . . . . . . 133 4.3 Aplicaciones MPLS . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.3.1 Ingienería de Trá…co . . . . . . . . . . . . . . . . . . . . 139 4.3.2 Clases de Servicios (CoS) . . . . . . . . . . . . . . . . . 141 4.3.3 Redes Virtuales Privadas (VPNs) . . . . . . . . . . . . . 142 5 Simulador de Redes MPLS 147 5.1 Fase de Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 5.1.1 Diagrama de Contexto . . . . . . . . . . . . . . . . . . 149 5.1.2 Descripción de las entidades externas. . . . . . . . . . . 151 5.1.3 Descripción de los almacenes de datos . . . . . . . . . . 151 5.1.4 Descripción de los procesos . . . . . . . . . . . . . . . . 152 5.1.5 Descripción de los ‡ujos de datos . . . . . . . . . . . . . 153 5.1.6 Componentes de un LSR . . . . . . . . . . . . . . . . . 154 x ÍNDICE GENERAL 5.1.7 Diccionario de Datos . . . . . . . . . . . . . . . . . . . . 155 5.2 Diseño del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.2.1 Diseño de las salidas. . . . . . . . . . . . . . . . . . . . 162 5.3 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 5.3.1 Creación de las Clases en Java . . . . . . . . . . . . . . 167 5.3.2 Implementación de los Procedimientos . . . . . . . . . . 169 5.4 Ejemplos de Funcionamiento . . . . . . . . . . . . . . . . . . . 181 5.4.1 Ejemplo 1. Entrada de datos IP sin clasi…car. . . . . . . 181 5.4.2 Ejemplo 2. Dos ‡ujos de datos en la red. . . . . . . . . 189 5.4.3 Ejemplo3. Dostiposdedatagramasasociadosaun‡ujo de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 6 Captura de Datos de Entrada 209 6.1 Reglas de codi…cación del Archivo de Con…guración . . . . . . 209 6.2 Bloques del Archivo de Con…guración . . . . . . . . . . . . . . 209 6.2.1 Datos Generales de la Red. . . . . . . . . . . . . . . . . 210 6.2.2 Datos Especí…cos para cada Nodo . . . . . . . . . . . . 211 6.3 Interfaz con el Usuario . . . . . . . . . . . . . . . . . . . . . . . 215 6.4 Código Fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 6.4.1 Clase principal “MPLS.java” . . . . . . . . . . . . . . . 225 6.4.2 Clase “FrPosiciones.java” . . . . . . . . . . . . . . . . . 234 6.4.3 Clase “FrEnlaces.java” . . . . . . . . . . . . . . . . . . . 246 6.4.4 Clase “FrLIB.java” . . . . . . . . . . . . . . . . . . . . . 255 6.4.5 Clase “FrRuteo.java” . . . . . . . . . . . . . . . . . . . . 271 6.4.6 Clase “FrameConsola.java” . . . . . . . . . . . . . . . . 280 6.4.7 Clase “FiltroCFG.java” . . . . . . . . . . . . . . . . . . 282 6.4.8 Clase “FrAyuda.java” . . . . . . . . . . . . . . . . . . . 283 6.4.9 Clase “FrAcerca.java” . . . . . . . . . . . . . . . . . . . 285 7 Ampliaciones y Conclusiones 289 7.1 Ampliaciones y mejoras para el Simulador de Redes MPLS . . 289 7.2 Mejoras para la Interfaz de Captura de datos de Entrada . . . 290 7.3 Mejoras sobre la arquitectura MPLS . . . . . . . . . . . . . . . 290 7.4 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Bibliografía 293 Índice de Materias 295
Description: