Академический Документы
Профессиональный Документы
Культура Документы
Alejandro Garca Castro1 , Francisco Javier Mor n R a1 , and Juan Jos S nchez Penas2 a u e a
Igalia. Ingeniera en inform tica y software libre a Gutenberg, 34B 2o , Polgono de A Grela 15008 A Corunha acastro,jmoran@igalia.com 2 Universidade da Coru a, Departamento de Computaci n n o Campus de Elvi a 15071 A Coru a n n juanjo@dc.fi.udc.es
1
Resumen En ocasiones es muy interesante tener la posibilidad de introducir una m quina en una Red de area a local diferente de aquellas a las que est fsicamente conectada; algunas aplicaciones requieren que el ordenaa dor en el que se ejecutan sea miembro de una Red virtual de area local remota. En este artculo se describe el proyecto SERVAL 3 , en el que se desarrolla una arquitectura software que emula el funcionamiento de un switch, y que permite la creaci n de Redes virtuales de area local entre m quinas conectadas de forma heterog nea o a e a Internet. Hay soluciones similares, pero todas plantean limitaciones o problemas que SERVAL intenta solucionar. El proyecto est siendo desarrollado en Erlang/OTP, usando una arquitectura cliente/servidor, y se a integra con el sistema operativo utilizando interfaces de red virtuales. Las caractersticas de Erlang se adaptan muy bien a los principales requisitos del sistema: alto rendimiento y tolerancia a fallos. Los primeros tests de rendimiento y funcionalidad han dado resultados muy satisfactorios. El presente artculo explica los resultados obtenidos y plantea las lneas principales para el trabajo futuro.
1. Introducci n o
SERVAL es un proyecto de I+D que tiene como objetivo analizar la viabilidad de un sistema que permita crear Redes virtuales de area local (VLANs) usando un servidor software que emule el funcionamiento de un switch hardware. Este software permite la creaci n de VLANs entre ordenadores, independientemente de su localizaci n o o o del tipo de conexi n que utilicen para acceder a la red. o El sistema operativo del lado cliente no usa un interfaz de red cl sico, sino un programa especial que funciona a como interfaz virtual y que realmente se est comunicando con el servidor SERVAL utilizando un protocolo a interno. Una interfaz de administraci n permite gestionar la entrada y salida de los clientes en las distintas VLANs o denidas en el servidor, que funciona como un switch software reencaminando mensajes entre los clientes que est n en la misma VLAN. a El sistema est siendo desarrollado y publicado como software libre. Existe un repositorio de CVS p blico, a u listas de discusi n, y herramientas de integraci n y trabajo en grupo, as como una p gina4 p blica del proyecto. o o a u La estructura del artculo es la siguiente: en la secci n 2 se explican las diferencias entre SERVAL y las o alternativas existentes, y se exponen las motivaciones del proyecto. La secci n 3 expone los principales requisitos o del proyecto. La arquitectura propuesta, basada en dichos requisitos, es explicada en la secci n 4. El uso de Erlang o como plataforma de desarrollo se motiva y explica en la secci n 5. La secci n 6 aporta algunos datos m s sobre o o a el estado actual del proyecto. Finalmente, exponemos las principales conclusiones del proyecto y las lneas de trabajo abiertas para el futuro pr ximo. o
Proyecto parcialmente nanciado por la Xunta de Galicia, PGIDITSIN0313E P gina del proyecto SERVAL: http://serval.igalia.com a
Otra opci n sera la utilizaci n de Redes virtuales de area local (VLANs) de bajo nivel para la conexi n o o o de LANs que est n separadas fsicamente, permitiendo de este modo tr co no enrutado (posibilitando el uso e a de aplicaciones o protocolos como Rendezvous o SMB). Las VLANs se implementan normalmente usando el protocolo 802.1Q [3], que enva tr co de nivel de enlace con informaci n sobre las VLANs entre los puertos de a o diferentes switches. La mayor limitaci n de este tipo de soluciones se deriva de que hoy en da s lo se pueden o o implantar si tenemos control sobre todos los switches colocados entre las m quinas que queremos conectar, y todos a ellos tienen la funcionalidad de crear VLANs. Adem s, los cambios de conguraci n en este tipo de arquitecturas a o son complejos y costosos. El sistema que proponemos puede emular este comportamiento VLANs con una conguraci n m s simple, o a dando lugar a un switch software escalable, distribuido, y tolerante a fallos. La soluci n toma algunas ideas de las o dos alternativas existentes, eliminando las limitaciones funcionales de las VPNs y la complejidad y coste de las soluciones de tipo VLANs. Adem s, para la soluci n, se est n analizando y utilizando tecnologas y est ndares ampliamente aceptados a o a a como tecnologas LAN (Ethernet, Token ring, etc.), tecnologas VLAN (802.1Q [3], 802.1D [4]), protocolos de transporte TCP/IP (UDP y TCP), protocolos de nivel de aplicaci n y sus sistemas de encriptaci n (SSL y TLS o o [5]), o sistemas para la emulaci n de interfaces de red. o Existen numerosas aplicaciones que motivan el inter s del sistema. Algunos ejemplos han sido discutidos con e la empresa de telecomunicaciones R, Cable e Telecomunicaci ns de Galicia, S.A., para aprender m s sobre posio a bles casos de uso e incrementar el conocimiento sobre los requisitos. Algunas de las aplicaciones m s interesantes a son: las LANs corporativas virtuales que conectan distintas redes fsicas en una compa a de una forma exible n y f cilmente congurable; los sistemas para la compartici n de cheros basados en VLANs usando protocolos a o est ndar de area local; o los juegos a trav s de Internet que s lo podan ser utilizados con anterioridad en un a e o entorno de LANs.
3. Objetivos
Como hemos explicado, el principal objetivo del proyecto es analizar la viabilidad del desarrollo de una soluci n para gestionar VLANs a trav s de Internet. Los principales requisitos funcionales para el proyecto se explican o e a continuaci n: o Arquitectura cliente/servidor: adem s de por su exibilidad, se necesita esta arquitectura para los casos en a los que los clientes acceden desde direcciones IP locales, que causaran problemas en t cnicas peer-to-peer e (se considerar n, en cualquier caso, estas t cnias de conexi n directa para para despliegues con necesidades a e o especiales especiales). Soporte de distintos sistemas operativos: como objetivo inicial planteamos la necesidad de integrar con la capa de enlace de Microsoft Windows y GNU/Linux. En entornos GNU/Linux se puede utilizar el controlador Ethernet virtual TAP, pero en entornos cerrados la b squeda de la soluci n es m s compleja. u o a Rendimiento: al estar emulando entornos de redes de area local, la latencia del sistema es un requisito crtico, incluso en condiciones de carga alta. La cantidad de operaciones gestionadas (throughput) debe ser tambi n e optimizada. Tolerancia a fallos: el sistema, que se podr desplegar en un entorno distribuido, debe ser capaz de seguir a funcionando en presencia de fallos software o hardware. El dise o de procesos y protocolos debera tener en n cuenta esta necesidad. Seguridad: una de las caractersticas m s importantes, debido al funcionamiento en entornos inseguros. En al a gunas condiciones se puede asumir que el rendimiento se vea penalizado por la inclusi n de mayor seguridad. o Se deben incluir funcionalidades de autenticaci n, autorizaci n y encriptaci n. o o o Encapsulaci n de protocolos LAN heterog neos: deben ser soportados al menos Rendezvous y Server Meso e sage Block, pero el objetivo nal es soportar el mayor n mero de protocolos posible. La soluci n optima es u o emular de forma totalmente transparente un controlador Ethernet est ndar. a
Estructura de bus, permitira unir m s de dos clientes usando a los usuarios adem s de como puntos nales a a como puntos de uni n en la red. Tiene el mismo problema que el peer-to-peer a la hora de conectar ordeo nadores en redes enmascaradas. Adem s el rendimiento sera variable y difcil de controlar en funci n de la a o topologa que pudiese llegar a tener el bus. La gesti n de VLANs sera extremadamente compleja. o Cliente/servidor, que incluye un servidor accesible en una m quina en Internet y una serie de clientes especa cos para acceder a ese servidor. Este servidor esperara conexiones de clientes que se conectaran a las VLANs que hubiese dadas de alta en ese momento. Los clientes funcionaran como drivers de tarjetas que se conec tara al switch, el servidor de SERVAL, que dara la conectividad necesaria a nivel de red para comunicar a los clientes. El sistema operativo cliente vera su interfaz con SERVAL como una tarjeta y a los otros clientes en la misma VLAN como m quinas en la misma red local. a Con esta ultima aproximaci n se resuelven los problemas planteados. La comunicaci n entre cliente y servidor o o se realiza con un protocolo especco similar a los que puede haber en cualquier protocolo de capa de enlace. La arquitectura elegida permite plantear soluciones a los problemas de tolerancia a fallos y escalabilidad. Para ello, en la arquitectura nal, propusimos el uso de un cl ster de m quinas como servidor SERVAL. Estos nodos u a colaboran en el funcionamiento, detectan el fallo de otros nodos y aceptan el cambio de sus clientes a otros nodos del grupo.
La estructura de procesos del nodo Erlang del cliente se pueden observar en la Figura 3 y los del servidor en la Figura 4. En los diagramas se representan los principales procesos del servidor, y las relaciones existentes entre ellos (cuando un proceso intercambia mensajes con otro, o cuando un proceso supervisa y recibe, por lo tanto, las se ales de otro, siguiendo la losofa habitual de programaci n de Erlang). n o Con respecto a la arquitectura del cliente shell, el diagrama de procesos que lo describe es el que se aprecia en la Figura 5. El almacenamiento del estado de las conexiones y VLANs se realiza utilizando la base de datos Mnesia. Utilizamos sus caractersticas de replicaci n para acceder a todos los datos de cualquier nodo y as conseguir o tolerancia fallos y escalabilidad de forma sencilla. Para las comunicaciones de red utilizamos encapsulaci n ASN1, deni ndose el protocolo con el uso de su o e lenguaje de descripci n. Empleamos, adem s, el compilador Erlang de ASN1 para convertir los mensajes de su o a forma binaria a estructuras Erlang.
6. Estado actual
Actualmente contamos con una primera versi n del servidor, del cliente SERVAL y del shell completamente o funcionales. No obstante, esta no es de momento una versi n destinada a entornos de producci n debido a que es o o necesario mejorar aspectos de estabilidad y tolerancia a fallos, adem s de incluir algunas caractersticas deseables a en un entorno real. 6.1. Caractersticas implementadas Las principales caractersticas implementadas en SERVAL son: Opci n de utilizaci n de TCP o UDP como protocolo de transporte en las conexiones cliente-servidor. o o Soporte multinodo. Protocolo de comunicaciones SERVAL denido en ASN1. Uso de la base de datos Mnesia como m todo de sincronizaci n entre nodos. e o Sistema de log. Encriptaci n SSL. Se ha a adido la posibilidad de utilizar una capa de enlace encriptada en SERVAL debido o n a que el contexto al que est dirigido el proyecto son los entornos WAN. Las comunicaciones con SSL utilizan a encubiertamente TCP como capa de transporte y para su utilizaci n es necesario que el servidor poseaa un o certicado SSL.
Sistema de autenticaci n. Ha sido a adido un sistema de autenticaci n para autorizar conexiones a SERVAL o n o unicamente a usuarios deseados. El sistema de autenticaci n desarrollado inicialmente utiliza Mnesia y ha o sido dise ado para ser f cilmente reemplazable por otro backend, que utilizara LDAP, una base de datos n a relacional ... En estos momentos estan soportados dos sistemas de autenticaci n: o Autentaci n basada en certicado SSL de cliente. o Autenticaci n por m todo usuario/contrase a. o e n ACLs- Listas de Control de Acceso- para operaciones. Los usuarios deben estar autenticados y pertenecer a ciertos grupos para realizar determinadas operaciones. Asignaci n din mica de MACs. Las direcciones MAC son asignadas por el servidor en el momento de la o a conexi n. o Mecanismo de keep-alive. Con este subsistema el servidor puede monitorizar el estado de conexi n de los o clientes y las cadas de estos pueden ser gestionadas con correcci n. o Opci n de modo promiscou en clientes. o Conguraci n para el establecimiento y el borrado de la interfaz ethernet virtual din mica en tiempo de o a ejecuci n. o 6.2. Despliegues de SERVAL Hemos realizado varias instalaciones de SERVAL en las que hemos comprobado sus caractersticas y poten cialidades. En este subapartado vamos a incluir un ejemplo de utilizaci n del proyecto. o La conguraci n consisti en tener una red de ordenadores, con sus servidores, impresoras y PCs de sobreo o mesa. Adem s, se cont con clientes externos con los que se quera acceder a la red de ordenadores como si a o estuvieran fsicamente unidos a la Red de area local. La red de computadores posea un gateway, que era el punto de entrada a la red. Esta red contaba con un computador, host A, en el que se lanz el servidor SERVAL. El servidor escuchaba en tres puertos diferentes, o uno para conexiones tcp, otro para conexiones udp y un tercero para conexiones ssl. El gateway redireccionaba los puertos reenviando las conexiones a estos puertos a los mismos puertos, pero en el host A. En este despliegue existan 3 clientes:
M quina externa 1. Es un computador que conectaba a SERVAL desde una localizaci n externa a trav s del a o e gateway de la red. M quina externa 2. Es un segundo usuario que conectaba a SERVAL desde el exterior a trav s del gateway. a e M quina interna 3. Es un computador que conectaba a SERVAL desde la intranet, es decir, es un computador a interno a la red.
El diagrama que representa gr camente todo el montaje est recogido en la Figura 6. a a
host A
Redireccion de puertos tcp 5690, tcp 5443 udp 6690 gateway corporativo maquina interna 1
WAN
En este despliegue se le dot a todos los clientes con direcciones de la subred 192.168.30.0/24 y se ensayaron o con exito varias aplicaciones empleando las interfaces virtuales TAP: SSH. Ping. Cliente samba y servidor samba. 6.3. Pruebas de rendimiento Una de las caractersticas principales para probar y evolucionar el sistema es el rendimiento. Adem s, mane a jarlo de forma adecuada cuando la cantidad de clientes es elevada es crucial para el exito del proyecto. Por todo ello, las nuevas caractersticas que a adimos al proyecto se desarrollan teniendo en cuenta siempre en el impacto n que pueden tener sobre el mismo. Para la medici n del rendimiento usamos la latencia de una operaci n, as como el n mero de mensajes o o u procesados por el servidor por unidad de tiempo y contamos para ello, con varios m dulos que representan en o tiempo real estas medidas de forma gr ca. a 6.4. Tolerancia a fallos Esta caracterstica ya la hemos resaltado como esencial en la secci n 3. Hemos usado varias estrategias para o conseguir la tolerancia a fallos del sistema. Las capacidades de concurrencia y distribuci n de Erlang nos han o permitido construir un servidor multinodo. La idea principal es que si un nodo falla exista alg n mecanismo para permitir al resto de nodos seguir funciou nando, y a los clientes reconectar a otro nodo del servidor para continuar de forma transparente el intercambio de mensajes.
Si un nodo falla el mecanismo de recuperaci n se encuentra en el cliente, y le permite conocer otros nodos a o los que conectarse cuando se da cuenta de los problemas de su nodo servidor. En el caso de fallo de un cliente se ha incorporado un sistema de keep-alive, que permite al servidor saber si el cliente est respondiendo para poder desconectarlo de una VLANs y dejar de mandarle mensajes. Hay un tiempo a entre el fallo y la detecci n en la que los mensajes enviados se pierden. Podramos solucionarlo con un sistema o de mensajes de aceptaci n (acks), aunque pensando en que los protocolos de capas superiores incorporan ya el o control de conexi n, parece preferible dejar la responsabilidad en ellos y no cargar el protocolo pensando en la o eciencia.
8. Agradecimientos
Los autores quieren agradecer a Alberto Garca Gonz lez, Jos Juan Gonz lez alonso, Iago Toral Quiroga, a e a Adri n Otero Vila y Angel Vidal, y en general a toda la empresa Igalia, por su colaboraci n en el desarrollo del a o proyecto SERVAL.
Referencias
1. The FreeS/WAN Project. Ipsec gnu/linux implementation, 2004. http://www.freeswan.org/. 2. The Internet Engineering Task Force (IETF). Ip security protocol (ipsec), 2004. http://www.ietf.org/html.charters/ipseccharter.html. 3. IEEE Project 802.2 Working Group. IEEE standard for local and metropolitan area networks: Virtual bridged local area networks. Technical report, Institute of Electrical and Electronics Engineers, 3 Park Avenue, New York, NY 10016-5997, 1998. 4. IEEE Project 802.2 Working Group. IEEE standard for information technologytelecommunications and information exchange between systemsieee standard for local and metropolitan area networkscommon specicationsmedia access control (mac) bridges. Technical Report ISO/IEC 15802-3:1998, Institute of Electrical and Electronics Engineers, 3 Park Avenue, New York, NY 10016-5997, 1998. 5. T. Dierks and C. Allen. The tls protocol version 1.0. RFC 2246, IETF - (Internet Engineering Task Force), January 1999.